Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions data/members.yml
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
members:
- login: tiangolo
- login: YuriiMotov
- login: svlandeg
- login: alejsdev
6 changes: 3 additions & 3 deletions docs/contributing.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -100,10 +100,10 @@ Go into the docs directory at `docs/`:
$ cd docs/
```

Then run `mkdocs` in that directory:
Then run `zensical` in that directory:

```console
$ mkdocs serve --dev-addr 8008
$ zensical serve --dev-addr 8008
```

///
Expand All@@ -129,7 +129,7 @@ Completion will take effect once you restart the terminal.

### Docs Structure

The documentation uses <a href="https://www.mkdocs.org/" class="external-link" target="_blank">MkDocs</a>.
The documentation uses <a href="https://zensical.org" class="external-link" target="_blank">Zensical</a>.

And there are extra tools/scripts in place in `./scripts/docs.py`.

Expand Down
7 changes: 7 additions & 0 deletions docs/index.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
---
include_yaml:
sponsors: data/sponsors.yml
---

#

<style>
.md-content .md-typeset h1 { display: none; }
</style>
Expand Down
7 changes: 6 additions & 1 deletion docs/management.md
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
---
include_yaml:
- data/members.yml
---

# Repository Management

Here's a short description of how the SQLModel repository is managed and maintained.
Expand DownExpand Up@@ -29,7 +34,7 @@ Joining the team is by invitation only, and I could update or remove permissions
This is the current list of team members. 😎

<div class="user-list user-list-center">
{% for user in members["members"] %}
{% for user in members %}

<div class="user"><a href="https://github.com/{{ user.login }}" target="_blank"><div class="avatar-wrapper"><img src="https://github.com/{{ user.login }}.png"/></div><div class="title">@{{ user.login }}</div></a></div>
{% endfor %}
Expand Down
56 changes: 22 additions & 34 deletions mkdocs.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ site_name: SQLModel
site_description: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
site_url: https://sqlmodel.tiangolo.com/
theme:
variant: classic
name: material
custom_dir: docs/overrides
palette:
Expand DownExpand Up@@ -48,34 +49,24 @@ theme:
- toc.follow

icon:
repo: fontawesome/brands/github-alt
repo: octicons/mark-github-24
logo: img/icon-white.svg
favicon: img/favicon.png
language: en
repo_name: fastapi/sqlmodel
repo_url: https://github.com/fastapi/sqlmodel
plugins:
# Material for MkDocs
search:
social:
typeset:
# Other plugins
macros:
include_yaml:
- sponsors: data/sponsors.yml
- members: data/members.yml

nav:
- SQLModel: index.md
- features.md
- Learn:
- "":
- learn/index.md
- databases.md
- db-to-code.md
- environment-variables.md
- virtual-environments.md
- install.md
- Tutorial - User Guide:
- "":
- tutorial/index.md
- tutorial/create-db-and-table-with-db-browser.md
- tutorial/create-db-and-table.md
Expand All@@ -88,14 +79,14 @@ nav:
- tutorial/limit-and-offset.md
- tutorial/update.md
- tutorial/delete.md
- Connect Tables - JOIN:
- "":
- tutorial/connect/index.md
- tutorial/connect/create-connected-tables.md
- tutorial/connect/create-connected-rows.md
- tutorial/connect/read-connected-data.md
- tutorial/connect/update-data-connections.md
- tutorial/connect/remove-data-connections.md
- Relationship Attributes:
- "":
- tutorial/relationship-attributes/index.md
- tutorial/relationship-attributes/define-relationships-attributes.md
- tutorial/relationship-attributes/create-and-update-relationships.md
Expand All@@ -104,14 +95,14 @@ nav:
- tutorial/relationship-attributes/back-populates.md
- tutorial/relationship-attributes/cascade-delete-relationships.md
- tutorial/relationship-attributes/type-annotation-strings.md
- Many to Many:
- "":
- tutorial/many-to-many/index.md
- tutorial/many-to-many/create-models-with-link.md
- tutorial/many-to-many/create-data.md
- tutorial/many-to-many/update-remove-relationships.md
- tutorial/many-to-many/link-with-extra-fields.md
- tutorial/code-structure.md
- FastAPI and Pydantic:
- "":
- tutorial/fastapi/index.md
- tutorial/fastapi/simple-hero-api.md
- tutorial/fastapi/response-model.md
Expand All@@ -125,16 +116,16 @@ nav:
- tutorial/fastapi/teams.md
- tutorial/fastapi/relationships.md
- tutorial/fastapi/tests.md
- Advanced User Guide:
- "":
- advanced/index.md
- advanced/decimal.md
- advanced/uuid.md
- Resources:
- "":
- resources/index.md
- help.md
- contributing.md
- management-tasks.md
- About:
- "":
- about/index.md
- alternatives.md
- management.md
Expand All@@ -146,6 +137,7 @@ markdown_extensions:
targets:
include:
- "*"
zensical.extensions.macros:
# Python Markdown
abbr:
attr_list:
Expand DownExpand Up@@ -194,18 +186,14 @@ markdown_extensions:

extra:
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/twitter
link: https://twitter.com/tiangolo
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo
- icon: fontawesome/brands/dev
link: https://dev.to/tiangolo
- icon: fontawesome/brands/medium
link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe
link: https://tiangolo.com
- icon: octicons/mark-github-24
link: https://github.com/fastapi/sqlmodel
- icon: fontawesome/brands/x-twitter
link: https://x.com/tiangolo
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/tiangolo.com
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/tiangolo

extra_css:
- css/termynal.css
Expand All@@ -215,5 +203,5 @@ extra_javascript:
- js/termynal.js
- js/custom.js

hooks:
- scripts/mkdocs_hooks.py
validation:
unresolved_references: false
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,11 @@ docs = [
"griffe-warnings-deprecated >=1.1.0",
"markdown-include-variants >=0.0.8",
"mdx-include >=1.4.1",
"mkdocs-macros-plugin >=1.5.0",
"mkdocs-material >=9.7.5",
"mkdocs-redirects >=1.2.1",
"mkdocstrings[python] >=1.0.3",
"pillow >=12.1.1",
"pyyaml >=5.3.1",
"typer >=0.24.1",
"zensical>=0.0.42",
]
github-actions = [
"httpx >=0.28.1",
Expand Down
10 changes: 5 additions & 5 deletions scripts/docs.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,8 +6,8 @@
from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path

import mkdocs.utils
import typer
import yaml
from jinja2 import Template
from ruff.__main__ import find_ruff_bin

Expand DownExpand Up@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
match_start = re.search(r"<!-- sponsors -->", content)
match_end = re.search(r"<!-- /sponsors -->", content)
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
sponsors = mkdocs.utils.yaml_load(sponsors_data_path.read_text(encoding="utf-8"))
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
if not (match_start and match_end):
raise RuntimeError("Couldn't auto-generate sponsors section")
if not match_pre:
Expand DownExpand Up@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
en.
"""
# Enable line numbers during local development to make it easier to highlight
args = ["mkdocs", "serve", "--dev-addr", "127.0.0.1:8008"]
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
if dirty:
args.append("--dirty")
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
Expand All@@ -120,7 +120,7 @@ def build() -> None:
Build the docs.
"""
print("Building docs")
subprocess.run(["mkdocs", "build"], check=True)
subprocess.run(["zensical", "build"], check=True)
typer.secho("Successfully built docs", color=typer.colors.GREEN)


Expand All@@ -129,7 +129,7 @@ def serve() -> None:
"""
A quick server to preview a built site.

For development, prefer the command live (or just mkdocs serve).
For development, prefer the command live (or just zensical serve).

This is here only to preview the documentation site.

Expand Down
38 changes: 0 additions & 38 deletions scripts/mkdocs_hooks.py

This file was deleted.

Loading
Loading