Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/volfpeter/markyp-html
HTML element implementations based on markyp
https://github.com/volfpeter/markyp-html
code-generator html html-css-javascript markup python python3 templating templating-engine virtual-dom web-development
Last synced: 3 months ago
JSON representation
HTML element implementations based on markyp
- Host: GitHub
- URL: https://github.com/volfpeter/markyp-html
- Owner: volfpeter
- License: mit
- Created: 2019-03-10T09:31:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-04T07:53:31.000Z (4 months ago)
- Last Synced: 2024-10-25T13:51:58.565Z (4 months ago)
- Topics: code-generator, html, html-css-javascript, markup, python, python3, templating, templating-engine, virtual-dom, web-development
- Language: Python
- Size: 71.3 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-python-html - volfpeter/markyp-html
- awesome-python-html - volfpeter/markyp-html
README
[![Build Status](https://travis-ci.org/volfpeter/markyp-html.svg?branch=master)](https://travis-ci.org/volfpeter/markyp-html)
[![Downloads](https://pepy.tech/badge/markyp-html)](https://pepy.tech/project/markyp-html)
[![Downloads](https://pepy.tech/badge/markyp-html/month)](https://pepy.tech/project/markyp-html/month)
[![Downloads](https://pepy.tech/badge/markyp-html/week)](https://pepy.tech/project/markyp-html/week)# markyp-html
[markyp](https://github.com/volfpeter/markyp)-based HTML implementations.
**Note**: if you're in an **async** environment, you should use [htmy](https://volfpeter.github.io/htmy/) instead!
## Installation
The project is listed on the Python Package Index, it can be installed simply by executing `pip install markyp-html`.
## Getting started
If you are not familiar with the basic concepts of `markyp`, please start by having a look at its documentation [here](https://github.com/volfpeter/markyp).
The following very short example creates the most basic Hello World webpage. As you can see, all it takes is a single `webpage()` call and string conversion.
```Python
from markyp_html import webpage
page = webpage("Hello World!", page_title="Hello World")# Get the actual HTML markup.
html = str(page) # or page.markup
print(html)
```Here is a slightly more sophisticated Hello World example, that contains all kinds of metadata, some CSS, and a couple of simple text elements:
```Python
from markyp_html import meta, style, webpage
from markyp_html.text import h1, p
from markyp_html.inline import strongpage = webpage(
h1("markyp-html"),
strong(p("Hello World!")),
p("This page was generated using Python and markyp-html."),
page_title="markyp-html demo page",
head_elements=[style("h1 {color:red;}\np {color:blue;}")],
metadata=[
meta.author("Website Author"),
meta.charset("UTF-8"),
meta.description("markyp-html demo"),
meta.keywords("markyp-html,markup,Python,HTML"),
meta.viewport("width=device-width, initial-scale=1.0")
]
)# Get the actual HTML markup.
html = str(page) # or page.markup
print(html)
```## `markyp-html` extensions
`markyp-html` is built on [markyp](https://github.com/volfpeter/markyp). In general, extensions follow the `markyp-{domain-or-extension-name}` naming convention.
Here is a list of extensions built on top of `markyp-html`:
- `markyp-bootstrap4`: Bootstrap 4 implementation at https://github.com/volfpeter/markyp-bootstrap4, contribution is welcome.
- `markyp-fontawesome`: Font Awesome icons for `markyp-html`-based web pages at https://github.com/volfpeter/markyp-fontawesome, contribution is welcome.
- `markyp-highlightjs`: Code highlighting in HTML using `highlight.js` at https://github.com/volfpeter/markyp-highlightjs, contribution is welcome.If you have created an open source `markyp-html` extension, please let us know and we will include your project in this list.
## Community guidelines
In general, please treat each other with respect and follow the below guidelines to interact with the project:
- _Questions, feedback_: Open an issue with a `[Question] ` title.
- _Bug reports_: Open an issue with a `[Bug] ` title, an adequate description of the bug, and a code snippet that reproduces the issue if possible.
- _Feature requests and ideas_: Open an issue with an `[Enhancement] ` title and a clear description of the enhancement proposal.## Contribution guidelines
Every form of contribution is welcome, including documentation improvements, tests, bug fixes, and feature implementations.
Please follow these guidelines to contribute to the project:
- Make sure your changes match the documentation and coding style of the project, including [PEP 484](https://www.python.org/dev/peps/pep-0484/) type annotations.
- `mypy` is used to type-check the codebase, submitted code should not produce typing errors. See [this page](http://mypy-lang.org/) for more information on `mypy`.
- _Small_ fixes can be submitted simply by creating a pull request.
- Non-trivial changes should have an associated [issue](#community-guidelines) in the issue tracker that commits must reference (typically by adding `#refs ` to the end of commit messages).
- Please write [tests](#testing) for the changes you make (if applicable).If you have any questions about contributing to the project, please contact the project owner.
As mentioned in the [contribution guidelines](#contribution-guidelines), the project is type-checked using `mypy`, so first of all, the project must pass `mypy`'s static code analysis.
The project is tested using `pytest`. The chosen test layout is that tests are outside the application code, see [this page](https://docs.pytest.org/en/latest/goodpractices.html#tests-outside-application-code) for details on what it means in practice.
If `pytest` is installed, the test set can be executed using the `pytest test` command from within the project directory.
If `pytest-cov` is also installed, a test coverage report can be generated by executing `pytest test --cov markyp_html` from the root directory of the project.
## License - MIT
The library is open-sourced under the conditions of the MIT [license](https://choosealicense.com/licenses/mit/).