├── tests ├── __init__.py ├── validation-sets │ ├── base │ │ ├── config.py │ │ ├── left.png │ │ ├── right.png │ │ ├── editor_v2.rst │ │ └── editor_v1.rst │ ├── extensions │ │ ├── config.py │ │ ├── src │ │ │ └── func.py │ │ ├── index.rst │ │ ├── inheritance_diagram.rst │ │ └── autosummary.rst │ ├── markdown │ │ ├── config.py │ │ ├── code.md │ │ ├── table.md │ │ └── index.md │ ├── requirements.txt │ ├── sphinx │ │ ├── assets │ │ │ ├── .gitattributes │ │ │ ├── example.py │ │ │ ├── example.py.orig │ │ │ └── example.pdf │ │ ├── conf.py │ │ ├── deprecated.rst │ │ ├── versionadded.rst │ │ ├── versionchanged.rst │ │ ├── manpage.rst │ │ ├── index.rst │ │ └── seealso.rst │ └── restructuredtext │ │ ├── assets │ │ ├── .gitattributes │ │ ├── github.png │ │ ├── sphinx.png │ │ └── confluence.png │ │ ├── conf.py │ │ ├── build │ │ ├── rubric.rst │ │ ├── doctest.rst │ │ ├── epigraph.rst │ │ ├── highlights.rst │ │ ├── pull-quote.rst │ │ ├── transition.rst │ │ ├── index.rst │ │ ├── topic.rst │ │ ├── block-quotes.rst │ │ ├── line-block.rst │ │ ├── markup.rst │ │ └── list-table.rst ├── sample-sets │ ├── example-doc-mdn │ │ ├── .gitignore │ │ ├── fetch.sh │ │ ├── conf.py.in │ │ └── tox.ini │ ├── kroki │ │ ├── assets │ │ │ ├── diagram.puml │ │ │ ├── graph.dot │ │ │ └── diagram.ditaa │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── plantuml │ │ ├── .gitignore │ │ ├── tox.ini │ │ ├── index.rst │ │ └── conf.py │ ├── example-doc-sphinx │ │ ├── .gitignore │ │ ├── fetch.sh │ │ └── tox.ini │ ├── numfig │ │ ├── assets │ │ │ ├── .gitattributes │ │ │ ├── github.png │ │ │ ├── sphinx.png │ │ │ └── confluence.png │ │ ├── index.rst │ │ ├── conf.py │ │ └── tox.ini │ ├── sphinx-toolbox │ │ ├── assets │ │ │ └── hello_world.txt │ │ ├── tox.ini │ │ └── conf.py │ ├── cleanup │ │ ├── index.rst │ │ ├── tox.ini │ │ └── conf.py │ ├── i8n │ │ ├── index.rst │ │ ├── tox.ini │ │ └── conf.py │ ├── image │ │ ├── assets │ │ │ ├── .gitattributes │ │ │ ├── github.png │ │ │ ├── sphinx.png │ │ │ └── confluence.png │ │ ├── conf.py │ │ └── tox.ini │ ├── mermaid │ │ ├── .gitignore │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── openapi │ │ ├── index.rst │ │ ├── conf.py │ │ └── tox.ini │ ├── tables │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── orphan │ │ ├── index.rst │ │ ├── conf.py │ │ ├── tox.ini │ │ └── pagea.rst │ ├── strikethrough │ │ ├── _static │ │ │ └── test.css │ │ ├── second.md │ │ ├── index.rst │ │ ├── conf.py │ │ └── tox.ini │ ├── confluence-excerpt │ │ ├── conf.py │ │ ├── tox.ini │ │ ├── second.rst │ │ └── index.rst │ ├── confluence-status │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── single-confluence-refs │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── sphinx-tabs │ │ ├── README.md │ │ ├── index.rst │ │ ├── tox.ini │ │ └── conf.py │ ├── drawio │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── markdown-myst │ │ ├── conf.py │ │ ├── index.md │ │ └── tox.ini │ ├── sphinx-panels │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── svg │ │ ├── conf.py │ │ ├── svg-doctype.svg │ │ ├── svg-none.svg │ │ ├── svg-viewbox.svg │ │ ├── svg.svg │ │ └── tox.ini │ ├── svgbob │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── link-check │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── sphinx-diagrams │ │ ├── conf.py │ │ └── tox.ini │ ├── sphinx-video │ │ ├── conf.py │ │ ├── spbtv_sample_bipbop_av1_960x540_25fps.mp4 │ │ ├── index.rst │ │ └── tox.ini │ ├── sphinxnotes-strike │ │ ├── index.rst │ │ ├── conf.py │ │ └── tox.ini │ ├── youtube │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── confluence-card │ │ ├── conf.py │ │ ├── tox.ini │ │ └── second.rst │ ├── httpdomain │ │ ├── conf.py │ │ └── tox.ini │ ├── sphinx-inline-tabs │ │ ├── README.md │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── autodocs │ │ ├── index.rst │ │ ├── src │ │ │ └── func.py │ │ ├── tox.ini │ │ ├── conf.py │ │ ├── autosummary.rst │ │ └── autodocs.rst │ ├── program-output │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── linkcode │ │ ├── index.rst │ │ ├── tox.ini │ │ └── conf.py │ ├── next-prev │ │ ├── index.rst │ │ ├── conf.py │ │ └── tox.ini │ ├── sphinx-needs │ │ ├── _images │ │ │ └── daniel.png │ │ ├── tox.ini │ │ └── conf.py │ ├── confluence-code-block-theme │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── inheritance-diagram │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── aafig │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── ipython │ │ ├── conf.py │ │ ├── README.md │ │ └── tox.ini │ ├── mentions │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── math │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── sphinx-click │ │ ├── index.rst │ │ ├── conf.py │ │ ├── tox.ini │ │ └── hello_world.py │ ├── header-links │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── raw-html │ │ ├── second.md │ │ ├── conf.py │ │ ├── index.rst │ │ └── tox.ini │ ├── sphinx-data-viewer │ │ ├── README.md │ │ ├── conf.py │ │ ├── tox.ini │ │ └── index.rst │ ├── latex │ │ ├── tox.ini │ │ ├── conf.py │ │ └── index.rst │ ├── sphinx-prompt │ │ ├── README.md │ │ ├── tox.ini │ │ ├── index.rst │ │ └── conf.py │ ├── jinja │ │ ├── tox.ini │ │ ├── index.rst │ │ └── conf.py │ ├── blockdiag │ │ ├── conf.py │ │ └── tox.ini │ └── config.py └── unit-tests │ ├── datasets │ ├── publish-list │ │ ├── publish-list-empty │ │ ├── page-a.rst │ │ ├── publish-list-default │ │ ├── folder │ │ │ └── page-b.rst │ │ └── index.rst │ ├── common │ │ └── index.rst │ ├── minimal │ │ └── index.rst │ ├── orphan │ │ ├── pagea.rst │ │ ├── pageb.rst │ │ └── index.rst │ ├── prevnext │ │ ├── final.rst │ │ ├── middle.rst │ │ └── index.rst │ ├── toctree-caption │ │ ├── doc.rst │ │ └── index.rst │ ├── toctree-hidden │ │ ├── doc-a.rst │ │ ├── doc-b.rst │ │ ├── doc-c.rst │ │ └── index.rst │ ├── toctree-maxdepth │ │ ├── child.rst │ │ ├── doc.rst │ │ └── index.rst │ ├── toctree-numbered │ │ ├── child.rst │ │ ├── index.rst │ │ └── doc.rst │ ├── postfix_formatting │ │ ├── readme.rst │ │ ├── submodule │ │ │ └── readme.rst │ │ └── index.rst │ ├── singlepage-docref │ │ ├── pagea.rst │ │ ├── pageb.rst │ │ └── index.rst │ ├── toctree-default │ │ ├── doc-a1.rst │ │ ├── doc-b1.rst │ │ ├── doc-a2.rst │ │ ├── index.rst │ │ ├── doc-a.rst │ │ └── doc-b.rst │ ├── toctree-numbered-depth │ │ ├── child.rst │ │ ├── doc.rst │ │ └── index.rst │ ├── sdoc │ │ ├── py-modindex │ │ │ └── index.rst │ │ ├── search-placeholder │ │ │ ├── search.rst │ │ │ └── index.rst │ │ ├── genindex-placeholder │ │ │ ├── genindex.rst │ │ │ └── index.rst │ │ └── genindex │ │ │ └── index.rst │ ├── assets │ │ ├── doc-a.rst │ │ ├── doc-b.rst │ │ └── index.rst │ ├── publish-set │ │ ├── doc-a.rst │ │ ├── doc-c.rst │ │ └── sub │ │ │ └── doc-b.rst │ ├── unknown │ │ └── index.rst │ ├── domains │ │ ├── domains-c.rst │ │ ├── domains-rst.rst │ │ ├── domains-py.rst │ │ ├── domains-cpp.rst │ │ └── domains-js.rst │ ├── confluence-doc │ │ ├── third.rst │ │ ├── second.rst │ │ └── index.rst │ ├── emoticon │ │ └── index.rst │ ├── newline │ │ └── index.rst │ ├── strikethrough │ │ └── index.rst │ ├── titlefix │ │ ├── titlefix-child.rst │ │ └── titlefix.rst │ ├── header-footer │ │ └── index.rst │ ├── local-toc │ │ ├── index.rst │ │ ├── rst-v1.rst │ │ └── rst-v2.rst │ ├── hierarchy │ │ ├── index.rst │ │ ├── toctree-doc2aaa.rst │ │ ├── toctree-doc1.rst │ │ ├── toctree-doc3.rst │ │ ├── toctree-doc2b.rst │ │ ├── toctree-doc2.rst │ │ ├── toctree-doc2aa.rst │ │ ├── toctree-doc2a.rst │ │ └── toctree-doc2c.rst │ ├── metadata-legacy │ │ └── index.rst │ ├── collapse │ │ └── index.rst │ ├── rst │ │ ├── contents-multipage │ │ │ ├── index.rst │ │ │ ├── page-a.rst │ │ │ └── page-b.rst │ │ ├── math │ │ │ └── index.rst │ │ ├── attribution │ │ │ └── index.rst │ │ ├── epigraph │ │ │ └── index.rst │ │ ├── transitions │ │ │ └── index.rst │ │ ├── highlights │ │ │ └── index.rst │ │ ├── pull-quote │ │ │ └── index.rst │ │ ├── raw-storage │ │ │ └── index.rst │ │ ├── parsed-literal │ │ │ └── index.rst │ │ ├── targets │ │ │ └── index.rst │ │ ├── doctest-block │ │ │ └── index.rst │ │ ├── citations │ │ │ └── index.rst │ │ ├── contents │ │ │ ├── contents.rst │ │ │ ├── contents-caption.rst │ │ │ ├── contents-local.rst │ │ │ ├── contents-backlinks-none.rst │ │ │ ├── contents-backlinks-top.rst │ │ │ └── contents-backlinks-entry.rst │ │ ├── footnotes │ │ │ └── index.rst │ │ ├── figure-caption │ │ │ └── index.rst │ │ ├── block-quotes │ │ │ └── index.rst │ │ ├── literal │ │ │ ├── literal-blocks.rst │ │ │ └── literal-includes.rst │ │ ├── markup │ │ │ └── index.rst │ │ ├── references │ │ │ └── references-ref.rst │ │ ├── definition-lists │ │ │ └── index.rst │ │ ├── option-lists │ │ │ └── index.rst │ │ ├── headings │ │ │ └── index.rst │ │ ├── bibliographic │ │ │ └── index.rst │ │ ├── admonitions │ │ │ └── index.rst │ │ ├── list-table │ │ │ └── index.rst │ │ ├── figure │ │ │ └── index.rst │ │ ├── tables │ │ │ └── index.rst │ │ ├── image │ │ │ └── index.rst │ │ └── lists │ │ │ └── index.rst │ ├── alignment │ │ └── index.rst │ ├── html │ │ └── index.rst │ ├── jira │ │ ├── valid-role │ │ │ └── index.rst │ │ ├── missing-server-name │ │ │ └── index.rst │ │ ├── bad-sid │ │ │ └── index.rst │ │ ├── missing-server-entry │ │ │ └── index.rst │ │ ├── missing-server-id │ │ │ └── index.rst │ │ ├── conflicting-server-id │ │ │ └── index.rst │ │ ├── conflicting-server-name │ │ │ └── index.rst │ │ ├── valid-substitution │ │ │ └── index.rst │ │ └── valid │ │ │ └── index.rst │ ├── download │ │ ├── files │ │ │ └── example.pdf │ │ └── index.rst │ ├── code-block-theme │ │ └── index.rst │ ├── confluence-doc-invalid-doc │ │ └── index.rst │ ├── references │ │ ├── md-v1-first.md │ │ ├── md-v2-first.md │ │ ├── index.rst │ │ ├── rst-v1-second.rst │ │ ├── rst-v2-second.rst │ │ ├── rst-v1-first.rst │ │ ├── rst-v2-first.rst │ │ ├── md-v1-second.md │ │ └── md-v2-second.md │ ├── metadata │ │ └── index.rst │ ├── todo │ │ └── index.rst │ ├── svg │ │ ├── svg-doctype.svg │ │ ├── svg-none.svg │ │ ├── svg-viewbox.svg │ │ ├── svg.svg │ │ └── index.rst │ ├── confluence-doc-invalid-width │ │ └── index.rst │ ├── confluence-doc-invalid-layout │ │ └── index.rst │ ├── manpage │ │ └── index.rst │ ├── confluence-link-invalid-width │ │ └── index.rst │ ├── confluence-link-invalid-layout │ │ └── index.rst │ ├── use-cases │ │ ├── nested-ref-external.rst │ │ └── nested-ref-contents.rst │ ├── expand │ │ └── index.rst │ ├── deprecated │ │ └── index.rst │ ├── panel-missing-title-with-title-color │ │ └── index.rst │ ├── versionadded │ │ └── index.rst │ ├── glossary │ │ ├── glossary-ref.rst │ │ └── glossary.rst │ ├── panel-missing-title-with-title-bg-color │ │ └── index.rst │ ├── versionchanged │ │ └── index.rst │ ├── code-block-params │ │ └── code-block-collapse.rst │ ├── confluence-toc │ │ └── index.rst │ ├── code-block │ │ ├── code-block.rst │ │ ├── code-block-caption.rst │ │ ├── code-block-linenothreshold.rst │ │ └── code-block-highlight.rst │ ├── code-block-fallback │ │ └── index.rst │ ├── status │ │ └── index.rst │ ├── mentions │ │ └── index.rst │ ├── confluence-link │ │ └── index.rst │ ├── excerpt │ │ ├── index.rst │ │ └── second.rst │ ├── production-list │ │ └── index.rst │ ├── table-width │ │ └── index.rst │ └── panel │ │ └── index.rst │ ├── templates │ ├── sample-footer.tpl │ ├── sample-header.tpl │ ├── sample-footer-with-jinja.tpl │ └── sample-header-with-jinja.tpl │ ├── assets │ ├── .gitattributes │ ├── dummy │ ├── test.png │ ├── example.pdf │ ├── image01.png │ ├── image02.png │ ├── image03.png │ ├── sample-valid-publish-list │ ├── example.c │ ├── example.cpp │ ├── sample-invalid-publish-list │ ├── example.java │ ├── example.py │ ├── httpd │ │ └── README.md │ └── example.html │ ├── test_extension.py │ ├── test_util_detect_cloud.py │ ├── test_report_builder.py │ ├── test_rst_transitions.py │ ├── test_rst_raw.py │ ├── test_sphinx_productionlist.py │ ├── test_rst_parsed_literal.py │ └── test_confluence_strikethough.py ├── doc ├── requirements.txt ├── _templates │ └── ethical-ads.html ├── changelog.rst ├── _static │ └── logo.png ├── _themes │ └── sphinx13b │ │ └── theme.conf ├── open ├── advanced.rst ├── guides.rst ├── Makefile ├── build ├── .fresh-start ├── guide-highlight-default.rst ├── .spelling ├── make.bat └── contents.rst ├── sphinxcontrib └── confluencebuilder │ ├── cmd │ └── __init__.py │ ├── std │ ├── __init__.py │ └── sphinx.py │ ├── storage │ └── templates │ │ └── __init__.py │ ├── locale │ ├── ar │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── bg │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── bn │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ca │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── cs │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── cy │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── da │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── de │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── el │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── eo │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── es │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── et │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── eu │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── fi │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── fr │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── he │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── hi │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── hr │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── hu │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── id │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── it │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ja │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ko │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── lt │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── lv │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── mk │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── nb │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ne │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── nl │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── pl │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ro │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ru │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── si │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── sk │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── sl │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── sq │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── sr │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── sv │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── ta │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── te │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── tr │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── uk │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── vi │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── hi_IN │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── pt_BR │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── pt_PT │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── sr_CS │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── uk_UA │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ ├── zh_TW │ │ └── LC_MESSAGES │ │ │ └── sphinxcontrib.confluencebuilder.mo │ └── __init__.py │ ├── compat.py │ ├── reportbuilder.py │ └── writer.py ├── requirements_types.txt ├── .pylintrc ├── requirements_dev.txt ├── sandbox ├── .gitignore └── README.rst ├── validation ├── MANIFEST.in ├── lint ├── babel.cfg ├── check ├── .coveragerc ├── .readthedocs.yaml ├── .gitignore ├── crowdin.yml └── mypy.ini /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /doc/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx>=6.0 2 | -------------------------------------------------------------------------------- /tests/validation-sets/base/config.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/validation-sets/extensions/config.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/validation-sets/markdown/config.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/cmd/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/std/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-mdn/.gitignore: -------------------------------------------------------------------------------- 1 | content/ 2 | -------------------------------------------------------------------------------- /tests/sample-sets/kroki/assets/diagram.puml: -------------------------------------------------------------------------------- 1 | foo -> bar 2 | -------------------------------------------------------------------------------- /tests/sample-sets/plantuml/.gitignore: -------------------------------------------------------------------------------- 1 | plantuml.jar 2 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-list/publish-list-empty: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements_types.txt: -------------------------------------------------------------------------------- 1 | types-docutils 2 | types-requests 3 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/storage/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-sphinx/.gitignore: -------------------------------------------------------------------------------- 1 | sphinx/ 2 | -------------------------------------------------------------------------------- /tests/sample-sets/numfig/assets/.gitattributes: -------------------------------------------------------------------------------- 1 | *.png binary 2 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/common/index.rst: -------------------------------------------------------------------------------- 1 | dummy 2 | ===== 3 | -------------------------------------------------------------------------------- /tests/unit-tests/templates/sample-footer.tpl: -------------------------------------------------------------------------------- 1 | footer content 2 | -------------------------------------------------------------------------------- /tests/unit-tests/templates/sample-header.tpl: -------------------------------------------------------------------------------- 1 | header content 2 | -------------------------------------------------------------------------------- /tests/validation-sets/requirements.txt: -------------------------------------------------------------------------------- 1 | breathe 2 | myst_parser 3 | -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- 1 | [pylint] 2 | disable = 3 | C, 4 | R, 5 | W, 6 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pdf binary 2 | *.png binary 3 | -------------------------------------------------------------------------------- /doc/_templates/ethical-ads.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-toolbox/assets/hello_world.txt: -------------------------------------------------------------------------------- 1 | this is a test 2 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/minimal/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ==== 3 | 4 | test 5 | -------------------------------------------------------------------------------- /doc/changelog.rst: -------------------------------------------------------------------------------- 1 | Changelog 2 | --------- 3 | 4 | .. include:: ../CHANGES.rst 5 | -------------------------------------------------------------------------------- /tests/sample-sets/cleanup/index.rst: -------------------------------------------------------------------------------- 1 | cleanup 2 | ======= 3 | 4 | Dummy page. 5 | -------------------------------------------------------------------------------- /tests/sample-sets/i8n/index.rst: -------------------------------------------------------------------------------- 1 | language 2 | ======== 3 | 4 | language test 5 | -------------------------------------------------------------------------------- /tests/sample-sets/image/assets/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pdf binary 2 | *.png binary 3 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/orphan/pagea.rst: -------------------------------------------------------------------------------- 1 | pagea 2 | ===== 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/prevnext/final.rst: -------------------------------------------------------------------------------- 1 | final 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-caption/doc.rst: -------------------------------------------------------------------------------- 1 | doc 2 | --- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/prevnext/middle.rst: -------------------------------------------------------------------------------- 1 | middle 2 | ------ 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-list/page-a.rst: -------------------------------------------------------------------------------- 1 | page-a 2 | ------ 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-list/publish-list-default: -------------------------------------------------------------------------------- 1 | page-a 2 | folder/page-b 3 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-hidden/doc-a.rst: -------------------------------------------------------------------------------- 1 | doc-a 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-hidden/doc-b.rst: -------------------------------------------------------------------------------- 1 | doc-b 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-hidden/doc-c.rst: -------------------------------------------------------------------------------- 1 | doc-c 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/assets/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pdf binary 2 | *.png binary 3 | -------------------------------------------------------------------------------- /tests/sample-sets/mermaid/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | package.json 3 | package-lock.json 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-maxdepth/child.rst: -------------------------------------------------------------------------------- 1 | child 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-numbered/child.rst: -------------------------------------------------------------------------------- 1 | child 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/templates/sample-footer-with-jinja.tpl: -------------------------------------------------------------------------------- 1 | footer content {{ variable }} 2 | -------------------------------------------------------------------------------- /tests/unit-tests/templates/sample-header-with-jinja.tpl: -------------------------------------------------------------------------------- 1 | header content {{ variable }} 2 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinx.ext.ifconfig', 3 | ] 4 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/dummy: -------------------------------------------------------------------------------- 1 | dummy file to represent a valid file for file existence checks 2 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/orphan/pageb.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | pageb 4 | ===== 5 | 6 | content 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/postfix_formatting/readme.rst: -------------------------------------------------------------------------------- 1 | readme 2 | ====== 3 | 4 | Top level readme -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-list/folder/page-b.rst: -------------------------------------------------------------------------------- 1 | page-b 2 | ------ 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/singlepage-docref/pagea.rst: -------------------------------------------------------------------------------- 1 | pagea2 2 | ====== 3 | 4 | :doc:`pageb` 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/singlepage-docref/pageb.rst: -------------------------------------------------------------------------------- 1 | pageb2 2 | ====== 3 | 4 | :doc:`index` 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-default/doc-a1.rst: -------------------------------------------------------------------------------- 1 | doc-a1 2 | ------ 3 | 4 | content a1 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-default/doc-b1.rst: -------------------------------------------------------------------------------- 1 | doc-b1 2 | ------ 3 | 4 | content b1 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-numbered-depth/child.rst: -------------------------------------------------------------------------------- 1 | child 2 | ----- 3 | 4 | content 5 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/assets/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pdf binary 2 | *.png binary 3 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/assets/example.py: -------------------------------------------------------------------------------- 1 | # hello world 2 | 3 | print('hello world') 4 | -------------------------------------------------------------------------------- /tests/sample-sets/image/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | -------------------------------------------------------------------------------- /tests/sample-sets/openapi/index.rst: -------------------------------------------------------------------------------- 1 | openapi 2 | ======= 3 | 4 | .. openapi:: specs/openapi.yml 5 | -------------------------------------------------------------------------------- /tests/sample-sets/tables/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/orphan/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ==== 3 | 4 | .. toctree:: 5 | 6 | pagea 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/sdoc/py-modindex/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ==== 3 | 4 | .. py:module:: Timer 5 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinx.ext.ifconfig', 3 | ] 4 | -------------------------------------------------------------------------------- /doc/_static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/doc/_static/logo.png -------------------------------------------------------------------------------- /tests/sample-sets/orphan/index.rst: -------------------------------------------------------------------------------- 1 | orphan test 2 | =========== 3 | 4 | .. toctree:: 5 | 6 | pagea 7 | -------------------------------------------------------------------------------- /tests/sample-sets/strikethrough/_static/test.css: -------------------------------------------------------------------------------- 1 | .strike { 2 | text-decoration: line-through; 3 | } 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/assets/doc-a.rst: -------------------------------------------------------------------------------- 1 | doc-a 2 | ----- 3 | 4 | .. image:: ../../assets/image03.png 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/assets/doc-b.rst: -------------------------------------------------------------------------------- 1 | doc-b 2 | ----- 3 | 4 | .. image:: ../../assets/image03.png 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/postfix_formatting/submodule/readme.rst: -------------------------------------------------------------------------------- 1 | readme 2 | ====== 3 | 4 | Inner readme -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-set/doc-a.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | doc-a 4 | ===== 5 | 6 | content a 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-set/doc-c.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | doc-c 4 | ===== 5 | 6 | content c 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-set/sub/doc-b.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | doc-b 4 | ===== 5 | 6 | content b 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-maxdepth/doc.rst: -------------------------------------------------------------------------------- 1 | doc 2 | --- 3 | 4 | .. toctree:: 5 | 6 | child 7 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-excerpt/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-status/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-numbered-depth/doc.rst: -------------------------------------------------------------------------------- 1 | doc 2 | --- 3 | 4 | .. toctree:: 5 | 6 | child 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/unknown/index.rst: -------------------------------------------------------------------------------- 1 | unknown node 2 | ------------ 3 | 4 | .. confluence_test_dir:: 5 | -------------------------------------------------------------------------------- /tests/sample-sets/single-confluence-refs/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/domains/domains-c.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. c:function:: void* my_func(void *context) 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/domains/domains-rst.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. rst:directive:: directive 4 | 5 | desc 6 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/sdoc/search-placeholder/search.rst: -------------------------------------------------------------------------------- 1 | custom search 2 | ------------- 3 | 4 | placeholder 5 | -------------------------------------------------------------------------------- /doc/_themes/sphinx13b/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic 3 | stylesheet = sphinx13b.css 4 | pygments_style = trac 5 | -------------------------------------------------------------------------------- /requirements_dev.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4 2 | # temporarily disable myst_parser until sphinx v9.x support 3 | #myst_parser 4 | -------------------------------------------------------------------------------- /sandbox/.gitignore: -------------------------------------------------------------------------------- 1 | # ignore all in sandbox 2 | * 3 | 4 | # with the exceptions below 5 | !.gitignore 6 | !README.rst 7 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-tabs/README.md: -------------------------------------------------------------------------------- 1 | # sphinx-tabs 2 | 3 | The following checks the use of sphinx-tabs directives. 4 | -------------------------------------------------------------------------------- /tests/sample-sets/strikethrough/second.md: -------------------------------------------------------------------------------- 1 | strikethrough2 2 | ============== 3 | 4 | This is an {strike}`example`. 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-doc/third.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | third page 4 | ========== 5 | 6 | Another page. 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/sdoc/genindex-placeholder/genindex.rst: -------------------------------------------------------------------------------- 1 | custom index 2 | ------------ 3 | 4 | placeholder 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/sdoc/search-placeholder/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ==== 3 | 4 | .. toctree:: 5 | 6 | search 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-doc/second.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | second page 4 | =========== 5 | 6 | Another page. 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/domains/domains-py.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. py:function:: Timer.repeat(repeat=3, number=1000000) 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/emoticon/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | emoticon 4 | -------- 5 | 6 | :confluence_emoticon:`tick` 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/prevnext/index.rst: -------------------------------------------------------------------------------- 1 | prevnext 2 | ======== 3 | 4 | .. toctree:: 5 | 6 | middle 7 | final 8 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/assets/example.py.orig: -------------------------------------------------------------------------------- 1 | 3c3 2 | < print('hello world') 3 | --- 4 | > print('hello world legacy') 5 | -------------------------------------------------------------------------------- /tests/sample-sets/drawio/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.drawio', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/kroki/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.kroki', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/markdown-myst/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'myst_parser', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-panels/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinx_panels', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/svg/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | # confluence_editor = 'v2' 6 | -------------------------------------------------------------------------------- /tests/sample-sets/svgbob/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.svgbob', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/unit-tests/assets/test.png -------------------------------------------------------------------------------- /tests/unit-tests/datasets/assets/index.rst: -------------------------------------------------------------------------------- 1 | shared asset 2 | ============ 3 | 4 | .. toctree:: 5 | 6 | doc-a 7 | doc-b 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/newline/index.rst: -------------------------------------------------------------------------------- 1 | newline 2 | ======= 3 | 4 | line1 5 | 6 | .. confluence_newline:: 7 | 8 | line2 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/publish-list/index.rst: -------------------------------------------------------------------------------- 1 | index 2 | ===== 3 | 4 | .. toctree:: 5 | 6 | page-a 7 | folder/page-b 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/singlepage-docref/index.rst: -------------------------------------------------------------------------------- 1 | index2 2 | ====== 3 | 4 | .. toctree:: 5 | 6 | pagea 7 | pageb 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-default/doc-a2.rst: -------------------------------------------------------------------------------- 1 | doc-a2 2 | ------ 3 | 4 | content a2 5 | 6 | :doc:`custom doc ` 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-default/index.rst: -------------------------------------------------------------------------------- 1 | toctree 2 | ======= 3 | 4 | .. toctree:: 5 | 6 | doc-a 7 | doc-b 8 | -------------------------------------------------------------------------------- /tests/sample-sets/link-check/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | confluence_editor = 'v2' 6 | -------------------------------------------------------------------------------- /tests/sample-sets/openapi/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.openapi', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-diagrams/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinx_diagrams', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-video/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.video', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinxnotes-strike/index.rst: -------------------------------------------------------------------------------- 1 | sphinxnotes-strike 2 | ================== 3 | 4 | This is a :strike:`strike` example. 5 | -------------------------------------------------------------------------------- /tests/sample-sets/youtube/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.youtube', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/unit-tests/assets/example.pdf -------------------------------------------------------------------------------- /tests/unit-tests/assets/image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/unit-tests/assets/image01.png -------------------------------------------------------------------------------- /tests/unit-tests/assets/image02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/unit-tests/assets/image02.png -------------------------------------------------------------------------------- /tests/unit-tests/assets/image03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/unit-tests/assets/image03.png -------------------------------------------------------------------------------- /tests/unit-tests/datasets/strikethrough/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | strikethrough 4 | ------------- 5 | 6 | :confluence_strike:`test` 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/titlefix/titlefix-child.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | titlefix-child 4 | ============== 5 | 6 | :doc:`titlefix` 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/titlefix/titlefix.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | titlefix 4 | ======== 5 | 6 | .. toctree:: 7 | titlefix-child 8 | -------------------------------------------------------------------------------- /tests/validation-sets/base/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/validation-sets/base/left.png -------------------------------------------------------------------------------- /tests/sample-sets/confluence-card/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | confluence_editor = 'v2' 6 | -------------------------------------------------------------------------------- /tests/sample-sets/httpdomain/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.httpdomain', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-inline-tabs/README.md: -------------------------------------------------------------------------------- 1 | # sphinx-inline-tabs 2 | 3 | The following checks the use of sphinx-inline-tabs directives. 4 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinxnotes-strike/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxnotes.strike', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/sample-valid-publish-list: -------------------------------------------------------------------------------- 1 | # example allow/deny list with valid document names 2 | doc-a 3 | sub/doc-b 4 | doc-c 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/domains/domains-cpp.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. cpp:class:: template<> \ 4 | std::array 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/header-footer/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | header footer sample 4 | -------------------- 5 | 6 | body content 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/local-toc/index.rst: -------------------------------------------------------------------------------- 1 | Index 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | rst-v1 8 | rst-v2 9 | -------------------------------------------------------------------------------- /tests/validation-sets/base/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/validation-sets/base/right.png -------------------------------------------------------------------------------- /tests/validation-sets/markdown/code.md: -------------------------------------------------------------------------------- 1 | # Markdown Code 2 | 3 | Code block example: 4 | 5 | ```python 6 | print('this is python') 7 | ``` 8 | -------------------------------------------------------------------------------- /tests/sample-sets/autodocs/index.rst: -------------------------------------------------------------------------------- 1 | Autodocs 2 | ======== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | autodocs 8 | autosummary 9 | -------------------------------------------------------------------------------- /tests/sample-sets/numfig/index.rst: -------------------------------------------------------------------------------- 1 | home 2 | ==== 3 | 4 | .. toctree:: 5 | :caption: Table of Contents 6 | :numbered: 7 | 8 | data 9 | -------------------------------------------------------------------------------- /tests/sample-sets/program-output/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.programoutput', 4 | ] 5 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/example.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | printf("this is an example"); 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/example.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() { 4 | std::cout << "this is an example"; 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/sample-invalid-publish-list: -------------------------------------------------------------------------------- 1 | # example allow/deny list with an incorrect document name 2 | doc-a 3 | sub/doc-b 4 | doc-c2 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/postfix_formatting/index.rst: -------------------------------------------------------------------------------- 1 | Index page 2 | ========== 3 | 4 | .. toctree:: 5 | 6 | readme 7 | submodule/readme -------------------------------------------------------------------------------- /tests/sample-sets/image/assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/image/assets/github.png -------------------------------------------------------------------------------- /tests/sample-sets/image/assets/sphinx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/image/assets/sphinx.png -------------------------------------------------------------------------------- /tests/sample-sets/numfig/assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/numfig/assets/github.png -------------------------------------------------------------------------------- /tests/sample-sets/numfig/assets/sphinx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/numfig/assets/sphinx.png -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ---- 3 | 4 | .. toctree:: 5 | 6 | toctree-doc1 7 | toctree-doc2 8 | toctree-doc3 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/metadata-legacy/index.rst: -------------------------------------------------------------------------------- 1 | confluence metadata 2 | ------------------- 3 | 4 | .. confluence_metadata:: 5 | :editor: v2 6 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-default/doc-a.rst: -------------------------------------------------------------------------------- 1 | doc-a 2 | ----- 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | doc-a1 8 | doc-a2 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-numbered/index.rst: -------------------------------------------------------------------------------- 1 | toctree numbered 2 | ================ 3 | 4 | .. toctree:: 5 | :numbered: 6 | 7 | doc 8 | -------------------------------------------------------------------------------- /validation: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # 3 | # This is a helper script used to easily trigger validation publishing. 4 | 5 | exec tox -e validation $@ 6 | -------------------------------------------------------------------------------- /tests/sample-sets/image/assets/confluence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/image/assets/confluence.png -------------------------------------------------------------------------------- /tests/sample-sets/linkcode/index.rst: -------------------------------------------------------------------------------- 1 | linkcode 2 | ======== 3 | 4 | .. module:: example 5 | 6 | .. class:: ExampleModule 7 | 8 | This is an example. 9 | -------------------------------------------------------------------------------- /tests/sample-sets/next-prev/index.rst: -------------------------------------------------------------------------------- 1 | main 2 | ==== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | page-1 8 | page-2 9 | page-3 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/collapse/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | collapse 4 | -------- 5 | 6 | .. container:: collapse 7 | 8 | collapsed paragraph 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc2aaa.rst: -------------------------------------------------------------------------------- 1 | treedoc2aaa 2 | ----------- 3 | 4 | More page content that should be squashed into a parent page. 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents-multipage/index.rst: -------------------------------------------------------------------------------- 1 | index 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | page-a 8 | page-b 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-default/doc-b.rst: -------------------------------------------------------------------------------- 1 | doc-b 2 | ----- 3 | 4 | subheader 5 | ~~~~~~~~~ 6 | 7 | .. toctree:: 8 | 9 | doc-b1 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-maxdepth/index.rst: -------------------------------------------------------------------------------- 1 | toctree maxdepth 2 | ================ 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | doc 8 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include sphinxcontrib/confluencebuilder/locale *.pot *.po *.mo 2 | recursive-include sphinxcontrib/confluencebuilder/storage/templates * 3 | -------------------------------------------------------------------------------- /tests/sample-sets/next-prev/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | confluence_prev_next_buttons_location = 'both' 6 | -------------------------------------------------------------------------------- /tests/sample-sets/numfig/assets/confluence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/numfig/assets/confluence.png -------------------------------------------------------------------------------- /tests/sample-sets/numfig/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | numfig = True 6 | confluence_add_secnumbers = True 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/alignment/index.rst: -------------------------------------------------------------------------------- 1 | default alignment 2 | ----------------- 3 | 4 | .. figure:: https://example.com/image.png 5 | 6 | caption 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc1.rst: -------------------------------------------------------------------------------- 1 | treedoc1 2 | -------- 3 | 4 | .. _example-doc1-label: 5 | 6 | Go to :ref:`doc2c`. 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc3.rst: -------------------------------------------------------------------------------- 1 | treedoc3 2 | -------- 3 | 4 | .. _example-doc3-label: 5 | 6 | Go to :ref:`doc2a`. 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/html/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | html macro 4 | ---------- 5 | 6 | .. confluence_html:: 7 | 8 | strong text 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/valid-role/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. jira role in a paragraph 7 | 8 | before :jira:`TEST-456` after 9 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/assets/example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/validation-sets/sphinx/assets/example.pdf -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-needs/_images/daniel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/sphinx-needs/_images/daniel.png -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-caption/index.rst: -------------------------------------------------------------------------------- 1 | toctree caption 2 | =============== 3 | 4 | .. toctree:: 5 | :caption: toctree caption 6 | 7 | doc 8 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-code-block-theme/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | confluence_code_block_theme = 'Midnight' 6 | -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-mdn/fetch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | git clone https://github.com/mdn/content.git 4 | cp conf.py.in content/files/en-us/mdn/conf.py 5 | -------------------------------------------------------------------------------- /tests/sample-sets/single-confluence-refs/index.rst: -------------------------------------------------------------------------------- 1 | Index 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | page-a 8 | page-b 9 | page-c 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/download/files/example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/unit-tests/datasets/download/files/example.pdf -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-numbered-depth/index.rst: -------------------------------------------------------------------------------- 1 | toctree numbered depth 2 | ====================== 3 | 4 | .. toctree:: 5 | :numbered: 1 6 | 7 | doc 8 | -------------------------------------------------------------------------------- /tests/sample-sets/markdown-myst/index.md: -------------------------------------------------------------------------------- 1 | # Test 2 | 3 | ## Nested 4 | 5 | PATH to be explained \ 6 | PYTHONPATH to be explained \ 7 | GRUB to be explained 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block-theme/index.rst: -------------------------------------------------------------------------------- 1 | .. code-block:: python 2 | :class: confluence-theme-eclipse 3 | 4 | import myexample 5 | myexample.invoke() 6 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-doc-invalid-doc/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence doc 4 | ============== 5 | 6 | .. confluence_doc:: missing 7 | :card: block 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/md-v1-first.md: -------------------------------------------------------------------------------- 1 | :::{confluence_metadata} 2 | :editor: v1 3 | ::: 4 | 5 | # Markdown v1 First 6 | 7 | ## Markdown v1 First sub-heading 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/md-v2-first.md: -------------------------------------------------------------------------------- 1 | :::{confluence_metadata} 2 | :editor: v2 3 | ::: 4 | 5 | # Markdown v2 First 6 | 7 | ## Markdown v2 First sub-heading 8 | -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-mdn/conf.py.in: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'myst_parser', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | source_suffix = [ 7 | '.md', 8 | ] 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc2b.rst: -------------------------------------------------------------------------------- 1 | treedoc2b 2 | --------- 3 | 4 | | Jump to either :ref:`doc1` or 5 | :ref:`doc2`. 6 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/metadata/index.rst: -------------------------------------------------------------------------------- 1 | confluence metadata 2 | ------------------- 3 | 4 | .. confluence_metadata:: 5 | :full-width: true 6 | :labels: tag-a tag-c 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/todo/index.rst: -------------------------------------------------------------------------------- 1 | .. https://www.sphinx-doc.org/en/master/usage/extensions/todo.html 2 | 3 | todo 4 | ---- 5 | 6 | .. todo:: 7 | 8 | example message 9 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/validation-sets/restructuredtext/assets/github.png -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/assets/sphinx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/validation-sets/restructuredtext/assets/sphinx.png -------------------------------------------------------------------------------- /lint: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # 3 | # This is a helper script used to only invoke a subset of test environments 4 | # associated to linting. 5 | 6 | exec tox -e ruff,pylint,doc-spelling 7 | -------------------------------------------------------------------------------- /tests/sample-sets/svg/svg-doctype.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/example.java: -------------------------------------------------------------------------------- 1 | public class MyExample { 2 | public static void main(String[] args) { 3 | System.out.println("this is an example"); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/example.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | 4 | def main(): 5 | print('this is an example') 6 | 7 | 8 | if __name__ == "__main__": 9 | sys.exit(main()) 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-hidden/index.rst: -------------------------------------------------------------------------------- 1 | toctree hidden 2 | ============== 3 | 4 | .. toctree:: 5 | :hidden: 6 | 7 | doc-a 8 | doc-b 9 | doc-c 10 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/assets/confluence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/validation-sets/restructuredtext/assets/confluence.png -------------------------------------------------------------------------------- /doc/open: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if command -v xdg-open 2>&1 >/dev/null; then 4 | exec xdg-open _build/html/index.html 5 | else 6 | exec start _build/html/index.html 7 | fi 8 | -------------------------------------------------------------------------------- /tests/sample-sets/orphan/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | # confluence_publish_orphan = False 6 | # confluence_publish_orphan_container = 0 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/svg/svg-doctype.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /doc/advanced.rst: -------------------------------------------------------------------------------- 1 | Advanced 2 | ======== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | advanced-extensions 8 | advanced-publish-permissions 9 | advanced-wiping-space 10 | -------------------------------------------------------------------------------- /tests/sample-sets/autodocs/src/func.py: -------------------------------------------------------------------------------- 1 | 2 | def my_custom_function(obj): 3 | """ 4 | A function's docstring with a parameter. 5 | 6 | :param obj: the function argument 7 | """ 8 | -------------------------------------------------------------------------------- /tests/sample-sets/inheritance-diagram/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinx.ext.inheritance_diagram', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | graphviz_output_format = 'svg' 7 | -------------------------------------------------------------------------------- /tests/sample-sets/inheritance-diagram/index.rst: -------------------------------------------------------------------------------- 1 | inheritance-diagram 2 | =================== 3 | 4 | .. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram 5 | :parts: 1 6 | -------------------------------------------------------------------------------- /tests/sample-sets/svg/svg-none.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-doc-invalid-width/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence doc 4 | ============== 5 | 6 | .. confluence_doc:: second 7 | :card: block 8 | :width: 80 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/math/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#math 2 | 3 | math 4 | ---- 5 | 6 | .. math:: e^{i\pi} + 1 = 0 7 | :label: euler 8 | -------------------------------------------------------------------------------- /tests/sample-sets/aafig/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.aafig', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | aafig_format = { 7 | 'confluence_storage': 'svg', 8 | } 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc2.rst: -------------------------------------------------------------------------------- 1 | treedoc2 2 | -------- 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | 7 | toctree-doc2a 8 | toctree-doc2b 9 | toctree-doc2c 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc2aa.rst: -------------------------------------------------------------------------------- 1 | treedoc2aa 2 | ---------- 3 | 4 | Page content that should be squashed into a parent page. 5 | 6 | .. toctree:: 7 | 8 | toctree-doc2aaa 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/sdoc/genindex/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ==== 3 | 4 | .. add a glossary entry to have an entry in the index 5 | 6 | .. glossary:: 7 | 8 | test 9 | entry 10 | -------------------------------------------------------------------------------- /tests/validation-sets/extensions/src/func.py: -------------------------------------------------------------------------------- 1 | 2 | def my_custom_function(obj): 3 | """ 4 | A function's docstring with a parameter. 5 | 6 | :param obj: the function argument 7 | """ 8 | -------------------------------------------------------------------------------- /tests/sample-sets/ipython/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'IPython.sphinxext.ipython_console_highlighting', 3 | 'IPython.sphinxext.ipython_directive', 4 | 'sphinxcontrib.confluencebuilder', 5 | ] 6 | -------------------------------------------------------------------------------- /tests/sample-sets/strikethrough/index.rst: -------------------------------------------------------------------------------- 1 | strikethrough 2 | ============= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | second 8 | 9 | ---- 10 | 11 | This is an :strike:`example`. 12 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-doc-invalid-layout/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence doc 4 | ============== 5 | 6 | .. confluence_doc:: second 7 | :card: block 8 | :layout: align-end 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/manpage/index.rst: -------------------------------------------------------------------------------- 1 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html?highlight=manpage#role-manpage 2 | 3 | manpage 4 | ------- 5 | 6 | :manpage:`ls(1)` 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/svg/svg-none.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/sample-sets/mentions/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | confluence_mentions = { 6 | 'jdknight': '557058:2d0a38b2-b4d8-45fa-978c-f6d556f24205', 7 | } 8 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-video/spbtv_sample_bipbop_av1_960x540_25fps.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/tests/sample-sets/sphinx-video/spbtv_sample_bipbop_av1_960x540_25fps.mp4 -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-link-invalid-width/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence link 4 | =============== 5 | 6 | .. confluence_link:: https://example.com 7 | :card: block 8 | :width: 80 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/attribution/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#block-quotes 2 | 3 | attribution 4 | ----------- 5 | 6 | quote 7 | 8 | -- source 9 | -------------------------------------------------------------------------------- /tests/sample-sets/svg/svg-viewbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-link-invalid-layout/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence link 4 | =============== 5 | 6 | .. confluence_link:: https://example.org 7 | :card: block 8 | :layout: align-end 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/use-cases/nested-ref-external.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | nested ref external 4 | =================== 5 | 6 | .. _ref1: 7 | 8 | section 9 | ======= 10 | 11 | .. _ref2: 12 | 13 | content 14 | -------------------------------------------------------------------------------- /tests/sample-sets/ipython/README.md: -------------------------------------------------------------------------------- 1 | # IPython 2 | 3 | Confluence does not support a means to make text unselectable; however, 4 | users may want to still render the contents inside IPython directive on 5 | Confluence pages. 6 | -------------------------------------------------------------------------------- /tests/sample-sets/math/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinx.ext.imgmath', 4 | ] 5 | 6 | imgmath_font_size = 14 7 | imgmath_image_format = 'svg' 8 | imgmath_use_preview = True 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/expand/index.rst: -------------------------------------------------------------------------------- 1 | expand 2 | ====== 3 | 4 | .. confluence_expand:: 5 | 6 | no title content 7 | 8 | .. confluence_expand:: 9 | :title: my title 10 | 11 | with title content 12 | -------------------------------------------------------------------------------- /babel.cfg: -------------------------------------------------------------------------------- 1 | # Babel configuration file 2 | 3 | # python sources 4 | [python: **.py] 5 | encoding = utf-8 6 | 7 | # jinja2 template files 8 | [jinja2: **/templates/**.html] 9 | encoding = utf-8 10 | ignore_tags = style 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/epigraph/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#epigraph 2 | 3 | epigraph 4 | -------- 5 | 6 | .. epigraph:: 7 | 8 | quote 9 | 10 | -- source 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/svg/svg-viewbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-status/index.rst: -------------------------------------------------------------------------------- 1 | confluence-status 2 | ================= 3 | 4 | :confluence_status:`First status` 5 | 6 | :confluence_status:`Another status ` 7 | 8 | :confluence_status:`Let's go! [green]` 9 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-click/index.rst: -------------------------------------------------------------------------------- 1 | click 2 | ===== 3 | 4 | .. click:: hello_world:test 5 | :prog: hello-world 6 | :nested: full 7 | 8 | .. click:: hello_world:test2 9 | :prog: hello-world 10 | :nested: full 11 | -------------------------------------------------------------------------------- /tests/sample-sets/svg/svg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/httpd/README.md: -------------------------------------------------------------------------------- 1 | The following holds test keys to validate a Confluence instance over a 2 | "secure" connection. This includes public and "private" keys for unit 3 | testing preparing a local https instance. 4 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/transitions/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#transitions 2 | 3 | transitions 4 | ----------- 5 | 6 | content 7 | 8 | -------- 9 | 10 | content 11 | -------------------------------------------------------------------------------- /tests/sample-sets/header-links/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'myst_parser', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | myst_enable_extensions = [ 7 | 'colon_fence', 8 | ] 9 | 10 | myst_heading_anchors = 7 11 | -------------------------------------------------------------------------------- /tests/sample-sets/raw-html/second.md: -------------------------------------------------------------------------------- 1 | second 2 | ====== 3 | 4 | Some more HTML in Markdown: 5 | 6 | ---- 7 | 8 |
9 |

