From d2aede8e6077a388e5c7a86a3392ad3a5312978e Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Sun, 6 Aug 2023 16:33:41 +0200 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=8E=A8=20improve=20docs=20with=20hove?= =?UTF-8?q?ring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/conf.py | 20 +++++++------------- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index bd47099..ad72b42 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -23,6 +23,7 @@ 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', "sphinx.ext.intersphinx", + "hoverxref.extension", ] @@ -44,7 +45,12 @@ } intersphinx_disabled_reftypes = ["*"] - +hoverxref_auto_ref = True +hoverxref_intersphinx = [ + 'readthedocs', + 'sphinx', + 'python', +] napoleon_google_docstring = True autosummary_generate = True autoclass_content = 'both' @@ -87,18 +93,6 @@ 'navbar_links': [ ("TalkyTrader", "https://talkytrader.github.io/wiki/",True), - ("_menu", "🗿 Talky",[ - ("🪙 Get started", "https://talky.rtfd.io/01_start",True), - ("⚙️ Config", "https://talky.rtfd.io/02_config",True), - ]), - ("_menu", "🔌 Plugins",[ - ("👂 IamListening", "https://iamlistening.rtfd.io/", True), - ("🔎 FindMyOrder", "https://findmyorder.rtfd.io/", True), - ("⛓️ DXSP", "https://dxsp.rtfd.io/", True), - ("💱 CEX", "index",True), - ("💁 Helper", "index",True), - ("📰 Talkytrend", "https://talkytrend.rtfd.io/", True), - ]), ("_menu", "➕ More",[ ("🆕 What's new?", "https://github.com/mraniki/tt",True), ("💬 Connect", "https://talky.rtfd.io",True), diff --git a/pyproject.toml b/pyproject.toml index c91e4b7..ade3c55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ optional = true [tool.poetry.group.docs.dependencies] sphinx = ">=5,<6" sphinx_bootstrap_theme = "^0.8.1" -sphinxext-remoteliteralinclude = "^0.4.0" +sphinx-hoverxref = "^1.3.0" [tool.pytest.ini_options] From 9670dcdd40f361ecd2ab1eac919dcba171c008ca Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Sun, 6 Aug 2023 16:49:43 +0200 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=93=9D=20=20sphinx.ext.extlinks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/conf.py b/docs/conf.py index ad72b42..b2b2c03 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -24,6 +24,7 @@ 'sphinx.ext.viewcode', "sphinx.ext.intersphinx", "hoverxref.extension", + "sphinx.ext.extlinks", ] From bf2b38c02a957c3578b6a3b2fec9bd78429f7b9d Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Sun, 6 Aug 2023 18:33:14 +0200 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=93=9D=20=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/conf.py | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index b2b2c03..ee45cb4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -46,7 +46,6 @@ } intersphinx_disabled_reftypes = ["*"] -hoverxref_auto_ref = True hoverxref_intersphinx = [ 'readthedocs', 'sphinx', From d928a7e652b0decde1e7f63a979f84099f8d52c6 Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Sun, 6 Aug 2023 19:39:00 +0200 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=93=9D=20intersphinx=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/conf.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index ee45cb4..f28b874 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,25 +31,42 @@ # -- Extension configuration --------------------------------------------------- +# -- Extension configuration --------------------------------------------------- + +# -- intersphinx ------------ + intersphinx_mapping = { "sphinx": ("https://www.sphinx-doc.org/en/master/", None), # - :doc:`sphinx:usage/extensions/intersphinx` "dynaconf": ("https://www.dynaconf.com", None), "python": ("https://docs.python.org/3", None), - "talky": ("https://talky.readthedocs.io/en/latest/", None), + "talky": ("https://talky.readthedocs.io/en/latest", None), "talky-dev": ("https://talky.readthedocs.io/en/dev/", None), - "findmyorder": ("https://talky.readthedocs.io/projects/findmyorder/en/latest", None), + "findmyorder": ( + "https://talky.readthedocs.io/projects/findmyorder/en/latest", None), "dxsp": ("https://talky.readthedocs.io/projects/dxsp/en/latest", None), - "iamlistening": ("https://talky.readthedocs.io/projects/iamlistening/en/latest", None), + "iamlistening": ( + "https://iamlistening.readthedocs.io/en/latest", None), "talkytrend": ("https://talky.readthedocs.io/projects/talkytrend/en/latest", None), "myllm": ("https://talky.readthedocs.io/projects/myllm/en/latest", None), } intersphinx_disabled_reftypes = ["*"] + + +# -- hoverxref ---------------- + hoverxref_intersphinx = [ 'readthedocs', 'sphinx', 'python', + 'talky', + 'findmyorder', + 'dxsp', + 'iamlistening', + 'talkytrend', + 'myllm', + ] napoleon_google_docstring = True autosummary_generate = True From 3ed917861cfb171d8b78e1d9d07fa954ea0a770a Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Mon, 7 Aug 2023 08:24:43 +0200 Subject: [PATCH 5/5] =?UTF-8?q?=F0=9F=93=9D=20updating=20docs=20template?= =?UTF-8?q?=20and=20sphinx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/_static/custom.css | 8 ++- docs/_static/logo.png | Bin 0 -> 22125 bytes docs/conf.py | 125 ++++++++++++++++++++++++++-------------- docs/index.rst | 20 ++++++- 4 files changed, 104 insertions(+), 49 deletions(-) create mode 100644 docs/_static/logo.png diff --git a/docs/_static/custom.css b/docs/_static/custom.css index f667ba5..b3405ea 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -7,7 +7,7 @@ */ -:root { +/* :root { --body-bg: #292929; --body-color: #E2E8E4; } @@ -34,6 +34,8 @@ dt:target, span.highlighted { background-color: transparent; - } + } */ - \ No newline at end of file + .bd-footer { + display: none; + } \ No newline at end of file diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8329fd4523295684a954ec1f0481e282b8864e72 GIT binary patch literal 22125 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 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index f28b874..544deb2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,19 +1,25 @@ # Configuration file for the Sphinx documentation builder. + +# -- Path setup -------------------------------------------------------------- + import os import sys +from pathlib import Path +from typing import Any, Dict -import sphinx_bootstrap_theme +import pydata_sphinx_theme +from sphinx.application import Sphinx sys.path.insert(0, os.path.abspath('../')) # -- Project information ----------------------------------------------------- -project = 'dxsp' +project = 'findmyorder' copyright = '2023, mraniki' author = 'mraniki' - +language = "en" # -- General configuration --------------------------------------------------- @@ -21,16 +27,17 @@ 'sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + 'sphinx.ext.viewcode', "sphinx.ext.intersphinx", "hoverxref.extension", "sphinx.ext.extlinks", + "sphinx_design", + "myst_parser", + "sphinx_copybutton", + "notfound.extension", + # "autoapi.extension", ] - - -# -- Extension configuration --------------------------------------------------- - # -- Extension configuration --------------------------------------------------- # -- intersphinx ------------ @@ -68,59 +75,91 @@ 'myllm', ] -napoleon_google_docstring = True -autosummary_generate = True + +# -- autodoc -------------------- + autoclass_content = 'both' autodoc_inherit_docstrings = True set_type_checking_flag = True autodoc_member_order = 'bysource' add_module_names = True +# -- autoapi ------------------- + +# autoapi_type = "python" +# autoapi_dirs = ['../iamlistening'] +# autoapi_keep_files = True +# autoapi_root = "api" +# autoapi_member_order = "groupwise" + + +# -- napoleon ------------------- + +napoleon_google_docstring = True + +# -- MyST options ----------------- + +# This allows us to use ::: to denote directives, useful for admonitions +myst_enable_extensions = ["colon_fence", "linkify", "substitution"] +myst_heading_anchors = 2 +myst_substitutions = {"rtd": "[Read the Docs](https://readthedocs.org/)"} + master_doc = 'index' source_suffix = ['.rst', '.md'] templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] +# -- Sitemap ---------------------- + +# ReadTheDocs has its own way of generating sitemaps, etc. +if not os.environ.get("READTHEDOCS"): + extensions += ["sphinx_sitemap"] + + html_baseurl = os.environ.get("SITEMAP_URL_BASE", "http://127.0.0.1:8000/") + sitemap_locales = [None] + sitemap_url_scheme = "{link}" -# -- Options for HTML output ------------------------------------------------- -html_theme = "bootstrap" +# -- Options for HTML output -------- -html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() html_static_path = ["_static"] -html_logo = '_static/favicon.png' +html_css_files = ["custom.css"] +html_logo = '_static/logo.png' html_favicon = '_static/favicon.ico' -html_css_files = [ - "custom.css", -] html_show_sphinx = False +html_show_copyright = False +html_theme = "pydata_sphinx_theme" html_theme_options = { - 'navbar_title': " ", - 'navbar_site_name': "Talky", - 'navbar_sidebarrel': False, - 'navbar_pagenav': False, - 'globaltoc_depth': 4, - 'globaltoc_includehidden': "true", - 'navbar_class': "navbar", - 'navbar_fixed_top': "true", - 'source_link_position': "none", - - 'bootswatch_theme': "darkly", - 'bootstrap_version': "3", - - 'navbar_links': [ - ("TalkyTrader", "https://talkytrader.github.io/wiki/",True), - ("_menu", "➕ More",[ - ("🆕 What's new?", "https://github.com/mraniki/tt",True), - ("💬 Connect", "https://talky.rtfd.io",True), - ]), - ] + "secondary_sidebar_items": ["page-toc"], + "logo": { + "link": "https://talky.readthedocs.io", + }, + "icon_links": [ + { + "name": "GitHub", + "url": "https://github.com/mraniki/tt/", + "icon": "fa-brands fa-github", + "type": "fontawesome", + }, + { + "name": "Telegram", + "url": "https://t.me/TTTalkyTraderChat/1", + "icon": "fa-brands fa-telegram", + }, + { + "name": "Mastodon", + "url": "https://mastodon.social/@MrAniki", + "icon": "fa-brands fa-mastodon", + }, + { + "name": "Tips", + "url": "https://coindrop.to/mraniki", + "icon": "fa-solid fa-burger", + }, + ], } +html_context = { + "default_mode": "dark", - - - -def setup(app): - app.add_css_file("custom.css") - +} diff --git a/docs/index.rst b/docs/index.rst index 1a0339f..f8e880a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,18 +1,32 @@ -.. _findmyorder_index: - =========== FindMyOrder =========== +.. image:: ../docs/_static/logo-full.png + :width: 200 + :alt: logo + :align: right + | Find My order, | a parsing package to find trading order +User Guide +========== + .. toctree:: :maxdepth: 4 - + 01_start 02_config + + +Module Reference +================ + +.. toctree:: + :maxdepth: 4 + 03_module