| Name | xml2rfc JSON |
| Version |
3.30.2
JSON |
| download |
| home_page | None |
| Summary | xml2rfc generates RFCs and IETF drafts from document source in XML according to the IETF xml2rfc v2 and v3 vocabularies. |
| upload_time | 2025-09-08 22:39:44 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.9 |
| license | None |
| keywords |
ietf
rfc
id
internet-draft
xml
xml2rfc
xmlrfc
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
<div align="center">
<img src="https://raw.githubusercontent.com/ietf-tools/common/main/assets/logos/xml2rfc.svg" alt="XML2RFC" height="125" />
[](https://github.com/ietf-tools/xml2rfc/releases)
[](https://github.com/ietf-tools/xml2rfc/blob/main/LICENSE)
[](https://pypi.org/project/xml2rfc/)
[](https://pypi.org/project/xml2rfc/)
[](https://pypi.org/project/xml2rfc/)
##### Generate RFCs and IETF drafts from document source in XML according to the IETF xml2rfc v2 and v3 vocabularies
</div>
- [Changelog](https://github.com/ietf-tools/xml2rfc/blob/main/CHANGELOG.md)
- [Installation](#installation)
- [Updating xml2rfc](#updating-xml2rfc)
- [Usage](#usage)
- [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md)
- [Getting Started](#getting-started)
- [Git Cloning Tips](#git-cloning-tips)
- [Docker Dev Environment](#docker-dev-environment)
- [Release Procedure](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md#release-procedure)
---
### Introduction
The [IETF] uses a specific format for the standards and other documents it publishes as [RFCs], and for the draft documents which are produced when developing documents for publications. There exists a number of different tools to facilitate the formatting of drafts and RFCs according to the existing rules, and this tool, **xml2rfc**, is one of them. It takes as input an xml file that contains the text and meta-information about author names etc., and transforms it into suitably formatted output. The input xml file should follow the grammars in [RFC7749] *(for v2 documents)* or [RFC7991] *(for v3 documents)*.
[RFCXML vocabulary reference] is available at [authors.ietf.org].
**xml2rfc** provides a variety of output formats. See the command line help for a full list of formats. It also provides conversion from v2 to v3, and can run the [preptool] on its input.
### Installation
`xml2rfc` is available as Python package. You can install it with following command:
```sh
pip install xml2rfc
```
If you're using [pipx](https://pipx.pypa.io/stable/), you can install `xml2rfc` with the following command:
```sh
pipx install xml2rfc
```
`xml2rfc` also provides `pdf` extra package to install required packages required for PDF file generation.
See [next section](#installation-of-support-libraries-for-the-pdf-formatter) about additional requirements for PDF generation.
To install `xml2rfc` with PDF generation support run:
```sh
pip install "xml2rfc[pdf]"
```
To install `pdf` extra with `pipx` run:
```sh
pipx install "xml2rfc[pdf]"
```
#### Installation of support libraries for the PDF-formatter
In order to generate PDFs, **xml2rfc** uses the [WeasyPrint] module, which depends on external libraries that must be installed as native packages on your platform, separately from the **xml2rfc** install.
1. First, install the **Pango**, and other required libraries on your system. See installation instructions on the [WeasyPrint Docs].
2. Next, install WeasyPrint python modules using pip.
```sh
pip install "xml2rfc[pdf]"
```
3. Finally, install the required fonts:
* Download latest fonts from [xml2rfc-fonts](https://github.com/ietf-tools/xml2rfc-fonts/releases/latest).
* In the **Assets** section, download either the `tar.gz` or the `zip` archive.
* Extract the contents of the downloaded `xml2rfc-fonts` archive.
* Install the fonts found in the `noto` and `roboto_mono` directories to your operating system.
With these installed and available to **xml2rfc**, the `--pdf` switch will be enabled.
### Updating xml2rfc
To update `xml2rfc`, run the following command:
```sh
pip install --upgrade xml2rfc
```
If you are using `pipx`, you can update it with:
```sh
pipx upgrade xml2rfc
```
### Usage
**xml2rfc** accepts a single XML document as input and outputs to one or more conversion formats.
#### Basic Usage
```sh
xml2rfc SOURCE [options] FORMATS...
```
Run `xml2rfc --help` for a full listing of command-line options.
### Getting Started
This project is following the standard **Git Feature Workflow** development model. Learn about all the various steps of the development workflow, from creating a fork to submitting a pull request, in the [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md) guide.
> Make sure to read the [Styleguides](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md#styleguides) section to ensure a cohesive code format across the project.
You can submit bug reports, enhancements and new feature requests in the [discussions](https://github.com/ietf-tools/xml2rfc/discussions) area. Accepted tickets will be converted to issues.
#### Git Cloning Tips
As outlined in the [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md) guide, you will first want to create a fork of the xml2rfc project in your personal GitHub account before cloning it.
For example *(replace `USERNAME` with your GitHub username)*:
```sh
git clone https://github.com/USERNAME/xml2rfc.git
```
#### Docker Dev Environment
Run `./run.sh` command to build and start a docker development environment.
The initial build may take time because it downloads all required fonts as well.
```sh
./run.sh
```
[IETF]: https://www.ietf.org/
[RFCs]: https://www.rfc-editor.org/
[RFC7749]: https://www.rfc-editor.org/info/rfc7749
[RFC7991]: https://www.rfc-editor.org/info/rfc7991
[RFCXML vocabulary reference]: https://authors.ietf.org/en/rfcxml-vocabulary
[authors.ietf.org]: https://authors.ietf.org/
[preptool]: https://www.rfc-editor.org/info/rfc7998
[WeasyPrint]: https://weasyprint.org/
[WeasyPrint Docs]: https://doc.courtbouillon.org/weasyprint/stable/first_steps.html
Raw data
{
"_id": null,
"home_page": null,
"name": "xml2rfc",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "ietf, rfc, id, internet-draft, xml, xml2rfc, xmlrfc",
"author": null,
"author_email": "IETF Tools <tools-help@ietf.org>",
"download_url": "https://files.pythonhosted.org/packages/3a/b3/06d002c0cdaafce50abc5dca04ff293a63797c9a44f9a1c6750499d5f9b6/xml2rfc-3.30.2.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n \n<img src=\"https://raw.githubusercontent.com/ietf-tools/common/main/assets/logos/xml2rfc.svg\" alt=\"XML2RFC\" height=\"125\" />\n \n[](https://github.com/ietf-tools/xml2rfc/releases)\n[](https://github.com/ietf-tools/xml2rfc/blob/main/LICENSE)\n[](https://pypi.org/project/xml2rfc/)\n[](https://pypi.org/project/xml2rfc/)\n[](https://pypi.org/project/xml2rfc/)\n \n##### Generate RFCs and IETF drafts from document source in XML according to the IETF xml2rfc v2 and v3 vocabularies\n \n</div>\n\n- [Changelog](https://github.com/ietf-tools/xml2rfc/blob/main/CHANGELOG.md)\n- [Installation](#installation)\n- [Updating xml2rfc](#updating-xml2rfc)\n- [Usage](#usage)\n- [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md)\n- [Getting Started](#getting-started)\n - [Git Cloning Tips](#git-cloning-tips)\n - [Docker Dev Environment](#docker-dev-environment)\n- [Release Procedure](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md#release-procedure)\n\n---\n\n### Introduction\n\nThe [IETF] uses a specific format for the standards and other documents it publishes as [RFCs], and for the draft documents which are produced when developing documents for publications. There exists a number of different tools to facilitate the formatting of drafts and RFCs according to the existing rules, and this tool, **xml2rfc**, is one of them. It takes as input an xml file that contains the text and meta-information about author names etc., and transforms it into suitably formatted output. The input xml file should follow the grammars in [RFC7749] *(for v2 documents)* or [RFC7991] *(for v3 documents)*.\n\n[RFCXML vocabulary reference] is available at [authors.ietf.org].\n\n**xml2rfc** provides a variety of output formats. See the command line help for a full list of formats. It also provides conversion from v2 to v3, and can run the [preptool] on its input.\n\n### Installation\n\n`xml2rfc` is available as Python package. You can install it with following command:\n```sh\npip install xml2rfc\n```\n\nIf you're using [pipx](https://pipx.pypa.io/stable/), you can install `xml2rfc` with the following command:\n```sh\npipx install xml2rfc\n```\n\n`xml2rfc` also provides `pdf` extra package to install required packages required for PDF file generation.\nSee [next section](#installation-of-support-libraries-for-the-pdf-formatter) about additional requirements for PDF generation.\n\nTo install `xml2rfc` with PDF generation support run:\n```sh\npip install \"xml2rfc[pdf]\"\n```\n\nTo install `pdf` extra with `pipx` run:\n```sh\npipx install \"xml2rfc[pdf]\"\n```\n\n#### Installation of support libraries for the PDF-formatter\n\nIn order to generate PDFs, **xml2rfc** uses the [WeasyPrint] module, which depends on external libraries that must be installed as native packages on your platform, separately from the **xml2rfc** install.\n\n1. First, install the **Pango**, and other required libraries on your system. See installation instructions on the [WeasyPrint Docs].\n\n2. Next, install WeasyPrint python modules using pip.\n\n```sh\npip install \"xml2rfc[pdf]\"\n```\n3. Finally, install the required fonts:\n * Download latest fonts from [xml2rfc-fonts](https://github.com/ietf-tools/xml2rfc-fonts/releases/latest).\n * In the **Assets** section, download either the `tar.gz` or the `zip` archive.\n * Extract the contents of the downloaded `xml2rfc-fonts` archive.\n * Install the fonts found in the `noto` and `roboto_mono` directories to your operating system.\n\nWith these installed and available to **xml2rfc**, the `--pdf` switch will be enabled.\n\n### Updating xml2rfc\n\nTo update `xml2rfc`, run the following command:\n```sh\npip install --upgrade xml2rfc\n```\n\nIf you are using `pipx`, you can update it with:\n```sh\npipx upgrade xml2rfc\n```\n\n### Usage\n\n**xml2rfc** accepts a single XML document as input and outputs to one or more conversion formats.\n\n#### Basic Usage\n\n```sh\nxml2rfc SOURCE [options] FORMATS...\n```\n\nRun `xml2rfc --help` for a full listing of command-line options.\n\n### Getting Started\n\nThis project is following the standard **Git Feature Workflow** development model. Learn about all the various steps of the development workflow, from creating a fork to submitting a pull request, in the [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md) guide.\n\n> Make sure to read the [Styleguides](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md#styleguides) section to ensure a cohesive code format across the project.\n\nYou can submit bug reports, enhancements and new feature requests in the [discussions](https://github.com/ietf-tools/xml2rfc/discussions) area. Accepted tickets will be converted to issues.\n\n#### Git Cloning Tips\n\nAs outlined in the [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md) guide, you will first want to create a fork of the xml2rfc project in your personal GitHub account before cloning it.\n\nFor example *(replace `USERNAME` with your GitHub username)*:\n\n```sh\ngit clone https://github.com/USERNAME/xml2rfc.git\n```\n#### Docker Dev Environment\n\nRun `./run.sh` command to build and start a docker development environment.\nThe initial build may take time because it downloads all required fonts as well.\n\n\n```sh\n./run.sh\n```\n\n[IETF]: https://www.ietf.org/\n[RFCs]: https://www.rfc-editor.org/\n[RFC7749]: https://www.rfc-editor.org/info/rfc7749\n[RFC7991]: https://www.rfc-editor.org/info/rfc7991\n[RFCXML vocabulary reference]: https://authors.ietf.org/en/rfcxml-vocabulary\n[authors.ietf.org]: https://authors.ietf.org/\n[preptool]: https://www.rfc-editor.org/info/rfc7998\n[WeasyPrint]: https://weasyprint.org/\n[WeasyPrint Docs]: https://doc.courtbouillon.org/weasyprint/stable/first_steps.html\n",
"bugtrack_url": null,
"license": null,
"summary": "xml2rfc generates RFCs and IETF drafts from document source in XML according to the IETF xml2rfc v2 and v3 vocabularies.",
"version": "3.30.2",
"project_urls": {
"changelog": "https://github.com/ietf-tools/xml2rfc/blob/main/CHANGELOG.md",
"documentation": "https://authors.ietf.org/en/rfcxml-vocabulary",
"homepage": "https://github.com/ietf-tools/xml2rfc",
"issues": "https://github.com/ietf-tools/xml2rfc/issues",
"releasenotes": "https://github.com/ietf-tools/xml2rfc/releases",
"source": "https://github.com/ietf-tools/xml2rfc"
},
"split_keywords": [
"ietf",
" rfc",
" id",
" internet-draft",
" xml",
" xml2rfc",
" xmlrfc"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "413f27bbe6adcba3e7473d0e8659c9118865bacaf51c0c877a16934c1eefc8ef",
"md5": "683790c2c670ba75c55ff578a401317d",
"sha256": "5f84d34904e99a07520caa9cf1bec5b9cdfd605ce3d2e4000a8292bc08d1ff00"
},
"downloads": -1,
"filename": "xml2rfc-3.30.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "683790c2c670ba75c55ff578a401317d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 375938,
"upload_time": "2025-09-08T22:39:42",
"upload_time_iso_8601": "2025-09-08T22:39:42.748293Z",
"url": "https://files.pythonhosted.org/packages/41/3f/27bbe6adcba3e7473d0e8659c9118865bacaf51c0c877a16934c1eefc8ef/xml2rfc-3.30.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3ab306d002c0cdaafce50abc5dca04ff293a63797c9a44f9a1c6750499d5f9b6",
"md5": "ff4b403f77dd1befba0b18659db40c4a",
"sha256": "dfd9f23288cfa805ad5bb613c9540dc1b349da98e117a16e0ca887d2261ed311"
},
"downloads": -1,
"filename": "xml2rfc-3.30.2.tar.gz",
"has_sig": false,
"md5_digest": "ff4b403f77dd1befba0b18659db40c4a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 421930,
"upload_time": "2025-09-08T22:39:44",
"upload_time_iso_8601": "2025-09-08T22:39:44.488392Z",
"url": "https://files.pythonhosted.org/packages/3a/b3/06d002c0cdaafce50abc5dca04ff293a63797c9a44f9a1c6750499d5f9b6/xml2rfc-3.30.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-08 22:39:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ietf-tools",
"github_project": "xml2rfc",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "xml2rfc"
}