From 293c83794976630e13dbe7cdf47c7f0fd41347f2 Mon Sep 17 00:00:00 2001 From: Marek Mihok Date: Fri, 12 Apr 2024 13:34:11 +0200 Subject: [PATCH] docs: Update docs with preferred way of displaying documents #2291 (#2311) Co-authored-by: Martin Turoci --- assets/examples/sample-document.pdf | Bin 0 -> 13506 bytes website/docs/files.md | 11 +++++++++++ website/widgets/form/frame.md | 10 ++++++++++ 3 files changed, 21 insertions(+) create mode 100644 assets/examples/sample-document.pdf diff --git a/assets/examples/sample-document.pdf b/assets/examples/sample-document.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3d2d122dda232b4f4ecde07cf0301f20ff0313fd GIT binary patch literal 13506 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 literal 0 HcmV?d00001 diff --git a/website/docs/files.md b/website/docs/files.md index a3654f234f..c3be82d196 100644 --- a/website/docs/files.md +++ b/website/docs/files.md @@ -108,6 +108,17 @@ async def serve(q: Q): See `examples/file_stream.py` for a complete example. +## Rendering documents + +Use `q.site.upload()` to upload document from your app to the Wave server (or see the following section for other ways for serving files). Use the returned paths in `ui.frame()` component. + +```py +q.app.document_path, = await q.site.upload(['path/to/my/document.pdf']) +q.page['example'] = ui.form_card(box='1 1 7 7', items=[ + ui.frame(path=document_path) +]) +``` + ## Serving files directly from the Wave server As an alternative to using the above `upload()` or `download()` mechanisms, you can make the Wave server (`waved`) directly serve the contents of one or more existing directories. If the Wave server and your app both have access to the directories on the file system, your app can simply create or copy files to the directories to make them accessible from web browsers. diff --git a/website/widgets/form/frame.md b/website/widgets/form/frame.md index 8223a62ced..7b593cf789 100644 --- a/website/widgets/form/frame.md +++ b/website/widgets/form/frame.md @@ -20,6 +20,16 @@ q.page['example'] = ui.form_card(box='1 1 7 7', items=[ ]) ``` +## With document + +The frame is also a preffered way for displaying documents. Simply provide a path to the PDF file. + +```py +q.page['example'] = ui.form_card(box='1 1 7 7', items=[ + ui.frame(path='/assets/examples/sample-document.pdf') +]) +``` + ## With custom HTML For cases when you want to build the embedded page yourself, you can use the `content` attribute that