### Install SnakeMD Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Installs the SnakeMD library using pip. This is the first step to using the library. ```shell pip install snakemd ``` -------------------------------- ### Install SnakeMD Pre-release using Pip Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Installs a pre-release version of SnakeMD using pip with the --pre flag. Pre-releases are not recommended for production environments. ```shell pip install --pre snakemd ``` -------------------------------- ### Build Documentation with Sphinx Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Builds the project's documentation using Sphinx. This command verifies that the documentation can be generated successfully. ```powershell PS E:\Projects\SnakeMD> poetry run sphinx-build -b dirhtml docs docs/_build Running Sphinx v6.2.1 loading intersphinx inventory from https://docs.python.org/3/objects.inv... building [mo]: targets for 0 po files that are out of date writing output... building [dirhtml]: targets for 9 source files that are out of date updating environment: [new config] 9 added, 0 changed, 0 removed reading sources... [100%] version-history looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done writing output... [100%] version-history generating indices... genindex py-modindex done writing additional pages... search done copying static files... done ``` -------------------------------- ### Install Dependencies with Poetry Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Installs project dependencies using Poetry. This command assumes Poetry is installed and configured for the project. ```powershell PS E:\Projects> poetry install ``` -------------------------------- ### Install SnakeMD using Pip Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Installs the SnakeMD library using pip. This is the standard method for installing Python packages. ```shell pip install snakemd ``` -------------------------------- ### Run SnakeMD Tests with Poetry Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Executes the project's tests using Poetry and pytest. This verifies that the installation and build process was successful. ```powershell PS E:\Projects\SnakeMD> poetry run pytest ============================= test session starts ============================== platform win32 -- Python 3.11.3, pytest-7.3.1, pluggy-1.0.0 rootdir: E:\Projects\SnakeMD configfile: pyproject.toml testpaths: tests collected 168 items tests\test_code.py ..... [ 2%] tests\test_document.py ........................ [ 17%] tests\test_heading.py ................. [ 27%] tests\test_horizontal_rule.py . [ 27%] tests\test_inline.py .......................................... [ 52%] tests\test_md_list.py ......................... [ 67%] tests\test_module.py . [ 68%] tests\test_paragraph.py ................... [ 79%] tests\test_quote.py ........ [ 84%] tests\test_raw.py .... [ 86%] tests\test_table.py ............... [ 95%] tests\test_table_of_contents.py ....... [100%] ============================= 168 passed in 0.15s ============================== ``` -------------------------------- ### Clone SnakeMD Repository Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Clones the SnakeMD source code from GitHub using Git. This is the first step for building from source. ```powershell PS E:\Projects> git clone https://github.com/TheRenegadeCoder/SnakeMD.git Cloning into 'SnakeMD'... remote: Enumerating objects: 1477, done. remote: Counting objects: 100% (63/63), done. remote: Compressing objects: 100% (50/50), done. remote: Total 1477 (delta 27), reused 27 (delta 12), pack-reused 1414 Receiving objects: 100% (1477/1477), 6.43 MiB | 5.68 MiB/s, done. Resolving deltas: 100% (814/814), done.git clone https://github.com/TheRenegadeCoder/SnakeMD.git ``` -------------------------------- ### Generate Full Document Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/usage.rst A complete example program that generates a README.md file with a heading, paragraph, unordered list, and an inserted link. ```python import snakemd doc = snakemd.new_doc() doc.add_heading("Why Use SnakeMD?") p = doc.add_paragraph( """ SnakeMD is a library for generating markdown, and here's why you might choose to use it: """ ) doc.add_unordered_list([ "SnakeMD makes it easy to create markdown files.", "SnakeMD has been used to automate documentation for The Renegade Coder projects." ]) p.insert_link("SnakeMD", "https://snakemd.therenegadecoder.com") doc.dump("README") ``` -------------------------------- ### Navigate to SnakeMD Directory Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/install.rst Changes the current directory to the cloned SnakeMD project folder. This is necessary after cloning the repository. ```powershell PS E:\Projects> cd SnakeMD PS E:\Projects\SnakeMD> ``` -------------------------------- ### Create and Dump Empty Document Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/usage.rst Demonstrates how to create a new SnakeMD document and render an empty one to a file named README.md. ```python import snakemd doc = snakemd.new_doc() doc.dump("README") ``` -------------------------------- ### Import and Instantiate Document Class Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/usage.rst Shows how to import the Document class directly from snakemd and instantiate it. ```python from snakemd import Document doc = Document() ``` -------------------------------- ### SnakeMD v2.1.0 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.1.0 of SnakeMD, specifically the migration of the build system from setup.py to poetry. ```python * v2.1.0 [:pr:`136`] * Migrated build system from setup.py to poetry ``` -------------------------------- ### Add Nested List (Manual) Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Demonstrates how to create nested lists manually using MDList and Paragraph objects, as SnakeMD lacks direct convenience methods for this. ```python def _nested_list(doc: Document): doc.add_block( MDList( [ "Apples", Inline("Onions", bold=True), MDList(["Sweet", "Red"]), Paragraph(["This is the end of the list!"]), ] ) ) ``` -------------------------------- ### Add Heading and Paragraph Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/usage.rst Shows how to add a heading and a paragraph to a SnakeMD document. The paragraph content is a multi-line string. ```python import snakemd doc = snakemd.new_doc() doc.add_heading("Why Use SnakeMD?") p = doc.add_paragraph("SnakeMD is a library for generating markdown, and here's why you might choose to use it:") ``` -------------------------------- ### Add Code Block to Document Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Shows how to add a code block with syntax highlighting to a Snakemd document. ```python def _code(doc: Document): doc.add_code("x = 5", lang="py") ``` -------------------------------- ### Add Table to Document Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Demonstrates how to add a table to a Snakemd document, including column headers, data rows, alignment, and padding. ```python def _table(doc: Document): doc.add_table( ["Height (cm)", "Weight (kg)", "Age (y)"], [["150", "70", "21"], ["164", "75", "19"], ["181", "87", "40"]], [Table.Align.LEFT, Table.Align.CENTER, Table.Align.RIGHT], 0, ) ``` -------------------------------- ### Add Checklist Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Creates a checklist with items that can be marked as checked or unchecked. Requires items to be strings. ```python def _checklist(doc: Document): doc.add_checklist(["Pass the puck", "Shoot the puck", "Score a goal"]) ``` -------------------------------- ### snakemd.Document Class Methods Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/document-api.rst Documents the snakemd.Document class, which is the primary object for creating markdown files. It lists the available convenience methods for modifying the document, assuming no explicit Element imports are needed unless specified. ```APIDOC snakemd.Document A class representing a markdown document. Methods: __str__(): Returns the string representation of the document. __repr__(): Returns the official string representation of the document. add_table(table: Table): Adds a table element to the document. (other members as documented by autoclass) ``` -------------------------------- ### SnakeMD Module and new_doc() Function Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/document-api.rst Details the snakemd module, which contains all functionality for generating markdown files with Python. It highlights the new_doc() function as the entry point for creating Document objects. ```APIDOC snakemd.new_doc() Returns a snakemd.Document object ready for modification. ``` -------------------------------- ### Add Unordered List Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/usage.rst Illustrates adding an unordered list to a SnakeMD document with two list items. ```python import snakemd doc = snakemd.new_doc() doc.add_unordered_list([ "SnakeMD makes it easy to create markdown files.", "SnakeMD has been used to automate documentation for The Renegade Coder projects." ]) ``` -------------------------------- ### Snakemd Template Interface Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/template-api.rst Details the Template interface in Snakemd, which inherits from the Element interface. This allows seamless integration of templates with documents, similar to Block and Inline elements. ```apidoc snakemd.Template: Inherits from: snakemd.Element Members: (See snakemd.Element for base members) __init__(self, ...) Initializes a new Template instance. (Additional members for template-specific functionality) ``` -------------------------------- ### Snakemd CSVTable Template Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/template-api.rst Documentation for the CSVTable template within Snakemd. This template is designed to render CSV data into Markdown tables. ```apidoc snakemd.CSVTable: Inherits from: snakemd.Template Members: __init__(self, ...) Initializes a new CSVTable instance. (Additional members for CSV table generation and customization) ``` -------------------------------- ### Add Raw Text to Document Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Explains how to insert raw, preformatted text into a Snakemd document, useful for custom HTML or other markup. ```python def _raw(doc: Document): doc.add_raw("42 = 16
How cool is that?") ``` -------------------------------- ### Snakemd TableOfContents Template Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/template-api.rst Documentation for the TableOfContents template in Snakemd. This template automatically generates a table of contents for a Markdown document. ```apidoc snakemd.TableOfContents: Inherits from: snakemd.Template Members: __init__(self, ...) Initializes a new TableOfContents instance. (Additional members for table of contents generation and configuration) ``` -------------------------------- ### SnakeMD v2.0.0b2 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.0.0b2 of SnakeMD, including converting code snippets to doctests, reworking string input for Quote, updating parameter documentation, and replacing the url parameter with link in Paragraph.insert_link(). ```python * v2.0.0b2 [:pr:`129`, :pr:`130`] * Converted all code snippets in docs to doctests * Reworked string input for :code:`Quote` to pass directly through raw * Updated language around parameters in documentation to provide a list of possible inputs and their effects * Replaced :code:`url` parameter with :code:`link` parameter in :code:`insert_link()` method of :code:`Paragraph` ``` -------------------------------- ### SnakeMD Python Version Compatibility Source: https://github.com/therenegadecoder/snakemd/blob/main/tests/resources/python-support.md This table shows the compatibility of SnakeMD releases with different Python versions. It indicates which versions of SnakeMD work with Python 3.8, 3.9, 3.10, and 3.11. ```Python Project: /therenegadecoder/snakemd | Python | 3.11 | 3.10 | 3.9 | 3.8 | |---------------------|------|------|-----|-----| | SnakeMD >= 2.0 | Yes | Yes | Yes | Yes | | SnakeMD 0.12 - 0.15 | Yes | Yes | Yes | Yes | | SnakeMD < 0.12 | | Yes | Yes | Yes | ``` -------------------------------- ### Add Paragraph Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Adds a simple paragraph of text to the Markdown document. This is a fundamental Markdown element. ```python def _paragraph(doc: Document): doc.add_paragraph("I think. Therefore, I am.") ``` -------------------------------- ### SnakeMD v2.2.0b1 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.2.0b1 of SnakeMD, including expanded Element requirements, reworked logging, linting integration, and changes to Document.dump() and TableOfContents constructor. ```python * v2.2.0b1 [:pr:`140`, :pr:`142`, :pr:`143`, :pr:`144`, :pr:`145`, :pr:`146`, :pr:`149`] * Expanded the Element requirements to include :code:`__repr__()` for developer friendly strings * Reworked logging system to take advantage of lazy loading and new :code:`__repr__()` methods * Expanded testing to verify the :code:`__repr__()` strings can be used as Python code * Added a handful of getter methods to dissuade folks from using protected members of classes * Fixed jQuery issues in documentation * Incorporated linting (specifically pylint) in development workflow * Updated changelog string for consistency on PyPI * Introduced concept of lazy loading for templates to allow for processing of document contents at render time * Broke existing behavior of a handful of utilities: * Changed the :code:`dir` parameter to :code:`directory` for :code:`dump()` method of :code:`Document` to eliminate shadowing of built-in :code:`dir` * Removed :code:`doc` parameter of :code:`TableOfContents` constructor in preference of new lazy loading system of templates ``` -------------------------------- ### SnakeMD Element Interface Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Element interface in SnakeMD defines the base for all markdown components that can be rendered. Element mutators return self, supporting method chaining for applying multiple changes efficiently. ```APIDOC .. autoclass:: snakemd.Element :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### SnakeMD v2.4.0b1 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.4.0b1 of SnakeMD, including upgrading the Poetry file format, adding breakline and unbreakline methods, and fixing an issue with link insertion in paragraphs. ```python * v2.4.0b1 [:pr:`171`] * Upgraded Poetry file format to 2.x * Added `breakline()` and `unbreakline()` methods * Fixed issue where inserting a link in a paragraph would strip styles ``` -------------------------------- ### SnakeMD MDList Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The MDList element represents a markdown list, supporting both ordered and unordered list structures. ```APIDOC .. autoclass:: snakemd.MDList :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### Insert Link Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Adds a paragraph containing text with embedded links. Supports multiple links within a single paragraph. ```python def _insert_link(doc: Document): doc.add_paragraph( "Learn to program with The Renegade Coder (@RenegadeCoder94)." ).insert_link("The Renegade Coder", "https://therenegadecoder.com").insert_link( "@RenegadeCoder94", "https://twitter.com/RenegadeCoder94" ) ``` -------------------------------- ### SnakeMD Inline Elements for Styling Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst Inline elements provide fine-grained control over text styling and structure within markdown blocks, such as creating links within headings. ```python >>> from snakemd import Heading, Inline, new_doc >>> doc = new_doc() >>> heading = doc.add_block(Heading(Inline("Hello, World!", "https://snakemd.io"), 2)) ``` -------------------------------- ### Add Ordered List Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Creates a numbered list (ordered list) from a list of strings. Each string becomes an item in the list. ```python def _ordered_list(doc: Document): doc.add_ordered_list(["Deku", "Bakugo", "Uraraka", "Tsuyu"]) ``` -------------------------------- ### Insert Link into Paragraph Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/usage.rst Demonstrates how to insert a hyperlink into an existing Paragraph object returned by add_paragraph. ```python import snakemd doc = snakemd.new_doc() p = doc.add_paragraph("Some text.") p.insert_link("SnakeMD", "https://snakemd.therenegadecoder.com") ``` -------------------------------- ### SnakeMD v2.0.0b1 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the significant changes in version 2.0.0b1 of SnakeMD, including the removal and replacement of several classes, methods, and parameters, addition of new features like Quote block, and improvements to testing and documentation. ```python * v2.0.0b1 [:pr:`104`, :pr:`107`, :pr:`108`, :pr:`110`, :pr:`113`, :pr:`115`, :pr:`118`, :pr:`120`, :pr:`122`, :pr:`123`, :pr:`125`, :pr:`126`] * Removed several deprecated items: * Classes * :code:`MDCheckList` * :code:`CheckBox` * :code:`Verification` * Methods * :code:`Document.add_element()` * :code:`Document.add_header()` * :code:`Document.check_for_errors()` * :code:`Inline.verify_url()` * :code:`Paragraph.verify_urls()` * :code:`Paragaph.is_text()` * Parameters * :code:`name` from :code:`new_doc` and :code:`Document` * :code:`code` and :code:`lang` from :code:`Paragraph` * :code:`quote` from :code:`Paragaph` * :code:`render()` and :code:`verify()` from the entire repository * Replaced several deprecated items: * Classes * :code:`Inline` replaces :code:`InlineText` * :code:`Heading` replaces :code:`Header` * Methods * :code:`Inline.is_link()` replaces :code:`Inline.is_url()` * :code:`Document.dump()` replaces :code:`Document.output_page()` * Parameters * :code:`link` replaces :code:`url` in :code:`Inline` * Added several new features: * Included a :code:`Quote` block which allows for quote nesting * Incorporated :code:`ValueError` exceptions in various class constructors * Started a resources page in documentation * Created a requirements file at the root of the repo to aid in development * Improved various aspects of the repo: * Expanded testing to 163 tests for 100% coverage * Clarified design of :code:`Inline` to highlight precedence * Cleaned up documentation of pre-release version directives * Expanded types of inputs on various classes for quality of life * Changed behavior of horizontal rule to avoid clashes with list items * Fixed bugs in logs and expanded logging capabilities * Standardized docstring formatting * Updated README automation to use latest features ``` -------------------------------- ### SnakeMD Raw Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Raw element allows for inserting raw markdown or HTML content directly into the document without processing. ```APIDOC .. autoclass:: snakemd.Raw :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### SnakeMD v2.2.0 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.2.0 of SnakeMD, focusing on documentation improvements, expanded testing, and the addition of a CSVTable Template. ```python * v2.2.0 [:pr:`152`, :pr:`153`, :pr:`159`] * Added documentation throughout the repo * Expanded testing * Added CSVTable Template and accompanying documentation ``` -------------------------------- ### Add Quote to Document Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Illustrates how to add a blockquote to a Snakemd document. ```python def _quote(doc: Document): doc.add_quote("How Now Brown Cow") ``` -------------------------------- ### SnakeMD Heading Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Heading element represents a markdown heading. It supports different heading levels and can be styled or linked using inline elements. ```APIDOC .. autoclass:: snakemd.Heading :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### Generate Table of Contents Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Adds a table of contents to the document, specifying the range of heading levels to include. Requires a Document object. ```python def _table_of_contents(doc: Document): doc.add_table_of_contents(range(2, 4)) ``` -------------------------------- ### Add Unordered List Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Creates a bulleted list (unordered list) from a list of strings. Each string becomes an item in the list. ```python def _unordered_list(doc: Document): doc.add_unordered_list(["Crosby", "Malkin", "Lemieux"]) ``` -------------------------------- ### SnakeMD Table Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Table element represents a markdown table, allowing for structured data presentation. ```APIDOC .. autoclass:: snakemd.Table :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### SnakeMD Inline Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Inline element is used for creating inline markdown components, such as links or emphasis, within text. ```APIDOC .. autoclass:: snakemd.Inline :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### SnakeMD v2.3.0 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.3.0 of SnakeMD, introducing a line break option for inline text to provide more control over formatting. ```python * v2.3.0 [:pr:`168`] * Added a line break option to Inline text to grant a little more control over formatting ``` -------------------------------- ### SnakeMD v2.0.0 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes for the 2023-04-14 release of SnakeMD (v2.0.0), referencing beta releases for detailed changes. ```python * v2.0.0 [:pr:`131`] * Setup code for 2023-04-14 release * See beta releases below for the bulk of the changes ``` -------------------------------- ### SnakeMD Block Interface Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst All markdown blocks in SnakeMD inherit from the Block interface, providing a common structure and set of functionalities for block-level elements. ```APIDOC .. autoclass:: snakemd.Block :members: :undoc-members: :show-inheritance: ``` -------------------------------- ### SnakeMD Code Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Code element represents a code block in markdown. It inherits from the Block interface and provides methods for rendering code snippets. ```APIDOC .. autoclass:: snakemd.Code :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### Add Image Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Embeds an image into the Markdown document using its URL. The image is added as a block element. ```python def _image(doc: Document): logo = "https://therenegadecoder.com/wp-content/uploads/2020/05/header-logo-without-tag-300x75.png" doc.add_block(Paragraph([Inline("Logo", image=logo)])) ``` -------------------------------- ### SnakeMD v2.2.1 Release Notes Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst Details the changes in version 2.2.1 of SnakeMD, including fixing a bug with headings containing special characters and updating Python version support. ```python * v2.2.1 [:pr:`164`] * Fixed a bug where headings with special characters would not link properly in the table of contents * Dropped support for Python 3.8 due to deprecation * Added support for Python 3.12 and 3.13 ``` -------------------------------- ### SnakeMD Paragraph Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Paragraph element represents a block of text in markdown. It allows for various text manipulations and styling through chained methods. ```APIDOC .. autoclass:: snakemd.Paragraph :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### Add Horizontal Rule to Document Source: https://github.com/therenegadecoder/snakemd/blob/main/README.md Demonstrates adding a horizontal rule (a visible divider) to a Snakemd document. ```python def _horizontal_rule(doc: Document): doc.add_horizontal_rule() ``` -------------------------------- ### SnakeMD Block Elements Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst Block elements in SnakeMD represent structural components of a markdown document, similar to HTML block-level elements. Custom blocks can be added to a document using the Document.add_block method. ```python >>> from snakemd import Heading, new_doc >>> doc = new_doc() >>> heading = doc.add_block(Heading("Hello, World!", 2)) ``` -------------------------------- ### SnakeMD Quote Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The Quote element represents a blockquote in markdown, used for quoting text from another source. ```APIDOC .. autoclass:: snakemd.Quote :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` -------------------------------- ### Snakemd Version History Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/version-history.rst This section details the changes and new features introduced in each version of the Snakemd Python package. It includes bug fixes, enhancements to existing classes, and the addition of new functionalities like table generation and checklist support. ```python v0.15.0: - Moved README generation code to repo root as a script - Expanded Heading constructor to support list of strings and Inline objects - Migrated code block support from Paragraph class into new Code class v0.14.0: - Added Raw block for user formatted text - Replaced InlineText with Inline - Added Block and Inline classes - Deprecated MDCheckList and CheckBox - Replaced render with bulit-in str method v0.13.0: - Created a replacement method for output_page called dump - Renamed Header class to Heading - Included deprecation warnings for both output_page and header as well as others affected v0.12.0: - Added support for table generation on-the-fly (:issue:`64`) - Reworked documentation to include proper headings and organization - Added support for strikethrough on InlineText elements (:issue:`58`) v0.11.0: - Added support for table indentation v0.10.1: - Enforced UTF-8 encoding in the output_page method (:issue:`54`) v0.10.0: - Added the CheckBox class for creating checkboxes - Added the MDCheckList class for creating lists of checkboxes - Added a Document method for implementing easy checklists - Updated README to include a new section on checklists v0.9.3: - Added multiple versions of Python testing - Restricted package to Python version 3.8+ - Added Markdown linting for main README v0.9.0: - Added convenience function for creating new Document objects (:issue:`40`) - Ported documentation to Read the Docs (:issue:`43`) v0.8.1: - Fixed an issue where nested lists did not render correctly v0.8.0: - Added range feature to Table of Contents (:issue:`41`) v0.7.0: - Added replace_link() method to Paragraph - Added various state methods to InlineText - Expanded testing - Lowered log level to INFO for verify URL errors - Added code coverage to build v0.6.0: - Restructured api, so snakemd is the import module - Updated usage page to show more features - Fixed issue where base docs link would reroute to index.html directly v0.5.0: - Added favicon to docs (:issue:`26`) - Added mass URL verification function to Paragraph class (:issue:`27`) - Expanded testing to ensure code works as expected - Changed behavior of insert_link() to mimic str.replace() (:issue:`19`) - Added a replace method to Paragraph (:issue:`27`) - Added plausible tracking to latest version of docs (:issue:`25`) v0.4.1: - Added support for Python logging library (:issue:`22`) - Expanded support for strings in the Header, Paragraph, and MDList classes - Fixed an issue where Paragraphs would sometimes render unexpected spaces (:issue:`23`) - Added GitHub links to version history page - Added support for column alignment on tables (:issue:`4`) - Fixed issue where tables sometimes wouldn't pretty print properly (:issue:`5`) v0.3.0: - Gave documentation a major overhaul - Added support for paragraphs in MDList - Added is_text() method to Paragraph - Fixed issue where punctuation sometimes rendered with an extra space in front v0.2.0: - Added support for horizontal rules - Added automated testing through PyTest and GitHub Actions - Added document verification services - Added documentation link to README as well as info about installing the package - Fixed table of contents single render problem - Added a feature which allows users to insert links in existing paragraphs v0.1.0: - Added support for links, lists, images, tables, code blocks, and quotes - Added a table of contents feature ``` -------------------------------- ### SnakeMD HorizontalRule Element Source: https://github.com/therenegadecoder/snakemd/blob/main/docs/docs/element-api.rst The HorizontalRule element represents a horizontal rule (a thematic break) in markdown, typically rendered as a line. ```APIDOC .. autoclass:: snakemd.HorizontalRule :members: :undoc-members: :show-inheritance: :special-members: __str__, __repr__ ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.