{ "info": { "author": "Peter Volf", "author_email": "do.volfp@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: HTML", "Topic :: Utilities", "Typing :: Typed" ], "description": "[![Build Status](https://travis-ci.org/volfpeter/markyp-bootstrap4.svg?branch=master)](https://travis-ci.org/volfpeter/markyp-bootstrap4)\n[![Downloads](https://pepy.tech/badge/markyp-bootstrap4)](https://pepy.tech/project/markyp-bootstrap4)\n[![Downloads](https://pepy.tech/badge/markyp-bootstrap4/month)](https://pepy.tech/project/markyp-bootstrap4/month)\n[![Downloads](https://pepy.tech/badge/markyp-bootstrap4/week)](https://pepy.tech/project/markyp-bootstrap4/week)\n\n# markyp-bootstrap4\n\nCreate Bootstrap 4 web pages using purely Python.\n\nThe project is built on [markyp](https://github.com/volfpeter/markyp) and [markyp-html](https://github.com/volfpeter/markyp-html).\n\n## Installation\n\nThe project is listed on the Python Package Index, it can be installed simply by executing `pip install markyp-bootstrap4`.\n\n## Getting started\n\nIf 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).\n\nFor a demo of the capabilities of `markyp-bootstrap4`, head over to the project's [GitHub Pages](https://volfpeter.github.io/markyp-bootstrap4). The source code of that page was generated by the `demo.py` script that you can find at the root of this repository.\n\nThe following example shows how to create a login form using `markyp-bootstrap4`.\n\n```Python\nfrom markyp_html import webpage\nfrom markyp_html.forms import form\n\nfrom markyp_bootstrap4 import req\nfrom markyp_bootstrap4.layout import container, one, col, margin, offset\nfrom markyp_bootstrap4.buttons import b_button\nfrom markyp_bootstrap4.forms import form_group, form_check, form_check_label, input_, text\n\ndef login():\n return form(\n form_group(\n text.h5(\"Email\"),\n input_.email(placeholder=\"Enter your email address\")\n ),\n form_group(\n text.h5(\"Password\"),\n input_.password(placeholder=\"Enter your password\")\n ),\n form_check(\n input_.checkbox(),\n form_check_label(\"Remember Me\"),\n class_=margin(bottom=2)\n ),\n b_button.primary(\"Sign In\", type=\"submit\")\n )\n\npage = webpage(\n container(\n one(\n login(),\n md=6,\n class_=offset(md=3)\n )\n ),\n page_title=\"markyp-bootstrap4 example\",\n head_elements=[\n req.bootstrap_css,\n *req.all_js\n ]\n)\n\nprint(page)\n```\n\nHere is a list of things to notice in the example:\n\n- Bootstrap 4's requirements can be import with `from markyp_bootstrap4 import req`, and the required CSS and JavaScript imports should be added to the `head_elements` of the webpage.\n- The `layout` module contains the components you can use to define the layout of the webpage.\n- `markyp_bootstrap4` components are grouped the same way as components in Bootstrap 4's documentation. The only difference is here every module name is in plural form.\n\n## Community guidelines\n\nIn general, please treat each other with respect and follow the below guidelines to interact with the project:\n\n- _Questions, feedback_: Open an issue with a `[Question] ` title.\n- _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.\n- _Feature requests and ideas_: Open an issue with an `[Enhancement] ` title and a clear description of the enhancement proposal.\n\n## Contribution guidelines\n\nEvery form of contribution is welcome, including documentation improvements, tests, bug fixes, and feature implementations.\n\nPlease follow these guidelines to contribute to the project:\n\n- 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.\n- `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`.\n- _Small_ fixes can be submitted simply by creating a pull request.\n- 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).\n- Please write [tests](#testing) for the changes you make (if applicable).\n\nIf you have any questions about contributing to the project, please contact the project owner.\n\nAs 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.\n\nThe 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.\n\nIf `pytest` is installed, the test set can be executed using the `pytest test` command from within the project directory.\n\nIf `pytest-cov` is also installed, a test coverage report can be generated by executing `pytest test --cov markyp_bootstrap4` from the root directory of the project.\n\n## License - MIT\n\nThe library is open-sourced under the conditions of the MIT [license](https://choosealicense.com/licenses/mit/).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/volfpeter/markyp-bootstrap4", "keywords": "bootstrap html markup generator utility", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "markyp-bootstrap4", "package_url": "https://pypi.org/project/markyp-bootstrap4/", "platform": "", "project_url": "https://pypi.org/project/markyp-bootstrap4/", "project_urls": { "Homepage": "https://github.com/volfpeter/markyp-bootstrap4" }, "release_url": "https://pypi.org/project/markyp-bootstrap4/0.1910.0/", "requires_dist": [ "markyp-html (>=0.1910)", "markyp (>=0.1910)" ], "requires_python": ">=3.6", "summary": "Bootstrap4 components built with markyp-html", "version": "0.1910.0" }, "last_serial": 5972594, "releases": { "0.1904.0": [ { "comment_text": "", "digests": { "md5": "a2a8f3e30054b001aab3401ea0ad8adc", "sha256": "24ddd80d10a44eb7a302e7c92015455b442dd7a0ede21735e848b696b1a0da57" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1904.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a2a8f3e30054b001aab3401ea0ad8adc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14883, "upload_time": "2019-04-15T20:39:45", "url": "https://files.pythonhosted.org/packages/05/e5/93bc316d6e9a53ab8499ef61d298f3109b9724d30737e99afee0217b458c/markyp_bootstrap4-0.1904.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1641b7886ae9d7cf6ac87ee51b7f986", "sha256": "422c9a54757e2ee556e7317236e83ae2b1dbf1d7a267b936e0b6a6ff06f957f5" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1904.0.tar.gz", "has_sig": false, "md5_digest": "b1641b7886ae9d7cf6ac87ee51b7f986", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20535, "upload_time": "2019-04-15T20:39:47", "url": "https://files.pythonhosted.org/packages/67/5c/7735a82e69c3e20948fbc07f85378224afd0dfe23219df6b5d9424be4bcd/markyp-bootstrap4-0.1904.0.tar.gz" } ], "0.1905.0": [ { "comment_text": "", "digests": { "md5": "aa39053786f0c1e92042e9e00479dbf1", "sha256": "36338ebb935a2cf5b544ec58dd2d9dbdb2ae702270b7826428b15fc8237ffabd" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1905.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aa39053786f0c1e92042e9e00479dbf1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 24796, "upload_time": "2019-05-06T21:17:03", "url": "https://files.pythonhosted.org/packages/2f/c2/ae2b492f828c377c01c86f9db3b6f4eb404f65989c0f2d7ab7792cf54221/markyp_bootstrap4-0.1905.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d36f6cda7f2d034e71bfbb55491a53be", "sha256": "465e523e6ce76e69bf7a9bf6a5043a32f0719659866a01fd04b80128023b2082" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1905.0.tar.gz", "has_sig": false, "md5_digest": "d36f6cda7f2d034e71bfbb55491a53be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 32090, "upload_time": "2019-05-06T21:17:04", "url": "https://files.pythonhosted.org/packages/f0/01/fe970bac3fd815c09ade0c71a9607a24ca9807ec2d00421faebfd331042d/markyp-bootstrap4-0.1905.0.tar.gz" } ], "0.1905.1": [ { "comment_text": "", "digests": { "md5": "5b1c2f08d8a2fade1c905b5bc2d1d938", "sha256": "1182781975f93616a757ec099cb3a606d5e1d3b4ae57f18e669b06f77daa246e" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1905.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5b1c2f08d8a2fade1c905b5bc2d1d938", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 25023, "upload_time": "2019-05-08T08:23:45", "url": "https://files.pythonhosted.org/packages/ac/71/a1feb4c87219bf6a7e34c318694122233ba0b72664d1358ca08f413e6cff/markyp_bootstrap4-0.1905.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bf07103ea0a18a48007a3e45b96663e", "sha256": "3a595ac9d6115d0502f435f55fa67c9c49d7183bc5ce6b8bccb386ef549f15a7" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1905.1.tar.gz", "has_sig": false, "md5_digest": "6bf07103ea0a18a48007a3e45b96663e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 32501, "upload_time": "2019-05-08T08:23:47", "url": "https://files.pythonhosted.org/packages/42/7a/f98ef89edf1346af35023c9eb54172cb7a89c571e80a5f1aa26b6ea01abc/markyp-bootstrap4-0.1905.1.tar.gz" } ], "0.1905.2": [ { "comment_text": "", "digests": { "md5": "c9ba85df6dbfccfa49df83ad68991459", "sha256": "bb4d5468033497272b1b5fbb6f6dde54203cd88eb7262cc907fbab67ea2149cc" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1905.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c9ba85df6dbfccfa49df83ad68991459", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 25118, "upload_time": "2019-05-11T19:06:57", "url": "https://files.pythonhosted.org/packages/f0/e6/a7142a543e9763dbb3ab77600e3ff43d5d84b13d9ce9228f46e94db634e8/markyp_bootstrap4-0.1905.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4892513335c1d2a8de3711c2043831e3", "sha256": "a0346a97ea1ebbffc3bdf02fdc46b099c4c352c262a6228a075b22e98b764e2b" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1905.2.tar.gz", "has_sig": false, "md5_digest": "4892513335c1d2a8de3711c2043831e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 32600, "upload_time": "2019-05-11T19:06:58", "url": "https://files.pythonhosted.org/packages/6c/7a/b19e7441bddcfdb0eaa41ded0a307719f61f58557f59d02609a33365f5e1/markyp-bootstrap4-0.1905.2.tar.gz" } ], "0.1905.3": [ { "comment_text": "", "digests": { "md5": "6812fd9f322021fa072c1613afc10613", "sha256": "8ed5eee6a5e92ae93d24e3d779392c0a476715c7f505f01e1b7b68d5fe370107" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1905.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6812fd9f322021fa072c1613afc10613", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 29302, "upload_time": "2019-05-19T14:58:03", "url": "https://files.pythonhosted.org/packages/23/6c/c5844a753f22344ee8b2812f9a570bf78d4382660e857594f843eaf6bbf0/markyp_bootstrap4-0.1905.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7684c51f9d5ab0e2909fbdcb5b05873", "sha256": "8835eab5594025b37e7e8207885440d943b9c7c726f04f92ce3da7908355caa4" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1905.3.tar.gz", "has_sig": false, "md5_digest": "f7684c51f9d5ab0e2909fbdcb5b05873", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 37096, "upload_time": "2019-05-19T14:58:04", "url": "https://files.pythonhosted.org/packages/1d/ce/8cd7b5348b194721bb8d1502ec2a157c23bb84e104aa3ac831c70c33ecb7/markyp-bootstrap4-0.1905.3.tar.gz" } ], "0.1906.0": [ { "comment_text": "", "digests": { "md5": "21569020bca67134895d11e9e9b0c614", "sha256": "e495a4bcd3eab7798c9c499cebdea37e081cb7d78c5772cc8f5054b788186dac" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1906.0-py3-none-any.whl", "has_sig": false, "md5_digest": "21569020bca67134895d11e9e9b0c614", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 35756, "upload_time": "2019-06-08T07:42:12", "url": "https://files.pythonhosted.org/packages/d7/74/5dd1e01753a8b9c4dd5cdd8e9210f2b7aed9f4805b3c6809d334170946e4/markyp_bootstrap4-0.1906.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24e5104eb8438ce202ed1168a8e5a374", "sha256": "161a0c2a194fc945afa54465de577c531a6637ceb958820b285eaa11ca022d9f" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1906.0.tar.gz", "has_sig": false, "md5_digest": "24e5104eb8438ce202ed1168a8e5a374", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 42124, "upload_time": "2019-06-08T07:42:13", "url": "https://files.pythonhosted.org/packages/73/70/40ae15f8dc070302a1a6ce1a800a03658669f47a56c3aaba1b277b96811b/markyp-bootstrap4-0.1906.0.tar.gz" } ], "0.1910.0": [ { "comment_text": "", "digests": { "md5": "d8ea0a8d27a933b1e2794302632c3089", "sha256": "8b3c651241c5ce7f5a8fff719d500b838e377f90bc95762610c30d5443748414" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1910.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d8ea0a8d27a933b1e2794302632c3089", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 39135, "upload_time": "2019-10-14T17:59:56", "url": "https://files.pythonhosted.org/packages/c7/13/bef7ba2627c38c90a24cff3dd7c573066082741437f82024c978d2659811/markyp_bootstrap4-0.1910.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c481c1565c831e23e1cdc1d6135c0bd3", "sha256": "880d09961efac34835fed94574fe1244b41709389cc1495fdbeb387b5b37b11a" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1910.0.tar.gz", "has_sig": false, "md5_digest": "c481c1565c831e23e1cdc1d6135c0bd3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 45646, "upload_time": "2019-10-14T17:59:58", "url": "https://files.pythonhosted.org/packages/32/58/055563ef8b71c42d4a7456e7c506a680b80312b2205c9d772679cf07cf0f/markyp-bootstrap4-0.1910.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d8ea0a8d27a933b1e2794302632c3089", "sha256": "8b3c651241c5ce7f5a8fff719d500b838e377f90bc95762610c30d5443748414" }, "downloads": -1, "filename": "markyp_bootstrap4-0.1910.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d8ea0a8d27a933b1e2794302632c3089", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 39135, "upload_time": "2019-10-14T17:59:56", "url": "https://files.pythonhosted.org/packages/c7/13/bef7ba2627c38c90a24cff3dd7c573066082741437f82024c978d2659811/markyp_bootstrap4-0.1910.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c481c1565c831e23e1cdc1d6135c0bd3", "sha256": "880d09961efac34835fed94574fe1244b41709389cc1495fdbeb387b5b37b11a" }, "downloads": -1, "filename": "markyp-bootstrap4-0.1910.0.tar.gz", "has_sig": false, "md5_digest": "c481c1565c831e23e1cdc1d6135c0bd3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 45646, "upload_time": "2019-10-14T17:59:58", "url": "https://files.pythonhosted.org/packages/32/58/055563ef8b71c42d4a7456e7c506a680b80312b2205c9d772679cf07cf0f/markyp-bootstrap4-0.1910.0.tar.gz" } ] }