{"id":28600778,"url":"https://github.com/daizutabi/mkdocs-nbsync","last_synced_at":"2026-03-11T06:30:57.685Z","repository":{"id":289451148,"uuid":"971221111","full_name":"daizutabi/mkdocs-nbsync","owner":"daizutabi","description":"Seamlessly sync Jupyter notebook visualizations with MkDocs docs - no more broken screenshots!","archived":false,"fork":false,"pushed_at":"2026-01-16T22:58:07.000Z","size":862,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-17T11:27:54.030Z","etag":null,"topics":["data-science","documentation","jupyter","markdown","mkdocs-plugin","python","visualization"],"latest_commit_sha":null,"homepage":"https://daizutabi.github.io/mkdocs-nbsync/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daizutabi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-23T07:36:13.000Z","updated_at":"2026-01-16T22:57:38.000Z","dependencies_parsed_at":"2025-04-23T11:02:37.402Z","dependency_job_id":"e1cd9844-1954-48b3-b037-a6baa11bf07d","html_url":"https://github.com/daizutabi/mkdocs-nbsync","commit_stats":null,"previous_names":["daizutabi/mkdocs-nbsync"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/daizutabi/mkdocs-nbsync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daizutabi%2Fmkdocs-nbsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daizutabi%2Fmkdocs-nbsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daizutabi%2Fmkdocs-nbsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daizutabi%2Fmkdocs-nbsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daizutabi","download_url":"https://codeload.github.com/daizutabi/mkdocs-nbsync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daizutabi%2Fmkdocs-nbsync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30373436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","documentation","jupyter","markdown","mkdocs-plugin","python","visualization"],"created_at":"2025-06-11T14:38:54.470Z","updated_at":"2026-03-11T06:30:57.648Z","avatar_url":"https://github.com/daizutabi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mkdocs-nbsync\n\n[![PyPI Version][pypi-v-image]][pypi-v-link]\n[![Python Version][python-v-image]][python-v-link]\n[![Build Status][GHAction-image]][GHAction-link]\n[![Coverage Status][codecov-image]][codecov-link]\n\n\u003cstrong\u003eConnect Jupyter notebooks to your MkDocs documentation\u003c/strong\u003e\n\nmkdocs-nbsync is a MkDocs plugin that seamlessly embeds Jupyter notebook\nvisualizations in your documentation, solving the disconnect between\ncode development and documentation.\n\n## Why Use mkdocs-nbsync?\n\n### The Documentation Challenge\n\nData scientists, researchers, and technical writers face a common dilemma:\n\n- **Development happens in notebooks** - ideal for experimentation and visualization\n- **Documentation lives in markdown** - perfect for narrative and explanation\n- **Connecting the two is painful** - screenshots break, exports get outdated\n\n### Our Solution\n\nThis plugin creates a live bridge between your notebooks and documentation by:\n\n- **Keeping environments separate** - work in the tool best suited for each task\n- **Maintaining connections** - reference specific figures from notebooks\n- **Automating updates** - changes to notebooks reflect in documentation\n\n## Key Benefits\n\n- **True Separation of Concerns**:\n  Develop visualizations in Jupyter notebooks and write documentation\n  in markdown files, with each tool optimized for its purpose.\n\n- **Intuitive Markdown Syntax**:\n  Use standard image syntax with a simple extension to reference\n  notebook figures: `![alt text](notebook.ipynb){#figure-id}`\n\n- **Automatic Updates**:\n  When you modify your notebooks, your documentation updates\n  automatically in MkDocs serve mode.\n\n- **Clean Source Documents**:\n  Your markdown remains readable and focused on content, without\n  code distractions or complex embedding techniques.\n\n- **Enhanced Development Experience**:\n  Take advantage of IDE features like code completion and syntax\n  highlighting in the appropriate environment.\n\n## Quick Start\n\n### 1. Installation\n\n```bash\npip install mkdocs-nbsync\n```\n\n### 2. Configuration\n\nAdd to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-nbsync:\n      src_dir: ../notebooks\n```\n\n### 3. Mark Figures in Your Notebook\n\nIn your Jupyter notebook, identify figures with a comment:\n\n```python\n# #my-figure\nimport matplotlib.pyplot as plt\n\nfig, ax = plt.subplots(figsize=(8, 4))\nax.plot([1, 2, 3, 4], [10, 20, 25, 30])\n```\n\n### 4. Reference in Markdown\n\nUse standard Markdown image syntax with the figure identifier:\n\n```markdown\n![Chart description](my-notebook.ipynb){#my-figure}\n```\n\n## The Power of Separation\n\nCreating documentation and developing visualizations involve different\nworkflows and timeframes. When building visualizations in Jupyter notebooks,\nyou need rapid cycles of execution, verification, and modification.\n\nThis plugin is designed specifically to address these separation of\nconcerns, allowing you to:\n\n- **Focus on code** in notebooks without documentation distractions\n- **Focus on narrative** in markdown without code interruptions\n- **Maintain powerful connections** between both environments\n\nEach environment is optimized for its purpose, while the plugin\nhandles the integration automatically.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License.\n\n\u003c!-- Badges --\u003e\n[pypi-v-image]: https://img.shields.io/pypi/v/mkdocs-nbsync.svg\n[pypi-v-link]: https://pypi.org/project/mkdocs-nbsync/\n[python-v-image]: https://img.shields.io/pypi/pyversions/mkdocs-nbsync.svg\n[python-v-link]: https://pypi.org/project/mkdocs-nbsync\n[GHAction-image]: https://github.com/daizutabi/mkdocs-nbsync/actions/workflows/ci.yaml/badge.svg?branch=main\u0026event=push\n[GHAction-link]: https://github.com/daizutabi/mkdocs-nbsync/actions?query=event%3Apush+branch%3Amain\n[codecov-image]: https://codecov.io/github/daizutabi/mkdocs-nbsync/coverage.svg?branch=main\n[codecov-link]: https://codecov.io/github/daizutabi/mkdocs-nbsync?branch=main\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaizutabi%2Fmkdocs-nbsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaizutabi%2Fmkdocs-nbsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaizutabi%2Fmkdocs-nbsync/lists"}