Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
af9bc87
fix(writer): bump default model for workflow completion block - WF-175
madeindjs Feb 6, 2025
cf12327
chore(ui): bump Vue.js to 3.3
madeindjs Dec 27, 2024
dc20a28
chore(ui): bump Vue.js to 3.4 - WF-163
madeindjs Dec 27, 2024
5d07f12
chore(ui): bump Vue.js to 3.5 - WF-163
madeindjs Dec 27, 2024
62adffd
chore(ui): use `useTemplateRef` instead of plain `ref` - WF-163
madeindjs Dec 27, 2024
f2f9a1a
fix(ui): resolve missing import
madeindjs Jan 2, 2025
af031c3
chore(ui): use `useTemplateRef` instead of plain `ref` - WF-163
madeindjs Feb 7, 2025
68666f1
fix: replace class reference on type hint of `init_ui`
mmikita95 Feb 11, 2025
9d26fab
feat: Inject ui handler
ramedina86 Feb 12, 2025
1a413d4
SEO page improvements
samjulien Feb 12, 2025
1dfd8b5
feat(writer): include description in `GraphTool`
madeindjs Feb 14, 2025
a98c000
fix(ui): improve text input ghost variant - WF-184
madeindjs Feb 14, 2025
aa83a00
fix(ui): fix "add file" alignement - WF-184
madeindjs Feb 14, 2025
f3c23d3
fix(ui): harmonize dropdown in code editor - WF-184
madeindjs Feb 14, 2025
3aceb1d
feat: UI workflows link
ramedina86 Feb 19, 2025
5c844fb
Merge pull request #743 from samjulien/seo-fixes
ramedina86 Feb 19, 2025
bf90d70
Merge pull request #715 from madeindjs/WF-163
ramedina86 Feb 19, 2025
b6b14f3
feat: UI workflows link
ramedina86 Feb 19, 2025
ffe261f
feat(ui): redesign Dataframe editor - AI-23
madeindjs Jan 16, 2025
624a78c
fix(ui): restore wraping lines in dataframe editor - AI-23
madeindjs Jan 29, 2025
324a5e5
feat: UI workflows link
ramedina86 Feb 20, 2025
39e58c8
feat: UI workflow link
ramedina86 Feb 20, 2025
0ff7de8
feat(ui): remove legacy dataframe - AI-23
madeindjs Feb 20, 2025
da37068
fix: Remove unused variable
ramedina86 Feb 20, 2025
dc4eecb
Update src/ui/src/builder/settings/BuilderSettingsHandlers.vue
ramedina86 Feb 20, 2025
9ccfc65
Update src/ui/src/builder/settings/BuilderFieldsText.vue
ramedina86 Feb 20, 2025
7fdb201
feat: Code block
ramedina86 Feb 20, 2025
71aeac9
feat: UI workflow link
ramedina86 Feb 20, 2025
5512263
Merge pull request #748 from writer/feat-ui-workflows-link
ramedina86 Feb 20, 2025
fb4b01d
feat(ui): improve component tree search. WF-183
madeindjs Feb 14, 2025
3cd5c0e
feat(ui): expand component tree on search and add animation - WF-183
madeindjs Feb 17, 2025
67dc6a8
fix(ui): prevent overflow in workflow logs
madeindjs Feb 18, 2025
3d7179a
feat(ui): display results count in filter - WF-183
madeindjs Feb 18, 2025
11f431d
feat(ui): display search count in toolkit - WF-183
madeindjs Feb 18, 2025
cb38323
fix(ui): move only unselected node in worflow
madeindjs Feb 20, 2025
879aafe
fix: Fix reduce
ramedina86 Feb 20, 2025
b0b7b55
fix: Avoid undefined handler function
ramedina86 Feb 20, 2025
f72eccd
Merge pull request #729 from madeindjs/AI-23
ramedina86 Feb 20, 2025
29ad187
Merge pull request #744 from madeindjs/fix-kg-description
ramedina86 Feb 20, 2025
d957e96
Merge pull request #745 from madeindjs/WF-184
ramedina86 Feb 20, 2025
9c51b9f
Merge pull request #746 from madeindjs/WF-183
ramedina86 Feb 20, 2025
ef9bf77
Merge pull request #749 from madeindjs/fix-workflow-drag
ramedina86 Feb 20, 2025
b9af35e
Merge pull request #750 from writer/fix-ui-workflows-link-small-fixes
ramedina86 Feb 20, 2025
c4d56cc
fix(ui): use word break in tooltip
madeindjs Feb 20, 2025
c81a6f2
feat: Inject ui handler
ramedina86 Feb 12, 2025
31f8084
feat: UI workflows link
ramedina86 Feb 19, 2025
9fc3cab
feat: UI workflows link
ramedina86 Feb 19, 2025
2e5e75e
feat: UI workflows link
ramedina86 Feb 20, 2025
6069ffc
feat: UI workflow link
ramedina86 Feb 20, 2025
5a19cdc
fix: Remove unused variable
ramedina86 Feb 20, 2025
d80dff9
Update src/ui/src/builder/settings/BuilderSettingsHandlers.vue
ramedina86 Feb 20, 2025
11d060b
Update src/ui/src/builder/settings/BuilderFieldsText.vue
ramedina86 Feb 20, 2025
1c625c6
feat: UI workflow link
ramedina86 Feb 20, 2025
b5a4c01
feat(ui): redesign Dataframe editor - AI-23
madeindjs Jan 16, 2025
973cac6
fix(ui): restore wraping lines in dataframe editor - AI-23
madeindjs Jan 29, 2025
9efba1f
feat(ui): remove legacy dataframe - AI-23
madeindjs Feb 20, 2025
bb43636
feat(writer): include description in `GraphTool`
madeindjs Feb 14, 2025
6e03274
fix(ui): improve text input ghost variant - WF-184
madeindjs Feb 14, 2025
b33962c
fix(ui): fix "add file" alignement - WF-184
madeindjs Feb 14, 2025
316b277
fix(ui): harmonize dropdown in code editor - WF-184
madeindjs Feb 14, 2025
2418350
feat(ui): improve component tree search. WF-183
madeindjs Feb 14, 2025
cd1613c
feat(ui): expand component tree on search and add animation - WF-183
madeindjs Feb 17, 2025
1d08202
fix(ui): prevent overflow in workflow logs
madeindjs Feb 18, 2025
11c60a2
feat(ui): display results count in filter - WF-183
madeindjs Feb 18, 2025
fd69b9c
feat(ui): display search count in toolkit - WF-183
madeindjs Feb 18, 2025
12bd657
fix(ui): move only unselected node in worflow
madeindjs Feb 20, 2025
a80cbdf
fix: Fix reduce
ramedina86 Feb 20, 2025
817d580
fix: Avoid undefined handler function
ramedina86 Feb 20, 2025
079fe7a
Merge pull request #751 from madeindjs/fix-tooltip-word-break
ramedina86 Feb 21, 2025
fd52c05
Merge pull request #738 from mmikita95/fix-init-ui-class-return
ramedina86 Feb 21, 2025
baa60e1
feat: implement `FieldType.WorkflowKey` - WF-145
madeindjs Jan 31, 2025
eaec355
fix(ui): fix E2E for new workflow key field - WF-145
madeindjs Feb 4, 2025
1550885
fix(ui): change active page when jumping on the workflow - WF-145
madeindjs Feb 4, 2025
47c0f57
feat: implement `FieldType.Handler` - WF-136
madeindjs Feb 4, 2025
120eaee
fix(ui): handle long name in workflow selector - WF-145
madeindjs Feb 21, 2025
53ef1b9
feat: Modal and expansible field wrapper
ramedina86 Feb 21, 2025
bbe4487
fix: Set outcome
ramedina86 Feb 21, 2025
b0f32e4
feat: Workflows code block
ramedina86 Feb 21, 2025
800fcfb
feat: Announcement mail
ramedina86 Feb 23, 2025
62abc8a
fix: Remove completed TODO
ramedina86 Feb 23, 2025
e64ab15
fix: Wrong logger
ramedina86 Feb 23, 2025
4f1fbed
feat(ui): introduce `FieldType.Boolean` - WF-165
madeindjs Jan 28, 2025
7f8826b
Merge pull request #734 from madeindjs/WF-145
ramedina86 Feb 24, 2025
902edb1
Merge pull request #735 from madeindjs/WF-175
ramedina86 Feb 24, 2025
e107fa3
Merge pull request #753 from writer/feat-announcement-queue
ramedina86 Feb 24, 2025
35a9074
Merge pull request #732 from madeindjs/WF-165
ramedina86 Feb 24, 2025
79b319f
feat: setup knowledge graph selector - WF-138
madeindjs Feb 7, 2025
fa713ff
feat(ui): use `WdsTag` for `BuilderSelect` - WF-138
madeindjs Feb 19, 2025
7fa68ea
feat(ui): create loading state for dropdown menu - WD-138
madeindjs Feb 19, 2025
a3cf137
feat(ui): introduce `WdsCheckbox` - WF-138
madeindjs Feb 19, 2025
e6c5a66
feat(ui): introduce `BuilderSelect` header in mutliselect mode - WF-138
madeindjs Feb 20, 2025
59f22ee
feat(ui): store active mode in localStorage - WF-189
madeindjs Feb 21, 2025
983352f
fix(ui): cleanup dead clode - WF-138
madeindjs Feb 24, 2025
69c1975
Merge branch 'dev' into feat-workflows-code-block2
ramedina86 Feb 24, 2025
538bdc7
fix: Remove unused nextTick
ramedina86 Feb 24, 2025
9518577
fix: use async loader for monaco inside `BuilderFieldsCode`
madeindjs Feb 24, 2025
041c929
Merge pull request #739 from madeindjs/WF-138
ramedina86 Feb 24, 2025
a14af0a
Merge branch 'dev' into feat-workflows-code-block2
ramedina86 Feb 24, 2025
b244cac
feat: SDK 2.0 support & features
mmikita95 Feb 25, 2025
6b41e47
fix: Min height in full variant
ramedina86 Feb 25, 2025
eaee6b2
fix: lint & typing
mmikita95 Feb 25, 2025
7cdc6ef
fix: poetry lock file
mmikita95 Feb 25, 2025
f267010
feat: Parallel exec
ramedina86 Feb 25, 2025
dadc6f1
fix: Cleanup
ramedina86 Feb 25, 2025
d1e3108
feat: Reuse AppProcess pool executor for parallelizing workflow execu…
ramedina86 Feb 25, 2025
d7058fa
fix: Make session_id not optional
ramedina86 Feb 25, 2025
6f36c11
fix: Remove anonymous literal
ramedina86 Feb 25, 2025
c41d1c1
fix: Synchronous executor for debugging
ramedina86 Feb 25, 2025
e63374e
fix: Fallback executor
ramedina86 Feb 25, 2025
5b8232d
fix: Mypy
ramedina86 Feb 25, 2025
668e9f0
fix: Move executor creation to child process
ramedina86 Feb 25, 2025
6f5a3dc
fix: Fix reference to pool executor
ramedina86 Feb 25, 2025
77f9d35
Merge pull request #757 from mmikita95/chore-sdk-major-bump
ramedina86 Feb 26, 2025
87eb430
Merge pull request #755 from writer/feat-workflows-code-block2
ramedina86 Feb 26, 2025
3a88875
Merge branch 'dev' into feat-parallel-exec
ramedina86 Feb 26, 2025
857ddc8
feat: Trigger styling
ramedina86 Feb 26, 2025
0c3a643
fix: Reintroduce tool saving
ramedina86 Feb 26, 2025
fe21139
fix: Remove unnecessary log message
ramedina86 Feb 26, 2025
5868d08
Merge pull request #758 from writer/feat-parallel-exec
ramedina86 Feb 26, 2025
2f4fe60
feat: Running triggers
ramedina86 Feb 26, 2025
7269a4f
Merge branch 'dev' into feat-workflow-live
ramedina86 Feb 26, 2025
a50173c
feat: display binary file in code editor - WF-194
madeindjs Feb 24, 2025
1a9113f
feat: implement file uploading (text only) - WF-194
madeindjs Feb 25, 2025
e20c665
feat: upload the file in base64 - WF-194
madeindjs Feb 25, 2025
8f2e490
feat: refresh code editor after uploading a file
madeindjs Feb 25, 2025
1a5006b
feat: ignore `.DS_Store` in multi-file editor
madeindjs Feb 25, 2025
cce96a0
feat: handle drop area - WF-194
madeindjs Feb 25, 2025
ea8ddb8
feat(ui): support droping file in editor (WIP) - WF-194
madeindjs Feb 26, 2025
dd1bc00
feat(ui): move droping placeholder in panel - WF-194
madeindjs Feb 26, 2025
38fb368
feat(ui): handle multiple file upload - WF-194
madeindjs Feb 26, 2025
dff397d
fix(ui): reduce max upload size to 150mb - WF-194
madeindjs Feb 26, 2025
a00525e
feat(ui): display progressbar on upload - WF-194
madeindjs Feb 26, 2025
779e6cb
fix(ui): add min-size to file upload spinner
madeindjs Feb 27, 2025
69d93ce
chore: gather all available apps on `writer.ai.apps.list()`
mmikita95 Feb 27, 2025
0205f19
fix: Multiple announcement queues
ramedina86 Feb 27, 2025
e32e1ca
Merge pull request #762 from mmikita95/chore-gather-all-apps
ramedina86 Feb 28, 2025
1e96fd6
fix: wrong return on `writer.ai.apps.list(...)`
mmikita95 Feb 28, 2025
9ba5576
fix: cleaner structure
mmikita95 Feb 28, 2025
9fe9a94
fix: compliance with lint
mmikita95 Feb 28, 2025
847c3fa
Merge pull request #763 from mmikita95/fix-gather-all-apps
mmikita95 Feb 28, 2025
81d767e
feat: implement writer application field - WF-167
madeindjs Feb 27, 2025
93e2b51
fix: improve new field key naming
madeindjs Feb 28, 2025
c24d49e
Merge pull request #759 from madeindjs/WF-167
ramedina86 Feb 28, 2025
4aff29e
Merge pull request #756 from madeindjs/WF-194
ramedina86 Feb 28, 2025
c423dac
feat: Live workflow
ramedina86 Feb 28, 2025
0772c3e
fix: Types, tests
ramedina86 Feb 28, 2025
cc955b8
fix: e2e rename
ramedina86 Feb 28, 2025
e0dc91b
fix: e2e rename
ramedina86 Feb 28, 2025
2a2b56e
fix: Adjust e2e for streaming
ramedina86 Feb 28, 2025
e8a6296
fix: e2e
ramedina86 Feb 28, 2025
ad7117c
Merge pull request #765 from writer/feat-workflow-live
ramedina86 Feb 28, 2025
51c6d5d
chore: Bump version
ramedina86 Feb 28, 2025
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
43 changes: 23 additions & 20 deletions docs/framework/seo.mdx
Original file line number Diff line number Diff line change
@@ -1,65 +1,67 @@
---
title: "Seo and social sharing"
title: "SEO and social sharing"
mode: "wide"
---

