{ "info": { "author": "Valassis Digital", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "[![Project Status: Active \u2013 The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n\n\n# nbconflux\n\nnbconflux converts Jupyter Notebooks to [Atlassian Confluence](https://www.atlassian.com/software/confluence)\npages using\n[nbconvert](https://github.com/jupyter/nbconvert).\n\n![Screenshot of a notebook converted to a Confluence page](etc/screenshot.png)\n\n## Why?\n\nnbconflux is useful when:\n\n* You use Jupyter notebooks to author computational narratives\n* Your organization uses Confluence to store institutional knowledge\n* You want an easy way to publish your work in that knowledge base\n\n## Features\n\n* Converts most cell inputs and outputs to valid [Confluence storage format](https://confluence.atlassian.com/doc/confluence-storage-format-790796544.html)\n* Attaches image outputs (e.g., matplotlib PNGs) to a page, shows them inline,\n and maintains the page-image association in the version history\n* Attaches the source notebook to a page, links to it from the page footer, and\n maintains the page-notebook association in the version history\n* Supports sweep-select Confluence comments over most input and output content\n* Excludes input, output, or entire cells based on notebook cell tags `noinput`,\n `nooutput`, or `nocell`\n* Labels pages with `nbconflux` to identify content that originated as notebooks\n* Inserts a table of contents macro at the top of the page based on notebook\n headings\n* Applies the NBViewer stylesheet to pages to blend Confluence styling with\n Jupyter notebook styling (requires the CSS macro)\n* Enables MathJax rendering (requires the [HTML macro](https://confluence.atlassian.com/doc/html-macro-38273085.html))\n* Supports raw-cell passthrough of Confluence storage format markup (e.g., to\n include Confluence macros)\n* Compatible with Confluence Cloud and Confluence Server\n\n## Installation\n\nThe nbconflux library requires Python 3 to run and `pip` to install.\nOnce you've satisfied these prerequisites, run:\n\n```bash\npip install nbconflux\n```\n\n(A conda package is coming soon.)\n\n\n## Usage\n\n1. Create or visit a page on your Confluence site.\n2. Copy the URL for the page.\n3. Run one of the following:\n * In a shell:\n ```bash\n nbconflux /path/to/a.ipynb https://your/page/url\n ```\n * In a Python script, Jupyter Notebook, etc.:\n ```python\n import nbconflux\n html, resources = nbconflux.notebook_to_page(nb_path, url)\n ```\n4. Enter your Confluence username and password when prompted.\n5. Visit the page to see your updates.\n\nIf you receive an error, see the project issues for known limitations on what\nyou can post.\n\nRun `nbconflux -h` at the command line for additional options and help.\n\n```\nusage: nbconflux [-h] [--exclude-toc] [--exclude-ipynb] [--exclude-style]\n [--include-mathjax]\n notebook url\n\nConverts Jupyter Notebooks to Atlassian Confluence pages using nbconvert\n\npositional arguments:\n notebook Path to local notebook (ipynb)\n url URL of Confluence page to update\n\noptional arguments:\n -h, --help show this help message and exit\n --exclude-toc Do not generate a table of contents\n --exclude-ipynb Do not attach the notebook to the page\n --exclude-style Do not include the Jupyter base stylesheet\n --include-mathjax Enable MathJax on the page\n --extra-labels EXTRA_LABELS [EXTRA_LABELS ...]\n Additional labels to add to the page\n\nCollects credentials from the following locations:\n1. CONFLUENCE_USERNAME and CONFLUENCE_PASSWORD environment variables\n2. ~/.nbconflux file in the format username:password\n3. User prompts\n```\n\n## Contributing\n\nWe welcome issues and pull requests that help improve the variety of notebook\ncontent and Confluence installations nbconflux supports, its usability for\nhumans, and its reusability within other tools.\n\nWe recommend creating a Python development environment using `conda` or\n`virtualenv`, running `make dev-env` to install the runtime and development\nrequirements, and running `make test` to execute the unit test suite on your\nlocal machine.\n\n## FAQ\n\nQ: Why not call it nbconfluence?\n\nA: https://atlassian.com/legal/trademark\n\nQ: Why do I have to create a page on the site first?\n\nA: To avoid introducing the complexity of specifying a space, parent page, and\n title into the package.\n\n## License\n\nCopyright (c) 2018 Valassis Digital under the terms of the BSD 3-Clause license\n\n## Development\n\nTo run the tests:\n\n```\nmake dev-env\nmake test\n```\n\n## Maintenance\n\nTo make a release:\n\n1. Meet all the requirements described in\n https://dustingram.com/articles/2018/03/16/markdown-descriptions-on-pypi\n to support pushing the Markdown README as the long description on PyPI.\n2. `git commit -m 'REL: 0.6.0' --allow-empty`\n3. `git tag -a 0.6.0 -m 'REL: 0.6.0'`\n4. `git push origin master` and `git push origin master --tags` or use a PR\n5. Run `make release`.\n6. Enter your PyPI creds when prompted.", "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/Valassis-Digital-Media/nbconflux", "keywords": "", "license": "BSD 3-Clause", "maintainer": "", "maintainer_email": "", "name": "nbconflux", "package_url": "https://pypi.org/project/nbconflux/", "platform": "Linux", "project_url": "https://pypi.org/project/nbconflux/", "project_urls": { "Homepage": "https://github.com/Valassis-Digital-Media/nbconflux" }, "release_url": "https://pypi.org/project/nbconflux/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "Converts Jupyter Notebooks to Atlassian Confluence (R) pages using nbconvert", "version": "0.7.0" }, "last_serial": 4492236, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "656783562d127e700f7366ecc7ae1b14", "sha256": "a2176c09babf1219d93665bcd03aa426be14ccd91fca767a44d70261cf7ecf84" }, "downloads": -1, "filename": "nbconflux-0.5.0.tar.gz", "has_sig": false, "md5_digest": "656783562d127e700f7366ecc7ae1b14", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27255, "upload_time": "2018-02-26T13:52:20", "url": "https://files.pythonhosted.org/packages/52/e7/1c197a131cc7d503a9950c3c32979ca222eb88fe5da372e37ae54e662dee/nbconflux-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f271aa791a1131644c5f5aaa713c4f88", "sha256": "44c8079442600e20dc6d1aedf6a2b41dd220503bbfa9a92daae1ac00edfaa2c3" }, "downloads": -1, "filename": "nbconflux-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f271aa791a1131644c5f5aaa713c4f88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27220, "upload_time": "2018-02-28T21:15:33", "url": "https://files.pythonhosted.org/packages/c9/ee/95224a6f027101fa75674e90122583818838d3b583198f158ae6ff1183c0/nbconflux-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "57a174985daab9a96aff05962dbef873", "sha256": "5b554c69cd4c77f239f35a811e6dcf7e33103c81d237538fe74dbcf09db4ef90" }, "downloads": -1, "filename": "nbconflux-0.6.0.tar.gz", "has_sig": false, "md5_digest": "57a174985daab9a96aff05962dbef873", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29321, "upload_time": "2018-03-24T13:11:29", "url": "https://files.pythonhosted.org/packages/4f/e1/dca4855d744ff325e0619d1404b53191179ec249c463d19acc1c597a7b77/nbconflux-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f899ecf00c814493adb74cf56c09f0ce", "sha256": "01bda5096e5bf81626d1c38fefafd7bf6fa52545bdb39b0c21e742eca140f2a7" }, "downloads": -1, "filename": "nbconflux-0.6.1.tar.gz", "has_sig": false, "md5_digest": "f899ecf00c814493adb74cf56c09f0ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29415, "upload_time": "2018-10-13T02:08:12", "url": "https://files.pythonhosted.org/packages/d1/59/9317f0028f0db0358078058d0ab14a508b6fb1f24f08964028fbd4802161/nbconflux-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "35f0e2a42ffbb204836b947fa96e0595", "sha256": "558e1ec23be44b4ea8fd383094dd89b0b023051cedb6e12889cc590f00bd1fa8" }, "downloads": -1, "filename": "nbconflux-0.7.0.tar.gz", "has_sig": false, "md5_digest": "35f0e2a42ffbb204836b947fa96e0595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29721, "upload_time": "2018-11-16T03:23:15", "url": "https://files.pythonhosted.org/packages/d8/ed/dc15ec2d31f19b091dcd68f9b0515cec3d60fee8b25f72d6267ffdbaca8a/nbconflux-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "35f0e2a42ffbb204836b947fa96e0595", "sha256": "558e1ec23be44b4ea8fd383094dd89b0b023051cedb6e12889cc590f00bd1fa8" }, "downloads": -1, "filename": "nbconflux-0.7.0.tar.gz", "has_sig": false, "md5_digest": "35f0e2a42ffbb204836b947fa96e0595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29721, "upload_time": "2018-11-16T03:23:15", "url": "https://files.pythonhosted.org/packages/d8/ed/dc15ec2d31f19b091dcd68f9b0515cec3d60fee8b25f72d6267ffdbaca8a/nbconflux-0.7.0.tar.gz" } ] }