My nifty title

10 |

Some text!

11 |
12 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/domains/domains-js.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. js:function:: $.func(param1[, param2]) 4 | 5 | :param type param1: desc1 6 | :param param2: desc2 7 | :throws SomeError: desc3 8 | :returns: returns 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/missing-server-name/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. provided "server-name" without "server-id" 7 | 8 | .. jira_issue:: TEST-1 9 | :server-name: overwritten-server-name 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/highlights/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#highlights 2 | 3 | highlights 4 | ---------- 5 | 6 | .. highlights:: 7 | 8 | quote 9 | 10 | -- source 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/pull-quote/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#pull-quote 2 | 3 | pull-quote 4 | ---------- 5 | 6 | .. pull-quote:: 7 | 8 | quote 9 | 10 | -- source 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/raw-storage/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#raw-data-pass-through 2 | 3 | raw 4 | --- 5 | 6 | .. raw:: confluence_storage 7 | 8 | raw content 9 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ar/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ar/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/bg/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/bg/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/bn/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/bn/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ca/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ca/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/cs/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/cs/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/cy/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/cy/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/da/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/da/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/de/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/de/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/el/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/el/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/eo/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/eo/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/es/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/es/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/et/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/et/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/eu/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/eu/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/fi/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/fi/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/fr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/fr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/he/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/he/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/hi/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/hi/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/hr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/hr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/hu/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/hu/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/id/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/id/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/it/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/it/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ja/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ja/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ko/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ko/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/lt/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/lt/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/lv/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/lv/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/mk/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/mk/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/nb/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/nb/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ne/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ne/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/nl/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/nl/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/pl/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/pl/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ro/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ro/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ru/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ru/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/si/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/si/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/sk/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/sk/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/sl/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/sl/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/sq/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/sq/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/sr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/sr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/sv/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/sv/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/ta/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/ta/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/te/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/te/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/tr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/tr/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/uk/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/uk/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/vi/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/vi/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-sphinx/fetch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | git clone https://github.com/sphinx-doc/sphinx.git 4 | cd sphinx 5 | echo "" >>doc/conf.py 6 | echo "extensions.append('sphinxcontrib.confluencebuilder')" >>doc/conf.py 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/bad-sid/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. invalid "server-id" with non-uuid value 7 | 8 | .. jira_issue:: TEST-1 9 | :server-id: invalid-id 10 | :server-name: server-name 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/missing-server-entry/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. provided "server" that is not registered in configuration 7 | 8 | .. jira_issue:: TEST-1 9 | :server: missing-server-ref 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/missing-server-id/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. provided "server-id" without "server-name" 7 | 8 | .. jira_issue:: TEST-1 9 | :server-id: 00000000-0000-0000-0000-000000000000 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/parsed-literal/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#parsed-literal-block 2 | 3 | parsed literal 4 | -------------- 5 | 6 | .. parsed-literal:: 7 | 8 | **markup** content 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/targets/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#inline-internal-targets 2 | 3 | targets 4 | ------- 5 | 6 | .. inline internal targets 7 | 8 | An _`inline target` example. 9 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/svg/svg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/hi_IN/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/hi_IN/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/pt_BR/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/pt_BR/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/pt_PT/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/pt_PT/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/sr_CS/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/sr_CS/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/uk_UA/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/uk_UA/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/zh_TW/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphinx-contrib/confluencebuilder/HEAD/sphinxcontrib/confluencebuilder/locale/zh_TW/LC_MESSAGES/sphinxcontrib.confluencebuilder.mo -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-video/index.rst: -------------------------------------------------------------------------------- 1 | video 2 | ======= 3 | 4 | .. video:: spbtv_sample_bipbop_av1_960x540_25fps.mp4 5 | :width: 700 6 | :height: 394 7 | 8 | .. video:: spbtv_sample_bipbop_av1_960x540_25fps.mp4 9 | :autoplay: 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/doctest-block/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#doctest-blocks 2 | 3 | doctest-block 4 | ------------- 5 | 6 | >>> print 'this is a Doctest block' 7 | this is a Doctest block 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/deprecated/index.rst: -------------------------------------------------------------------------------- 1 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=deprecated#directive-deprecated 2 | 3 | deprecated 4 | ---------- 5 | 6 | .. deprecated:: 1.9 7 | deprecated message 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/local-toc/rst-v1.rst: -------------------------------------------------------------------------------- 1 | .. confluence_metadata:: 2 | :editor: v1 3 | 4 | reStructuredText v1 5 | =================== 6 | 7 | .. contents:: 8 | :local: 9 | 10 | An Extra Header 11 | --------------- 12 | 13 | content 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/local-toc/rst-v2.rst: -------------------------------------------------------------------------------- 1 | .. confluence_metadata:: 2 | :editor: v2 3 | 4 | reStructuredText v2 5 | =================== 6 | 7 | .. contents:: 8 | :local: 9 | 10 | An Extra Header 11 | --------------- 12 | 13 | content 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/panel-missing-title-with-title-color/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | missing-title-with-title-color 4 | ============================== 5 | 6 | .. confluence_panel:: 7 | :title-color: #ee00ee 8 | 9 | with title color 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/sdoc/genindex-placeholder/index.rst: -------------------------------------------------------------------------------- 1 | root 2 | ==== 3 | 4 | .. toctree:: 5 | 6 | genindex 7 | 8 | .. add a glossary entry to have an entry in the index 9 | 10 | .. glossary:: 11 | 12 | test 13 | entry 14 | -------------------------------------------------------------------------------- /tests/sample-sets/mermaid/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.mermaid', 4 | ] 5 | 6 | # npm install @mermaid-js/mermaid-cli 7 | mermaid_cmd = 'node_modules\\.bin\\mmdc.cmd' 8 | mermaid_output_format = 'svg' 9 | -------------------------------------------------------------------------------- /tests/sample-sets/program-output/index.rst: -------------------------------------------------------------------------------- 1 | Program output 2 | ============== 3 | 4 | .. program-output:: python --help 5 | 6 | .. program-output:: python --help 7 | :ellipsis: 2,-2 8 | 9 | .. command-output:: python --help 10 | :ellipsis: 2 11 | -------------------------------------------------------------------------------- /tests/sample-sets/raw-html/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'myst_parser', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | # Raw injection: 7 | confluence_permit_raw_html = True 8 | 9 | # Using macro: 10 | # confluence_permit_raw_html = 'html' 11 | -------------------------------------------------------------------------------- /tests/sample-sets/raw-html/index.rst: -------------------------------------------------------------------------------- 1 | raw-html 2 | ======== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | second 8 | 9 | ---- 10 | 11 | Some raw HTML: 12 | 13 | .. raw:: html 14 | 15 | sphinx-doc.org 16 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/conflicting-server-id/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. conflicting "server" and "server-name" 7 | 8 | .. jira_issue:: TEST-1 9 | :server: test-jira-server 10 | :server-name: overwritten-server-name 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/citations/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#citations 2 | 3 | citations 4 | --------- 5 | 6 | [CIT01]_ 7 | 8 | [CIT02]_ 9 | 10 | .. [CIT01] citation 1 11 | .. [CIT02] citation 2 12 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/versionadded/index.rst: -------------------------------------------------------------------------------- 1 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=deprecated#directive-versionadded 2 | 3 | versionadded 4 | ------------ 5 | 6 | .. versionadded:: 2.4 7 | versionadded message 8 | -------------------------------------------------------------------------------- /check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # 3 | # This is a helper script used to only invoke a single tox environment. 4 | # Solely used for a quick way to run a supported environment without 5 | # having to try to form one on the command line. 6 | 7 | exec tox -e py313-sphinx81 $@ 8 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/glossary/glossary-ref.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. verify glossary items can be referenced from another document 4 | 5 | glossary-ref 6 | ------------ 7 | 8 | :term:`glossary 1` 9 | 10 | :term:`glossary 2` 11 | 12 | :term:`glossary 3` 13 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents/contents.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | contents 4 | ======== 5 | 6 | section 7 | ------- 8 | 9 | subsection 10 | ~~~~~~~~~~ 11 | 12 | .. contents:: 13 | 14 | subsubsection 15 | !!!!!!!!!!!!! 16 | 17 | newsection 18 | ---------- 19 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/conflicting-server-name/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. conflicting "server" and "server-id" 7 | 8 | .. jira_issue:: TEST-1 9 | :server: test-jira-server 10 | :server-id: 00000000-0000-0000-0000-000000000000 11 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-click/conf.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | import sys 3 | 4 | 5 | extensions = [ 6 | 'sphinx_click', 7 | 'sphinxcontrib.confluencebuilder', 8 | ] 9 | 10 | 11 | test_dir = Path(__file__).parent.resolve() 12 | sys.path.insert(0, test_dir) 13 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/panel-missing-title-with-title-bg-color/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | missing-title-with-title-bg-color 4 | ================================= 5 | 6 | .. confluence_panel:: 7 | :title-bg-color: #0000ee 8 | 9 | with title background color 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents-multipage/page-a.rst: -------------------------------------------------------------------------------- 1 | page-a 2 | ====== 3 | 4 | .. contents:: 5 | :local: 6 | 7 | section-a 8 | ^^^^^^^^^ 9 | 10 | data 11 | 12 | section-b 13 | ^^^^^^^^^ 14 | 15 | data 16 | 17 | sub-section 18 | ~~~~~~~~~~~ 19 | 20 | data 21 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents-multipage/page-b.rst: -------------------------------------------------------------------------------- 1 | page-b 2 | ====== 3 | 4 | .. contents:: 5 | :local: 6 | 7 | section-b 8 | ^^^^^^^^^ 9 | 10 | data 11 | 12 | section-c 13 | ^^^^^^^^^ 14 | 15 | data 16 | 17 | sub-section 18 | ~~~~~~~~~~~ 19 | 20 | data 21 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/versionchanged/index.rst: -------------------------------------------------------------------------------- 1 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=deprecated#directive-versionchanged 2 | 3 | versionchanged 4 | -------------- 5 | 6 | .. versionchanged:: 5.6 7 | versionchanged message 8 | -------------------------------------------------------------------------------- /tests/validation-sets/base/editor_v2.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | Fabric editor 4 | ============= 5 | 6 | .. raw:: confluence_storage 7 | 8 | 9 | true 10 | 11 | -------------------------------------------------------------------------------- /tests/validation-sets/markdown/table.md: -------------------------------------------------------------------------------- 1 | # Markdown Table 2 | 3 | Table example: 4 | 5 | | Header row, column 1 | Header 2 | Header 3 | Header 4 | 6 | | :--------------------- | :--------: | -------: | -------- | 7 | | body row 1, column 1 | 2 | 3 | 4 | 8 | -------------------------------------------------------------------------------- /tests/sample-sets/aafig/index.rst: -------------------------------------------------------------------------------- 1 | aafig 2 | ===== 3 | 4 | .. aafig:: 5 | :aspect: 60 6 | :scale: 150 7 | :proportional: 8 | :textual: 9 | 10 | +-------+ +-----------+ 11 | | Hello +-------->+ aafigure! | 12 | +-------+ +-----------+ 13 | -------------------------------------------------------------------------------- /tests/sample-sets/header-links/index.rst: -------------------------------------------------------------------------------- 1 | Index 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | rst-v1-first 8 | rst-v1-second 9 | rst-v2-first 10 | rst-v2-second 11 | md-v1-first 12 | md-v1-second 13 | md-v2-first 14 | md-v2-second 15 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block-params/code-block-collapse.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. code-block:: python 4 | 5 | import example 6 | example.method1() 7 | 8 | .. code-block:: python 9 | :class: collapse 10 | 11 | import example 12 | example.method2() 13 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-toc/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence toc 4 | -------------- 5 | 6 | .. basic 7 | 8 | .. confluence_toc:: 9 | 10 | .. options 11 | 12 | .. confluence_toc:: 13 | :type: flat 14 | :absolute-url: true 15 | :printable: false 16 | -------------------------------------------------------------------------------- /tests/validation-sets/base/editor_v1.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | Default editor 4 | ============== 5 | 6 | .. raw:: confluence_storage 7 | 8 | 9 | true 10 | 11 | -------------------------------------------------------------------------------- /tests/sample-sets/i8n/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-data-viewer/README.md: -------------------------------------------------------------------------------- 1 | # Sphinx-Data-Viewer 2 | 3 | For users using Sphinx-Data-Viewer, we can at least render JSON data into 4 | code blocks and have the content collapsed by default. We will be unable 5 | to support collapsing specific sections of a JSON dictionary. 6 | -------------------------------------------------------------------------------- /tests/sample-sets/svg/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/index.rst: -------------------------------------------------------------------------------- 1 | Index 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | rst-v1-first 8 | rst-v1-second 9 | rst-v2-first 10 | rst-v2-second 11 | md-v1-first 12 | md-v1-second 13 | md-v2-first 14 | md-v2-second 15 | -------------------------------------------------------------------------------- /tests/sample-sets/autodocs/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/cleanup/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/image/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/latex/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/linkcode/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/math/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/mentions/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/numfig/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/orphan/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents/contents-caption.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | contents 4 | ======== 5 | 6 | section 7 | ------- 8 | 9 | subsection 10 | ~~~~~~~~~~ 11 | 12 | .. contents:: table of contents 13 | 14 | subsubsection 15 | !!!!!!!!!!!!! 16 | 17 | newsection 18 | ---------- 19 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents/contents-local.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | contents 4 | ======== 5 | 6 | section 7 | ------- 8 | 9 | subsection 10 | ~~~~~~~~~~ 11 | 12 | .. contents:: 13 | :local: 14 | 15 | subsubsection 16 | !!!!!!!!!!!!! 17 | 18 | newsection 19 | ---------- 20 | -------------------------------------------------------------------------------- /tests/sample-sets/link-check/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/next-prev/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-prompt/README.md: -------------------------------------------------------------------------------- 1 | # sphinx-prompt 2 | 3 | The following checks the use of sphinx-prompt directives. Confluence does 4 | not support a means to make text unselectable; however, users may want to 5 | still render the content inside sphinx-prompt directive on Confluence 6 | pages. 7 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/footnotes/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#footnotes 2 | 3 | footnotes 4 | --------- 5 | 6 | [#]_ 7 | 8 | [#note]_ 9 | 10 | [2]_ 11 | 12 | .. [2] footnote 2 13 | .. [#] footnote num 14 | .. [#note] footnote note 15 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-card/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-excerpt/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-status/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-tabs/index.rst: -------------------------------------------------------------------------------- 1 | sphinx-tabs 2 | =========== 3 | 4 | .. tabs:: 5 | 6 | .. tab:: Apples 7 | 8 | Apples are green, or sometimes red. 9 | 10 | .. tab:: Pears 11 | 12 | Pears are green. 13 | 14 | .. tab:: Oranges 15 | 16 | Oranges are orange. 17 | -------------------------------------------------------------------------------- /tests/sample-sets/tables/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | commands = 7 | {envpython} -m tests.test_sample {posargs} 8 | setenv = 9 | PYTHONDONTWRITEBYTECODE=1 10 | TOX_INI_DIR={toxinidir} 11 | passenv = * 12 | use_develop = true 13 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/figure-caption/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#figure 2 | 3 | figure 4 | ------ 5 | 6 | .. figure with caption 7 | 8 | .. figure:: ../../../assets/image03.png 9 | 10 | **caption** with *markup* 11 | 12 | legend 13 | -------------------------------------------------------------------------------- /tests/sample-sets/inheritance-diagram/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/unit-tests/assets/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | my-example 4 | 9 | 10 | 11 | this is an example 12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-code-block-theme/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | TOX_INI_DIR={toxinidir} 10 | passenv = * 11 | use_develop = true 12 | -------------------------------------------------------------------------------- /tests/sample-sets/mentions/index.rst: -------------------------------------------------------------------------------- 1 | mentions 2 | ======== 3 | 4 | Hash: :confluence_mention:`ff8080815b651146015b65117b240001` 5 | 6 | UUID: :confluence_mention:`557058:2d0a38b2-b4d8-45fa-978c-f6d556f24205` 7 | 8 | Unknown: :confluence_mention:`unknown` 9 | 10 | Mapped: :confluence_mention:`jdknight` 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents/contents-backlinks-none.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | contents 4 | ======== 5 | 6 | section 7 | ------- 8 | 9 | subsection 10 | ~~~~~~~~~~ 11 | 12 | .. contents:: toc 13 | :backlinks: none 14 | 15 | subsubsection 16 | !!!!!!!!!!!!! 17 | 18 | newsection 19 | ---------- 20 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents/contents-backlinks-top.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | contents 4 | ======== 5 | 6 | section 7 | ------- 8 | 9 | subsection 10 | ~~~~~~~~~~ 11 | 12 | .. contents:: toc 13 | :backlinks: top 14 | 15 | subsubsection 16 | !!!!!!!!!!!!! 17 | 18 | newsection 19 | ---------- 20 | -------------------------------------------------------------------------------- /sandbox/README.rst: -------------------------------------------------------------------------------- 1 | test sandbox 2 | ============ 3 | 4 | The following folder provides an easy setup to dump a fresh ``conf.py``, 5 | ``requirements.txt`` and documentation to test against this extension when 6 | invoking with the following command: 7 | 8 | .. code-block:: shell 9 | 10 | tox -e sandbox 11 | -------------------------------------------------------------------------------- /tests/sample-sets/drawio/index.rst: -------------------------------------------------------------------------------- 1 | drawio 2 | ====== 3 | 4 | .. drawio-figure:: box.drawio 5 | :align: left 6 | 7 | ---- 8 | 9 | .. drawio-image:: box.drawio 10 | :format: png 11 | :align: center 12 | 13 | ---- 14 | 15 | .. drawio-figure:: box.drawio 16 | :format: svg 17 | :align: right 18 | -------------------------------------------------------------------------------- /tests/sample-sets/linkcode/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinx.ext.linkcode', 4 | ] 5 | 6 | def linkcode_resolve(domain, info): 7 | name = info.get('fullname', None) 8 | if not name: 9 | return None 10 | return f'https://example.org/src/{name}' 11 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/contents/contents-backlinks-entry.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | contents 4 | ======== 5 | 6 | section 7 | ------- 8 | 9 | subsection 10 | ~~~~~~~~~~ 11 | 12 | .. contents:: toc 13 | :backlinks: entry 14 | 15 | subsubsection 16 | !!!!!!!!!!!!! 17 | 18 | newsection 19 | ---------- 20 | -------------------------------------------------------------------------------- /tests/sample-sets/ipython/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | ipython 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block/code-block.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. code-block:: python 4 | :linenos: 5 | 6 | import myexample 7 | myexample.invoke() 8 | 9 | .. code-block:: sql 10 | 11 | SELECT * FROM table_name; 12 | 13 | .. sourcecode:: ruby 14 | 15 | puts 'this is a print statement!' 16 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/block-quotes/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#block-quotes 2 | 3 | block quotes 4 | ------------ 5 | 6 | root 7 | 8 | first-level 9 | 10 | second-level 11 | 12 | root 13 | 14 | second-level 15 | 16 | first-level 17 | -------------------------------------------------------------------------------- /tests/sample-sets/jinja/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-jinja 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/raw-html/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | myst-parser 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/strikethrough/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'myst_parser', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | rst_prolog = ''' 7 | 8 | .. role:: strike 9 | :class: strike 10 | 11 | ''' 12 | 13 | html_static_path = ['_static'] 14 | 15 | def setup(app): 16 | app.add_css_file('test.css') 17 | -------------------------------------------------------------------------------- /tests/sample-sets/aafig/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-aafig 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/drawio/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-drawio 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/header-links/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | myst-parser 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/kroki/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-kroki 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/markdown-myst/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | myst-parser 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-click/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-click 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-inline-tabs/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinx_inline_tabs', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | confluence_tab_macro = { 7 | 'macro-name': 'cfm-tabs-page', 8 | 'primary-id': 'primaryTab', 9 | 'primary-value': 'true', 10 | 'title-id': 'tabsPageTitle', 11 | } 12 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-panels/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-panels 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-prompt/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-prompt 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-tabs/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-tabs 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/strikethrough/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | myst-parser 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/svgbob/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-svgbob 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/literal/literal-blocks.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | literal block tests 4 | ------------------- 5 | 6 | Expanded: 7 | 8 | :: 9 | 10 | example 01 11 | 12 | Partially minimized: :: 13 | 14 | example 02 15 | 16 | Minimized:: 17 | 18 | example 03 19 | 20 | Quoted:: 21 | 22 | > example 04 23 | -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-sphinx/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | commands = 6 | {envpython} -m tests.test_sample {posargs} 7 | setenv = 8 | PYTHONDONTWRITEBYTECODE=1 9 | SAMPLE_DIR=sphinx/doc 10 | TOX_INI_DIR={toxinidir} 11 | passenv = * 12 | use_develop = true 13 | -------------------------------------------------------------------------------- /tests/sample-sets/mermaid/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-mermaid 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/openapi/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-openapi 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/plantuml/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-plantuml 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-diagrams/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-diagrams 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-video/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-video 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/youtube/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-youtube 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block/code-block-caption.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. code-block:: python 4 | :caption: code caption test 5 | 6 | import myexample 7 | myexample.invoke() 8 | 9 | .. code-block:: python 10 | :caption: code caption test "two" 11 | 12 | import myexample2 13 | myexample2.invoke() 14 | -------------------------------------------------------------------------------- /tests/sample-sets/httpdomain/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-httpdomain 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/single-confluence-refs/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | myst-parser 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-inline-tabs/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-inline-tabs 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinxnotes-strike/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxnotes-strike 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/sample-sets/program-output/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-programoutput 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | TOX_INI_DIR={toxinidir} 12 | passenv = * 13 | use_develop = true 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/markup/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#inline-markup 2 | 3 | markup 4 | ------ 5 | 6 | *emphasis* 7 | 8 | **strong emphasis** 9 | 10 | `interpreted` 11 | 12 | ``inline`` 13 | 14 | :sub:`subscript` 15 | 16 | :sup:`superscript` 17 | 18 | :guilabel:`&guilabel` 19 | -------------------------------------------------------------------------------- /tests/sample-sets/autodocs/conf.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | import sys 3 | 4 | 5 | extensions = [ 6 | 'sphinx.ext.autodoc', 7 | 'sphinx.ext.autosummary', 8 | 'sphinxcontrib.confluencebuilder', 9 | ] 10 | 11 | 12 | test_dir = Path(__file__).parent.resolve() 13 | src_dir = test_dir / 'src' 14 | sys.path.insert(0, str(src_dir)) 15 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-data-viewer/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinxcontrib.jquery', 4 | 'sphinx_data_viewer', 5 | ] 6 | 7 | data_viewer_data = { 8 | "my_data": { 9 | "name": "Mario", 10 | "job": "plumber", 11 | "magic_tubes": [2, 7, 23, 43.5], 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block-fallback/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. code-block:: omg-idl 4 | 5 | module MyAwesomeModule 6 | { 7 | typedef string AnotherVar; 8 | typedef float SomeVaR; 9 | 10 | interface MyAwesomrInterface 11 | { 12 | void fetch(in int amount); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /.coveragerc: -------------------------------------------------------------------------------- 1 | [coverage:run] 2 | parallel = 1 3 | 4 | [coverage:report] 5 | ignore_errors = 1 6 | omit = 7 | # ignore publishing related implementation 8 | sphinxcontrib/confluencebuilder/publisher.py 9 | sphinxcontrib/confluencebuilder/rest.py 10 | # ignore mainlines 11 | *__main__.py* 12 | show_missing = 1 13 | skip_covered = 1 14 | -------------------------------------------------------------------------------- /tests/sample-sets/cleanup/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | confluence_cleanup_purge = True 6 | # confluence_cleanup_search_mode = 'direct' 7 | # confluence_cleanup_search_mode = 'direct-aggressive' 8 | # confluence_cleanup_search_mode = 'search' 9 | # confluence_cleanup_search_mode = 'search-aggressive' 10 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc2a.rst: -------------------------------------------------------------------------------- 1 | treedoc2a 2 | --------- 3 | 4 | .. _example-doc2a-label: 5 | 6 | hyperlink references (part a) 7 | +++++++++++++++++++++++++++++ 8 | 9 | Validate `anonymous`__ hyperlink references. 10 | 11 | __ http://www.example.com/static/first-link.txt 12 | 13 | .. toctree:: 14 | 15 | toctree-doc2aa 16 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/status/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | status 4 | ------ 5 | 6 | .. default 7 | 8 | :confluence_status:`status a` 9 | 10 | .. color 11 | 12 | :confluence_status:`status b ` 13 | 14 | .. outlined 15 | 16 | :confluence_status:`status c []` 17 | 18 | .. outlined, color 19 | 20 | :confluence_status:`status d [green]` 21 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-needs/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-needs 7 | sphinxcontrib-plantuml 8 | commands = 9 | {envpython} -m tests.test_sample {posargs} 10 | setenv = 11 | PYTHONDONTWRITEBYTECODE=1 12 | TOX_INI_DIR={toxinidir} 13 | passenv = * 14 | use_develop = true 15 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-toolbox/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | flake8-dunder-all 7 | sphinx-toolbox 8 | commands = 9 | {envpython} -m tests.test_sample {posargs} 10 | setenv = 11 | PYTHONDONTWRITEBYTECODE=1 12 | TOX_INI_DIR={toxinidir} 13 | passenv = * 14 | use_develop = true 15 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # readthedocs configuration script 2 | version: 2 3 | 4 | build: 5 | os: ubuntu-22.04 6 | tools: 7 | python: "3.11" 8 | 9 | sphinx: 10 | builder: dirhtml 11 | configuration: doc/conf.py 12 | 13 | python: 14 | install: 15 | - method: pip 16 | path: . 17 | - requirements: doc/requirements.txt 18 | 19 | formats: all 20 | -------------------------------------------------------------------------------- /tests/sample-sets/plantuml/index.rst: -------------------------------------------------------------------------------- 1 | plantuml 2 | ======== 3 | 4 | .. uml:: 5 | 6 | Alice -> Bob: Hi! 7 | Alice <- Bob: How are you? 8 | 9 | 10 | .. uml:: 11 | :scale: 50 % 12 | :align: center 13 | 14 | Foo <|-- Bar 15 | 16 | 17 | .. uml:: 18 | :caption: Caption with **bold** and *italic* 19 | :width: 50mm 20 | 21 | Foo <|-- Bar 22 | -------------------------------------------------------------------------------- /tests/validation-sets/extensions/index.rst: -------------------------------------------------------------------------------- 1 | Extensions 2 | ========== 3 | 4 | The following is a base page to show an example of Sphinx's auto-based extension 5 | found inside the internal tree. 6 | 7 | .. toctree:: 8 | :maxdepth: 1 9 | 10 | autodocs 11 | autosummary 12 | graphviz 13 | inheritance_diagram 14 | linkcode 15 | todo 16 | -------------------------------------------------------------------------------- /tests/sample-sets/autodocs/autosummary.rst: -------------------------------------------------------------------------------- 1 | sphinx.ext.autosummary 2 | ====================== 3 | 4 | An example of a local docstring: 5 | 6 | .. autosummary:: 7 | 8 | Hello 9 | 10 | An example of an external module docstring: 11 | 12 | .. currentmodule:: sphinx 13 | 14 | .. autosummary:: 15 | 16 | environment.BuildEnvironment 17 | util.relative_uri 18 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-data-viewer/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinx-data-viewer 7 | sphinxcontrib-jquery 8 | commands = 9 | {envpython} -m tests.test_sample {posargs} 10 | setenv = 11 | PYTHONDONTWRITEBYTECODE=1 12 | TOX_INI_DIR={toxinidir} 13 | passenv = * 14 | use_develop = true 15 | -------------------------------------------------------------------------------- /tests/sample-sets/example-doc-mdn/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | myst-parser 7 | commands = 8 | {envpython} -m tests.test_sample {posargs} 9 | setenv = 10 | PYTHONDONTWRITEBYTECODE=1 11 | SAMPLE_DIR=content/files/en-us/mdn 12 | TOX_INI_DIR={toxinidir} 13 | passenv = * 14 | use_develop = true 15 | -------------------------------------------------------------------------------- /tests/sample-sets/plantuml/conf.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | 4 | extensions = [ 5 | 'sphinxcontrib.confluencebuilder', 6 | 'sphinxcontrib.plantuml', 7 | ] 8 | 9 | 10 | plantuml_output_format = 'svg' 11 | 12 | 13 | dir_path = Path(__file__).parent.resolve() 14 | plantuml_jar = dir_path / 'plantuml.jar' 15 | plantuml = 'java -jar ' + str(plantuml_jar) 16 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/references/references-ref.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. verify references can point from another document 4 | 5 | references-ref 6 | -------------- 7 | 8 | document link :doc:`references` 9 | 10 | :doc:`custom name ` 11 | 12 | :ref:`references anchor ` 13 | 14 | :ref:`references section ` 15 | -------------------------------------------------------------------------------- /tests/sample-sets/blockdiag/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | # blockdiag extensions 4 | 'sphinxcontrib.actdiag', 5 | 'sphinxcontrib.blockdiag', 6 | 'sphinxcontrib.nwdiag', 7 | 'sphinxcontrib.packetdiag', 8 | 'sphinxcontrib.rackdiag', 9 | 'sphinxcontrib.seqdiag', 10 | ] 11 | 12 | blockdiag_image_format = 'svg' 13 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/std/sphinx.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | # sphinx's default highlight style 5 | # http://www.sphinx-doc.org/en/stable/config.html#confval-highlight_language 6 | DEFAULT_HIGHLIGHT_STYLE = 'default' 7 | 8 | # sphinx's default alignment 9 | DEFAULT_ALIGNMENT = 'center' 10 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-tabs/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinx_tabs.tabs', 3 | 'sphinxcontrib.confluencebuilder', 4 | ] 5 | 6 | confluence_tab_macro = { 7 | 'macro-name': 'cfm-tabs-page', 8 | 'primary-id': 'primaryTab', 9 | 'primary-value': 'true', 10 | 'title-id': 'tabsPageTitle', 11 | } 12 | 13 | sphinx_tabs_valid_builders = [ 14 | 'confluence', 15 | ] 16 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/mentions/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | mentions 4 | -------- 5 | 6 | .. Confluence Server (username) mention 7 | 8 | :confluence_mention:`myuser` 9 | 10 | .. Confluence Server (key) mention 11 | 12 | :confluence_mention:`b9aaf35e80441f415c3a3d3c53695d0e` 13 | 14 | .. Confluence Cloud mention 15 | 16 | :confluence_mention:`3c5369:fa8b5c24-17f8-4340-b73e-50d383307c59` 17 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/use-cases/nested-ref-contents.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | nested ref contents 4 | =================== 5 | 6 | .. contents:: 7 | :local: 8 | 9 | :doc:`custom_name ` 10 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11 | 12 | :ref:`custom_name2 ` 13 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 14 | 15 | :ref:`custom_name3 ` 16 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 17 | -------------------------------------------------------------------------------- /tests/sample-sets/jinja/index.rst: -------------------------------------------------------------------------------- 1 | jinja 2 | ===== 3 | 4 | .. jinja:: ctx 5 | 6 | {% for feature in features %} 7 | 8 | {{ feature.properties.title }} 9 | ----------------------------------------------- 10 | 11 | Event: {{ feature.properties.time_str }} 12 | 13 | {{ feature.properties.url }} 14 | 15 | ---- 16 | 17 | {% endfor %} 18 | 19 | See also: https://earthquake.usgs.gov/ 20 | -------------------------------------------------------------------------------- /tests/sample-sets/blockdiag/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | package_root={toxinidir}{/}..{/}..{/}.. 3 | 4 | [testenv] 5 | deps = 6 | sphinxcontrib-actdiag 7 | sphinxcontrib-blockdiag 8 | sphinxcontrib-nwdiag 9 | sphinxcontrib-seqdiag 10 | commands = 11 | {envpython} -m tests.test_sample {posargs} 12 | setenv = 13 | PYTHONDONTWRITEBYTECODE=1 14 | TOX_INI_DIR={toxinidir} 15 | passenv = * 16 | use_develop = true 17 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block/code-block-linenothreshold.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. highlight:: python 4 | :linenothreshold: 3 5 | 6 | .. code-block:: python 7 | 8 | import anothersmallexample 9 | anothersmallexample.invoke() 10 | 11 | .. code-block:: python 12 | 13 | import anotherbigexample 14 | anotherbigexample.method1() 15 | anotherbigexample.method2() 16 | anotherbigexample.method3() 17 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-doc/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence doc 4 | ============== 5 | 6 | An :confluence_doc:`second` inlined card. 7 | 8 | .. confluence_doc:: second 9 | :card: embed 10 | 11 | .. confluence_doc:: second 12 | :card: embed 13 | :width: 30 14 | 15 | .. confluence_doc:: second 16 | :card: embed 17 | :layout: align-end 18 | 19 | .. confluence_doc:: third 20 | :card: block 21 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/definition-lists/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#definition-lists 2 | 3 | definition lists 4 | ---------------- 5 | 6 | term 1 7 | definition 1 8 | 9 | term 2 10 | definition 2, paragraph 1 11 | 12 | definition 2, paragraph 2 13 | 14 | term 3 : classifier 15 | definition 3 16 | 17 | term 4 : classifier one : classifier two 18 | definition 4 19 | -------------------------------------------------------------------------------- /doc/guides.rst: -------------------------------------------------------------------------------- 1 | Guides 2 | ====== 3 | 4 | The following contains a series of guides which may help a user using 5 | the Confluence Builder extension in a Sphinx-enabled environment. 6 | 7 | .. toctree:: 8 | :maxdepth: 1 9 | 10 | guide-class-hints 11 | guide-collapse 12 | guide-confluence-macros 13 | guide-highlight-default 14 | guide-math 15 | guide-scope-token 16 | guide-strike 17 | guide-ci 18 | guide-sso 19 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-prompt/index.rst: -------------------------------------------------------------------------------- 1 | sphinx-prompt 2 | ============= 3 | 4 | .. prompt:: bash 5 | 6 | cd 7 | cp \ 8 | 9 | cd - 10 | 11 | .. prompt:: bash # 12 | 13 | cd 14 | cd - 15 | 16 | .. prompt:: bash $,# auto 17 | 18 | $ sudo 19 | # exit2 20 | $ 21 | 22 | .. prompt:: bash $,(env)...$ auto 23 | 24 | $ source env/bin/activate 25 | (env)...$ deactivate 26 | $ 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # byte-compiled, optimized, etc. 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # building, packaging, etc. 6 | /*.egg-info/ 7 | /build/ 8 | /dist/ 9 | 10 | # documentation 11 | /doc/_build/ 12 | 13 | # platform-specific 14 | .DS_Store 15 | 16 | # testing 17 | /_build/ 18 | /htmlcov*/ 19 | /output*/ 20 | /sandbox*/ 21 | /venv*/ 22 | /.coverage* 23 | .tox* 24 | validation_test_overrides.py 25 | !.coveragerc 26 | 27 | # misc 28 | .idea/ 29 | trace.log 30 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | # https://crowdin.com/project/sphinxcontrib-confluencebuilder 2 | project_id: 558685 3 | 4 | files: 5 | - source: /sphinxcontrib/confluencebuilder/locale/*.pot 6 | translation: /sphinxcontrib/confluencebuilder/locale/%two_letters_code%/LC_MESSAGES/%file_name%.po 7 | languages_mapping: 8 | two_letters_code: 9 | pt-BR: pt_BR 10 | pt-PT: pt_PT 11 | sr-CS: sr_CS 12 | zh-CN: zh_CH 13 | zh-TW: zh_TW 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/download/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html?highlight=role%20download#role-download 4 | 5 | download 6 | -------- 7 | 8 | :download:`../../assets/example.pdf` 9 | 10 | :download:`label<../../assets/example.pdf>` 11 | 12 | :download:`files/example.pdf` 13 | 14 | .. Absolute filename taken as relative to the top source directory 15 | 16 | :download:`/files/example.pdf` 17 | -------------------------------------------------------------------------------- /tests/sample-sets/mermaid/index.rst: -------------------------------------------------------------------------------- 1 | mermaid 2 | ======= 3 | 4 | .. mermaid:: 5 | 6 | sequenceDiagram 7 | participant Alice 8 | participant Bob 9 | Alice->John: Hello John, how are you? 10 | loop Healthcheck 11 | John->John: Fight against hypochondria 12 | end 13 | Note right of John: Rational thoughts
prevail... 14 | John-->Alice: Great! 15 | John->Bob: How about you? 16 | Bob-->John: Jolly good! 17 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/hierarchy/toctree-doc2c.rst: -------------------------------------------------------------------------------- 1 | treedoc2c 2 | --------- 3 | 4 | .. _example-doc2c-label: 5 | 6 | check citations 7 | +++++++++++++++ 8 | 9 | Validate citation support with squashed document [CIT2001]_. 10 | 11 | .. [CIT2001] This is an example citation. 12 | 13 | hyperlink references (part b) 14 | +++++++++++++++++++++++++++++ 15 | 16 | Validate `anonymous`__ hyperlink references. 17 | 18 | __ http://www.example.com/static/second-link.txt 19 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/rst-v1-second.rst: -------------------------------------------------------------------------------- 1 | .. confluence_metadata:: 2 | :editor: v1 3 | 4 | reStructuredText v1 Second 5 | ========================== 6 | 7 | :ref:`main-rst-v1` 8 | 9 | :ref:`main-rst-v1-extra` 10 | 11 | :ref:`content 1 ` 12 | 13 | :ref:`main-rst-v1-extra2` 14 | 15 | :ref:`main-rst-v2` 16 | 17 | :ref:`main-rst-v2-extra` 18 | 19 | :ref:`content 2 ` 20 | 21 | :ref:`main-rst-v2-extra2` 22 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/rst-v2-second.rst: -------------------------------------------------------------------------------- 1 | .. confluence_metadata:: 2 | :editor: v2 3 | 4 | reStructuredText v2 Second 5 | ========================== 6 | 7 | :ref:`main-rst-v1` 8 | 9 | :ref:`main-rst-v1-extra` 10 | 11 | :ref:`content a ` 12 | 13 | :ref:`main-rst-v1-extra2` 14 | 15 | :ref:`main-rst-v2` 16 | 17 | :ref:`main-rst-v2-extra` 18 | 19 | :ref:`content b ` 20 | 21 | :ref:`main-rst-v2-extra2` 22 | -------------------------------------------------------------------------------- /tests/sample-sets/youtube/index.rst: -------------------------------------------------------------------------------- 1 | youtube 2 | ======= 3 | 4 | .. youtube:: KOOhPfMbuIQ 5 | :align: center 6 | 7 | ---- 8 | 9 | .. vimeo:: 486106801 10 | 11 | ---- 12 | 13 | .. youtube:: KOOhPfMbuIQ 14 | :width: 640 15 | :height: 480 16 | 17 | ---- 18 | 19 | .. youtube:: KOOhPfMbuIQ 20 | :aspect: 4:3 21 | 22 | ---- 23 | 24 | .. youtube:: KOOhPfMbuIQ 25 | :width: 100% 26 | 27 | ---- 28 | 29 | .. youtube:: KOOhPfMbuIQ 30 | :height: 200px 31 | -------------------------------------------------------------------------------- /doc/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 2 | 3 | DOC_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) 4 | BASE_DIR := $(abspath $(DOC_DIR)/..) 5 | BUILDER := $(firstword $(MAKECMDGOALS)) 6 | 7 | # default html builder 8 | ifeq ($(BUILDER),) 9 | BUILDER := html 10 | endif 11 | 12 | .PHONY: all 13 | all: 14 | @cd $(BASE_DIR) >/dev/null && \ 15 | python -m sphinx -M $(BUILDER) $(DOC_DIR) $(DOC_DIR)_build/ -E -a -W 16 | 17 | $(eval $(BUILDER):all) 18 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/compat.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from docutils import __version_info__ as docutils_version_info 5 | 6 | 7 | # use docutil's findall call over traverse (obsolete) 8 | def docutils_findall(doctree, *args, **kwargs): 9 | if docutils_version_info >= (0, 18, 1): 10 | return doctree.findall(*args, **kwargs) 11 | 12 | return doctree.traverse(*args, **kwargs) 13 | -------------------------------------------------------------------------------- /tests/sample-sets/link-check/index.rst: -------------------------------------------------------------------------------- 1 | link-check 2 | ========== 3 | 4 | https://sphinxcontrib-confluencebuilder.readthedocs.io/broken-link-0 5 | 6 | An :confluence_link:`https://sphinxcontrib-confluencebuilder.readthedocs.io/broken-link-1` inlined card. 7 | 8 | .. confluence_link:: https://sphinxcontrib-confluencebuilder.readthedocs.io/broken-link-2 9 | :card: block 10 | 11 | .. confluence_link:: https://sphinxcontrib-confluencebuilder.readthedocs.io/broken-link-3 12 | :card: embed 13 | -------------------------------------------------------------------------------- /tests/sample-sets/math/index.rst: -------------------------------------------------------------------------------- 1 | math 2 | ==== 3 | 4 | Since Pythagoras, we know that :math:`a^2 + b^2 = c^2`. 5 | 6 | The area of a circle is :math:`A_\text{c} = (\pi/4) d^2`. 7 | 8 | The mass–energy equivalence formula: 9 | 10 | .. math:: 11 | 12 | E = mc^2 13 | 14 | ---- 15 | 16 | .. math:: 17 | :name: eq.1 18 | 19 | E = mc^2 20 | 21 | ---- 22 | 23 | Euler's identity is outline in :math:numref:`euler` below: 24 | 25 | .. math:: e^{i\pi} + 1 = 0 26 | :label: euler 27 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/glossary/glossary.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=glossary#directive-glossary 4 | 5 | glossary 6 | -------- 7 | 8 | .. glossary:: 9 | 10 | glossary 1 11 | content 12 | 13 | glossary 2 14 | glossary 3 15 | content 16 | 17 | - content one 18 | - content two 19 | 20 | :term:`glossary 1` 21 | 22 | :term:`glossary 2` 23 | 24 | :term:`glossary 3` 25 | -------------------------------------------------------------------------------- /tests/validation-sets/markdown/index.md: -------------------------------------------------------------------------------- 1 | # Markdown 2 | 3 | Demonstration that Markdown documents can be generated and published to 4 | Confluence using [MyST-Parser][MyST-Parser] 5 | 6 | ```{note} 7 | This is not an extensive demonstration of Markdown capabilities; only a simple 8 | sanity check that Markdown content can be created and linked across multiple 9 | pages. 10 | ``` 11 | 12 | ```{toctree} 13 | code 14 | table 15 | ``` 16 | 17 | [MyST-Parser]: https://myst-parser.readthedocs.io/ 18 | -------------------------------------------------------------------------------- /doc/build: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | DOC_DIR="$(cd -- "$(dirname "$0")" >/dev/null 2>&1; pwd -P)" 4 | BASE_DIR=$(dirname $DOC_DIR) 5 | 6 | builder= 7 | while [[ $# -gt 0 ]]; do 8 | case $1 in 9 | -*) 10 | shift 11 | ;; 12 | *) 13 | [[ -z "$builder" ]] && builder=$1 14 | shift 15 | ;; 16 | esac 17 | done 18 | [[ -z "$builder" ]] && builder=html 19 | 20 | cd $BASE_DIR 21 | exec python -m sphinx -M $builder $DOC_DIR $DOC_DIR/_build/ -E -a -W 22 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-panels/index.rst: -------------------------------------------------------------------------------- 1 | sphinx-panels 2 | ============= 3 | 4 | .. panels:: 5 | 6 | Content of the top-left panel 7 | 8 | --- 9 | 10 | Content of the top-right panel 11 | 12 | :badge:`example,badge-primary` 13 | 14 | --- 15 | 16 | .. dropdown:: :fa:`eye,mr-1` Bottom-left panel 17 | 18 | Hidden content 19 | 20 | --- 21 | 22 | .. link-button:: https://example.com 23 | :text: Clickable Panel 24 | :classes: stretched-link 25 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-toolbox/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | # sphinx_toolbox extensions 4 | 'sphinx_toolbox.assets', 5 | 'sphinx_toolbox.code', 6 | 'sphinx_toolbox.collapse', 7 | 'sphinx_toolbox.flake8', 8 | 'sphinx_toolbox.formatting', 9 | 'sphinx_toolbox.issues', 10 | 'sphinx_toolbox.shields', 11 | 'sphinx_toolbox.wikipedia', 12 | ] 13 | 14 | github_username = 'sphinx-contrib' 15 | github_repository = 'confluencebuilder' 16 | -------------------------------------------------------------------------------- /tests/unit-tests/test_extension.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from tests.lib.testcase import ConfluenceTestCase 5 | from tests.lib import EXT_NAME 6 | 7 | 8 | class TestConfluenceExtension(ConfluenceTestCase): 9 | def test_extension_registration(self): 10 | mock_ds = self.datasets / 'common' 11 | 12 | with self.prepare(mock_ds) as app: 13 | self.assertTrue(EXT_NAME in app.extensions) 14 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-inline-tabs/index.rst: -------------------------------------------------------------------------------- 1 | sphinx-inline-tabs 2 | ================== 3 | 4 | .. tab:: One 5 | 6 | One is an interesting number. 7 | 8 | .. tab:: Two 9 | 10 | Two is the even prime. 11 | 12 | This will break the tab set! 13 | 14 | .. tab:: Three 15 | 16 | Three is an odd prime. 17 | 18 | .. tab:: Four 19 | 20 | Four is not a perfect number. 21 | 22 | .. tab:: Five 23 | :new-set: 24 | 25 | Five is a nice number. 26 | 27 | .. tab:: Six 28 | 29 | Six is also nice. 30 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/confluence-link/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | confluence link 4 | =============== 5 | 6 | An :confluence_link:`https://example.com` inlined card. 7 | 8 | .. confluence_link:: https://www.example.org 9 | :card: embed 10 | 11 | .. confluence_link:: https://example.com 12 | :card: embed 13 | :width: 80 14 | 15 | .. confluence_link:: https://example.org 16 | :card: embed 17 | :layout: align-end 18 | 19 | .. confluence_link:: https://www.example.com 20 | :card: block 21 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/locale/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from sphinx.locale import get_translation 5 | 6 | # name of this extension's gettext catalog 7 | MESSAGE_CATALOG_NAME = 'sphinxcontrib.confluencebuilder' 8 | 9 | # translator for messages in documentation 10 | L = get_translation(MESSAGE_CATALOG_NAME) 11 | 12 | # translator for console messages 13 | C = get_translation(MESSAGE_CATALOG_NAME, 'console') 14 | -------------------------------------------------------------------------------- /tests/sample-sets/i8n/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | ] 4 | 5 | # language override 6 | language = 'cs' 7 | 8 | # use options which generate text 9 | confluence_include_search = True 10 | confluence_page_generation_notice = True 11 | confluence_sourcelink = { 12 | 'type': 'github', 13 | 'owner': 'sphinx-contrib', 14 | 'repo': 'confluencebuilder', 15 | 'container': 'doc/', 16 | 'version': 'main', 17 | 'view': 'edit', 18 | } 19 | confluence_use_index = True 20 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/excerpt/index.rst: -------------------------------------------------------------------------------- 1 | index 2 | ===== 3 | 4 | .. confluence_excerpt:: 5 | 6 | no options 7 | 8 | .. confluence_excerpt:: 9 | :name: test 10 | 11 | excerpt with name 12 | 13 | .. confluence_excerpt:: 14 | :hidden: true 15 | 16 | hidden excerpt 17 | 18 | .. confluence_excerpt:: 19 | :atlassian-macro-output-type: block 20 | 21 | explicit block excerpt 22 | 23 | .. confluence_excerpt:: 24 | :atlassian-macro-output-type: inline 25 | 26 | explicit inline excerpt 27 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/valid-substitution/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. substitution for single jira issue 7 | 8 | .. |TEST-1| jira_issue:: TEST-1 9 | 10 | |TEST-1| 11 | 12 | .. substitution for jira search 13 | 14 | .. |MY_JIRA_LIST| jira:: project = "TESTPRJ" 15 | :columns: key,summary,status,resolution 16 | :count: false 17 | :maximum-issues: 8 18 | 19 | |MY_JIRA_LIST| 20 | 21 | .. substitution for jira role 22 | 23 | .. |TEST-2| replace:: :jira:`TEST-2` 24 | 25 | |TEST-2| 26 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/build: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | DOC_DIR="$(cd -- "$(dirname "$0")" >/dev/null 2>&1; pwd -P)" 4 | BASE_DIR=$(dirname $DOC_DIR) 5 | 6 | builder= 7 | while [[ $# -gt 0 ]]; do 8 | case $1 in 9 | -*) 10 | shift 11 | ;; 12 | *) 13 | [[ -z "$builder" ]] && builder=$1 14 | shift 15 | ;; 16 | esac 17 | done 18 | [[ -z "$builder" ]] && builder=html 19 | 20 | cd $BASE_DIR 21 | exec python -m sphinx -M $builder $DOC_DIR $DOC_DIR/_build/ -E -a -W 22 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/option-lists/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#option-lists 2 | 3 | option lists 4 | ------------ 5 | 6 | -a description 1 7 | -b description 2 8 | -c arg description 3 9 | 10 | -d description 4 1 11 | 12 | - description 4 point 1 13 | 14 | - description 4 point 2 15 | 16 | description 4 2 17 | 18 | --long-option 19 | description 5 20 | 21 | --long-option=value 22 | description 6 23 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-excerpt/second.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | except-second 4 | ============= 5 | 6 | unnamed 7 | ~~~~~~~ 8 | 9 | .. confluence_excerpt_include:: !index 10 | :nopanel: true 11 | 12 | alpha 13 | ~~~~~~ 14 | 15 | .. confluence_excerpt_include:: except-main 16 | :name: alpha 17 | :nopanel: true 18 | 19 | beta 20 | ~~~~~ 21 | 22 | .. confluence_excerpt_include:: !index 23 | :name: beta 24 | 25 | charlie 26 | ~~~~~~~ 27 | 28 | .. confluence_excerpt_include:: !index 29 | :name: charlie 30 | :nopanel: true 31 | -------------------------------------------------------------------------------- /tests/sample-sets/kroki/assets/graph.dot: -------------------------------------------------------------------------------- 1 | digraph D { 2 | subgraph cluster_p { 3 | label = "Kroki"; 4 | subgraph cluster_c1 { 5 | label = "Server"; 6 | Filebeat; 7 | subgraph cluster_gc_1 { 8 | label = "Docker/Server"; 9 | Java; 10 | } 11 | subgraph cluster_gc_2 { 12 | label = "Docker/Mermaid"; 13 | "Node.js"; 14 | "Puppeteer"; 15 | "Chrome"; 16 | } 17 | } 18 | subgraph cluster_c2 { 19 | label = "CLI"; 20 | Golang; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/rubric.rst: -------------------------------------------------------------------------------- 1 | Rubric 2 | ====== 3 | 4 | reStructuredText defines a `rubric directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. rubric:: Title 9 | 10 | Output 11 | ------ 12 | 13 | The paragraph before rubric. 14 | 15 | .. rubric:: Rubric 16 | 17 | The paragraph following a rubric. 18 | 19 | 20 | .. references ------------------------------------------------------------------ 21 | 22 | .. _rubric directive: https://docutils.sourceforge.io/docs/ref/rst/directives.html#rubric 23 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/production-list/index.rst: -------------------------------------------------------------------------------- 1 | .. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=production%20list#directive-productionlist 2 | 3 | production list 4 | --------------- 5 | 6 | .. productionlist:: 7 | try_stmt: try1_stmt | try2_stmt 8 | try1_stmt: "try" ":" `suite` 9 | : ("except" [`expression` ["," `target`]] ":" `suite`)+ 10 | : ["else" ":" `suite`] 11 | : ["finally" ":" `suite`] 12 | try2_stmt: "try" ":" `suite` 13 | : "finally" ":" `suite` 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/headings/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#sections 2 | 3 | ========== 4 | header 1 5 | ========== 6 | 7 | ---------- 8 | header 2 9 | ---------- 10 | 11 | header 3 12 | ======== 13 | 14 | header 4 15 | -------- 16 | 17 | header 5 18 | ```````` 19 | 20 | header 6 21 | '''''''' 22 | 23 | header 7 24 | ........ 25 | 26 | header 8 27 | ~~~~~~~~ 28 | 29 | header 9 30 | ******** 31 | 32 | header 10 33 | +++++++++ 34 | 35 | header 11 36 | ^^^^^^^^^ 37 | 38 | header 12 39 | ========= 40 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/table-width/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | table-width 4 | ----------- 5 | 6 | = = = 7 | a b c 8 | = = = 9 | d e f 10 | = = = 11 | 12 | .. confluence_table_width:: 200px 13 | 14 | = = = 15 | a b c 16 | = = = 17 | d e f 18 | = = = 19 | 20 | .. confluence_table_width:: default 21 | 22 | = = = 23 | a b c 24 | = = = 25 | d e f 26 | = = = 27 | 28 | .. confluence_table_width:: 400px 29 | 30 | = = = 31 | a b c 32 | = = = 33 | d e f 34 | = = = 35 | 36 | .. confluence_table_width:: unset 37 | 38 | = = = 39 | a b c 40 | = = = 41 | d e f 42 | = = = 43 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/deprecated.rst: -------------------------------------------------------------------------------- 1 | Deprecated 2 | ========== 3 | 4 | Sphinx defines a `deprecated directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. deprecated:: 3.1 9 | Use :func:`spam` instead. 10 | 11 | Output 12 | ------ 13 | 14 | .. deprecated:: 3.1 15 | Use :func:`spam` instead. 16 | 17 | 18 | .. references ------------------------------------------------------------------ 19 | 20 | .. _deprecated directive: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-deprecated 21 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/excerpt/second.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | second 4 | ====== 5 | 6 | .. plain include (first excerpt) 7 | 8 | .. confluence_excerpt_include:: !index 9 | 10 | .. named excerpt 11 | 12 | .. confluence_excerpt_include:: !index 13 | :name: test 14 | 15 | .. excerpt with no panel 16 | 17 | .. confluence_excerpt_include:: !index 18 | :nopanel: true 19 | 20 | .. external page (inside space) 21 | 22 | .. confluence_excerpt_include:: My excerpt page 23 | 24 | .. external page (outside space) 25 | 26 | .. confluence_excerpt_include:: TEST:My excerpt page2 27 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/bibliographic/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#bibliographic-fields 2 | 3 | bibliographic fields 4 | -------------------- 5 | 6 | :author: author 7 | :address: 123 address 8 | :contact: example@example.com 9 | :authors: author 10 | :organization: organization 11 | :date: 2016-07-06 13:21:00 12 | :status: alpha 13 | :revision: 7302 14 | :version: 8 15 | :copyright: copyright 16 | :field name: field 01 17 | :field name 2: 18 | field 02 19 | 20 | - test 1 21 | - test 2 22 | :field name: field 03 23 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/versionadded.rst: -------------------------------------------------------------------------------- 1 | Version added 2 | ============= 3 | 4 | Sphinx defines a `versionadded directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. versionadded:: 2.5 9 | The *spam* parameter. 10 | 11 | Output 12 | ------ 13 | 14 | .. versionadded:: 2.5 15 | The *spam* parameter. 16 | 17 | 18 | .. references ------------------------------------------------------------------ 19 | 20 | .. _versionadded directive: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-versionadded 21 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-card/second.rst: -------------------------------------------------------------------------------- 1 | second page 📇 2 | ============== 3 | 4 | A second page. 5 | 6 | 7 | .. confluence_link:: https://jdknight.atlassian.net/wiki/spaces/TEST/pages/2701230351/confluence-card 8 | :card: block 9 | 10 | 11 | .. confluence_link:: https://jdknight.atlassian.net/wiki/spaces/TEST/pages/2701230351 12 | :card: block 13 | 14 | .. confluence_link:: https://jdknight.atlassian.net/wiki/pages/viewinfo.action?pageId=2703294477 15 | :card: block 16 | 17 | .. confluence_link:: https://jdknight.atlassian.net/wiki/x/DQAhoQ 18 | :card: block 19 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/jira/valid/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | jira 4 | ---- 5 | 6 | .. single jira issue; no explicit server 7 | 8 | .. jira_issue:: TEST-123 9 | 10 | .. jira search; multiple options with server mapping 11 | 12 | .. jira:: project = "TEST" 13 | :columns: key,summary,updated,status,resolution 14 | :count: false 15 | :maximum-issues: 5 16 | :server: test-jira-server 17 | 18 | .. single jira issue; with explicit server override 19 | 20 | .. jira_issue:: TEST-1 21 | :server-id: 00000000-0000-9876-0000-000000000000 22 | :server-name: overwritten-server-name 23 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/versionchanged.rst: -------------------------------------------------------------------------------- 1 | Version changed 2 | =============== 3 | 4 | Sphinx defines a `versionchanged directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. versionchanged:: 2.5 9 | The *spam* parameter. 10 | 11 | Output 12 | ------ 13 | 14 | .. versionchanged:: 2.5 15 | The *spam* parameter. 16 | 17 | 18 | .. references ------------------------------------------------------------------ 19 | 20 | .. _versionchanged directive: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-versionchanged 21 | -------------------------------------------------------------------------------- /tests/sample-sets/latex/conf.py: -------------------------------------------------------------------------------- 1 | extensions = [ 2 | 'sphinxcontrib.confluencebuilder', 3 | 'sphinx.ext.imgmath', 4 | ] 5 | 6 | imgmath_font_size = 14 7 | imgmath_image_format = 'svg' 8 | imgmath_use_preview = True 9 | 10 | # Various Marketplace LaTeX addons: 11 | # 12 | # confluence_latex_macro = { 13 | # 'block-macro': 'mathblock', 14 | # 'inline-macro': 'mathinline', 15 | # 'inline-macro-param': 'body', 16 | # } 17 | # confluence_latex_macro = 'latex-formatting' 18 | # confluence_latex_macro = 'mathblock' 19 | # confluence_latex_macro = 'orah-latex' 20 | # confluence_latex_macro = None 21 | -------------------------------------------------------------------------------- /tests/sample-sets/kroki/assets/diagram.ditaa: -------------------------------------------------------------------------------- 1 | +--------+ 2 | | | 3 | | User | 4 | | | 5 | +--------+ 6 | ^ 7 | request | 8 | v 9 | +-------------+ 10 | | | 11 | | Kroki | 12 | | |---+ 13 | +-------------+ | 14 | ^ ^ | inflate 15 | | | | 16 | v +---------+ 17 | +-------------+ 18 | | | 19 | | Ditaa | 20 | | |----+ 21 | +-------------+ | 22 | ^ | process 23 | | | 24 | +-------+ 25 | -------------------------------------------------------------------------------- /doc/.fresh-start: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # 4 | # provides a fresh/clean initial documentation files 5 | # 6 | args=() 7 | args+=(--project="Sphinx Confluence Builder") 8 | args+=(--author="Anthony Shaw and Contributors") 9 | 10 | # other options 11 | args+=(--batchfile) 12 | args+=(--makefile) 13 | args+=(--quiet) 14 | 15 | ## 16 | 17 | if [ -z "$SPHINX_QUICKSTART" ]; then 18 | SPHINX_QUICKSTART=sphinx-quickstart 19 | fi 20 | 21 | echo "Generating initial documentation structure..." 22 | if ! $SPHINX_QUICKSTART "${args[@]}"; then 23 | echo "error: unable to perform sphinx-quickstart" 24 | exit 1 25 | fi 26 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/rst-v1-first.rst: -------------------------------------------------------------------------------- 1 | .. confluence_metadata:: 2 | :editor: v1 3 | 4 | .. _main-rst-v1: 5 | 6 | reStructuredText v1 First 7 | ========================= 8 | 9 | .. contents:: 10 | :local: 11 | 12 | .. _main-rst-v1-extra: 13 | 14 | An Extra Header 15 | --------------- 16 | 17 | pre-content 18 | 19 | .. _main-rst-v1-subcontent: 20 | 21 | post-content 22 | 23 | .. _main-rst-v1-extra2: 24 | 25 | An Extra Header 26 | --------------- 27 | 28 | :ref:`main-rst-v1` 29 | 30 | :ref:`main-rst-v1-extra` 31 | 32 | :ref:`content ` 33 | 34 | :ref:`main-rst-v1-extra2` 35 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/rst-v2-first.rst: -------------------------------------------------------------------------------- 1 | .. confluence_metadata:: 2 | :editor: v2 3 | 4 | .. _main-rst-v2: 5 | 6 | reStructuredText v2 First 7 | ========================= 8 | 9 | .. contents:: 10 | :local: 11 | 12 | .. _main-rst-v2-extra: 13 | 14 | An Extra Header 15 | --------------- 16 | 17 | pre-content 18 | 19 | .. _main-rst-v2-subcontent: 20 | 21 | post-content 22 | 23 | .. _main-rst-v2-extra2: 24 | 25 | An Extra Header 26 | --------------- 27 | 28 | :ref:`main-rst-v2` 29 | 30 | :ref:`main-rst-v2-extra` 31 | 32 | :ref:`content ` 33 | 34 | :ref:`main-rst-v2-extra2` 35 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/reportbuilder.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from sphinx.builders import Builder 5 | from sphinxcontrib.confluencebuilder.config.checks import validate_configuration 6 | 7 | 8 | class ConfluenceReportBuilder(Builder): 9 | name = 'internal-confluence-report' 10 | 11 | def __init__(self, app, env): 12 | super().__init__(app, env) 13 | self._verbose = app.verbosity 14 | 15 | def init(self): 16 | validate_configuration(self) 17 | self.config.sphinx_verbosity = self._verbose 18 | -------------------------------------------------------------------------------- /doc/guide-highlight-default.rst: -------------------------------------------------------------------------------- 1 | Configuring the default highlighter 2 | =================================== 3 | 4 | Sphinx's default highlight language is ``python``. For any documentation 5 | processed by this extension that does not have an explicit language type 6 | provided will fallback to Sphinx's default. 7 | 8 | Users wishing to override the default highlight language can use the 9 | :lref:`confluence_lang_overrides` configuration. For example, adding the 10 | following option inside a project's ``conf.py`` file: 11 | 12 | .. code-block:: python 13 | 14 | confluence_lang_overrides = { 15 | 'default': 'none', 16 | } 17 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/doctest.rst: -------------------------------------------------------------------------------- 1 | Doctest Blocks 2 | ============== 3 | 4 | reStructuredText provide `doctest blocks`_ are interactive Python sessions 5 | cut-and-pasted into docstrings. Example markup is as follows: 6 | 7 | .. code-block:: none 8 | 9 | >>> print 'this is a Doctest block' 10 | this is a Doctest block 11 | 12 | Output 13 | ------ 14 | 15 | >>> print 'this is a Doctest block' 16 | this is a Doctest block 17 | 18 | .. references ------------------------------------------------------------------ 19 | 20 | .. _doctest blocks: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#doctest-blocks 21 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/manpage.rst: -------------------------------------------------------------------------------- 1 | Manual Page 2 | =========== 3 | 4 | Sphinx's `manpage`_ should build off a configured ``manpages_url`` value: 5 | 6 | .. code-block:: none 7 | :caption: conf.py 8 | 9 | manpages_url = 'https://example.org/{path}' 10 | 11 | Example markup to reference a manpage is as follows: 12 | 13 | .. code-block:: none 14 | 15 | :manpage:`ls(1)` 16 | 17 | Output 18 | ------ 19 | 20 | :manpage:`ls(1)` 21 | 22 | 23 | .. references ------------------------------------------------------------------ 24 | 25 | .. _manpage: https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-manpage 26 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/epigraph.rst: -------------------------------------------------------------------------------- 1 | Epigraph 2 | ======== 3 | 4 | reStructuredText defines a `epigraph directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. epigraph:: 9 | 10 | No matter where you go, there you are. 11 | 12 | -- Buckaroo Banzai 13 | 14 | Output 15 | ------ 16 | 17 | .. epigraph:: 18 | 19 | No matter where you go, there you are. 20 | 21 | -- Buckaroo Banzai 22 | 23 | 24 | .. references ------------------------------------------------------------------ 25 | 26 | .. _epigraph directive: https://docutils.sourceforge.io/docs/ref/rst/directives.html#epigraph 27 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-code-block-theme/index.rst: -------------------------------------------------------------------------------- 1 | confluence-code-block-theme 2 | =========================== 3 | 4 | .. code-block:: python 5 | 6 | def main(): 7 | print 'Hello, world!' 8 | 9 | if __name__ == '__main__': 10 | main() 11 | 12 | .. code-block:: python 13 | :class: confluence-theme-FadeToGrey 14 | 15 | def main(): 16 | print 'Hello, world!' 17 | 18 | if __name__ == '__main__': 19 | main() 20 | 21 | .. code-block:: python 22 | :class: confluence-theme-eclipse 23 | 24 | def main(): 25 | print 'Hello, world!' 26 | 27 | if __name__ == '__main__': 28 | main() 29 | -------------------------------------------------------------------------------- /tests/unit-tests/test_util_detect_cloud.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from sphinxcontrib.confluencebuilder.util import detect_cloud 5 | import unittest 6 | 7 | 8 | class TestConfluenceUtilDetectCloud(unittest.TestCase): 9 | def test_util_detect_cloud(self): 10 | self.assertTrue(detect_cloud('https://ex.atlassian.net/wiki/')) 11 | self.assertTrue(detect_cloud('https://ex.atlassian.net:443/wiki/')) 12 | self.assertFalse(detect_cloud('https://www.example.org/wiki/')) 13 | self.assertFalse(detect_cloud('https://www.example.org:443/wiki/')) 14 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/md-v1-second.md: -------------------------------------------------------------------------------- 1 | :::{confluence_metadata} 2 | :editor: v1 3 | ::: 4 | 5 | # Markdown v1 Second 6 | 7 | ## Markdown v1 Second sub-heading 8 | 9 | ## Markdown v1 Second sub-heading [(jump above)](#markdown-v1-second-sub-heading) 10 | 11 | [](#markdown-v1-second) 12 | 13 | [](#markdown-v1-second-sub-heading) 14 | 15 | [](#markdown-v1-second-sub-heading-jump-above) 16 | 17 | [link text 1](./md-v1-first.md#markdown-v1-first) 18 | 19 | [link text 2](./md-v1-first.md#markdown-v1-first-sub-heading) 20 | 21 | [link text 3](./md-v2-first.md#markdown-v2-first) 22 | 23 | [link text 4](./md-v2-first.md#markdown-v2-first-sub-heading) 24 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/references/md-v2-second.md: -------------------------------------------------------------------------------- 1 | :::{confluence_metadata} 2 | :editor: v2 3 | ::: 4 | 5 | # Markdown v2 Second 6 | 7 | ## Markdown v2 Second sub-heading 8 | 9 | ## Markdown v2 Second sub-heading [(jump above)](#markdown-v2-second-sub-heading) 10 | 11 | [](#markdown-v2-second) 12 | 13 | [](#markdown-v2-second-sub-heading) 14 | 15 | [](#markdown-v2-second-sub-heading-jump-above) 16 | 17 | [link text a](./md-v2-first.md#markdown-v2-first) 18 | 19 | [link text b](./md-v2-first.md#markdown-v2-first-sub-heading) 20 | 21 | [link text c](./md-v1-first.md#markdown-v1-first) 22 | 23 | [link text d](./md-v1-first.md#markdown-v1-first-sub-heading) 24 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/highlights.rst: -------------------------------------------------------------------------------- 1 | Highlights 2 | ========== 3 | 4 | reStructuredText defines a `highlights directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. highlights:: 9 | 10 | No matter where you go, there you are. 11 | 12 | -- Buckaroo Banzai 13 | 14 | Output 15 | ------ 16 | 17 | .. highlights:: 18 | 19 | No matter where you go, there you are. 20 | 21 | -- Buckaroo Banzai 22 | 23 | 24 | .. references ------------------------------------------------------------------ 25 | 26 | .. _highlights directive: https://docutils.sourceforge.io/docs/ref/rst/directives.html#highlights 27 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/pull-quote.rst: -------------------------------------------------------------------------------- 1 | Pull-quote 2 | ========== 3 | 4 | reStructuredText defines a `pull-quote directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. pull-quote:: 9 | 10 | No matter where you go, there you are. 11 | 12 | -- Buckaroo Banzai 13 | 14 | Output 15 | ------ 16 | 17 | .. pull-quote:: 18 | 19 | No matter where you go, there you are. 20 | 21 | -- Buckaroo Banzai 22 | 23 | 24 | .. references ------------------------------------------------------------------ 25 | 26 | .. _pull-quote directive: https://docutils.sourceforge.io/docs/ref/rst/directives.html#pull-quote 27 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/literal/literal-includes.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | literal include tests 4 | --------------------- 5 | 6 | .. highlight:: c 7 | 8 | .. literalinclude:: ../../../assets/example.c 9 | 10 | .. highlight:: cpp 11 | 12 | .. literalinclude:: ../../../assets/example.cpp 13 | 14 | .. literalinclude:: ../../../assets/example.html 15 | :language: html 16 | :linenos: 17 | 18 | .. highlight:: java 19 | 20 | .. literalinclude:: ../../../assets/example.java 21 | 22 | .. highlight:: py 23 | 24 | .. literalinclude:: ../../../assets/example.py 25 | 26 | .. literalinclude:: ../../../assets/example.py 27 | :pyobject: main 28 | :lineno-match: 29 | -------------------------------------------------------------------------------- /tests/unit-tests/test_report_builder.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from sphinxcontrib.confluencebuilder.reportbuilder import ConfluenceReportBuilder 5 | from tests.lib.testcase import ConfluenceTestCase 6 | from tests.lib.testcase import setup_builder 7 | 8 | 9 | class TestReportBuilder(ConfluenceTestCase): 10 | @setup_builder(ConfluenceReportBuilder.name) 11 | def test_report_builder(self): 12 | # sanity check that this builder can be prepared 13 | with self.prepare(self.datasets / 'minimal') as app: 14 | self.assertIsInstance(app.builder, ConfluenceReportBuilder) 15 | -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | 3 | # ignore optional jupyter_sphinx module 4 | [mypy-jupyter_sphinx.*] 5 | ignore_missing_imports = True 6 | 7 | # ignore optional nbsphinx module 8 | [mypy-nbsphinx.*] 9 | ignore_missing_imports = True 10 | 11 | # ignore optional sphinx_diagrams module 12 | [mypy-sphinx_diagrams.*] 13 | ignore_missing_imports = True 14 | 15 | # ignore optional sphinx_gallery module 16 | [mypy-sphinx_gallery.*] 17 | ignore_missing_imports = True 18 | 19 | # ignore optional sphinx_toolbox module 20 | [mypy-sphinx_toolbox.*] 21 | ignore_missing_imports = True 22 | 23 | # ignore optional sphinxcontrib.mermaid module 24 | [mypy-sphinxcontrib.mermaid.*] 25 | ignore_missing_imports = True 26 | -------------------------------------------------------------------------------- /tests/sample-sets/autodocs/autodocs.rst: -------------------------------------------------------------------------------- 1 | sphinx.ext.autodocs 2 | =================== 3 | 4 | This page shows an example of various autodoc capabilities. 5 | 6 | autodocs - automodule 7 | --------------------- 8 | 9 | The automodule directive: 10 | 11 | .. automodule:: Hello 12 | :members: 13 | 14 | ---- 15 | 16 | The autoclass directive: 17 | 18 | .. autoclass:: Hello 19 | :members: say_hello 20 | :noindex: 21 | 22 | .. method:: foo(arg1, arg2) 23 | :noindex: 24 | 25 | An overwritten description of the method ``foo``. 26 | 27 | ---- 28 | 29 | The autofunction directive: 30 | 31 | .. currentmodule:: func 32 | 33 | .. autofunction:: my_custom_function 34 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/admonitions/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#admonitions 2 | 3 | admonitions 4 | ----------- 5 | 6 | .. admonition:: my-title 7 | 8 | admonition content 9 | 10 | .. attention:: 11 | 12 | attention content 13 | 14 | .. caution:: 15 | 16 | caution content 17 | 18 | .. danger:: 19 | 20 | danger content 21 | 22 | .. error:: 23 | 24 | error content 25 | 26 | .. hint:: 27 | 28 | hint content 29 | 30 | .. important:: 31 | 32 | important content 33 | 34 | .. note:: 35 | 36 | note content 37 | 38 | .. tip:: 39 | 40 | tip content 41 | 42 | .. warning:: 43 | 44 | warning content 45 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/transition.rst: -------------------------------------------------------------------------------- 1 | Transition 2 | ========== 3 | 4 | reStructuredText supports documents with `transitions`_. Example markup 5 | is as follows: 6 | 7 | .. code-block:: none 8 | 9 | A transition (or horizontal rule) can be used to seperate content. 10 | 11 | ---- 12 | 13 | This is more content. 14 | 15 | Output 16 | ------ 17 | 18 | A transition (or horizontal rule) can be used to seperate content. 19 | 20 | ---- 21 | 22 | This is more content. 23 | 24 | 25 | .. references ------------------------------------------------------------------ 26 | 27 | .. _transitions: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#transitions 28 | -------------------------------------------------------------------------------- /doc/.spelling: -------------------------------------------------------------------------------- 1 | Atlassian 2 | Bitbucket 3 | Changelog 4 | Codeberg 5 | Cygwin 6 | Dropdowns 7 | Jira 8 | MiKTeX 9 | MinGW 10 | OAuth 11 | SSO 12 | SVG 13 | TOC 14 | addons 15 | adf 16 | api 17 | atlassian 18 | bgColor 19 | boolean 20 | borderColor 21 | borderStyle 22 | borderWidth 23 | customizable 24 | docname 25 | docutils 26 | dryrun 27 | dvipng 28 | dvisvgm 29 | enablement 30 | hlist 31 | hostname 32 | inlined 33 | intersphinx 34 | minimalistic 35 | passthrough 36 | plaintext 37 | plantuml 38 | pre 39 | reStructuredText 40 | renderable 41 | singlebuilder 42 | sphinxcontrib 43 | sphinxnotes 44 | striked 45 | strikethrough 46 | strikethroughs 47 | titleBGColor 48 | titleColor 49 | unitless 50 | virtualenv 51 | yaml 52 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-click/hello_world.py: -------------------------------------------------------------------------------- 1 | import click 2 | 3 | 4 | @click.group() 5 | def greet(): 6 | """A sample command group.""" 7 | 8 | 9 | @greet.command() 10 | def test(): 11 | """test command 12 | 13 | \b 14 | a: line one 15 | b: line two 16 | 17 | .. code-block:: text 18 | 19 | \b 20 | { 21 | "field1": "value1", 22 | "field2": "value2" 23 | } 24 | """ 25 | 26 | 27 | @greet.command() 28 | def test2(): 29 | """test command 30 | 31 | \b 32 | zzz 33 | a: line one 34 | aaa 35 | b: line two 36 | sub_b: line three 37 | aasf 38 | """ 39 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/index.rst: -------------------------------------------------------------------------------- 1 | reStructuredText 2 | ================ 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | admonitions 8 | bibliographic 9 | block-quotes 10 | bullet-list 11 | citation 12 | code 13 | csv-table 14 | definition-list 15 | doctest 16 | enumerated-list 17 | epigraph 18 | footnote 19 | highlights 20 | images 21 | indentation 22 | line-block 23 | list-table 24 | literal-blocks 25 | markup 26 | math 27 | option-list 28 | parsed-literal-block 29 | pull-quote 30 | references 31 | rubric 32 | sections 33 | sidebar 34 | table 35 | toc 36 | topic 37 | transition 38 | -------------------------------------------------------------------------------- /tests/sample-sets/confluence-excerpt/index.rst: -------------------------------------------------------------------------------- 1 | except-main 2 | =========== 3 | 4 | unnamed 5 | ~~~~~~~ 6 | 7 | .. confluence_excerpt:: 8 | :atlassian-macro-output-type: inline 9 | 10 | This is **unnamed**. 11 | 12 | alpha 13 | ~~~~~ 14 | 15 | .. confluence_excerpt:: 16 | :name: alpha 17 | :atlassian-macro-output-type: inline 18 | 19 | This is **alpha**. 20 | 21 | beta 22 | ~~~~ 23 | 24 | .. confluence_excerpt:: 25 | :name: beta 26 | :atlassian-macro-output-type: block 27 | 28 | This is **beta**. 29 | 30 | charlie 31 | ~~~~~~~ 32 | 33 | .. confluence_excerpt:: 34 | :name: charlie 35 | :hidden: true 36 | :atlassian-macro-output-type: block 37 | 38 | This is **charlie**. 39 | -------------------------------------------------------------------------------- /doc/make.bat: -------------------------------------------------------------------------------- 1 | @echo OFF 2 | setlocal 3 | REM Copyright Sphinx Confluence Builder Contributors (AUTHORS) 4 | 5 | REM find python 6 | where /q python 7 | if errorlevel 1 ( 8 | echo.Python cannot be found. Ensure it is installed and placed in your PATH. 9 | exit /b 10 | ) 11 | 12 | REM find root directory to invoke in, to ensure the version of the project can 13 | REM be extracted from the source 14 | for %%i in ("%~dp0..") do set "root_dir=%%~fi" 15 | 16 | REM default html builder 17 | set builder=%1 18 | if "%builder%" == "" ( 19 | set builder=html 20 | ) 21 | 22 | REM invoke build 23 | pushd %root_dir% 24 | set errorlevel= 25 | python -m sphinx -M %builder% %~dp0 %~dp0_build -E -a -W 26 | popd 27 | 28 | exit /b %errorlevel% 29 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/topic.rst: -------------------------------------------------------------------------------- 1 | Topic 2 | ===== 3 | 4 | reStructuredText defines a `topic directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. topic:: Topic Title 9 | 10 | Subsequent indented lines comprise 11 | the body of the topic, and are 12 | interpreted as body elements. 13 | 14 | Output 15 | ------ 16 | 17 | .. topic:: Topic Title 18 | 19 | Subsequent indented lines comprise 20 | the body of the topic, and are 21 | interpreted as body elements. 22 | 23 | 24 | .. references ------------------------------------------------------------------ 25 | 26 | .. _topic directive: https://docutils.sourceforge.io/docs/ref/rst/directives.html#topic 27 | -------------------------------------------------------------------------------- /tests/sample-sets/config.py: -------------------------------------------------------------------------------- 1 | # Base sample set configuration 2 | # 3 | # Developers can add configuration items to be used for a given sample 4 | # project. This is primarily to help add authentication information, 5 | # allow various sample projects to be published to a given Confluence 6 | # instance (without having to copy/paste authentication across multiple 7 | # sample `conf.py` files). 8 | # 9 | # (developer Git helper) 10 | # git update-index --assume-unchanged tests/sample-sets/config.py 11 | 12 | # (quick reference of common options) 13 | # confluence_publish = True 14 | # confluence_publish_token = '' 15 | # confluence_server_pass = '' 16 | # confluence_server_url = '' 17 | # confluence_server_user = '' 18 | # confluence_space_key = '' 19 | -------------------------------------------------------------------------------- /tests/validation-sets/extensions/inheritance_diagram.rst: -------------------------------------------------------------------------------- 1 | sphinx.ext.inheritance_diagram 2 | ============================== 3 | 4 | .. hint:: 5 | 6 | This requires registering the ``sphinx.ext.inheritance_diagram`` extension 7 | in the documentation's configuration file. 8 | 9 | This page shows an example of various inheritance_diagram_ capabilities. 10 | 11 | Output 12 | ------ 13 | 14 | An example of an inheritance diagram is as follows: 15 | 16 | .. inheritance-diagram:: sphinx.ext.inheritance_diagram.InheritanceDiagram 17 | :parts: 1 18 | 19 | 20 | .. references ------------------------------------------------------------------ 21 | 22 | .. _inheritance_diagram: https://www.sphinx-doc.org/en/master/usage/extensions/inheritance.html 23 | -------------------------------------------------------------------------------- /tests/sample-sets/jinja/conf.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | from datetime import timezone 3 | from pathlib import Path 4 | import json 5 | 6 | 7 | extensions = [ 8 | 'sphinx_jinja', 9 | 'sphinxcontrib.confluencebuilder', 10 | ] 11 | 12 | 13 | # load sample data 14 | test_dir = Path(__file__).parent.resolve() 15 | data = test_dir / 'test.json' 16 | 17 | with data.open('rb') as f: 18 | data = json.load(f) 19 | 20 | for feature in data['features']: 21 | raw_sec = float(feature['properties']['time'])/1000 22 | ts = datetime.fromtimestamp(raw_sec, tz=timezone.utc) 23 | feature['properties']['time_str'] = ts.strftime('%Y-%m-%dT%H:%M:%SZ') 24 | 25 | # inject data for our directive 26 | jinja_contexts = { 27 | 'ctx': data, 28 | } 29 | -------------------------------------------------------------------------------- /tests/sample-sets/orphan/pagea.rst: -------------------------------------------------------------------------------- 1 | non-orphan page 2 | =============== 3 | 4 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sit 5 | amet condimentum libero. Sed at mollis turpis, ac sagittis nisi. Curabitur 6 | fringilla tortor at metus aliquet finibus. Vivamus rhoncus vitae velit non 7 | vulputate. Nulla dictum diam eget volutpat vestibulum. Etiam leo tellus, 8 | mollis vel venenatis sit amet, efficitur nec justo. Duis congue lacus leo, 9 | sit amet cursus tellus pharetra non. Curabitur quis eros nisi. Vivamus ac 10 | mi et ante facilisis pretium. Suspendisse dui nulla, bibendum non varius nec, 11 | semper ut tellus. Phasellus purus lorem, sagittis vel ipsum sed, volutpat 12 | imperdiet lorem. Nulla ac enim feugiat, iaculis nunc ac, sodales magna. 13 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/list-table/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#list-table 2 | 3 | list table 4 | ---------- 5 | 6 | .. list-table:: name1 7 | :header-rows: 1 8 | 9 | * - key 10 | - value 11 | * - 1 12 | - 2 13 | * - 3 14 | - 4 15 | 16 | .. list-table:: name2 17 | :header-rows: 2 18 | 19 | * - key1 20 | - value1 21 | - description1 22 | * - key2 23 | - value2 24 | - description2 25 | * - 1 26 | - 2 27 | - 3 28 | * - 4 29 | - 5 30 | - 6 31 | 32 | .. list-table:: name3 33 | :header-rows: 1 34 | :stub-columns: 1 35 | 36 | * - key 37 | - value 38 | * - a 39 | - 4 40 | * - b 41 | - 8 42 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/block-quotes.rst: -------------------------------------------------------------------------------- 1 | Block Quotes 2 | ============ 3 | 4 | reStructuredText defines a `block quote`, a text block that is indented 5 | relative to the preceding text, without preceding markup indicating it 6 | to be a literal block or other content. Example markup is as follows: 7 | 8 | .. code-block:: none 9 | 10 | "It is my business to know things. That is my trade." 11 | 12 | -- Sherlock Holmes 13 | 14 | Output 15 | ------ 16 | 17 | "It is my business to know things. That is my trade." 18 | 19 | -- Sherlock Holmes 20 | 21 | 22 | .. references ------------------------------------------------------------------ 23 | 24 | .. _block quote: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#block-quotes 25 | -------------------------------------------------------------------------------- /tests/unit-tests/test_rst_transitions.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from tests.lib.parse import parse 5 | from tests.lib.testcase import ConfluenceTestCase 6 | from tests.lib.testcase import setup_builder 7 | 8 | 9 | class TestConfluenceRstTransitions(ConfluenceTestCase): 10 | @classmethod 11 | def setUpClass(cls): 12 | super().setUpClass() 13 | 14 | cls.dataset = cls.datasets / 'rst' / 'transitions' 15 | 16 | @setup_builder('confluence') 17 | def test_storage_rst_transitions_default(self): 18 | out_dir = self.build(self.dataset) 19 | 20 | with parse('index', out_dir) as data: 21 | hr = data.find('hr') 22 | self.assertIsNotNone(hr) 23 | -------------------------------------------------------------------------------- /tests/validation-sets/extensions/autosummary.rst: -------------------------------------------------------------------------------- 1 | sphinx.ext.autosummary 2 | ====================== 3 | 4 | .. hint:: 5 | 6 | This requires registering the ``sphinx.ext.autosummary`` extension in the 7 | documentation's configuration file. 8 | 9 | This page shows an example of various autosummary_ capabilities. 10 | 11 | An example of a local docstring: 12 | 13 | .. autosummary:: 14 | 15 | Hello 16 | 17 | An example of an external module docstring: 18 | 19 | .. currentmodule:: sphinx 20 | 21 | .. autosummary:: 22 | 23 | environment.BuildEnvironment 24 | util.relative_uri 25 | 26 | 27 | .. references ------------------------------------------------------------------ 28 | 29 | .. _autosummary: https://www.sphinx-doc.org/en/master/usage/extensions/autosummary.html 30 | -------------------------------------------------------------------------------- /doc/contents.rst: -------------------------------------------------------------------------------- 1 | Documentation contents 2 | ====================== 3 | 4 | .. only:: latex 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | 9 | introduction 10 | 11 | .. toctree:: 12 | :maxdepth: 1 13 | 14 | install 15 | 16 | .. toctree:: 17 | :maxdepth: 2 18 | 19 | tutorial 20 | configuration 21 | 22 | .. toctree:: 23 | :maxdepth: 1 24 | 25 | builders 26 | directives 27 | roles 28 | events 29 | 30 | .. toctree:: 31 | :maxdepth: 2 32 | 33 | features 34 | tips 35 | guides 36 | advanced 37 | 38 | .. toctree:: 39 | :maxdepth: 1 40 | 41 | changelog 42 | 43 | .. only:: builder_html or builder_dirhtml 44 | 45 | Indices and tables 46 | ================== 47 | 48 | * :ref:`genindex` 49 | * :ref:`search` 50 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/index.rst: -------------------------------------------------------------------------------- 1 | Sphinx 2 | ====== 3 | 4 | This page shows the usage of Sphinx's `table of contents`_. Example markup is 5 | as follows: 6 | 7 | .. code-block:: none 8 | 9 | .. toctree:: 10 | :maxdepth: 1 11 | 12 | doca 13 | docb 14 | docc 15 | 16 | Output 17 | ------ 18 | 19 | .. toctree:: 20 | :caption: Table of Contents 21 | :maxdepth: 1 22 | 23 | code 24 | deprecated 25 | download 26 | glossary 27 | hlist 28 | manpage 29 | production-list 30 | seealso 31 | versionadded 32 | versionchanged 33 | 34 | 35 | .. references ------------------------------------------------------------------ 36 | 37 | .. _table of contents: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#table-of-contents 38 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/line-block.rst: -------------------------------------------------------------------------------- 1 | Line block 2 | ========== 3 | 4 | reStructuredText supports documents with `line blocks`_. Example markup 5 | is as follows: 6 | 7 | .. code-block:: none 8 | 9 | | Lend us a couple of bob till Thursday. 10 | | I'm absolutely skint. 11 | | But I'm expecting a postal order and I can pay you back 12 | as soon as it comes. 13 | | Love, Ewan. 14 | 15 | Output 16 | ------ 17 | 18 | | Lend us a couple of bob till Thursday. 19 | | I'm absolutely skint. 20 | | But I'm expecting a postal order and I can pay you back 21 | as soon as it comes. 22 | | Love, Ewan. 23 | 24 | 25 | .. references ------------------------------------------------------------------ 26 | 27 | .. _line blocks: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#line-blocks 28 | -------------------------------------------------------------------------------- /tests/unit-tests/test_rst_raw.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from tests.lib.parse import parse 5 | from tests.lib.testcase import ConfluenceTestCase 6 | from tests.lib.testcase import setup_builder 7 | 8 | 9 | class TestConfluenceRstRaw(ConfluenceTestCase): 10 | @classmethod 11 | def setUpClass(cls): 12 | super().setUpClass() 13 | 14 | cls.dataset = cls.datasets / 'rst' / 'raw-storage' 15 | 16 | @setup_builder('confluence') 17 | def test_storage_rst_raw_default(self): 18 | out_dir = self.build(self.dataset) 19 | 20 | with parse('index', out_dir) as data: 21 | strong = data.find('strong') 22 | self.assertIsNotNone(strong) 23 | self.assertEqual(strong.text, 'raw content') 24 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/markup.rst: -------------------------------------------------------------------------------- 1 | Markup 2 | ====== 3 | 4 | This extension supports a series of `inline markup`_ defined in reStructuredText 5 | and handled by the Sphinx engine. Example markup is as follows: 6 | 7 | .. code-block:: none 8 | 9 | This is **strong emphasis** text. 10 | 11 | Output 12 | ------ 13 | 14 | This is *emphasized* text. 15 | 16 | This is **strong emphasis** text. 17 | 18 | This is `interpreted` text. 19 | 20 | This text is an example of ``inline literals``. 21 | 22 | This is :sub:`subscript` text. 23 | 24 | This is :sup:`superscript` text. 25 | 26 | This is an :guilabel:`&example` guilabel. 27 | 28 | 29 | .. references ------------------------------------------------------------------ 30 | 31 | .. _inline markup: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#inline-markup 32 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/svg/index.rst: -------------------------------------------------------------------------------- 1 | svgs 2 | ==== 3 | 4 | .. normal image processing 5 | 6 | .. image:: svg.svg 7 | 8 | .. image:: svg-none.svg 9 | 10 | 11 | .. doctype should be injected into this document 12 | 13 | .. image:: svg-doctype.svg 14 | 15 | 16 | .. viewbox sizes should be added into height/width 17 | 18 | .. image:: svg-viewbox.svg 19 | 20 | 21 | .. applying length/scale options into the svgs 22 | 23 | .. image:: svg.svg 24 | :width: 75px 25 | 26 | .. image:: svg.svg 27 | :height: 2in 28 | 29 | .. image:: svg.svg 30 | :height: 50px 31 | :width: 100pc 32 | 33 | .. image:: svg.svg 34 | :scale: 200% 35 | :width: 100px 36 | 37 | 38 | .. applying length/scale options based on viewbox 39 | 40 | .. image:: svg-viewbox.svg 41 | :width: 50px 42 | 43 | .. image:: svg-viewbox.svg 44 | :height: 200px 45 | -------------------------------------------------------------------------------- /tests/sample-sets/kroki/index.rst: -------------------------------------------------------------------------------- 1 | kroki 2 | ===== 3 | 4 | Examples using kroki: 5 | 6 | ---- 7 | 8 | .. kroki:: 9 | :type: plantuml 10 | :caption: caption of diagram 11 | 12 | bar -> baz 13 | 14 | ---- 15 | 16 | .. |diagram| kroki:: plantuml svg 17 | 18 | bar -> baz 19 | 20 | Hello |diagram| kroki world 21 | 22 | ---- 23 | 24 | .. kroki:: svg 25 | :type: mermaid 26 | :class: graph 27 | 28 | graph TD 29 | A[ Anyone ] 30 | 31 | ---- 32 | 33 | .. kroki:: graphviz assets/graph.dot png 34 | :options: 35 | layout: neato 36 | graph-attribute-label: My favorite graph 37 | node-attribute-shape: rect 38 | 39 | ---- 40 | 41 | .. kroki:: png assets/diagram.puml 42 | :align: center 43 | :caption: on *center* 44 | 45 | ---- 46 | 47 | .. kroki:: assets/diagram.ditaa 48 | :align: right 49 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/panel/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | panel 4 | ===== 5 | 6 | .. confluence_panel:: 7 | 8 | plain content 9 | 10 | .. confluence_panel:: 11 | :bg-color: #ee0000 12 | 13 | with background color 14 | 15 | .. confluence_panel:: 16 | :border-color: #00ee00 17 | 18 | with border color 19 | 20 | .. confluence_panel:: 21 | :border-style: dashed 22 | 23 | with border style 24 | 25 | .. confluence_panel:: 26 | :border-width: 12 27 | 28 | with border width content 29 | 30 | .. confluence_panel:: 31 | :title: my title 32 | 33 | with title content 34 | 35 | .. confluence_panel:: 36 | :title: dummy 37 | :title-bg-color: #0000ee 38 | 39 | with title background color 40 | 41 | .. confluence_panel:: 42 | :title: dummy 43 | :title-color: #ee00ee 44 | 45 | with title color 46 | -------------------------------------------------------------------------------- /tests/validation-sets/restructuredtext/list-table.rst: -------------------------------------------------------------------------------- 1 | List Table 2 | ========== 3 | 4 | reStructuredText defines a `list-table`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. list-table:: 9 | :header-rows: 1 10 | :stub-columns: 1 11 | 12 | * - key 13 | - value 14 | * - 1 15 | - 2 16 | * - 3 17 | - 4 18 | * - 5 19 | - 6 20 | 21 | Output 22 | ------ 23 | 24 | .. list-table:: 25 | :header-rows: 1 26 | :stub-columns: 1 27 | 28 | * - key 29 | - value 30 | * - 1 31 | - 2 32 | * - 3 33 | - 4 34 | * - 5 35 | - 6 36 | 37 | 38 | .. references ------------------------------------------------------------------ 39 | 40 | .. _list-table: https://docutils.sourceforge.io/docs/ref/rst/directives.html#list-table 41 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-prompt/conf.py: -------------------------------------------------------------------------------- 1 | from docutils import nodes 2 | import importlib 3 | 4 | 5 | extensions = [ 6 | 'sphinxcontrib.confluencebuilder', 7 | 'sphinx-prompt', 8 | ] 9 | 10 | 11 | sphinx_prompt = importlib.import_module('sphinx-prompt') 12 | 13 | 14 | class PromptDirectiveOverride(sphinx_prompt.PromptDirective): 15 | def run(self): 16 | text = '\n'.join(self.content) 17 | lang = self.options.get('language') or 'text' 18 | 19 | new_node = nodes.literal_block(text, text) 20 | new_node['language'] = lang 21 | return [ new_node ] 22 | 23 | 24 | def setup(app): 25 | app.connect('builder-inited', builder_inited) 26 | 27 | 28 | def builder_inited(app): 29 | if app.builder.name in ('html', 'latex'): 30 | return 31 | 32 | app.add_directive('prompt', PromptDirectiveOverride, override=True) 33 | -------------------------------------------------------------------------------- /tests/validation-sets/sphinx/seealso.rst: -------------------------------------------------------------------------------- 1 | See also 2 | ======== 3 | 4 | Sphinx defines a `seealso directive`_. Example markup is as follows: 5 | 6 | .. code-block:: none 7 | 8 | .. seealso:: 9 | Module `other` 10 | Documentation of the `other` module. 11 | 12 | `Other Manual `_ 13 | Manual for another reference related to this content. 14 | 15 | Output 16 | ------ 17 | 18 | .. seealso:: 19 | Module `other` 20 | Documentation of the `other` module. 21 | 22 | `Other Manual `_ 23 | Manual for another reference related to this content. 24 | 25 | 26 | .. references ------------------------------------------------------------------ 27 | 28 | .. _seealso directive: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-seealso 29 | -------------------------------------------------------------------------------- /tests/unit-tests/test_sphinx_productionlist.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from tests.lib.parse import parse 5 | from tests.lib.testcase import ConfluenceTestCase 6 | from tests.lib.testcase import setup_builder 7 | 8 | 9 | class TestConfluenceSphinxProductionList(ConfluenceTestCase): 10 | @classmethod 11 | def setUpClass(cls): 12 | super().setUpClass() 13 | 14 | cls.dataset = cls.datasets / 'production-list' 15 | 16 | @setup_builder('confluence') 17 | def test_storage_sphinx_productionlist_defaults(self): 18 | out_dir = self.build(self.dataset) 19 | 20 | with parse('index', out_dir) as data: 21 | container = data.find('pre') 22 | self.assertIsNotNone(container) 23 | self.assertTrue(container.text.strip()) 24 | -------------------------------------------------------------------------------- /sphinxcontrib/confluencebuilder/writer.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from __future__ import annotations 5 | from docutils import writers 6 | from typing import Any 7 | from typing import ClassVar 8 | 9 | 10 | class ConfluenceWriter(writers.Writer): 11 | supported = ('text',) 12 | settings_spec = ('No options here.', '', ()) 13 | settings_defaults: ClassVar[dict[str, Any]] = {} 14 | 15 | def __init__(self, builder): 16 | writers.Writer.__init__(self) 17 | self.builder = builder 18 | self.output = None 19 | 20 | def translate(self): 21 | visitor = self.builder.create_translator(self.document, self.builder) 22 | self.document.walkabout(visitor) 23 | if hasattr(visitor, 'body_final'): 24 | self.output = visitor.body_final 25 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-data-viewer/index.rst: -------------------------------------------------------------------------------- 1 | Sphinx-Data-Viewer 2 | ================== 3 | 4 | .. data-viewer:: 5 | :title: My first data viewer example 6 | 7 | ["apple", "orange", "banana"] 8 | 9 | ---- 10 | 11 | .. data-viewer:: 12 | :expand: 13 | 14 | { 15 | "Peter Meister": { 16 | "firstname": "Peter", 17 | "surname": "Meister", 18 | "city": "Munich", 19 | "age": 26, 20 | "height_m": 1.86, 21 | "nicknames": ["Peti", "Pet", "Bomber"] 22 | }, 23 | "Sandra Wilson": { 24 | "firstname": "Sandra", 25 | "surname": "Wilson", 26 | "city": "London", 27 | "age": 32, 28 | "height_m": 1.67, 29 | "nicknames": ["Sandy", "Wilma"] 30 | } 31 | } 32 | 33 | ---- 34 | 35 | .. data-viewer:: 36 | :data: my_data 37 | -------------------------------------------------------------------------------- /tests/sample-sets/tables/index.rst: -------------------------------------------------------------------------------- 1 | tables 2 | ====== 3 | 4 | .. confluence_table_width:: 200px 5 | 6 | +----+----+----+----+ 7 | | 00 | 01 | 02 | 03 | 8 | +====+====+====+====+ 9 | | 10 | 11 | 12 | 13 | 10 | +----+----+----+----+ 11 | | 20 | 2[1-3] | 12 | +----+----+---------+ 13 | | 30 | | - one | 14 | +----+ ZZ | - two | 15 | | 40 | | - three | 16 | +----+----+---------+ 17 | 18 | .. confluence_table_width:: 100% 19 | 20 | == == == 21 | a1 a2 a3 22 | b1 b2 b3 23 | == == == 24 | c1 c2 c3 25 | d1 d2 d3 26 | == == == 27 | 28 | .. confluence_table_width:: default 29 | 30 | +--------+--------+ 31 | | cell 1 | cell 2 | 32 | +========+========+ 33 | | cell 3 | cell 4 | 34 | | | | 35 | | | +-+-+ | 36 | | | |a|b| | 37 | | | +=+=+ | 38 | | | |c|d| | 39 | | | +-+-+ | 40 | | | |e|f| | 41 | | | +-+-+ | 42 | +--------+--------+ 43 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/code-block/code-block-highlight.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | :: 4 | 5 | import myexample 6 | myexample.invoke() 7 | 8 | .. highlight:: bash 9 | 10 | :: 11 | 12 | #!/bin/bash 13 | echo this is an example 14 | 15 | .. code-block:: csharp 16 | 17 | using System; 18 | using System.Collections.Generic; 19 | using System.Text; 20 | 21 | namespace ConsoleApplication1 22 | { 23 | class Program 24 | { 25 | static void Main(string[] args) 26 | { 27 | Console.WriteLine("this is an example"); 28 | } 29 | } 30 | } 31 | 32 | .. code-block:: python 33 | 34 | import myexample 35 | myexample.invoke() 36 | 37 | .. highlight:: html 38 | 39 | .. literalinclude:: ../../assets/example.html 40 | 41 | .. highlight:: python 42 | 43 | .. literalinclude:: ../../assets/example.py 44 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/figure/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#figure 2 | 3 | figure 4 | ------ 5 | 6 | .. external image (default align; no caption) 7 | 8 | .. figure:: https://www.example.com/image.png 9 | :alt: alt text 10 | 11 | .. external image (default align) 12 | 13 | .. figure:: https://www.example.org/image.png 14 | 15 | caption 2 16 | 17 | legend 2 18 | 19 | .. external image (left align) 20 | 21 | .. figure:: https://www.example.com/image.png 22 | :align: left 23 | :alt: alt text 24 | 25 | caption 3 26 | 27 | legend 3 28 | 29 | .. internal image (center align) 30 | 31 | .. figure:: ../../../assets/image02.png 32 | :align: center 33 | 34 | caption 4 35 | 36 | legend 4 37 | 38 | .. internal image (right align) 39 | 40 | .. figure:: ../../../assets/image02.png 41 | :align: right 42 | 43 | caption 5 44 | 45 | legend 5 46 | -------------------------------------------------------------------------------- /tests/unit-tests/test_rst_parsed_literal.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from tests.lib.parse import parse 5 | from tests.lib.testcase import ConfluenceTestCase 6 | from tests.lib.testcase import setup_builder 7 | 8 | 9 | class TestConfluenceRstParsedLiteral(ConfluenceTestCase): 10 | @classmethod 11 | def setUpClass(cls): 12 | super().setUpClass() 13 | 14 | cls.dataset = cls.datasets / 'rst' / 'parsed-literal' 15 | 16 | @setup_builder('confluence') 17 | def test_storage_rst_parsedliteral_defaults(self): 18 | out_dir = self.build(self.dataset) 19 | 20 | with parse('index', out_dir) as data: 21 | container_block = data.find('pre') 22 | self.assertIsNotNone(container_block) 23 | 24 | styled_markup = container_block.find('strong') 25 | self.assertIsNotNone(styled_markup) 26 | -------------------------------------------------------------------------------- /tests/sample-sets/sphinx-needs/conf.py: -------------------------------------------------------------------------------- 1 | from docutils.parsers.rst import directives 2 | 3 | extensions = [ 4 | 'sphinx_needs', 5 | 'sphinxcontrib.confluencebuilder', 6 | ] 7 | 8 | # confluence_editor = 'v2' 9 | # confluence_full_width = False 10 | 11 | needs_extra_options = { 12 | 'author': directives.unchanged, 13 | } 14 | 15 | needs_layouts = { 16 | 'example': { 17 | 'grid': 'simple_side_right_partial', 18 | 'layout': { 19 | 'head': ['**<>** for *<>*'], 20 | 'meta': ['**status**: <>', 21 | '**author**: <>'], 22 | 'side': ['<>'], 23 | }, 24 | }, 25 | } 26 | 27 | # html builder options (to compare) 28 | html_static_path = ['_static'] 29 | 30 | def setup(app): 31 | app.require_sphinx('6.0') 32 | app.add_js_file('jquery-3.6.3.min.js') 33 | -------------------------------------------------------------------------------- /tests/unit-tests/test_confluence_strikethough.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: BSD-2-Clause 2 | # Copyright Sphinx Confluence Builder Contributors (AUTHORS) 3 | 4 | from tests.lib.parse import parse 5 | from tests.lib.testcase import ConfluenceTestCase 6 | from tests.lib.testcase import setup_builder 7 | 8 | 9 | class TestConfluenceStrikethrough(ConfluenceTestCase): 10 | @classmethod 11 | def setUpClass(cls): 12 | super().setUpClass() 13 | 14 | cls.dataset = cls.datasets / 'strikethrough' 15 | 16 | @setup_builder('confluence') 17 | def test_html_confluence_strikethrough(self): 18 | out_dir = self.build(self.dataset) 19 | 20 | with parse('index', out_dir) as data: 21 | strikethrough_elements = data.find_all('s') 22 | self.assertEqual(len(strikethrough_elements), 1) 23 | 24 | element = strikethrough_elements.pop(0) 25 | self.assertEqual(element.text, 'test') 26 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/tables/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#tables 2 | 3 | tables 4 | ------ 5 | 6 | .. spanning table 7 | 8 | +----+----+----+----+ 9 | | 00 | 01 | 02 | 03 | 10 | +====+====+====+====+ 11 | | 10 | 11 | 12 | 13 | 12 | +----+----+----+----+ 13 | | 20 | 2[1-3] | 14 | +----+----+---------+ 15 | | 30 | | - one | 16 | +----+ ZZ | - two | 17 | | 40 | | - three | 18 | +----+----+---------+ 19 | 20 | .. multi-header table 21 | 22 | == == == 23 | a1 a2 a3 24 | b1 b2 b3 25 | == == == 26 | c1 c2 c3 27 | d1 d2 d3 28 | == == == 29 | 30 | .. nested table 31 | 32 | +--------+--------+ 33 | | cell 1 | cell 2 | 34 | +========+========+ 35 | | cell 3 | cell 4 | 36 | | | | 37 | | | +-+-+ | 38 | | | |a|b| | 39 | | | +=+=+ | 40 | | | |c|d| | 41 | | | +-+-+ | 42 | | | |e|f| | 43 | | | +-+-+ | 44 | +--------+--------+ 45 | -------------------------------------------------------------------------------- /tests/sample-sets/svgbob/index.rst: -------------------------------------------------------------------------------- 1 | Svgbob 2 | ====== 3 | 4 | .. svgbob:: 5 | :font-family: Arial 6 | :font-size: 12 7 | 8 | +-------+ +--------+ 9 | | Hello |------>| World! | 10 | +-------+ +--------+ 11 | 12 | Hamming distance between two strings of equal length is the number of 13 | positions at which the corresponding symbols are different. For instance, 14 | Hamming distance for a 3-bit string can be computed visually using a 15 | 3-bit binary cube: 16 | 17 | .. svgbob:: 18 | :align: center 19 | 20 | 110 111 21 | *-----------* 22 | /| /| 23 | / | 011 / | 24 | 010 *--+--------* | 25 | | | 100 | | 26 | | *--------+--* 101 27 | | / | / 28 | |/ |/ 29 | 000 *-----------* 001 30 | 31 | The minimum distance between any two vertices is the Hamming distance 32 | between the two bit vectors (e.g. 100→011 has distance 3). 33 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/image/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/directives.html#image 2 | 3 | image 4 | ----- 5 | 6 | .. external image 7 | 8 | .. image:: https://www.example.com/image.png 9 | 10 | .. external image with options 11 | 12 | .. image:: https://www.example.org/image.png?a=1&b=2 13 | 14 | .. internal image using a series of attributes 15 | 16 | .. image:: ../../../assets/image01.png 17 | :width: 200px 18 | :alt: alt text 19 | 20 | .. internal image with alignment 21 | 22 | .. image:: ../../../assets/image01.png 23 | :align: right 24 | 25 | .. internal image with no length units (assumed pixel size) 26 | 27 | .. image:: ../../../assets/image01.png 28 | :width: 123 29 | 30 | .. internal image with scaling 31 | 32 | .. image:: ../../../assets/image01.png 33 | :scale: 50% 34 | :width: 100px 35 | 36 | .. internal image with non-pixel units 37 | 38 | .. image:: ../../../assets/image01.png 39 | :width: 2in 40 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/toctree-numbered/doc.rst: -------------------------------------------------------------------------------- 1 | doc 2 | --- 3 | 4 | .. toctree:: 5 | 6 | child 7 | 8 | 9 | section with spaces 10 | ------------------- 11 | 12 | section_with_underscores 13 | ------------------------ 14 | 15 | section with a large name - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vitae volutpat ipsum, quis sodales eros. Aenean quis nunc quis leo aliquam gravida. Fusce accumsan nibh vitae enim ullamcorper iaculis. Duis eget augue dolor. Curabitur at enim elit. Nullam luctus mollis magna. Pellentesque pellentesque, leo quis suscipit finibus, diam justo convallis. 16 | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 17 | -------------------------------------------------------------------------------- /tests/unit-tests/datasets/rst/lists/index.rst: -------------------------------------------------------------------------------- 1 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#bullet-lists 2 | .. https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#enumerated-lists 3 | 4 | lists 5 | ----- 6 | 7 | .. bullet lists (complex and condensed) 8 | 9 | * first bullet 10 | 11 | * second item 12 | 13 | second paragraph in the second item 14 | 15 | third paragraph in the second item 16 | 17 | * sublist 1 18 | * sublist 2 19 | * sublist 3 20 | 21 | * third item 22 | * forth item 23 | 24 | .. enumerated list 25 | 26 | #. enumerated a1 27 | #. enumerated a2 28 | 29 | .. enumerated list with various style checks 30 | 31 | 1. enumerated b 32 | 33 | a) enumerated b1 34 | b) enumerated b2 35 | 36 | 2. enumerated c 37 | 38 | A) enumerated c1 39 | B) enumerated c2 40 | 41 | 3. enumerated d 42 | 43 | 1) enumerated d1 44 | 2) enumerated d2 45 | 46 | 4. enumerated e 47 | 48 | i) enumerated e1 49 | ii) enumerated e2 50 | -------------------------------------------------------------------------------- /tests/sample-sets/latex/index.rst: -------------------------------------------------------------------------------- 1 | latex 2 | ===== 3 | 4 | The equation :confluence_latex:`$a^2 + b^2 = c^2$` is inlined. 5 | 6 | ---- 7 | 8 | .. confluence_latex:: 9 | :align: left 10 | 11 | \begin{equation*} 12 | \begin{split}e^{i\pi} + 1 = 0\end{split} 13 | \end{equation*} 14 | 15 | ---- 16 | 17 | .. confluence_latex:: 18 | 19 | Lists are easy to create: 20 | \begin{itemize} 21 | \item List entries start with the \verb|\item| command. 22 | \item Individual entries are indicated with a black dot, a so-called bullet. 23 | \item The text in the entries may be of any length. 24 | \end{itemize} 25 | 26 | ---- 27 | 28 | .. confluence_latex:: 29 | 30 | Hello, World! 31 | 32 | $\mathfrak{H}$ello world! 33 | 34 | ---- 35 | 36 | .. confluence_latex:: 37 | 38 | $\mathfrak{H}$ello world! 39 | 40 | ---- 41 | 42 | This is a :confluence_latex:`$\\mathfrak{t}$est`. 43 | 44 | ---- 45 | 46 | This is a :confluence_latex:`$\\mathfrak{H}$ello world!`. 47 | --------------------------------------------------------------------------------