Writer Framework offers you the possibility of optimizing metadata to optimize your SEO and the sharing of information on social networks.
Writer Framework provides powerful options for optimizing your application's metadata to improve SEO (Search Engine Optimization) and enhance how your content appears when shared on social networks. These options are available in the `writer.serve.configure_webpage_metadata` function available in the `server_setup.py` file.

### Configure page title
## Page title configuration

The page title is editable for web crawlers. This title is a key element for the SEO of your application. A bot will not load the app. It will see `Writer Framework` by default.
The page title is a crucial element for your application's SEO. Web crawlers and bots will see this title without loading the full application. By default, they will see `Writer Framework`.

```python
writer.serve.configure_webpage_metadata(title="My amazing app")
# ./server_setup.py
writer.serve.configure_webpage_metadata(title="My Amazing App")
```

If you need dynamic title,you can use a function instead of a hard coded parameter. The title will be evaluated when the Robot loads the page.
For dynamic titles, you can use a function instead of a static string. The title will be evaluated when a bot loads the page:

```python
# ./server_setup.py
def _title():
last_news = db.get_last_news()
return f"Last news: {last_news.title}"

writer.serve.configure_webpage_metadata(title=_title)
```

### Configure meta tags
## Meta tags configuration

http headers allow you to specify a title, a description and keywords which will be used by a search engine.
HTTP headers allow you to specify a title, description, and keywords that search engines will use to understand and index your content. You can configure these tags using the `meta` parameter.

