### 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.