Update documentation to Django LiveView v2.0.0

- Complete rewrite of documentation for v2.0.0 API
- Updated from old actions/ structure to new @liveview_handler decorator
- Renamed Tutorials to Tutorial with inline content
- Added emojis to navigation and homepage
- Updated footer: removed Jabber/XMPP, 3-column layout on desktop
- Updated header: Source code links to GitHub
- All content translated to English
- Updated hero subtitle and README
- Removed Demo button from navigation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Andros Fenollosa
2025-11-21 09:10:36 +01:00
parent d13a0c24cf
commit 86508a948b
4 changed files with 704 additions and 1214 deletions

View File

@@ -1,27 +1,39 @@
# Website and documentation # Django LiveView Website and Documentation
This repository contains the source code for the website and documentation of Django Liveview. This repository contains the source code for the website and documentation of Django LiveView v2.0.0.
It is a static website generated with [one.el](https://one.tonyaldon.com/). It is a static website generated with [one.el](https://one.tonyaldon.com/).
## Do you want to contribute? ## Contributing
Edit `one.org`. It is a org file that contains the documentation and text of the website. Edit `one.org` - an Org mode file that contains all the documentation and website content.
## Do you want to build the website? ## Building the Website
Install Emacs in your system. ### Using Docker (Recommended)
After that, you must install the `one.el` package.
```bash ```bash
M-x package-install RET one.el RET docker compose up one-el
```
Then, open `one.el` and run the following command:
```bash
M-x one-build
``` ```
The website will be generated in the `public` directory. The website will be generated in the `public` directory.
### Local Build
1. Install Emacs in your system
2. Install the `one.el` package:
```
M-x package-install RET one.el RET
```
3. Open `one.org` in Emacs
4. Run: `M-x one-build`
The website will be generated in the `public` directory.
## Serving Locally
```bash
docker compose up nginx
```
Then visit http://localhost:9100

View File

@@ -381,12 +381,13 @@ a:hover,
.footer_nav { .footer_nav {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr 1fr;
list-style: none; list-style: none;
padding: 0; padding: 0;
gap: var(--gap-m);
} }
@media (width < 600px) { @media (width < 768px) {
.footer_nav { .footer_nav {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }

1832
one.org

File diff suppressed because it is too large Load Diff

View File

@@ -98,21 +98,18 @@
(:li.nav-main__item (:li.nav-main__item
(:a.nav-main__link.nav-main__link--logo (@ :href "/") (:img.nav-main__logo (@ :alt "Django LiveView" :src "/img/logo.webp")))) (:a.nav-main__link.nav-main__link--logo (@ :href "/") (:img.nav-main__logo (@ :alt "Django LiveView" :src "/img/logo.webp"))))
(:li.nav-main__item (:li.nav-main__item
(:a.button.nav-main__link (@ :href "/docs/install/" :class ,(when (string= "docs" navigator-active) class-name-navigator-active)) "Docs")) (:a.button.nav-main__link (@ :href "/docs/install/" :class ,(when (string= "docs" navigator-active) class-name-navigator-active)) "📚 Docs"))
(:li.nav-main__item (:li.nav-main__item
(:a.button.nav-main__link (@ :href "/tutorials/" :class ,(when (string= "tutorials" navigator-active) class-name-navigator-active)) "Tutorials")) (:a.button.nav-main__link (@ :href "/tutorial/" :class ,(when (string= "tutorial" navigator-active) class-name-navigator-active)) "🎓 Tutorial"))
(:li.nav-main__item (:li.nav-main__item
(:a.button.nav-main__link (@ :href "https://django-liveview-demo.andros.dev/" :target "_blank") "Demo")) (:a.button.nav-main__link (@ :href "/books/" :class ,(when (string= "books" navigator-active) class-name-navigator-active)) "📖 Books"))
(:li.nav-main__item (:li.nav-main__item
(:a.button.nav-main__link (@ :href "/books/" :class ,(when (string= "books" navigator-active) class-name-navigator-active)) "Books")) (:a.button.nav-main__link (@ :href "https://github.com/Django-LiveView/liveview" :target "_blank") "💻 Source code"))))))
(:li.nav-main__item
(:a.button.nav-main__link (@ :href "/source-code/" :class ,(when (string= "source code" navigator-active) class-name-navigator-active)) "Source code"))))))
,tree-content ,tree-content
(:footer.footer (:footer.footer
(:div.container (:div.container
(:ul.footer_nav (:ul.footer_nav
(:li (:i (@ :aria-label "bug") "🪲") " Bugs: " (:a.link (@ :href "https://github.com/Django-LiveView/docs/blob/main/one.org" :target "_blank") "Documentation")) (:li (:i (@ :aria-label "bug") "🪲") " Bugs: " (:a.link (@ :href "https://github.com/Django-LiveView/docs/blob/main/one.org" :target "_blank") "Documentation"))
(:li (:i (@ :aria-label "chat") "💬") " Get help: "(:a.link (@ :href "xmpp:django-liveview@groups.im.andros.dev?join" :target "_blank") "Jabber/XMPP group "))
(:li (:i (@ :aria-label "chat") "🐘") " Follow me: " (:a.link (@ :href "https://activity.andros.dev/@andros" :target "_blank") "ActivityPub/Fediverse ")) (:li (:i (@ :aria-label "chat") "🐘") " Follow me: " (:a.link (@ :href "https://activity.andros.dev/@andros" :target "_blank") "ActivityPub/Fediverse "))
(:li (:span (@ :aria-hidden "true") "💰 ") " Support the project: " (:a.link (@ :href "https://liberapay.com/androsfenollosa/" :target "_blank") "Liberapay"))) (:li (:span (@ :aria-hidden "true") "💰 ") " Support the project: " (:a.link (@ :href "https://liberapay.com/androsfenollosa/" :target "_blank") "Liberapay")))
(:p "Created with " (:i (@ :aria-label "love") "❤️") " by " (:a.link (@ :href "https://andros.dev/" :target "_blank") "Andros Fenollosa") " with " (:a.link (@ :href "https://one.tonyaldon.com/" :target "_blank") "one.el")) (:p "Created with " (:i (@ :aria-label "love") "❤️") " by " (:a.link (@ :href "https://andros.dev/" :target "_blank") "Andros Fenollosa") " with " (:a.link (@ :href "https://one.tonyaldon.com/" :target "_blank") "one.el"))
@@ -157,7 +154,7 @@
(:div.container (:div.container
(:hgroup.hero__hgroup (:hgroup.hero__hgroup
(:h1.hero__title "Django LiveView") (:h1.hero__title "Django LiveView")
(:h2.hero__subtitle "Framework for creating Realtime SPAs using HTML over the Wire technology") (:h2.hero__subtitle "Build real-time, reactive interfaces with Django using WebSockets — write Python, not JavaScript")
(:img.image.hero__logo (@ :alt "pet" :src "img/pet.webp"))))) (:img.image.hero__logo (@ :alt "pet" :src "img/pet.webp")))))
(:section.home (:section.home
(:div.container ,content))))))) (:div.container ,content)))))))
@@ -184,23 +181,17 @@
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/install/") "Install")) (:a.nav-docs__link (@ :href "/docs/install/") "Install"))
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/actions/") "Actions")) (:a.nav-docs__link (@ :href "/docs/handlers/") "Handlers"))
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/views/") "Views")) (:a.nav-docs__link (@ :href "/docs/frontend/") "Frontend Integration"))
(:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/routing/") "Routing"))
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/forms/") "Forms")) (:a.nav-docs__link (@ :href "/docs/forms/") "Forms"))
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/history/") "History")) (:a.nav-docs__link (@ :href "/docs/broadcasting/") "Broadcasting"))
(:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/advanced/") "Advanced Features"))
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/internationalization/") "Internationalization")) (:a.nav-docs__link (@ :href "/docs/internationalization/") "Internationalization"))
(:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/loading/") "Loading"))
(:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/lost-connection/") "Lost connection"))
(:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/deploy/") "Deploy"))
(:li.nav-docs__item (:li.nav-docs__item
(:a.nav-docs__link (@ :href "/docs/faq/") "FAQ")) (:a.nav-docs__link (@ :href "/docs/faq/") "FAQ"))
))) )))