*./server_setup.py*
```python
# ./server_setup.py
writer.serve.configure_webpage_metadata(
title="My amazing app",
title="My Amazing App",
meta={
"description": "my amazing app",
"description": "My amazing app",
"keywords": "WF, Amazing, AI App",
"author": "Amazing company"
"author": "Amazing Company"
}
)
```

You can also use a function to generate the meta tags dynamically.
You can also generate meta tags dynamically using a function:

*./server_setup.py*
```python
# ./server_setup.py
def _meta():
last_news = db.get_last_news()
return {
"description": f"Last news: {last_news.title}",
"keywords": f"{last_news.keywords}",
"author": "Amazing company"
"author": "Amazing Company"
}

writer.serve.configure_webpage_metadata(meta=_meta)
```

### Configure social networks
## Social network configuration

When you share a link on social networks, they will try to fetch the metadata of the page to display a preview.
When users share links to your application on social networks, those platforms will attempt to fetch metadata to create rich previews of your content. You can configure the OpenGraph tags to improve the appearance of your content when shared.

*./server_setup.py*
```python
# ./server_setup.py
writer.serve.configure_webpage_metadata(
opengraph_tags= {
"og:title": "My App",
Expand All @@ -70,10 +72,10 @@ writer.serve.configure_webpage_metadata(
)
```

You can also use a function to generate the opengraph tags dynamically.
Like meta tags, OpenGraph tags can also be generated dynamically:

*./server_setup.py*
```python
# ./server_setup.py
def _opengraph_tags():
last_news = db.get_last_news()
return {
Expand All @@ -86,3 +88,4 @@ def _opengraph_tags():
writer.serve.configure_webpage_metadata(opengraph_tags=_opengraph_tags)
```

By configuring your application's metadata, your application will be more visible in search engines and social networks.
134 changes: 77 additions & 57 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading