mirror of
https://github.com/Django-LiveView/docs.git
synced 2025-11-25 06:05:17 +01:00
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:
42
README.md
42
README.md
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
29
onerc.el
29
onerc.el
@@ -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"))
|
||||||
)))
|
)))
|
||||||
|
|||||||
Reference in New Issue
Block a user