feat: adding pre-commit and formatting stuff (#2196)
4
.github/ISSUE_TEMPLATE/page_request.yml
vendored
@@ -5,7 +5,7 @@
|
||||
name: 🤔 v2 Page Request
|
||||
title: '[request] '
|
||||
description: Request a new page or updated content
|
||||
labels:
|
||||
labels:
|
||||
- enhancement
|
||||
- discuss
|
||||
|
||||
@@ -27,7 +27,7 @@ body:
|
||||
placeholder: First I tried searching for the issue, then I went to the sidebar to find a relevant page...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: input
|
||||
id: url
|
||||
attributes:
|
||||
|
||||
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -29,6 +29,6 @@ Here’s what will happen next:
|
||||
3. One or more of our maintainers will take a look and may ask you to make changes.
|
||||
We try to be responsive, but don’t worry if this takes a day or two.
|
||||
|
||||
4. Reach out to us on Discord with any questions along the way:
|
||||
4. Reach out to us on Discord with any questions along the way:
|
||||
https://discord.com/invite/tauri
|
||||
-->
|
||||
-->
|
||||
|
||||
1
.github/labeler.yml
vendored
@@ -4,4 +4,3 @@ i18n:
|
||||
- src/content/docs/es/**/*
|
||||
- src/content/docs/fr/**/*
|
||||
- src/content/docs/zh-cn/**/*
|
||||
|
||||
|
||||
6
.github/sponsors/crabnebula.svg
vendored
@@ -3,7 +3,7 @@
|
||||
xml:space="preserve" xmlns:serif="http://www.serif.com/"
|
||||
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<style>
|
||||
.crabnebula-logo path,
|
||||
.crabnebula-logo path,
|
||||
.crabnebula-logo rect {
|
||||
fill: #001e42;
|
||||
}
|
||||
@@ -12,7 +12,7 @@
|
||||
fill: #fff;
|
||||
}
|
||||
}
|
||||
html[data-color-mode="dark"] .crabnebula-logo path,
|
||||
html[data-color-mode="dark"] .crabnebula-logo path,
|
||||
html[data-color-mode="dark"] .crabnebula-logo rect {
|
||||
fill: #fff;
|
||||
}
|
||||
@@ -28,4 +28,4 @@
|
||||
<rect x="1039.11" y="47.79" width="22.701" height="112.74" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
|
||||
<path d="M1110.86,162.184C1105.95,162.184 1101.34,161.132 1097.03,159.027C1092.83,156.923 1089.17,154.117 1086.06,150.609C1082.96,147.001 1080.5,142.843 1078.7,138.133C1076.89,133.322 1075.99,128.261 1075.99,122.95C1075.99,117.639 1076.89,112.628 1078.7,107.918C1080.5,103.108 1082.96,98.949 1086.06,95.442C1089.17,91.834 1092.83,88.978 1097.03,86.873C1101.34,84.769 1105.95,83.717 1110.86,83.717C1113.37,83.717 1115.67,84.017 1117.78,84.619C1119.98,85.12 1121.94,85.821 1123.64,86.723C1125.44,87.625 1126.95,88.627 1128.15,89.729C1129.45,90.832 1130.5,91.884 1131.3,92.886L1131.3,85.37L1154,85.37L1154,160.53L1131.3,160.53L1131.3,153.014C1130.5,154.016 1129.45,155.069 1128.15,156.171C1126.95,157.273 1125.44,158.275 1123.64,159.177C1121.94,160.079 1119.98,160.781 1117.78,161.282C1115.67,161.883 1113.37,162.184 1110.86,162.184ZM1115.97,141.59C1121.08,141.59 1125.19,139.836 1128.3,136.329C1131.5,132.821 1133.11,128.362 1133.11,122.95C1133.11,117.539 1131.5,113.079 1128.3,109.572C1125.19,106.064 1121.08,104.31 1115.97,104.31C1110.86,104.31 1106.7,106.064 1103.5,109.572C1100.39,113.079 1098.84,117.539 1098.84,122.95C1098.84,128.362 1100.39,132.821 1103.5,136.329C1106.7,139.836 1110.86,141.59 1115.97,141.59Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
|
||||
<path d="M146.48,54.585C119.724,89.866 119.878,134.941 146.826,155.264C153.908,160.605 162.136,163.705 170.903,164.732C146.032,184.934 117.382,191.203 98.037,178.045C71.507,160 72.524,112.249 100.309,71.391C123.51,37.273 158.039,18.749 184.247,24.072C170.404,30.195 157.116,40.561 146.48,54.585ZM181.638,99.643C169.141,111.453 154.859,119.304 142.801,121.916C149.921,147.367 177.29,149.323 177.29,149.323C177.29,149.323 193.578,145.578 205.877,117.941C216.005,95.183 215.122,71.668 204.914,59.7C204.065,71.267 195.731,86.324 181.638,99.643Z" style="stroke:black;stroke-width:0.55px;"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
1
.github/workflows/congrats.yml
vendored
@@ -9,4 +9,3 @@ jobs:
|
||||
uses: tauri-apps/automation/.github/workflows/congrats.yml@main
|
||||
secrets:
|
||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
|
||||
1
.github/workflows/labeler.yml
vendored
@@ -19,4 +19,3 @@ jobs:
|
||||
- name: Rebuild i18n Dashboard
|
||||
if: contains(steps.label-pr.outputs.all-labels, 'i18n')
|
||||
run: curl -X POST -d {} https://api.netlify.com/build_hooks/$NETLIFY_BUILD_KEY
|
||||
|
||||
|
||||
9
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.6.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- id: check-json
|
||||
- id: check-added-large-files
|
||||
@@ -15,3 +15,6 @@ pnpm-lock.yaml
|
||||
# Configs
|
||||
.github
|
||||
!.github/**.md
|
||||
|
||||
# TODO: Figure out why this format isn't acceptable
|
||||
src/components/overrides/Header.astro
|
||||
|
||||
48
.prettierrc
@@ -1,23 +1,29 @@
|
||||
{
|
||||
"printWidth": 100,
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "es5",
|
||||
"useTabs": true,
|
||||
"plugins": ["prettier-plugin-astro"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": [".*", "*.json", "*.md", "*.toml", "*.yml"],
|
||||
"options": {
|
||||
"useTabs": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["*.md", "*.mdx"],
|
||||
"options": {
|
||||
"printWidth": 80
|
||||
}
|
||||
}
|
||||
]
|
||||
"printWidth": 100,
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "es5",
|
||||
"useTabs": true,
|
||||
"plugins": ["prettier-plugin-astro"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": "*.astro",
|
||||
"options": {
|
||||
"parser": "astro"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["*.json", "*.md", "*.toml", "*.yml"],
|
||||
"options": {
|
||||
"useTabs": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["*.md", "*.mdx"],
|
||||
"options": {
|
||||
"printWidth": 80
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
7
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"files.encoding": "utf8",
|
||||
"prettier.documentSelectors": ["**/*.astro"],
|
||||
"[astro]": {
|
||||
"editor.defaultFormatter": "astro-build.astro-vscode"
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import rehypeAutolinkHeadings from 'rehype-autolink-headings';
|
||||
import locales from './locales.json';
|
||||
import starlightLinksValidator from 'starlight-links-validator';
|
||||
import starlightBlog from 'starlight-blog';
|
||||
import serviceWorker from "astrojs-service-worker";
|
||||
import serviceWorker from 'astrojs-service-worker';
|
||||
|
||||
const authors = {
|
||||
nothingismagick: {
|
||||
@@ -81,8 +81,8 @@ export default defineConfig({
|
||||
rss: `${site}/rss`,
|
||||
},
|
||||
components: {
|
||||
Sidebar: "./src/components/overrides/Sidebar.astro",
|
||||
Header: "./src/components/overrides/Header.astro",
|
||||
Sidebar: './src/components/overrides/Sidebar.astro',
|
||||
Header: './src/components/overrides/Header.astro',
|
||||
Footer: 'src/components/overrides/Footer.astro',
|
||||
ThemeSelect: 'src/components/overrides/ThemeSelect.astro',
|
||||
PageFrame: 'src/components/overrides/PageFrame.astro',
|
||||
@@ -106,7 +106,7 @@ export default defineConfig({
|
||||
tag: 'link',
|
||||
attrs: {
|
||||
rel: 'manifest',
|
||||
href: '/manifest.json'
|
||||
href: '/manifest.json',
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -129,19 +129,19 @@ export default defineConfig({
|
||||
items: [
|
||||
{
|
||||
label: 'What is Tauri?',
|
||||
link: '/start/'
|
||||
link: '/start/',
|
||||
},
|
||||
{
|
||||
label: 'Prerequisites',
|
||||
link: '/start/prerequisites/'
|
||||
link: '/start/prerequisites/',
|
||||
},
|
||||
{
|
||||
label: 'Create a Project',
|
||||
link: '/start/create-project/',
|
||||
badge: {
|
||||
text: 'WIP',
|
||||
variant: 'caution'
|
||||
}
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Frontend Configuration',
|
||||
@@ -153,7 +153,7 @@ export default defineConfig({
|
||||
collapsed: true,
|
||||
autogenerate: { directory: 'start/migrate' },
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Core Concepts',
|
||||
@@ -190,7 +190,7 @@ export default defineConfig({
|
||||
collapsed: true,
|
||||
autogenerate: { directory: 'about' },
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'References',
|
||||
@@ -198,23 +198,23 @@ export default defineConfig({
|
||||
items: [
|
||||
{
|
||||
label: 'Access Control List',
|
||||
link: '/reference/acl/'
|
||||
link: '/reference/acl/',
|
||||
},
|
||||
{
|
||||
label: 'Command Line Interface (CLI)',
|
||||
link: '/reference/cli/'
|
||||
link: '/reference/cli/',
|
||||
},
|
||||
{
|
||||
label: 'Configuration',
|
||||
link: '/reference/config/'
|
||||
link: '/reference/config/',
|
||||
},
|
||||
{
|
||||
label: 'Environment Variables',
|
||||
link: '/reference/environment-variables/'
|
||||
link: '/reference/environment-variables/',
|
||||
},
|
||||
{
|
||||
label: 'Webview Versions',
|
||||
link: '/reference/webview-versions/'
|
||||
link: '/reference/webview-versions/',
|
||||
},
|
||||
{
|
||||
label: 'Releases',
|
||||
@@ -228,9 +228,9 @@ export default defineConfig({
|
||||
},
|
||||
{
|
||||
label: 'Rust (docs.rs)',
|
||||
link: 'https://docs.rs/tauri/2.0.0-beta.19/tauri/index.html'
|
||||
link: 'https://docs.rs/tauri/2.0.0-beta.19/tauri/index.html',
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Blog',
|
||||
@@ -238,14 +238,14 @@ export default defineConfig({
|
||||
items: [
|
||||
{
|
||||
label: 'All posts',
|
||||
link: '/blog/'
|
||||
link: '/blog/',
|
||||
},
|
||||
{
|
||||
label: 'Recent posts',
|
||||
collapsed: false,
|
||||
autogenerate: { directory: 'blog' }, // TODO: Manually construct `items` to sort by dates
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
],
|
||||
locales,
|
||||
@@ -257,19 +257,21 @@ export default defineConfig({
|
||||
clientsClaim: true,
|
||||
inlineWorkboxRuntime: true,
|
||||
skipWaiting: true,
|
||||
globIgnores: ["**_redirects**", "**_headers**"],
|
||||
globPatterns: ["**/*.js", "**/*.css"],
|
||||
runtimeCaching: [{
|
||||
urlPattern: new RegExp('.*'),
|
||||
handler: 'CacheFirst',
|
||||
options: {
|
||||
cacheName: 'tauri-runtime',
|
||||
expiration: {
|
||||
maxAgeSeconds: 30 * 60 // 30 minutes
|
||||
globIgnores: ['**_redirects**', '**_headers**'],
|
||||
globPatterns: ['**/*.js', '**/*.css'],
|
||||
runtimeCaching: [
|
||||
{
|
||||
urlPattern: new RegExp('.*'),
|
||||
handler: 'CacheFirst',
|
||||
options: {
|
||||
cacheName: 'tauri-runtime',
|
||||
expiration: {
|
||||
maxAgeSeconds: 30 * 60, // 30 minutes
|
||||
},
|
||||
},
|
||||
},
|
||||
}]
|
||||
}
|
||||
],
|
||||
},
|
||||
}),
|
||||
],
|
||||
markdown: {
|
||||
@@ -376,9 +378,9 @@ function i18nRedirect(from, to) {
|
||||
locale === 'root'
|
||||
? (routes[from] = to)
|
||||
: (routes[`/${locale}/${from.replaceAll(/^\/*/g, '')}`] = `/${locale}/${to.replaceAll(
|
||||
/^\/*/g,
|
||||
''
|
||||
)}`)
|
||||
/^\/*/g,
|
||||
''
|
||||
)}`)
|
||||
);
|
||||
return routes;
|
||||
}
|
||||
|
||||
@@ -249,9 +249,9 @@
|
||||
|
||||
<p>
|
||||
If you're interested in helping us translate
|
||||
<a href="https://v2.tauri.app/">v2.tauri.app</a> into one of the languages listed
|
||||
below, you've come to the right place! This auto-updating page always lists all the
|
||||
content that could use your help right now.
|
||||
<a href="https://v2.tauri.app/">v2.tauri.app</a> into one of the languages listed below,
|
||||
you've come to the right place! This auto-updating page always lists all the content that
|
||||
could use your help right now.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
/guides/upgrade-migrate /start/upgrade--migrate 301
|
||||
/guides/upgrade-migrate/* /start/upgrade--migrate/:splat 301
|
||||
|
||||
/references/v2/cli /references/cli 301
|
||||
/references/v2/acl /references/acl 301
|
||||
/references/v2/cli /references/cli 301
|
||||
/references/v2/acl /references/acl 301
|
||||
/references/v2/config /references/config 301
|
||||
/references/v2/js /references/javascript/api 301
|
||||
/references/v2/js/* /references/javascript/api/:splat 301
|
||||
|
||||
@@ -1 +1 @@
|
||||
<svg width="226" height="226" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M152.8 82.7a21.6 21.6 0 1 1-43.3 0 21.6 21.6 0 0 1 43.3 0Zm-36.3 60.6a21.6 21.6 0 1 1-43.2 0 21.6 21.6 0 0 1 43.2 0Z" fill="#000"/><path d="M78.4 63.3a81.8 81.8 0 1 0 94.7 104.3 95 95 0 0 1-31.4 9.2A57.6 57.6 0 1 1 75 89.3a59 59 0 0 1 3.4-26Z" fill="#000"/><path fill-rule="evenodd" clip-rule="evenodd" d="M147.6 162.7A81.8 81.8 0 1 0 52.9 58.4a95 95 0 0 1 31.4-9.2 57.6 57.6 0 1 1 66.7 87.5 59 59 0 0 1-3.4 26Z" fill="#000"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>
|
||||
<svg width="226" height="226" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M152.8 82.7a21.6 21.6 0 1 1-43.3 0 21.6 21.6 0 0 1 43.3 0Zm-36.3 60.6a21.6 21.6 0 1 1-43.2 0 21.6 21.6 0 0 1 43.2 0Z" fill="#000"/><path d="M78.4 63.3a81.8 81.8 0 1 0 94.7 104.3 95 95 0 0 1-31.4 9.2A57.6 57.6 0 1 1 75 89.3a59 59 0 0 1 3.4-26Z" fill="#000"/><path fill-rule="evenodd" clip-rule="evenodd" d="M147.6 162.7A81.8 81.8 0 1 0 52.9 58.4a95 95 0 0 1 31.4-9.2 57.6 57.6 0 1 1 66.7 87.5 59 59 0 0 1-3.4 26Z" fill="#000"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 599 B After Width: | Height: | Size: 600 B |
@@ -1,24 +1,24 @@
|
||||
{
|
||||
"name": "Tauri",
|
||||
"short_name": "Tauri",
|
||||
"description": "The cross-platform app building toolkit",
|
||||
"start_url": "/index.html",
|
||||
"display": "standalone",
|
||||
"background_color": "#181818",
|
||||
"theme_color": "#181818",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/logo.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/logo.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"lang": "en-US",
|
||||
"orientation": "portrait",
|
||||
"scope": "/"
|
||||
"name": "Tauri",
|
||||
"short_name": "Tauri",
|
||||
"description": "The cross-platform app building toolkit",
|
||||
"start_url": "/index.html",
|
||||
"display": "standalone",
|
||||
"background_color": "#181818",
|
||||
"theme_color": "#181818",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/logo.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/logo.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"lang": "en-US",
|
||||
"orientation": "portrait",
|
||||
"scope": "/"
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ en,"13/01/2023, 15:20",TioriyuhjpBtoPSzsBsm,20 - 29,5 - 10,Full-Stack,,Français
|
||||
en,"13/01/2023, 13:58",2PHzYm4E4BvOkW7h5G9B,20 - 29,5 - 10,Full-Stack,,Français,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,GitHub Trending,,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,,3 - 6 months,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,,8,Yes,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,Deep link,,Heard of it and used it,Heard of them but not used them,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,8,,8,,9,,10,,FALSE,"I'm the co-founder of Faikers, a fake data generator! https://faikers.com/",yes,TRUE,Thanks for this awesome framework!,
|
||||
en,"13/01/2023, 11:04",qftxcIOoOZBBkGurNOGg,30 - 39,10 - 20,Full-Stack,,English,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,C#,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Hacker News,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,3 - 6 months,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,8,Yes,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,Bindings for other frameworks like .NET.,Better feature parity with Electron.,Heard of it but not used it,Heard of them and used them,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,Discord,7,,7,,8,,9,,TRUE,,,FALSE,,
|
||||
en,"13/01/2023, 09:04",m6PmnHsRhWZKHBRlxESC,20 - 29,5 - 10,Full-Stack,,English,,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Other / I don't remember,Was too long ago to remember. Have been around since the early days.,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,6 months - 1 year,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,9,Yes,,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,,Heard of it and used it,Heard of them and used them,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,9,,8,,9,,10,,FALSE,https://github.com/lukethacoder/salesforce-trekken - almost ready for a beta release,yes,FALSE,,
|
||||
en,"13/01/2023, 08:51",iaIbKzWDzZMejDHKUx5f,40 - 49,5 - 10,Frontend,,Svenska,,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,"Web Search (Google, DuckDuckGo)",,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,,"None, but I want to use Tauri",,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,7,Yes,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,"This Q may come out of lack of complete knowledge about Tauri but what I really want is a way do develop crossplatform apps with web tech. PWA can get me all the way sometimes but when I need native API:s or want to also distribute via app store it sadly is lacking. So an easy way to budle cross platform (inc mobile) apps using a common web app as the core and get access to native API:s from JS pref witout too much rust coding.
|
||||
Cross platform would also entail other ecosystems such as Ubuntu Touch, etc. Would be great to be able to use web tech to publish apps for these important alternatives and help their ecosystem grow to viable alternatives.
|
||||
en,"13/01/2023, 08:51",iaIbKzWDzZMejDHKUx5f,40 - 49,5 - 10,Frontend,,Svenska,,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,"Web Search (Google, DuckDuckGo)",,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,,"None, but I want to use Tauri",,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,7,Yes,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,"This Q may come out of lack of complete knowledge about Tauri but what I really want is a way do develop crossplatform apps with web tech. PWA can get me all the way sometimes but when I need native API:s or want to also distribute via app store it sadly is lacking. So an easy way to budle cross platform (inc mobile) apps using a common web app as the core and get access to native API:s from JS pref witout too much rust coding.
|
||||
Cross platform would also entail other ecosystems such as Ubuntu Touch, etc. Would be great to be able to use web tech to publish apps for these important alternatives and help their ecosystem grow to viable alternatives.
|
||||
Also some handholding/automation in the app store submition/and updating process would be nice (I would use a paid add on service thats run by Tauri to manage this)
|
||||
And if I am allowed to dream - a new truly open source, community owned/controlled, modern, resource effective and secure web rendering engine (browser) could dawn perhaps from Servo , and even new JS engine eg. BOA this would be truly ground breaking. Seems to me Tauri is in a position to be part of that puzzle.
|
||||
Finally I love the ethos and values of Tauri, community based, open source at heart. Thanks for all your great work!","Fetaure wise Mobile support has been one, but this looks promising :) Another is my lack of Rust skills. Seems a little daunting from my pure JS/web stack perspective, but that could be a bit of an illusion. Nonetheless, it has been one of the mental obstacles for dipping my toes so far...",Heard of it but not used it,Heard of them but not used them,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,7,,6,,6,,8,,FALSE,,,FALSE,,
|
||||
@@ -51,7 +51,7 @@ en,"10/01/2023, 11:14",novx1UJogV3SqUcFoTWo,40 - 49,Over 20 years,Full-Stack,,De
|
||||
[redacted]",
|
||||
en,"10/01/2023, 10:12",jL7woG7PBLIixYCRmzKQ,20 - 29,5 - 10,Full-Stack,,Deutsch,,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Reddit,,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,"None, but I want to use Tauri",,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,7,Yes,,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,,Heard of it but not used it,Heard of them but not used them,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,8,,8,,9,,7,,FALSE,,,FALSE,,
|
||||
en,"09/01/2023, 21:04",81CpODRTbh2auz0jLAbg,30 - 39,10 - 20,Full-Stack,,English,,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,Ruby,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,Rails,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Other / I don't remember,The change log podcast,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,Electron was not great,1 - 3 months,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,,9,Yes,,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,"Deep-linking, better file system api in js",No. I am already using it in prod,Heard of it and used it,Heard of them and used them,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,,4,More information and more examples. I’m having to dig into source code to find out exactly what some things are doing.,6,More examples,9,,8,,FALSE,,no,TRUE,Good job so far. Keep up the good work,
|
||||
en,"09/01/2023, 20:04",jR0yqSlNXrtMcAYUUnA1,40 - 49,10 - 20,Full-Stack,,Português,,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,"Raylib, Nannou, Egui, Qt",FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Reddit,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,Less than 1 month,,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,,9,Yes,,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,Add raylib template for games and interactive apps,"Security for developers -> protect source code.
|
||||
en,"09/01/2023, 20:04",jR0yqSlNXrtMcAYUUnA1,40 - 49,10 - 20,Full-Stack,,Português,,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,"Raylib, Nannou, Egui, Qt",FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Reddit,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,Less than 1 month,,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,,9,Yes,,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,Add raylib template for games and interactive apps,"Security for developers -> protect source code.
|
||||
Security for users -> OS Core isolated Libs",Never heard of it and am interested,Heard of them but not used them,,,,,,,,,TRUE,TRUE,FALSE,TRUE,"Complete well structured books, complete set of videos forming a course (not scarsed individual youtube videos).",5,"Yes. Explain the architecture, with images graphics, and sample codes.",5,,8,Nothing comes to my mid right now,5,,FALSE,,,FALSE,,
|
||||
en,"09/01/2023, 19:14",wROhCAJOC36REsflsezX,30 - 39,10 - 20,Backend,,Русский,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,PHP,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,"Web Search (Google, DuckDuckGo)",,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,3 - 6 months,,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,,7,Yes,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,"Better support for MacOS native style. E.g. if the app is running, but all windows are closed, a click on the Dock icon should reopen the app.",Rust is hard 😅 Bu this is good for self-development. I'll make it 💃,Heard of it and used it,Never heard of them but interested,,,,,,,,,TRUE,FALSE,FALSE,FALSE,,8,,5,"The Quick Start has subsections. One of them is Vite. But Vite is there by default after `pnpm create tauri-app`, right? A little confusing 🤷",8,There is no option to subscribe to your blog. Or I haven't found it. I'd like to subscribe because I have missed 1.2.0 release 😱,6,GitHub issues/PRs need some love. A lot of issues/PRs have template text left (should be added to template as comments maybe?). Some issues seem dead (but maybe I monitor the less popular of them). Referencing issue in the PR title does not feel right as it is not clickable there.,FALSE,,,TRUE,You've built the best cross-platform app framework ever existed ❤️❤️❤️,
|
||||
en,"09/01/2023, 18:53",n6l1yDptjtJYI9y0iWi7,30 - 39,Less than 1,Frontend,,English,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Twitter,,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,"None, but I want to use Tauri",,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,,5,Not applicable,,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,,Never heard of it and am interested,Never heard of them but interested,,,,,,,,,TRUE,TRUE,TRUE,FALSE,,,,,,,,,,FALSE,,,,,
|
||||
@@ -100,7 +100,7 @@ It is hard to imagine a situation where everyone can write both Rust and TS in t
|
||||
In the case of a design in which Rust handles processing and TS concentrates on rendering, the number of IPCs may tend to swell.
|
||||
Conversely, if TS manages the overall processing and Rust concentrates on providing basic functions such as file access, there will be no difference in performance with web apps.
|
||||
There are tradeoffs between the two, and designers need to find the right balance for their application use cases.
|
||||
If there is something that can be used as a clue at that time, it will be helpful when building a team.",7,,10,,5,,FALSE,,,TRUE,"Thank you.
|
||||
If there is something that can be used as a clue at that time, it will be helpful when building a team.",7,,10,,5,,FALSE,,,TRUE,"Thank you.
|
||||
This is what I want.
|
||||
I love Tauri.",
|
||||
en,"06/01/2023, 02:17",UzyxQLbwINWK8a3tW5dS,Under 20,5 - 10,Frontend,,English,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,Friend or Colleage,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,6 months - 1 year,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,5,No,"Of the currently 5 developers, I am the only one who knows Rust, and our team tries to minimize situations like this.",FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,,Never heard of it and am interested,Never heard of them but not interested,,,,,,,,,TRUE,FALSE,FALSE,FALSE,,4,,,,,,,,FALSE,"A music client similar to Amberol but that interfaces with MPD, however it isn't quite ready for public release yet.",,FALSE,,
|
||||
@@ -200,7 +200,7 @@ en,"03/01/2023, 11:48",hOld7WbYjfSMIe6qUBoY,20 - 29,10 - 20,Full-Stack,,English,
|
||||
Docs on packaging are spread out and unclear when it comes to signing (EV/OV)",7,"As above, search on this site should cover API docs, perhaps with a preference for the articles/guides first.",9,There are a lot of separate communication channels. Github issues are good for bug reports or long standing feature requests. Discord is good for active support. Github discussions is... enabled? It seems like a duplicate channel which sees a lot less activity and makes searching for people with the same or similar issues much harder as we have at least 3 different searches to perform,FALSE,,no,TRUE,"It's a great little community. Thanks for answering our weird and difficult questions, hopefully we can all contribute more in future to help repay you!",
|
||||
en,"03/01/2023, 07:32",oh6a0Zrz2FZytrP10VvU,20 - 29,5 - 10,Security,,English,,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,Other / I don't remember,,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,,Less than 1 month,,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,,10,Not applicable,,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,,No Mobile,Never heard of it and am interested,Never heard of them but interested,,,,,,,,,TRUE,TRUE,TRUE,FALSE,,7,,5,,8,,8,,FALSE,,,FALSE,,
|
||||
en,"03/01/2023, 02:10",jcWm8e0aY8GU5fiRh1Fw,Under 20,5 - 10,Full-Stack,,English,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Other / I don't remember,I don't remember,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,,Over 1 year,,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,8,Yes,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,,,,,,,,,,,,,FALSE,FALSE,FALSE,FALSE,,10,,10,,8,,10,,,,,,,
|
||||
en,"02/01/2023, 23:16",5McJrrfBH2CRNOuZfSiL,20 - 29,10 - 20,Full-Stack,,English,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,"Web Search (Google, DuckDuckGo)",,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,3 - 6 months,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,7,Not applicable,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,Register as file handler,Rust learning curve,Heard of it but not used it,Heard of them and used them,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,,8,,7,,10,,6,,FALSE,https://github.com/basharovV/musicat,yes,TRUE,"So far I'm enjoying using Tauri since I can re-use my existing skills and simply implement apps that look native using frameworks I already know. Great job! I am building on macOS, and although I appreciate WRY using the built-in webview for convenience, Safari's Webkit is way behind Chrome in terms of features and stability.
|
||||
en,"02/01/2023, 23:16",5McJrrfBH2CRNOuZfSiL,20 - 29,10 - 20,Full-Stack,,English,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,"Web Search (Google, DuckDuckGo)",,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,3 - 6 months,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,7,Not applicable,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,Register as file handler,Rust learning curve,Heard of it but not used it,Heard of them and used them,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,,8,,7,,10,,6,,FALSE,https://github.com/basharovV/musicat,yes,TRUE,"So far I'm enjoying using Tauri since I can re-use my existing skills and simply implement apps that look native using frameworks I already know. Great job! I am building on macOS, and although I appreciate WRY using the built-in webview for convenience, Safari's Webkit is way behind Chrome in terms of features and stability.
|
||||
|
||||
I'm building a music app and the severity of some audio bugs on Safari is a bit of a pain to deal with. I would much prefer to have the choice of which WebView to use, or even to bundle a custom one with the app like Electron.",
|
||||
en,"02/01/2023, 21:40",3avfY3L2Pf7KcJ1yBOj7,20 - 29,2 - 5,Full-Stack,,Português,,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,Hacker News,,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,1 - 3 months,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,10,Yes,,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,,"Currently, only the time to learn all every specific that I already know about Electron and, of course, the community packages for things like custom window bar, easy integration with native libraries that usually came with a framework first version.",Heard of it but not used it,Heard of them and used them,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,8,,9,,9,,7,"It's still small compared to Electron, eventually will grow.",FALSE,,,FALSE,,
|
||||
@@ -224,7 +224,7 @@ en,"30/12/2022, 20:23",asF99NdRZDqakRA72Aww,50 or over,10 - 20,Full-Stack,,Deuts
|
||||
en,"30/12/2022, 19:44",zmEFo3u9pygsP7ZP02GD,Under 20,2 - 5,Full-Stack,,Deutsch,,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,YouTube,,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,Less than 1 month,,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,8,Yes,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,,Never heard of it and am interested,Never heard of them but interested,,,,,,,,,TRUE,FALSE,TRUE,FALSE,,8,,8,,8,,10,,FALSE,,,FALSE,,
|
||||
en,"30/12/2022, 17:55",ebnXmDxenDT6g7quPSlO,Under 20,1 - 2,Other / Not in this list,Batch and HTML developer,Português,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,Batch and HTML,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,NWjs,Other / I don't remember,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,Convert HTML files to EXE,"None, but I want to use Tauri",,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,,4,Not applicable,,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,"Windows GUI app, using the npm module is hard!",It's hard to make a app with it,Never heard of it but not interested,Never heard of them but not interested,,,,,,,,,FALSE,FALSE,FALSE,TRUE,NONE.,0,,0,"Still hard to make, even with a guide.",10,,0,,FALSE,,,FALSE,,
|
||||
en,"30/12/2022, 16:27",3KDeynlJE4V1Ekterqf7,30 - 39,2 - 5,Other / Not in this list,Product Lead,English,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Reddit,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,1 - 3 months,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,Industrial control software,7,Yes,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,Better async implementation of config store,Config store is very clunky. More clear information on how to use rust code with frontend,Heard of it but not used it,Heard of them and used them,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,4,Needs to be much more fleshed out. See detail in the node api documentation,7,,8,Needs a much better roadmap and explanation of how the roadmap is decided on,10,The discord is awesome but poor Fabian spends a lot of time answering the same questions repeatedly. An easily searched repository of common issues and answers could be useful,FALSE,,,FALSE,,
|
||||
en,"30/12/2022, 16:10",GuCs5D7V3d2yPgND71DK,Under 20,2 - 5,Backend,,English,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,GitHub Trending,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,1 - 3 months,,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,10,Yes,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,cross platform build,no,Heard of it but not used it,Heard of them and used them,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,10,,10,,9,,10,,FALSE,"YES. I'm satisfied with Tauri, I have no knowledge of rust, but I can use Tauri. It was a great experience. But now, I'm planning to learn more about rust to explore Tauri.
|
||||
en,"30/12/2022, 16:10",GuCs5D7V3d2yPgND71DK,Under 20,2 - 5,Backend,,English,,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,GitHub Trending,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,1 - 3 months,,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,10,Yes,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,cross platform build,no,Heard of it but not used it,Heard of them and used them,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,,10,,10,,9,,10,,FALSE,"YES. I'm satisfied with Tauri, I have no knowledge of rust, but I can use Tauri. It was a great experience. But now, I'm planning to learn more about rust to explore Tauri.
|
||||
I'm migrating my electron project to Tauri. I hope that I will release a new & super version of my project in the next week.
|
||||
Github link: https://github.com/AbduazizZiyodov/docker-dashboard",yes,FALSE,,
|
||||
en,"30/12/2022, 16:06",HlDaKKmDrm975cS8GMZB,30 - 39,2 - 5,Frontend,,English,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Other / I don't remember,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,1 - 3 months,,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,6,Yes,,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,,Never heard of it and am interested,Heard of them but not used them,,,,,,,,,TRUE,FALSE,FALSE,FALSE,,6,,6,,6,,9,,FALSE,,,FALSE,,
|
||||
@@ -419,7 +419,7 @@ en,"20/12/2022, 16:39",cHX0YTBQZhF7J8cCZaEj,20 - 29,5 - 10,Backend,,Svenska,,FAL
|
||||
en,"20/12/2022, 16:38",VE77SAhETTsig6jNe0ZA,40 - 49,2 - 5,Systems,,Deutsch,,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,Elm,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,Elm & elm-ui,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Discord,,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,,Less than 1 month,,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,6,Yes,,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,"More extensive documentation, tutorials, examples","- currently sparse documentation
|
||||
- mobile support currently alpha only
|
||||
- having to learn Rust...",Heard of it but not used it,Heard of them but not used them,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,4,"More explanation of the concepts behind stuff. For example, I had a hard time understanding the scoped filesystem access stuff - the interplay between allowlist settings, temporal scope change after file drop/open, etc.",3,"- Expand the ""Features"" section, e.g. ""working with files on the filesystem"" (only to mention the topic I was having trouble with): how to handle scopes, allowlist, when to use the TypeScript API and when to implement in Rust, ...
|
||||
- Add more examples, recipies, tutorials",8,,5,,FALSE,,,TRUE,Thank you for all the effort you are putting into Tauri!,"When you are asking to select features I am interested in (especially planned future features) - I didn't know about several of them so I wasn't able to say if I would be interested.
|
||||
- Add more examples, recipies, tutorials",8,,5,,FALSE,,,TRUE,Thank you for all the effort you are putting into Tauri!,"When you are asking to select features I am interested in (especially planned future features) - I didn't know about several of them so I wasn't able to say if I would be interested.
|
||||
|
||||
Maybe add links to some explanation of the features?"
|
||||
en,"20/12/2022, 16:36",YUJJ7HUmXBwKzhdnq9h3,30 - 39,5 - 10,Full-Stack,,English,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Other / I don't remember,Rustacean Station (I think),FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,"None, but I want to use Tauri",,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,,9,Yes,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,,Never heard of it and am interested,Heard of them but not used them,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,9,,8,,9,,10,,FALSE,,,FALSE,,
|
||||
@@ -747,4 +747,4 @@ zh-cn,"19/12/2022, 17:52",8DwOPJMWLAEUyOok25ge,20 - 29,2 - 5,Backend,,简体中
|
||||
zh-tw,"05/01/2023, 11:55",No04t7Vq28eVKIpTsmM2,20 - 29,2 - 5,Fullstack,,繁體中文,,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,,Twitter,,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,,Less than 1 month,,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,,8,Yes,,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,drag and drop (https://github.com/tauri-apps/tauri/issues/2593),FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,drag and drop (https://github.com/tauri-apps/tauri/issues/2593),Heard of it and used it,Heard of it but not used it,,,,,,,,,TRUE,TRUE,TRUE,FALSE,,5,,5,,5,,5,,FALSE,,,TRUE,I really hope drag and drop support will land one day 🤣,
|
||||
zh-tw,"29/12/2022, 06:34",fk7ybOAFX15NroNwaeLB,Under 20,2 - 5,Frontend,,繁體中文,,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,,YouTube,,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,Less than 1 month,,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,7,No,Not mature enough and exists much competitive alternative,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,,Heard of it but not used it,Heard of it but not used it,,,,,,,,,TRUE,FALSE,FALSE,FALSE,,4,,5,,4,,4,,FALSE,,,FALSE,,
|
||||
zh-tw,"20/12/2022, 15:27",Lcj7VL16DXBlqN0glIfB,40 - 49,5 - 10,Fullstack,,繁體中文,,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,"PHP, Kotlin, Swift",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,VanillaJS,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Twitter,,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,,"None, but I want to use Tauri",,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,,9,Not applicable,,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,,Rust just learning,Heard of it but not used it,Never heard of it but not interested,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,8,,8,,8,,7,,FALSE,,,FALSE,,
|
||||
zh-tw,"20/12/2022, 08:00",q6J1LWTUiYq64BSlcx0p,20 - 29,2 - 5,Frontend,,繁體中文,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Twitter,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,"None, but I want to use Tauri",,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,6,Yes,,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,,,Never heard of it but not interested,Never heard of it but not interested,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,7,,7,,8,,6,,FALSE,,,FALSE,,
|
||||
zh-tw,"20/12/2022, 08:00",q6J1LWTUiYq64BSlcx0p,20 - 29,2 - 5,Frontend,,繁體中文,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,,Twitter,,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,"None, but I want to use Tauri",,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,6,Yes,,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,,,Never heard of it but not interested,Never heard of it but not interested,,,,,,,,,TRUE,TRUE,FALSE,FALSE,,7,,7,,8,,6,,FALSE,,,FALSE,,
|
||||
|
||||
|
Can't render this file because it is too large.
|
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -3,4 +3,4 @@
|
||||
<path d="M108.64 148.39C108.64 160.732 98.5708 170.737 86.1499 170.737C73.729 170.737 63.6599 160.732 63.6599 148.39C63.6599 136.048 73.729 126.042 86.1499 126.042C98.5708 126.042 108.64 136.048 108.64 148.39Z" stroke="white"/>
|
||||
<path d="M69.0134 65.4936C30.2 73.3739 1 107.493 1 148.39C1 195.119 39.1229 233 86.1499 233C124.358 233 156.689 207.994 167.471 173.554C157.292 178.538 146.275 181.765 134.897 183.039C124.023 198.116 106.241 207.94 86.1499 207.94C53.0515 207.94 26.22 181.278 26.22 148.39C26.22 122.701 42.5902 100.811 65.5305 92.4581C64.5999 83.3843 65.7609 74.1388 69.0134 65.4936Z" stroke="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M140.986 168.506C179.8 160.626 209 126.507 209 85.6102C209 38.8813 170.877 1 123.85 1C85.6418 1 53.3113 26.006 42.5294 60.4465C52.708 55.4618 63.7247 52.2348 75.1035 50.9613C85.9768 35.884 103.759 26.0601 123.85 26.0601C156.948 26.0601 183.78 52.7216 183.78 85.6102C183.78 111.3 167.41 133.19 144.469 141.542C145.4 150.616 144.239 159.861 140.986 168.506Z" stroke="white"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1 +1 @@
|
||||
<svg width="432" height="137" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M178.94 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.66-1.7V54.65h-16.8a2.5 2.5 0 0 1-1.7-.66 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h50.75c.69 0 1.26.22 1.7.66.44.44.66 1 .66 1.7V52.3c0 .7-.22 1.26-.66 1.7a2.3 2.3 0 0 1-1.7.66h-16.8v48.98c0 .63-.21 1.2-.65 1.7-.44.45-1.01.67-1.7.67h-12.45Zm32.03 0c-.5 0-.97-.2-1.41-.57a2.15 2.15 0 0 1-.57-1.42c0-.38.03-.66.1-.85l22.16-60.7c.2-.76.6-1.4 1.23-1.9a3.8 3.8 0 0 1 2.45-.75h13.96c1.01 0 1.83.25 2.46.75.63.5 1.03 1.14 1.22 1.9l22.08 60.7.19.85a2 2 0 0 1-.66 1.42c-.38.38-.85.57-1.42.57h-11.6c-1.51 0-2.52-.67-3.02-1.99l-3.68-9.64h-25.19L225.7 104c-.5 1.32-1.54 1.99-3.12 1.99h-11.6Zm39.72-25.25-8.78-24.96-8.77 24.96h17.55Zm57.84 26.19c-8.87 0-15.82-2.17-20.85-6.52-4.97-4.35-7.45-10.9-7.45-19.67V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.17c.69 0 1.26.22 1.7.66.5.44.75 1 .75 1.7v38.49c0 4.1.94 7.18 2.83 9.26 1.95 2.02 4.75 3.03 8.4 3.03 3.58 0 6.35-1.04 8.3-3.12 1.95-2.08 2.92-5.14 2.92-9.17V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.26c.7 0 1.26.22 1.7.66.44.44.66 1 .66 1.7v38.58c0 8.76-2.51 15.32-7.54 19.67-4.97 4.35-11.83 6.52-20.57 6.52Zm42.98-.94c-.63 0-1.2-.22-1.7-.67a2.52 2.52 0 0 1-.66-1.7V42.17c0-.7.22-1.26.66-1.7.5-.44 1.07-.66 1.7-.66h25.66c8.24 0 14.65 1.89 19.24 5.67 4.66 3.72 6.98 9.02 6.98 15.89 0 4.4-1.03 8.16-3.1 11.25a19.9 19.9 0 0 1-8.6 7.09l12.93 23.26c.19.38.28.72.28 1.04a2 2 0 0 1-.66 1.42 1.8 1.8 0 0 1-1.32.57h-12.54a3.94 3.94 0 0 1-3.87-2.56l-10.76-20.8h-9.62v21c0 .69-.25 1.25-.75 1.7-.44.44-1 .66-1.7.66H351.5Zm25.47-36.79c2.9 0 5.1-.69 6.6-2.08 1.51-1.45 2.27-3.43 2.27-5.95s-.76-4.51-2.27-5.96c-1.44-1.51-3.64-2.27-6.6-2.27h-10.85v16.26h10.85ZM416.73 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.63c.7 0 1.26.22 1.7.66.5.44.76 1 .76 1.7v61.46c0 .7-.25 1.26-.76 1.7-.44.45-1 .67-1.7.67h-12.64Z" fill="#F7F7F7"/><path d="M85.76 49.92A13.1 13.1 0 0 1 72.62 63a13.1 13.1 0 0 1-13.14-13.08 13.1 13.1 0 0 1 13.14-13.07 13.1 13.1 0 0 1 13.14 13.07Z" fill="#FFC131"/><path d="M63.74 86.66A13.1 13.1 0 0 1 50.6 99.73a13.1 13.1 0 0 1-13.15-13.07A13.1 13.1 0 0 1 50.6 73.58a13.1 13.1 0 0 1 13.14 13.08Z" fill="#24C8DB"/><path d="M40.58 38.15C17.9 42.77.84 62.73.84 86.65c0 27.35 22.28 49.51 49.76 49.51a49.75 49.75 0 0 0 47.51-34.78 57.88 57.88 0 0 1-19.03 5.55A35.02 35.02 0 0 1 50.6 121.5a34.93 34.93 0 0 1-35.02-34.84 34.87 34.87 0 0 1 22.97-32.73 34.8 34.8 0 0 1 2.03-15.78Z" fill="#24C8DB"/><path fill-rule="evenodd" clip-rule="evenodd" d="M82.64 98.43c22.67-4.61 39.74-24.58 39.74-48.5C122.38 22.57 100.1.41 72.62.41A49.75 49.75 0 0 0 25.11 35.2a57.87 57.87 0 0 1 19.03-5.55 35.03 35.03 0 0 1 28.48-14.57 34.93 34.93 0 0 1 35.02 34.84 34.87 34.87 0 0 1-22.97 32.73 34.8 34.8 0 0 1-2.03 15.78Z" fill="#FFC131"/></svg>
|
||||
<svg width="432" height="137" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M178.94 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.66-1.7V54.65h-16.8a2.5 2.5 0 0 1-1.7-.66 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h50.75c.69 0 1.26.22 1.7.66.44.44.66 1 .66 1.7V52.3c0 .7-.22 1.26-.66 1.7a2.3 2.3 0 0 1-1.7.66h-16.8v48.98c0 .63-.21 1.2-.65 1.7-.44.45-1.01.67-1.7.67h-12.45Zm32.03 0c-.5 0-.97-.2-1.41-.57a2.15 2.15 0 0 1-.57-1.42c0-.38.03-.66.1-.85l22.16-60.7c.2-.76.6-1.4 1.23-1.9a3.8 3.8 0 0 1 2.45-.75h13.96c1.01 0 1.83.25 2.46.75.63.5 1.03 1.14 1.22 1.9l22.08 60.7.19.85a2 2 0 0 1-.66 1.42c-.38.38-.85.57-1.42.57h-11.6c-1.51 0-2.52-.67-3.02-1.99l-3.68-9.64h-25.19L225.7 104c-.5 1.32-1.54 1.99-3.12 1.99h-11.6Zm39.72-25.25-8.78-24.96-8.77 24.96h17.55Zm57.84 26.19c-8.87 0-15.82-2.17-20.85-6.52-4.97-4.35-7.45-10.9-7.45-19.67V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.17c.69 0 1.26.22 1.7.66.5.44.75 1 .75 1.7v38.49c0 4.1.94 7.18 2.83 9.26 1.95 2.02 4.75 3.03 8.4 3.03 3.58 0 6.35-1.04 8.3-3.12 1.95-2.08 2.92-5.14 2.92-9.17V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.26c.7 0 1.26.22 1.7.66.44.44.66 1 .66 1.7v38.58c0 8.76-2.51 15.32-7.54 19.67-4.97 4.35-11.83 6.52-20.57 6.52Zm42.98-.94c-.63 0-1.2-.22-1.7-.67a2.52 2.52 0 0 1-.66-1.7V42.17c0-.7.22-1.26.66-1.7.5-.44 1.07-.66 1.7-.66h25.66c8.24 0 14.65 1.89 19.24 5.67 4.66 3.72 6.98 9.02 6.98 15.89 0 4.4-1.03 8.16-3.1 11.25a19.9 19.9 0 0 1-8.6 7.09l12.93 23.26c.19.38.28.72.28 1.04a2 2 0 0 1-.66 1.42 1.8 1.8 0 0 1-1.32.57h-12.54a3.94 3.94 0 0 1-3.87-2.56l-10.76-20.8h-9.62v21c0 .69-.25 1.25-.75 1.7-.44.44-1 .66-1.7.66H351.5Zm25.47-36.79c2.9 0 5.1-.69 6.6-2.08 1.51-1.45 2.27-3.43 2.27-5.95s-.76-4.51-2.27-5.96c-1.44-1.51-3.64-2.27-6.6-2.27h-10.85v16.26h10.85ZM416.73 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.63c.7 0 1.26.22 1.7.66.5.44.76 1 .76 1.7v61.46c0 .7-.25 1.26-.76 1.7-.44.45-1 .67-1.7.67h-12.64Z" fill="#F7F7F7"/><path d="M85.76 49.92A13.1 13.1 0 0 1 72.62 63a13.1 13.1 0 0 1-13.14-13.08 13.1 13.1 0 0 1 13.14-13.07 13.1 13.1 0 0 1 13.14 13.07Z" fill="#FFC131"/><path d="M63.74 86.66A13.1 13.1 0 0 1 50.6 99.73a13.1 13.1 0 0 1-13.15-13.07A13.1 13.1 0 0 1 50.6 73.58a13.1 13.1 0 0 1 13.14 13.08Z" fill="#24C8DB"/><path d="M40.58 38.15C17.9 42.77.84 62.73.84 86.65c0 27.35 22.28 49.51 49.76 49.51a49.75 49.75 0 0 0 47.51-34.78 57.88 57.88 0 0 1-19.03 5.55A35.02 35.02 0 0 1 50.6 121.5a34.93 34.93 0 0 1-35.02-34.84 34.87 34.87 0 0 1 22.97-32.73 34.8 34.8 0 0 1 2.03-15.78Z" fill="#24C8DB"/><path fill-rule="evenodd" clip-rule="evenodd" d="M82.64 98.43c22.67-4.61 39.74-24.58 39.74-48.5C122.38 22.57 100.1.41 72.62.41A49.75 49.75 0 0 0 25.11 35.2a57.87 57.87 0 0 1 19.03-5.55 35.03 35.03 0 0 1 28.48-14.57 34.93 34.93 0 0 1 35.02 34.84 34.87 34.87 0 0 1-22.97 32.73 34.8 34.8 0 0 1-2.03 15.78Z" fill="#FFC131"/></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
@@ -1 +1 @@
|
||||
<svg width="432" height="137" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M178.94 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.66-1.7V54.65h-16.8a2.5 2.5 0 0 1-1.7-.66 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h50.75c.69 0 1.26.22 1.7.66.44.44.66 1 .66 1.7V52.3c0 .7-.22 1.26-.66 1.7a2.3 2.3 0 0 1-1.7.66h-16.8v48.98c0 .63-.21 1.2-.65 1.7-.44.45-1.01.67-1.7.67h-12.45Zm32.03 0c-.5 0-.97-.2-1.41-.57a2.15 2.15 0 0 1-.57-1.42c0-.38.03-.66.1-.85l22.16-60.7c.2-.76.6-1.4 1.23-1.9a3.8 3.8 0 0 1 2.45-.75h13.96c1.01 0 1.83.25 2.46.75.63.5 1.03 1.14 1.22 1.9l22.08 60.7.19.85a2 2 0 0 1-.66 1.42c-.38.38-.85.57-1.42.57h-11.6c-1.51 0-2.52-.67-3.02-1.99l-3.68-9.64h-25.19L225.7 104c-.5 1.32-1.54 1.99-3.12 1.99h-11.6Zm39.72-25.25-8.78-24.96-8.77 24.96h17.55Zm57.84 26.19c-8.87 0-15.82-2.17-20.85-6.52-4.97-4.35-7.45-10.9-7.45-19.67V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.17c.69 0 1.26.22 1.7.66.5.44.75 1 .75 1.7v38.49c0 4.1.94 7.18 2.83 9.26 1.95 2.02 4.75 3.03 8.4 3.03 3.58 0 6.35-1.04 8.3-3.12 1.95-2.08 2.92-5.14 2.92-9.17V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.26c.7 0 1.26.22 1.7.66.44.44.66 1 .66 1.7v38.58c0 8.76-2.51 15.32-7.54 19.67-4.97 4.35-11.83 6.52-20.57 6.52Zm42.98-.94c-.63 0-1.2-.22-1.7-.67a2.52 2.52 0 0 1-.66-1.7V42.17c0-.7.22-1.26.66-1.7.5-.44 1.07-.66 1.7-.66h25.66c8.24 0 14.65 1.89 19.24 5.67 4.66 3.72 6.98 9.02 6.98 15.89 0 4.4-1.03 8.16-3.1 11.25a19.9 19.9 0 0 1-8.6 7.09l12.93 23.26c.19.38.28.72.28 1.04a2 2 0 0 1-.66 1.42 1.8 1.8 0 0 1-1.32.57h-12.54a3.94 3.94 0 0 1-3.87-2.56l-10.76-20.8h-9.62v21c0 .69-.25 1.25-.75 1.7-.44.44-1 .66-1.7.66H351.5Zm25.47-36.79c2.9 0 5.1-.69 6.6-2.08 1.51-1.45 2.27-3.43 2.27-5.95s-.76-4.51-2.27-5.96c-1.44-1.51-3.64-2.27-6.6-2.27h-10.85v16.26h10.85ZM416.73 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.63c.7 0 1.26.22 1.7.66.5.44.76 1 .76 1.7v61.46c0 .7-.25 1.26-.76 1.7-.44.45-1 .67-1.7.67h-12.64Z" fill="#2F2F2F"/><path d="M85.76 49.92A13.1 13.1 0 0 1 72.62 63a13.1 13.1 0 0 1-13.14-13.08 13.1 13.1 0 0 1 13.14-13.07 13.1 13.1 0 0 1 13.14 13.07Z" fill="#FFC131"/><path d="M63.74 86.66A13.1 13.1 0 0 1 50.6 99.73a13.1 13.1 0 0 1-13.15-13.07A13.1 13.1 0 0 1 50.6 73.58a13.1 13.1 0 0 1 13.14 13.08Z" fill="#24C8DB"/><path d="M40.58 38.15C17.9 42.77.84 62.73.84 86.65c0 27.35 22.28 49.51 49.76 49.51a49.75 49.75 0 0 0 47.51-34.78 57.88 57.88 0 0 1-19.03 5.55A35.02 35.02 0 0 1 50.6 121.5a34.93 34.93 0 0 1-35.02-34.84 34.87 34.87 0 0 1 22.97-32.73 34.8 34.8 0 0 1 2.03-15.78Z" fill="#24C8DB"/><path fill-rule="evenodd" clip-rule="evenodd" d="M82.64 98.43c22.67-4.61 39.74-24.58 39.74-48.5C122.38 22.57 100.1.41 72.62.41A49.75 49.75 0 0 0 25.11 35.2a57.87 57.87 0 0 1 19.03-5.55 35.03 35.03 0 0 1 28.48-14.57 34.93 34.93 0 0 1 35.02 34.84 34.87 34.87 0 0 1-22.97 32.73 34.8 34.8 0 0 1-2.03 15.78Z" fill="#FFC131"/></svg>
|
||||
<svg width="432" height="137" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M178.94 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.66-1.7V54.65h-16.8a2.5 2.5 0 0 1-1.7-.66 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h50.75c.69 0 1.26.22 1.7.66.44.44.66 1 .66 1.7V52.3c0 .7-.22 1.26-.66 1.7a2.3 2.3 0 0 1-1.7.66h-16.8v48.98c0 .63-.21 1.2-.65 1.7-.44.45-1.01.67-1.7.67h-12.45Zm32.03 0c-.5 0-.97-.2-1.41-.57a2.15 2.15 0 0 1-.57-1.42c0-.38.03-.66.1-.85l22.16-60.7c.2-.76.6-1.4 1.23-1.9a3.8 3.8 0 0 1 2.45-.75h13.96c1.01 0 1.83.25 2.46.75.63.5 1.03 1.14 1.22 1.9l22.08 60.7.19.85a2 2 0 0 1-.66 1.42c-.38.38-.85.57-1.42.57h-11.6c-1.51 0-2.52-.67-3.02-1.99l-3.68-9.64h-25.19L225.7 104c-.5 1.32-1.54 1.99-3.12 1.99h-11.6Zm39.72-25.25-8.78-24.96-8.77 24.96h17.55Zm57.84 26.19c-8.87 0-15.82-2.17-20.85-6.52-4.97-4.35-7.45-10.9-7.45-19.67V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.17c.69 0 1.26.22 1.7.66.5.44.75 1 .75 1.7v38.49c0 4.1.94 7.18 2.83 9.26 1.95 2.02 4.75 3.03 8.4 3.03 3.58 0 6.35-1.04 8.3-3.12 1.95-2.08 2.92-5.14 2.92-9.17V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.26c.7 0 1.26.22 1.7.66.44.44.66 1 .66 1.7v38.58c0 8.76-2.51 15.32-7.54 19.67-4.97 4.35-11.83 6.52-20.57 6.52Zm42.98-.94c-.63 0-1.2-.22-1.7-.67a2.52 2.52 0 0 1-.66-1.7V42.17c0-.7.22-1.26.66-1.7.5-.44 1.07-.66 1.7-.66h25.66c8.24 0 14.65 1.89 19.24 5.67 4.66 3.72 6.98 9.02 6.98 15.89 0 4.4-1.03 8.16-3.1 11.25a19.9 19.9 0 0 1-8.6 7.09l12.93 23.26c.19.38.28.72.28 1.04a2 2 0 0 1-.66 1.42 1.8 1.8 0 0 1-1.32.57h-12.54a3.94 3.94 0 0 1-3.87-2.56l-10.76-20.8h-9.62v21c0 .69-.25 1.25-.75 1.7-.44.44-1 .66-1.7.66H351.5Zm25.47-36.79c2.9 0 5.1-.69 6.6-2.08 1.51-1.45 2.27-3.43 2.27-5.95s-.76-4.51-2.27-5.96c-1.44-1.51-3.64-2.27-6.6-2.27h-10.85v16.26h10.85ZM416.73 106a2.5 2.5 0 0 1-1.7-.67 2.52 2.52 0 0 1-.65-1.7V42.17c0-.7.22-1.26.66-1.7a2.5 2.5 0 0 1 1.7-.66h12.63c.7 0 1.26.22 1.7.66.5.44.76 1 .76 1.7v61.46c0 .7-.25 1.26-.76 1.7-.44.45-1 .67-1.7.67h-12.64Z" fill="#2F2F2F"/><path d="M85.76 49.92A13.1 13.1 0 0 1 72.62 63a13.1 13.1 0 0 1-13.14-13.08 13.1 13.1 0 0 1 13.14-13.07 13.1 13.1 0 0 1 13.14 13.07Z" fill="#FFC131"/><path d="M63.74 86.66A13.1 13.1 0 0 1 50.6 99.73a13.1 13.1 0 0 1-13.15-13.07A13.1 13.1 0 0 1 50.6 73.58a13.1 13.1 0 0 1 13.14 13.08Z" fill="#24C8DB"/><path d="M40.58 38.15C17.9 42.77.84 62.73.84 86.65c0 27.35 22.28 49.51 49.76 49.51a49.75 49.75 0 0 0 47.51-34.78 57.88 57.88 0 0 1-19.03 5.55A35.02 35.02 0 0 1 50.6 121.5a34.93 34.93 0 0 1-35.02-34.84 34.87 34.87 0 0 1 22.97-32.73 34.8 34.8 0 0 1 2.03-15.78Z" fill="#24C8DB"/><path fill-rule="evenodd" clip-rule="evenodd" d="M82.64 98.43c22.67-4.61 39.74-24.58 39.74-48.5C122.38 22.57 100.1.41 72.62.41A49.75 49.75 0 0 0 25.11 35.2a57.87 57.87 0 0 1 19.03-5.55 35.03 35.03 0 0 1 28.48-14.57 34.93 34.93 0 0 1 35.02 34.84 34.87 34.87 0 0 1-22.97 32.73 34.8 34.8 0 0 1-2.03 15.78Z" fill="#FFC131"/></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
@@ -161,7 +161,8 @@ body[data-mobile-menu-expanded] header {
|
||||
}
|
||||
</style>
|
||||
|
||||
{Astro.props.entry.slug === '' || Astro.props.locale === Astro.props.entry.slug ?
|
||||
{
|
||||
Astro.props.entry.slug === '' || Astro.props.locale === Astro.props.entry.slug ?
|
||||
<style>
|
||||
.header {
|
||||
background-color: transparent;
|
||||
|
||||
@@ -1,20 +1,25 @@
|
||||
---
|
||||
import MobileMenuToggle from 'virtual:starlight/components/MobileMenuToggle';
|
||||
import type { Props } from '@astrojs/starlight/props';
|
||||
import Sidebar from './Sidebar.astro'
|
||||
import Sidebar from './Sidebar.astro';
|
||||
const { labels } = Astro.props;
|
||||
---
|
||||
|
||||
<div class="page sl-flex">
|
||||
<header class="header"><slot name="header" /></header>
|
||||
<nav class="sidebar" aria-label={labels['sidebarNav.accessibleLabel']}>
|
||||
<MobileMenuToggle {...Astro.props} />
|
||||
<div id="starlight__sidebar" class={Astro.props.entry.slug === '' || Astro.props.locale === Astro.props.entry.slug ? "sidebar-pane lp-hide" : 'sidebar-pane'}>
|
||||
<div class="sidebar-content sl-flex">
|
||||
<Sidebar {...Astro.props} />
|
||||
</div>
|
||||
<nav class="sidebar" aria-label={labels['sidebarNav.accessibleLabel']}>
|
||||
<MobileMenuToggle {...Astro.props} />
|
||||
<div
|
||||
id="starlight__sidebar"
|
||||
class={Astro.props.entry.slug === '' || Astro.props.locale === Astro.props.entry.slug
|
||||
? 'sidebar-pane lp-hide'
|
||||
: 'sidebar-pane'}
|
||||
>
|
||||
<div class="sidebar-content sl-flex">
|
||||
<Sidebar {...Astro.props} />
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="main-frame"><slot /></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
import type { Props } from "@astrojs/starlight/props";
|
||||
import Default from "@astrojs/starlight/components/Sidebar.astro";
|
||||
import { AstroError } from "astro/errors";
|
||||
import type { Props } from '@astrojs/starlight/props';
|
||||
import Default from '@astrojs/starlight/components/Sidebar.astro';
|
||||
import { AstroError } from 'astro/errors';
|
||||
|
||||
// Styles and CSS logic derived from https://daisyui.com/components/collapse/
|
||||
|
||||
@@ -11,124 +11,108 @@ import { AstroError } from "astro/errors";
|
||||
// 1. Validate the config is set up correctly
|
||||
// 2. Create a new derived set of `Astro.props` that only contains one set of sidebar entries
|
||||
// 3. Check if the current page being rendered is current page to determine if this sidebar group should be selected
|
||||
const multiSidebarConfig: [string, boolean, Props][] = Astro.props.sidebar.map(
|
||||
(entry) => {
|
||||
if (entry.type !== "group") {
|
||||
throw new AstroError(
|
||||
`\`${entry.label}\` cannot be used with multiple Starlight sidebars.
|
||||
const multiSidebarConfig: [string, boolean, Props][] = Astro.props.sidebar.map((entry) => {
|
||||
if (entry.type !== 'group') {
|
||||
throw new AstroError(
|
||||
`\`${entry.label}\` cannot be used with multiple Starlight sidebars.
|
||||
|
||||
Each top-level \`sidebar\` item in the Starlight config must be either a group or autogenerated.
|
||||
|
||||
See https://starlight.astro.build/guides/sidebar/#groups and https://starlight.astro.build/guides/sidebar/#autogenerated-groups`
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Recursively check if a group of sidebar entries contains the current page
|
||||
const findIfIsCurrent = (
|
||||
entry: (typeof Astro.props.sidebar)[number]
|
||||
): boolean => {
|
||||
if (entry.type === "link") {
|
||||
return entry.isCurrent;
|
||||
}
|
||||
return entry.entries.some((item) => findIfIsCurrent(item));
|
||||
};
|
||||
// Recursively check if a group of sidebar entries contains the current page
|
||||
const findIfIsCurrent = (entry: (typeof Astro.props.sidebar)[number]): boolean => {
|
||||
if (entry.type === 'link') {
|
||||
return entry.isCurrent;
|
||||
}
|
||||
return entry.entries.some((item) => findIfIsCurrent(item));
|
||||
};
|
||||
|
||||
const isCurrentPage = findIfIsCurrent(entry);
|
||||
const isCurrentPage = findIfIsCurrent(entry);
|
||||
|
||||
return [
|
||||
entry.label,
|
||||
isCurrentPage,
|
||||
{ ...Astro.props, sidebar: [...entry.entries] },
|
||||
];
|
||||
}
|
||||
);
|
||||
return [entry.label, isCurrentPage, { ...Astro.props, sidebar: [...entry.entries] }];
|
||||
});
|
||||
let foundCurrentPage = false;
|
||||
for (const page of multiSidebarConfig) {
|
||||
if (page[1]) {
|
||||
foundCurrentPage = true;
|
||||
break;
|
||||
}
|
||||
if (page[1]) {
|
||||
foundCurrentPage = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!foundCurrentPage && multiSidebarConfig.length > 0) {
|
||||
multiSidebarConfig[0][1] = true;
|
||||
multiSidebarConfig[0][1] = true;
|
||||
}
|
||||
if (
|
||||
!multiSidebarConfig.some(([_label, isCurrentPage, _config]) => isCurrentPage)
|
||||
) {
|
||||
multiSidebarConfig[0][1] = true;
|
||||
if (!multiSidebarConfig.some(([_label, isCurrentPage, _config]) => isCurrentPage)) {
|
||||
multiSidebarConfig[0][1] = true;
|
||||
}
|
||||
---
|
||||
|
||||
<div class="__collapse">
|
||||
{
|
||||
multiSidebarConfig.map(([label, isCurrentPage, config]) => (
|
||||
<>
|
||||
<input
|
||||
type="radio"
|
||||
name="sidebar"
|
||||
role="tab"
|
||||
aria-label={label}
|
||||
checked={isCurrentPage}
|
||||
/>
|
||||
<div class="__collapse-content">
|
||||
<Default {...config}>
|
||||
<slot />
|
||||
</Default>
|
||||
</div>
|
||||
</>
|
||||
))
|
||||
}
|
||||
{
|
||||
multiSidebarConfig.map(([label, isCurrentPage, config]) => (
|
||||
<>
|
||||
<input type="radio" name="sidebar" role="tab" aria-label={label} checked={isCurrentPage} />
|
||||
<div class="__collapse-content">
|
||||
<Default {...config}>
|
||||
<slot />
|
||||
</Default>
|
||||
</div>
|
||||
</>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
<style>
|
||||
.__collapse {
|
||||
display: grid;
|
||||
}
|
||||
.__collapse > input {
|
||||
/* Layout */
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
grid-row-start: 1;
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
min-height: fit-content;
|
||||
.__collapse {
|
||||
display: grid;
|
||||
}
|
||||
.__collapse > input {
|
||||
/* Layout */
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
grid-row-start: 1;
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
min-height: fit-content;
|
||||
|
||||
/* Styles */
|
||||
border-radius: 0.25rem;
|
||||
padding: 0.2em 0.5rem;
|
||||
line-height: 1.4;
|
||||
font-size: var(--sl-text-lg);
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
margin-bottom: var(--sl-nav-pad-y);
|
||||
}
|
||||
/* Styles */
|
||||
border-radius: 0.25rem;
|
||||
padding: 0.2em 0.5rem;
|
||||
line-height: 1.4;
|
||||
font-size: var(--sl-text-lg);
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
margin-bottom: var(--sl-nav-pad-y);
|
||||
}
|
||||
|
||||
.__collapse > input::after {
|
||||
content: attr(aria-label);
|
||||
}
|
||||
.__collapse > input::after {
|
||||
content: attr(aria-label);
|
||||
}
|
||||
|
||||
.__collapse > input:checked {
|
||||
color: var(--sl-color-text-invert);
|
||||
background-color: var(--sl-color-text-accent);
|
||||
}
|
||||
.__collapse > input:checked {
|
||||
color: var(--sl-color-text-invert);
|
||||
background-color: var(--sl-color-text-accent);
|
||||
}
|
||||
|
||||
.__collapse > .__collapse-content {
|
||||
display: none;
|
||||
grid-column-start: 1;
|
||||
grid-column-end: span 999;
|
||||
grid-row-start: 2;
|
||||
border-top: 1px solid var(--sl-color-gray-5);
|
||||
padding-top: 1rem;
|
||||
}
|
||||
.__collapse > input:checked + .__collapse-content {
|
||||
display: block;
|
||||
}
|
||||
.__collapse > .__collapse-content {
|
||||
display: none;
|
||||
grid-column-start: 1;
|
||||
grid-column-end: span 999;
|
||||
grid-row-start: 2;
|
||||
border-top: 1px solid var(--sl-color-gray-5);
|
||||
padding-top: 1rem;
|
||||
}
|
||||
.__collapse > input:checked + .__collapse-content {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
<style is:global>
|
||||
.top-level {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.sidebar-pane {
|
||||
overflow-y:scroll;
|
||||
}
|
||||
</style>
|
||||
.top-level {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.sidebar-pane {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -102,7 +102,7 @@ Here are some of the things people are saying about Tauri:
|
||||
</div>
|
||||
<div class="col col--10">
|
||||
|
||||
_"Spacedrive had to feel native across all platforms, all while being lightweight, instant to launch and extremely fast to use. This just wasn't possible with a web-based UI — until now, thanks to Tauri."_
|
||||
_"Spacedrive had to feel native across all platforms, all while being lightweight, instant to launch and extremely fast to use. This just wasn't possible with a web-based UI — until now, thanks to Tauri."_
|
||||
**- Jamie Pine**, [Spacedrive](https://www.spacedrive.com) Founder
|
||||
|
||||
</div>
|
||||
@@ -146,7 +146,7 @@ _"Tauri stands to reduce the disastrously negative environmental costs of bloate
|
||||
</div>
|
||||
<div class="col col--10">
|
||||
|
||||
_"With its security-focused design and low memory footprint, Tauri is the electron alternative we've been waiting for. Tauri has allowed us to build a more secure, more performant desktop app while using the same web technologies, which we love. Thanks to the team for their amazing work!_
|
||||
_"With its security-focused design and low memory footprint, Tauri is the electron alternative we've been waiting for. Tauri has allowed us to build a more secure, more performant desktop app while using the same web technologies, which we love. Thanks to the team for their amazing work!_
|
||||
_P.S.: Can't wait for mobile support!"_
|
||||
|
||||
**- Martin Kleinschrodt**, [Padloc](https://padloc.app/) Founder
|
||||
|
||||
@@ -15,4 +15,4 @@
|
||||
<path class="c" d="M359.820963,22 C363.873552,22 367.577816,22.7915094 370.933866,24.374552 C374.289917,25.9575945 377.202671,28.3004624 379.672218,31.4032258 C380.115469,32.0364428 380.337092,32.5746692 380.337092,33.0179211 C380.337092,33.904425 379.893847,34.6009533 379.007343,35.1075269 C378.564091,35.4874571 378.057525,35.6774194 377.48763,35.6774194 C376.601126,35.6774194 375.872937,35.2974948 375.303042,34.5376344 C371.250453,29.725185 366.089812,27.3189964 359.820963,27.3189964 C356.148304,27.3189964 352.887286,28.2213171 350.037809,30.0259857 C347.188332,31.8306542 344.987936,34.3476541 343.436554,37.5770609 C341.885173,40.8064678 341.109494,44.447411 341.109494,48.5 C341.109494,52.4892673 341.964324,56.0985502 343.67401,59.327957 C345.383696,62.5573638 347.758224,65.0901939 350.797666,66.9265233 C353.837107,68.7628527 357.319749,69.6810036 361.245694,69.6810036 C366.818004,69.6810036 371.282117,68.1296451 374.638167,65.0268817 C375.208063,64.4569864 375.872931,64.172043 376.632791,64.172043 C377.32933,64.172043 377.899217,64.3936656 378.342468,64.8369176 C378.975685,65.4068129 379.292289,66.1033412 379.292289,66.9265233 C379.292289,67.623062 379.039006,68.1929488 378.532433,68.6362007 C376.316173,70.6624952 373.720022,72.2296838 370.743902,73.3378136 C367.767782,74.4459434 364.601744,75 361.245694,75 C356.369923,75 351.969131,73.8443963 348.043185,71.5331541 C344.11724,69.221912 341.030353,66.0400442 338.782433,61.9874552 C336.534512,57.9348662 335.410569,53.4390928 335.410569,48.5 C335.410569,43.4975855 336.455361,38.9859819 338.544977,34.9650538 C340.634594,30.9441257 343.547348,27.778088 347.283329,25.4668459 C351.019309,23.1556037 355.198479,22 359.820963,22 Z"></path>
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
@@ -1,181 +0,0 @@
|
||||
---
|
||||
title: Bridge
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater'
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="3"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="4"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="4"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Bridge.svg')} alt="Bridge" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Highly configurable</li>
|
||||
<li>No Rust skills required</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Some WebAPIs unavailable</li>
|
||||
<li>Challenge to implement</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
|
||||
The Bridge recipe is a secure pattern where messages are passed between brokers via an implicit bridge using the API. It isolates functionality to the specific scope and passes messages instead of functionality.
|
||||
|
||||
## Diagram
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
H==>F
|
||||
subgraph WEBVIEW
|
||||
F-.-E
|
||||
end
|
||||
D-->E
|
||||
E-->D
|
||||
B-->D
|
||||
D-->B
|
||||
subgraph RUST
|
||||
A==>H
|
||||
A-->B
|
||||
B-.-C
|
||||
B-.-G
|
||||
end
|
||||
A[Binary]
|
||||
B{Rust Broker}
|
||||
C[Subprocess 2]
|
||||
G[Subprocess 1]
|
||||
D(( API BRIDGE ))
|
||||
E{JS Broker}
|
||||
F[Window]
|
||||
H{Bootstrap}
|
||||
class D apibridge
|
||||
class RUST rust
|
||||
class WEBVIEW webview
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Here's what you need to add to your tauri.conf.json file:
|
||||
|
||||
```json
|
||||
{
|
||||
"tauri": {
|
||||
"allowlist": {
|
||||
"all": false,
|
||||
"clipboard": {
|
||||
"all": false,
|
||||
"readText": false,
|
||||
"writeText": false
|
||||
},
|
||||
"dialog": {
|
||||
"all": false,
|
||||
"ask": false,
|
||||
"confirm": false,
|
||||
"message": false,
|
||||
"open": false,
|
||||
"save": false
|
||||
},
|
||||
"fs": {
|
||||
"all": false,
|
||||
"copyFile": false,
|
||||
"createDir": false,
|
||||
"readDir": false,
|
||||
"readFile": false,
|
||||
"removeDir": false,
|
||||
"removeFile": false,
|
||||
"renameFile": false,
|
||||
"scope": [],
|
||||
"writeFile": false
|
||||
},
|
||||
"globalShortcut": {
|
||||
"all": false
|
||||
},
|
||||
"http": {
|
||||
"all": false,
|
||||
"request": false,
|
||||
"scope": []
|
||||
},
|
||||
"notification": {
|
||||
"all": false
|
||||
},
|
||||
"os": {
|
||||
"all": false
|
||||
},
|
||||
"path": {
|
||||
"all": false
|
||||
},
|
||||
"process": {
|
||||
"all": false,
|
||||
"exit": false,
|
||||
"relaunch": false,
|
||||
"relaunchDangerousAllowSymlinkMacos": false
|
||||
},
|
||||
"protocol": {
|
||||
"all": false,
|
||||
"asset": false,
|
||||
"assetScope": []
|
||||
},
|
||||
"shell": {
|
||||
"all": false,
|
||||
"execute": false,
|
||||
"open": false,
|
||||
"scope": [],
|
||||
"sidecar": false
|
||||
},
|
||||
"window": {
|
||||
"all": false,
|
||||
"center": false,
|
||||
"close": false,
|
||||
"create": false,
|
||||
"hide": false,
|
||||
"maximize": false,
|
||||
"minimize": false,
|
||||
"print": false,
|
||||
"requestUserAttention": false,
|
||||
"setAlwaysOnTop": false,
|
||||
"setDecorations": false,
|
||||
"setFocus": false,
|
||||
"setFullscreen": false,
|
||||
"setIcon": false,
|
||||
"setMaxSize": false,
|
||||
"setMinSize": false,
|
||||
"setPosition": false,
|
||||
"setResizable": false,
|
||||
"setSize": false,
|
||||
"setSkipTaskbar": false,
|
||||
"setTitle": false,
|
||||
"show": false,
|
||||
"startDragging": false,
|
||||
"unmaximize": false,
|
||||
"unminimize": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
189
src/content/docs/concept/_recipes/bridge.mdx
Normal file
@@ -0,0 +1,189 @@
|
||||
---
|
||||
title: Bridge
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater';
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="4" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="4" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Bridge.svg')} alt="Bridge" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Highly configurable</li>
|
||||
<li>No Rust skills required</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Some WebAPIs unavailable</li>
|
||||
<li>Challenge to implement</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
|
||||
The Bridge recipe is a secure pattern where messages are passed between brokers via an implicit bridge using the API. It isolates functionality to the specific scope and passes messages instead of functionality.
|
||||
|
||||
## Diagram
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
H==>F
|
||||
subgraph WEBVIEW
|
||||
F-.-E
|
||||
end
|
||||
D-->E
|
||||
E-->D
|
||||
B-->D
|
||||
D-->B
|
||||
subgraph RUST
|
||||
A==>H
|
||||
A-->B
|
||||
B-.-C
|
||||
B-.-G
|
||||
end
|
||||
A[Binary]
|
||||
B{Rust Broker}
|
||||
C[Subprocess 2]
|
||||
G[Subprocess 1]
|
||||
D(( API BRIDGE ))
|
||||
E{JS Broker}
|
||||
F[Window]
|
||||
H{Bootstrap}
|
||||
class D apibridge
|
||||
class RUST rust
|
||||
class WEBVIEW webview
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Here's what you need to add to your tauri.conf.json file:
|
||||
|
||||
```json
|
||||
{
|
||||
"tauri": {
|
||||
"allowlist": {
|
||||
"all": false,
|
||||
"clipboard": {
|
||||
"all": false,
|
||||
"readText": false,
|
||||
"writeText": false
|
||||
},
|
||||
"dialog": {
|
||||
"all": false,
|
||||
"ask": false,
|
||||
"confirm": false,
|
||||
"message": false,
|
||||
"open": false,
|
||||
"save": false
|
||||
},
|
||||
"fs": {
|
||||
"all": false,
|
||||
"copyFile": false,
|
||||
"createDir": false,
|
||||
"readDir": false,
|
||||
"readFile": false,
|
||||
"removeDir": false,
|
||||
"removeFile": false,
|
||||
"renameFile": false,
|
||||
"scope": [],
|
||||
"writeFile": false
|
||||
},
|
||||
"globalShortcut": {
|
||||
"all": false
|
||||
},
|
||||
"http": {
|
||||
"all": false,
|
||||
"request": false,
|
||||
"scope": []
|
||||
},
|
||||
"notification": {
|
||||
"all": false
|
||||
},
|
||||
"os": {
|
||||
"all": false
|
||||
},
|
||||
"path": {
|
||||
"all": false
|
||||
},
|
||||
"process": {
|
||||
"all": false,
|
||||
"exit": false,
|
||||
"relaunch": false,
|
||||
"relaunchDangerousAllowSymlinkMacos": false
|
||||
},
|
||||
"protocol": {
|
||||
"all": false,
|
||||
"asset": false,
|
||||
"assetScope": []
|
||||
},
|
||||
"shell": {
|
||||
"all": false,
|
||||
"execute": false,
|
||||
"open": false,
|
||||
"scope": [],
|
||||
"sidecar": false
|
||||
},
|
||||
"window": {
|
||||
"all": false,
|
||||
"center": false,
|
||||
"close": false,
|
||||
"create": false,
|
||||
"hide": false,
|
||||
"maximize": false,
|
||||
"minimize": false,
|
||||
"print": false,
|
||||
"requestUserAttention": false,
|
||||
"setAlwaysOnTop": false,
|
||||
"setDecorations": false,
|
||||
"setFocus": false,
|
||||
"setFullscreen": false,
|
||||
"setIcon": false,
|
||||
"setMaxSize": false,
|
||||
"setMinSize": false,
|
||||
"setPosition": false,
|
||||
"setResizable": false,
|
||||
"setSize": false,
|
||||
"setSkipTaskbar": false,
|
||||
"setTitle": false,
|
||||
"show": false,
|
||||
"startDragging": false,
|
||||
"unmaximize": false,
|
||||
"unminimize": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -3,45 +3,53 @@ title: Cloudbridge
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater'
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
import Rater from '@theme/Rater';
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="3"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="2"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Cloudbridge.svg')} alt="Cloudbridge" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>All available features</li>
|
||||
<li>No Rust skills required</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Largest bundle size</li>
|
||||
<li>Hard to separate concerns</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="1" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="2" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Cloudbridge.svg')} alt="Cloudbridge" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>All available features</li>
|
||||
<li>No Rust skills required</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Largest bundle size</li>
|
||||
<li>Hard to separate concerns</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
@@ -3,45 +3,53 @@ title: Cloudish
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater'
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
import Rater from '@theme/Rater';
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="3"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="3"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="2"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Cloudish.svg')} alt="Cloudish" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Similar to a SPA web-app</li>
|
||||
<li>No Rust skills required</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>No access to Rust API</li>
|
||||
<li>Uses a localhost server</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="2" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Cloudish.svg')} alt="Cloudish" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Similar to a SPA web-app</li>
|
||||
<li>No Rust skills required</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>No access to Rust API</li>
|
||||
<li>Uses a localhost server</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
@@ -3,49 +3,57 @@ title: GLUI
|
||||
draft: true
|
||||
---
|
||||
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
|
||||
:::warning
|
||||
This pattern is not available for now.
|
||||
:::
|
||||
|
||||
import Rater from '@theme/Rater'
|
||||
import Rater from '@theme/Rater';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="0"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/GLUI.svg')} alt="GLUI" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Framebuffer FTW</li>
|
||||
<li>Window events rigged</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Broken on your machine</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="0" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="0" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="0" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/GLUI.svg')} alt="GLUI" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Framebuffer FTW</li>
|
||||
<li>Window events rigged</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Broken on your machine</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
@@ -3,45 +3,53 @@ title: Hermit
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater'
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
import Rater from '@theme/Rater';
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Hermit.svg')} alt="Hermit" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Quick to make</li>
|
||||
<li>Smallest size</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>No remote resources</li>
|
||||
<li>No access to API</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="0" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Hermit.svg')} alt="Hermit" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Quick to make</li>
|
||||
<li>Smallest size</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>No remote resources</li>
|
||||
<li>No access to API</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
@@ -1,82 +0,0 @@
|
||||
---
|
||||
title: Lockdown
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater'
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="2"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="4"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="5" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Lockdown.svg')} alt="Lockdown" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Highest security rating</li>
|
||||
<li>Elegant and powerful</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Rust skills required</li>
|
||||
<li>No remote resources</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
|
||||
The Lockdown recipe is a minimal usage of the [Bridge pattern](./bridge), which only allows interaction between Rust and the Window via expiring JS Promise Closures that are injected into the Window by Rust and nulled as part of the callback.
|
||||
|
||||
## Diagram
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
H==>F
|
||||
G-.->B
|
||||
B-->G
|
||||
subgraph WEBVIEW
|
||||
G-->F
|
||||
end
|
||||
subgraph RUST
|
||||
A-->B
|
||||
A==>H
|
||||
end
|
||||
A[Binary]
|
||||
B[API:Event]
|
||||
F[Window]
|
||||
G((Promise Closure))
|
||||
H{Bootstrap}
|
||||
class RUST rust
|
||||
class WEBVIEW webview
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Here's what you need to add to your tauri.conf.json file:
|
||||
|
||||
```json
|
||||
"tauri": {
|
||||
"allowlist": {} // all API endpoints are default false
|
||||
}
|
||||
```
|
||||
90
src/content/docs/concept/_recipes/lockdown.mdx
Normal file
@@ -0,0 +1,90 @@
|
||||
---
|
||||
title: Lockdown
|
||||
draft: true
|
||||
---
|
||||
|
||||
import Rater from '@theme/Rater';
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="2" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="4" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Lockdown.svg')} alt="Lockdown" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Highest security rating</li>
|
||||
<li>Elegant and powerful</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Rust skills required</li>
|
||||
<li>No remote resources</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
|
||||
The Lockdown recipe is a minimal usage of the [Bridge pattern](./bridge), which only allows interaction between Rust and the Window via expiring JS Promise Closures that are injected into the Window by Rust and nulled as part of the callback.
|
||||
|
||||
## Diagram
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
H==>F
|
||||
G-.->B
|
||||
B-->G
|
||||
subgraph WEBVIEW
|
||||
G-->F
|
||||
end
|
||||
subgraph RUST
|
||||
A-->B
|
||||
A==>H
|
||||
end
|
||||
A[Binary]
|
||||
B[API:Event]
|
||||
F[Window]
|
||||
G((Promise Closure))
|
||||
H{Bootstrap}
|
||||
class RUST rust
|
||||
class WEBVIEW webview
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Here's what you need to add to your tauri.conf.json file:
|
||||
|
||||
```json
|
||||
"tauri": {
|
||||
"allowlist": {} // all API endpoints are default false
|
||||
}
|
||||
```
|
||||
@@ -1,91 +0,0 @@
|
||||
---
|
||||
title: Multiwin
|
||||
draft: true
|
||||
---
|
||||
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl'
|
||||
import Rater from '@theme/Rater'
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td><Rater value="4"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td><Rater value="4"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td><Rater value="3"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td><Rater value="5"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Multiwin.svg')} alt="Multiwin" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Windows can be spawned or destroyed at runtime</li>
|
||||
<li>Separation of concerns</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Somewhat complex</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
|
||||
The Multiwin recipe will allow you to have multiple windows.
|
||||
|
||||
## Diagram
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A==>H
|
||||
H==>F
|
||||
H==>G
|
||||
subgraph WEBVIEW
|
||||
F
|
||||
end
|
||||
subgraph WINIT
|
||||
G
|
||||
end
|
||||
subgraph RUST
|
||||
A
|
||||
end
|
||||
A[Binary]
|
||||
F[Window]
|
||||
G[Window]
|
||||
H{Bootstrap}
|
||||
class WINIT other
|
||||
class RUST rust
|
||||
class WEBVIEW webview
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Here's what you need to add to your tauri.conf.json file:
|
||||
|
||||
```json
|
||||
"tauri": {
|
||||
"allowlist": {}, // all API endpoints are default false
|
||||
"windows": [{
|
||||
"title": "Window1",
|
||||
"label": "main",
|
||||
}, {
|
||||
"title": "Splash",
|
||||
"label": "splashscreen"
|
||||
}]
|
||||
}
|
||||
|
||||
```
|
||||
99
src/content/docs/concept/_recipes/multiwin.mdx
Normal file
@@ -0,0 +1,99 @@
|
||||
---
|
||||
title: Multiwin
|
||||
draft: true
|
||||
---
|
||||
|
||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||
import Rater from '@theme/Rater';
|
||||
|
||||
<div className="row">
|
||||
<div className="col col--4">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ease of Use</td>
|
||||
<td>
|
||||
<Rater value="4" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extensibility</td>
|
||||
<td>
|
||||
<Rater value="4" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Performance</td>
|
||||
<td>
|
||||
<Rater value="3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Security</td>
|
||||
<td>
|
||||
<Rater value="5" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div className="col col--4 pattern-logo">
|
||||
<img src={useBaseUrl('img/recipes/Multiwin.svg')} alt="Multiwin" />
|
||||
</div>
|
||||
<div className="col col--4">
|
||||
Pros:
|
||||
<ul>
|
||||
<li>Windows can be spawned or destroyed at runtime</li>
|
||||
<li>Separation of concerns</li>
|
||||
</ul>
|
||||
Cons:
|
||||
<ul>
|
||||
<li>Somewhat complex</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Description
|
||||
|
||||
The Multiwin recipe will allow you to have multiple windows.
|
||||
|
||||
## Diagram
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A==>H
|
||||
H==>F
|
||||
H==>G
|
||||
subgraph WEBVIEW
|
||||
F
|
||||
end
|
||||
subgraph WINIT
|
||||
G
|
||||
end
|
||||
subgraph RUST
|
||||
A
|
||||
end
|
||||
A[Binary]
|
||||
F[Window]
|
||||
G[Window]
|
||||
H{Bootstrap}
|
||||
class WINIT other
|
||||
class RUST rust
|
||||
class WEBVIEW webview
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Here's what you need to add to your tauri.conf.json file:
|
||||
|
||||
```json
|
||||
"tauri": {
|
||||
"allowlist": {}, // all API endpoints are default false
|
||||
"windows": [{
|
||||
"title": "Window1",
|
||||
"label": "main",
|
||||
}, {
|
||||
"title": "Splash",
|
||||
"label": "splashscreen"
|
||||
}]
|
||||
}
|
||||
|
||||
```
|
||||
@@ -23,22 +23,22 @@ Tauri has a variety of topics that are considered to be core concepts, things an
|
||||
href="/concept/inter-process-communication/"
|
||||
description="The inner workings on the IPC."
|
||||
/>
|
||||
<LinkCard
|
||||
<LinkCard
|
||||
title="Security"
|
||||
href="/security"
|
||||
description="How Tauri enforces security practices."
|
||||
/>
|
||||
<LinkCard
|
||||
<LinkCard
|
||||
title="Process Model"
|
||||
href="/concept/process-model/"
|
||||
description="Which processes Tauri manages and why."
|
||||
/>
|
||||
<LinkCard
|
||||
/>
|
||||
<LinkCard
|
||||
title="App Size"
|
||||
href="/concept/size/"
|
||||
description="How to make your app as small as possible."
|
||||
/>
|
||||
<LinkCard
|
||||
<LinkCard
|
||||
title="Rendering"
|
||||
href="/concept/rendering/"
|
||||
description="What a renderer is in Tauri."
|
||||
|
||||
@@ -30,7 +30,8 @@ lto = true # Enables link-time-optimizations.
|
||||
opt-level = "s" # Prioritizes small binary size. Use `3` if you prefer speed.
|
||||
panic = "abort" # Higher performance by disabling panic handlers.
|
||||
strip = true # Ensures debug symbols are removed.
|
||||
```
|
||||
|
||||
````
|
||||
</TabItem>
|
||||
|
||||
<TabItem label="Nightly">
|
||||
@@ -48,7 +49,8 @@ panic = "abort" # Higher performance by disabling panic handlers.
|
||||
strip = true # Ensures debug symbols are removed.
|
||||
trim-paths = "all" # Removes potentially privileged information from your binaries.
|
||||
rustflags = ["-Cdebuginfo=0", "-Zthreads=8"] # Better compile performance.
|
||||
```
|
||||
````
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ sidebar:
|
||||
variant: caution
|
||||
---
|
||||
|
||||
{ /* TODO: REVISE COPY TO V2 */}
|
||||
{ /* TODO: Update links and internal navigation */}
|
||||
{ /* TODO: Add support to light/dark mode images */}
|
||||
{ /* TODO: Revise this change: Debugging in CLion > Debug in CLion */}
|
||||
{/* TODO: REVISE COPY TO V2 */}
|
||||
{/* TODO: Update links and internal navigation */}
|
||||
{/* TODO: Add support to light/dark mode images */}
|
||||
{/* TODO: Revise this change: Debugging in CLion > Debug in CLion */}
|
||||
|
||||
In this guide, we'll be setting up IntelliJ CLion for debugging the [Core Process of your Tauri app](/concept/process-model/#the-core-process).
|
||||
|
||||
@@ -33,17 +33,17 @@ Before you proceed, make sure that your project is fully loaded. If the indexing
|
||||
We will set up a Run/Debug configuration that we can use to launch our Tauri app in debugging mode. To create a configuration, go to Edit Configurations, click **+**, and then select Cargo Command.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
With that created we need to configure CLion so it instructs Cargo to build our app without any default features. This will tell Tauri to use your development server instead of reading assets from disk. Normally this flag is passed by the Tauri CLI, but since we're completely sidestepping that here, we need to pass the flag manually.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
Now we can optionally rename the Run/Debug Configuration to something more memorable, in this example we called it "Run Tauri App", but you can name it whatever you want.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
:::caution
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ sidebar:
|
||||
variant: caution
|
||||
---
|
||||
|
||||
{ /* TODO: Update links and internal navigation */}
|
||||
{ /* TODO: Add support to light/dark mode images */}
|
||||
{/* TODO: Update links and internal navigation */}
|
||||
{/* TODO: Add support to light/dark mode images */}
|
||||
|
||||
In this guide, we'll be setting up JetBrains RustRover for debugging the [Core Process of your Tauri app](/concept/process-model/#the-core-process).
|
||||
|
||||
@@ -29,27 +29,29 @@ Before you proceed, make sure that your project is fully loaded. If the Cargo to
|
||||
## Setting up Run Configurations
|
||||
|
||||
You will need to set up two separate Run/Debug configurations:
|
||||
* one for launching the Tauri app in debugging mode,
|
||||
* another one for running your frontend development server of choice.
|
||||
|
||||
- one for launching the Tauri app in debugging mode,
|
||||
- another one for running your frontend development server of choice.
|
||||
|
||||
### Tauri App
|
||||
|
||||
1. In the main menu, go to **Run | Edit Configurations**.
|
||||
2. In the **Run/Debug Configurations** dialog:
|
||||
* To create a new configuration, click **+** on the toolbar and select **Cargo**.
|
||||
|
||||
- To create a new configuration, click **+** on the toolbar and select **Cargo**.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
With that created, we need to configure RustRover, so it instructs Cargo to build our app without any default features. This will tell Tauri to use your development server instead of reading assets from the disk. Normally this flag is passed by the Tauri CLI, but since we're completely sidestepping that here, we need to pass the flag manually.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
Now we can optionally rename the Run/Debug Configuration to something more memorable, in this example we called it "Run Tauri App", but you can name it whatever you want.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
### Development Server
|
||||
|
||||
@@ -64,22 +66,21 @@ To create the corresponding Run configuration, you need to check the actual deve
|
||||
For `npm`, `pnpm`, or `yarn`, you could use the **npm** Run Configuration, for example:
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
Make sure you have the correct values in the **Command**, **Scripts**, and **Package Manager** fields.
|
||||
|
||||
If your development server is `trunk` for Rust-based WebAssembly frontend frameworks, you could use the generic **Shell Script** Run Configuration:
|
||||
|
||||

|
||||
{ /*  */}
|
||||
|
||||
{/*  */}
|
||||
|
||||
## Launching a Debugging Session
|
||||
|
||||
To launch a debugging session, you first need to run your development server, and then start debugging the Tauri App by clicking the **Debug** button next to the Run Configurations Switcher. RustRover will automatically recognize breakpoints placed in any Rust file in your project and stop on the first one hit.
|
||||
|
||||

|
||||
{ /*  */}
|
||||
{/*  */}
|
||||
|
||||
From this point, you can explore the values of your variables, step further into the code, and check what's going at runtime in detail.
|
||||
|
||||
|
||||
@@ -338,7 +338,7 @@ class ExamplePlugin: Plugin {
|
||||
|
||||
Tauri automatically implements two commands for the plugin: `checkPermissions` and `requestPermissions`. Those commands can be directly called from JavaScript or Rust:
|
||||
|
||||
{ /* TODO: PermissionState type should be exported in Tauri */}
|
||||
{/* TODO: PermissionState type should be exported in Tauri */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="JavaScript">
|
||||
@@ -405,7 +405,7 @@ impl<R: Runtime> Notification<R> {
|
||||
|
||||
## Plugin Events
|
||||
|
||||
{ /* TODO: Is this section a duplicate of Lifecycle Events above? */}
|
||||
{/* TODO: Is this section a duplicate of Lifecycle Events above? */}
|
||||
|
||||
Plugins can emit events at any point of time using the `trigger` function:
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@ sidebar:
|
||||
order: 10
|
||||
---
|
||||
|
||||
{ /* TODO: Add a CLI section */}
|
||||
{/* TODO: Add a CLI section */}
|
||||
|
||||
import CommandTabs from '@components/CommandTabs.astro';
|
||||
|
||||
{ /* TODO: Link to windowing system, commands for sending messages, and event system */}
|
||||
{/* TODO: Link to windowing system, commands for sending messages, and event system */}
|
||||
|
||||
:::tip[Plugin Development]
|
||||
|
||||
@@ -24,11 +24,11 @@ Tauri offers a windowing system with web view functionality, a way to send messa
|
||||
|
||||
A Tauri plugin is composed of a Cargo crate and an optional NPM package that provides API bindings for its commands and events. Additionally, a plugin project can include an Android library project and a Swift package for iOS. You can learn more about developing plugins for Android and iOS in the [Mobile Plugin Development guide](/develop/plugins/develop-mobile/).
|
||||
|
||||
{ /* TODO: https://github.com/tauri-apps/tauri/issues/7749 */}
|
||||
{/* TODO: https://github.com/tauri-apps/tauri/issues/7749 */}
|
||||
|
||||
## Naming Convention
|
||||
|
||||
{ /* TODO: Add link to allowlist */}
|
||||
{/* TODO: Add link to allowlist */}
|
||||
|
||||
Tauri plugins have a prefix (`tauri-plugin-` prefix for the Rust crate name and `@tauri-apps/plugin-` for the NPM package) followed by the plugin name. The plugin name is specified on the plugin configuration under [`tauri.conf.json > plugin`](/reference/config/#pluginconfig) and on the allowlist configuration.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ sidebar:
|
||||
variant: caution
|
||||
---
|
||||
|
||||
{ /* TODO: REVISE COPY TO V2 */}
|
||||
{/* TODO: REVISE COPY TO V2 */}
|
||||
|
||||
:::caution[Currently in pre-alpha]
|
||||
|
||||
@@ -61,18 +61,24 @@ import { LinkCard, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
<CardGrid>
|
||||
<LinkCard title="Setup" href="/start/develop/tests/webdriver/example/" />
|
||||
<LinkCard title="Selenium" href="/start/develop/tests/webdriver/example/selenium" />
|
||||
<LinkCard
|
||||
title="WebdriverIO"
|
||||
href="/start/develop/tests/webdriver/example/webdriverio"
|
||||
/>
|
||||
title="Selenium"
|
||||
href="/start/develop/tests/webdriver/example/selenium"
|
||||
/>
|
||||
<LinkCard
|
||||
title="WebdriverIO"
|
||||
href="/start/develop/tests/webdriver/example/webdriverio"
|
||||
/>
|
||||
</CardGrid>
|
||||
|
||||
## Continuous Integration (CI)
|
||||
|
||||
The above examples also comes with a CI script to test with GitHub actions, but you may still be interested in the below WebDriver CI guide as it explains the concept a bit more.
|
||||
|
||||
<LinkCard title="Continuous Integration (CI)" href="/start/develop/tests/webdriver/ci" />
|
||||
<LinkCard
|
||||
title="Continuous Integration (CI)"
|
||||
href="/start/develop/tests/webdriver/ci"
|
||||
/>
|
||||
|
||||
[webdriver]: https://www.w3.org/TR/webdriver/
|
||||
[`tauri-driver`]: https://crates.io/crates/tauri-driver
|
||||
|
||||
@@ -7,7 +7,7 @@ sidebar:
|
||||
variant: caution
|
||||
---
|
||||
|
||||
You may need to embed external binaries to add additional functionality to your application or prevent users from installing additional dependencies (e.g., Node.js or Python). We call this binary a `sidecar`.
|
||||
You may need to embed external binaries to add additional functionality to your application or prevent users from installing additional dependencies (e.g., Node.js or Python). We call this binary a `sidecar`.
|
||||
|
||||
Binaries are executables written in any programming language. Common use cases are Python CLI applications or API servers bundled using `pyinstaller`.
|
||||
|
||||
@@ -17,15 +17,15 @@ Here is a sample to illustrate the configuration. This is not a complete `tauri.
|
||||
|
||||
```json title="src-tauri/tauri.conf.json"
|
||||
{
|
||||
"tauri": {
|
||||
"bundle": {
|
||||
"externalBin": [
|
||||
"/absolute/path/to/sidecar",
|
||||
"relative/path/to/binary",
|
||||
"binaries/my-sidecar"
|
||||
]
|
||||
}
|
||||
}
|
||||
"tauri": {
|
||||
"bundle": {
|
||||
"externalBin": [
|
||||
"/absolute/path/to/sidecar",
|
||||
"relative/path/to/binary",
|
||||
"binaries/my-sidecar"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -54,29 +54,29 @@ rustc -Vv | Select-String "host:" | ForEach-Object {$_.Line.split(" ")[1]}
|
||||
Here's a Node.js script to append the target triple to a binary:
|
||||
|
||||
```javascript
|
||||
const execa = require('execa')
|
||||
const fs = require('fs')
|
||||
const execa = require('execa');
|
||||
const fs = require('fs');
|
||||
|
||||
let extension = ''
|
||||
let extension = '';
|
||||
if (process.platform === 'win32') {
|
||||
extension = '.exe'
|
||||
extension = '.exe';
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const rustInfo = (await execa('rustc', ['-vV'])).stdout
|
||||
const targetTriple = /host: (\S+)/g.exec(rustInfo)[1]
|
||||
if (!targetTriple) {
|
||||
console.error('Failed to determine platform target triple')
|
||||
}
|
||||
fs.renameSync(
|
||||
`src-tauri/binaries/sidecar${extension}`,
|
||||
`src-tauri/binaries/sidecar-${targetTriple}${extension}`
|
||||
)
|
||||
const rustInfo = (await execa('rustc', ['-vV'])).stdout;
|
||||
const targetTriple = /host: (\S+)/g.exec(rustInfo)[1];
|
||||
if (!targetTriple) {
|
||||
console.error('Failed to determine platform target triple');
|
||||
}
|
||||
fs.renameSync(
|
||||
`src-tauri/binaries/sidecar${extension}`,
|
||||
`src-tauri/binaries/sidecar-${targetTriple}${extension}`
|
||||
);
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
throw e
|
||||
})
|
||||
throw e;
|
||||
});
|
||||
```
|
||||
|
||||
## Running it from Rust
|
||||
@@ -116,8 +116,8 @@ In the JavaScript code, import the `Command` class from the `@tauri-apps/plugin-
|
||||
```javascript
|
||||
import { Command } from '@tauri-apps/plugin-shell';
|
||||
// `binaries/my-sidecar` is the EXACT value specified on `tauri.conf.json > tauri > bundle > externalBin`
|
||||
const sidecar_command = Command.sidecar('binaries/my-sidecar')
|
||||
const output = await sidecar_command.execute()
|
||||
const sidecar_command = Command.sidecar('binaries/my-sidecar');
|
||||
const output = await sidecar_command.execute();
|
||||
```
|
||||
|
||||
## Passing arguments
|
||||
@@ -130,38 +130,38 @@ First, define the arguments that need to be passed to the sidecar command in `sr
|
||||
|
||||
```json title="src-tauri/capabilities/main.json" ins={14-31}
|
||||
{
|
||||
"$schema": "../gen/schemas/desktop-schema.json",
|
||||
"identifier": "default",
|
||||
"description": "Capability for the main window",
|
||||
"windows": ["main"],
|
||||
"permissions": [
|
||||
"path:default",
|
||||
"event:default",
|
||||
"window:default",
|
||||
"app:default",
|
||||
"resources:default",
|
||||
"menu:default",
|
||||
"tray:default",
|
||||
{
|
||||
"identifier": "shell:allow-execute",
|
||||
"allow": [
|
||||
{
|
||||
"args": [
|
||||
"arg1",
|
||||
"-a",
|
||||
"--arg2",
|
||||
{
|
||||
"validator": "\\S+"
|
||||
},
|
||||
],
|
||||
"cmd": "",
|
||||
"name": "binaries/my-sidecar",
|
||||
"sidecar": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"shell:allow-open"
|
||||
]
|
||||
"$schema": "../gen/schemas/desktop-schema.json",
|
||||
"identifier": "default",
|
||||
"description": "Capability for the main window",
|
||||
"windows": ["main"],
|
||||
"permissions": [
|
||||
"path:default",
|
||||
"event:default",
|
||||
"window:default",
|
||||
"app:default",
|
||||
"resources:default",
|
||||
"menu:default",
|
||||
"tray:default",
|
||||
{
|
||||
"identifier": "shell:allow-execute",
|
||||
"allow": [
|
||||
{
|
||||
"args": [
|
||||
"arg1",
|
||||
"-a",
|
||||
"--arg2",
|
||||
{
|
||||
"validator": "\\S+"
|
||||
}
|
||||
],
|
||||
"cmd": "",
|
||||
"name": "binaries/my-sidecar",
|
||||
"sidecar": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"shell:allow-open"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
@@ -192,26 +192,21 @@ import { Command } from '@tauri-apps/plugin-shell';
|
||||
// `binaries/my-sidecar` is the EXACT value specified on `tauri.conf.json > tauri > bundle > externalBin`
|
||||
// notice that the args array matches EXACTLY what is specified on `tauri.conf.json`.
|
||||
const command = Command.sidecar('binaries/my-sidecar', [
|
||||
'arg1',
|
||||
'-a',
|
||||
'--arg2',
|
||||
'any-string-that-matches-the-validator',
|
||||
])
|
||||
const output = await command.execute()
|
||||
'arg1',
|
||||
'-a',
|
||||
'--arg2',
|
||||
'any-string-that-matches-the-validator',
|
||||
]);
|
||||
const output = await command.execute();
|
||||
```
|
||||
|
||||
|
||||
:::note
|
||||
|
||||
Example: For a set of arguments like: `-i /path/to/input.png -o /path/to/output.txt`, the arguments array would look like –
|
||||
Example: For a set of arguments like: `-i /path/to/input.png -o /path/to/output.txt`, the arguments array would look like –
|
||||
|
||||
```json
|
||||
[
|
||||
"-i",
|
||||
{"validator": "\\S+"},
|
||||
"-o",
|
||||
{"validator": "\\S+"}
|
||||
]
|
||||
```
|
||||
["-i", { "validator": "\\S+" }, "-o", { "validator": "\\S+" }]
|
||||
```
|
||||
|
||||
Here, the first and third arguments are static (`-i` and `-o`), but the second and fourth are dynamic and match the regex pattern described (`\\S+` means anything except space).
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ en Rust:
|
||||
|
||||
Consulta todas las [Opciones de diálogo](/reference/javascript/dialog/) en la referencia de la API de JavaScript.
|
||||
|
||||
{ /* ASK */}
|
||||
{/* ASK */}
|
||||
|
||||
#### Crear un diálogo de Si/No
|
||||
|
||||
@@ -101,7 +101,7 @@ console.log(answer);
|
||||
// Imprime un booleano en la consola
|
||||
```
|
||||
|
||||
{ /* CONFIRM */}
|
||||
{/* CONFIRM */}
|
||||
|
||||
#### Crear un diálogo de Ok/Cancelar
|
||||
|
||||
@@ -120,7 +120,7 @@ console.log(confirmation);
|
||||
// Imprime un booleano en la consola
|
||||
```
|
||||
|
||||
{ /* MESSAGE */}
|
||||
{/* MESSAGE */}
|
||||
|
||||
#### Crear un diálogo de mensaje
|
||||
|
||||
@@ -133,7 +133,7 @@ import { message } from '@tauri-apps/plugin-dialog';
|
||||
await message('File not found', { title: 'Tauri', type: 'error' });
|
||||
```
|
||||
|
||||
{ /* OPEN */}
|
||||
{/* OPEN */}
|
||||
|
||||
#### Abrir un diálogo de selección de archivos
|
||||
|
||||
@@ -153,7 +153,7 @@ console.log(file);
|
||||
// Imprime la ruta y el nombre del archivo en la consola
|
||||
```
|
||||
|
||||
{ /* SAVE */}
|
||||
{/* SAVE */}
|
||||
|
||||
#### Diálogo de guardar en archivo
|
||||
|
||||
|
||||
@@ -41,9 +41,9 @@ Conceptualmente Tauri desempeña el rol de un servidor web estático. Necesitas
|
||||
|
||||
Debajo puedes consultar una checklist de escenarios comunes al integrar un frontend con Tauri:
|
||||
|
||||
{ /* TODO: Link to core concept of SSG/SSR, etc. */}
|
||||
{ /* TODO: Link to mobile development server guide */}
|
||||
{ /* TODO: Concept of how to do a client-server relationship? */}
|
||||
{/* TODO: Link to core concept of SSG/SSR, etc. */}
|
||||
{/* TODO: Link to mobile development server guide */}
|
||||
{/* TODO: Concept of how to do a client-server relationship? */}
|
||||
|
||||
- Usa la generación de sitios estáticos (SSG). Tauri no soporta alternativas basadas en servidores de manera oficial (como SSR).
|
||||
- Para el desarrollo de apps móviles, es necesario un servidor de desarrollo de algun tipo para servir el frontend desde tu IP interna.
|
||||
|
||||
@@ -21,7 +21,7 @@ Aprende más sobre Nuxt en https://nuxt.com. Esta guía es precisa a partir de N
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="npm">
|
||||
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -33,10 +33,10 @@ Aprende más sobre Nuxt en https://nuxt.com. Esta guía es precisa a partir de N
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -48,10 +48,10 @@ Aprende más sobre Nuxt en https://nuxt.com. Esta guía es precisa a partir de N
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -63,8 +63,9 @@ Aprende más sobre Nuxt en https://nuxt.com. Esta guía es precisa a partir de N
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
2. Actualiza la configuración de Nuxt:
|
||||
|
||||
@@ -23,8 +23,8 @@ Sigue el enlace para comenzar según tu sistema operativo:
|
||||
|
||||
Tauri requiere varias dependencias del sistema para el desarrollo en Linux. Estas pueden ser diferentes dependiendo de su distribución, pero hemos incluido algunas distribuciones populares a continuación para ayudarlo a configurar.
|
||||
|
||||
{ /* Note: These are the officially supported linux distributions. */}
|
||||
{ /* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
{/* Note: These are the officially supported linux distributions. */}
|
||||
{/* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Debian">
|
||||
@@ -183,8 +183,8 @@ Aquí está el archivo como un script plano: [rustup.sh](https://sh.rustup.rs/)
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
Visita https://www.rust-lang.org/tools/install para instalar `rustup`.
|
||||
|
||||
Visita https://www.rust-lang.org/tools/install para instalar `rustup`.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
@@ -205,7 +205,7 @@ Si deseas compilar tu aplicación para Android o iOS, entonces hay algunas depen
|
||||
1. Descarga e instala [Android Studio desde el sitio web de Android Developers](https://developer.android.com/studio)
|
||||
2. Establece la variable de entorno `JAVA_HOME`:
|
||||
|
||||
{ /* TODO: Can this be done in the 4th step? */}
|
||||
{/* TODO: Can this be done in the 4th step? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux">
|
||||
@@ -240,7 +240,7 @@ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
|
||||
|
||||
4. Establece las variables de entorno `ANDROID_HOME` y `NDK_HOME`. Reemplaza los números de versión para que coincidan con la versión instalada.
|
||||
|
||||
{ /* TODO: Does the version number change below? */}
|
||||
{/* TODO: Does the version number change below? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux">
|
||||
@@ -261,7 +261,7 @@ export NDK_HOME="$ANDROID_HOME/ndk/25.0.8775105"
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
{ /* TODO: Do we need a note about this version? */}
|
||||
{/* TODO: Do we need a note about this version? */}
|
||||
|
||||
```ps
|
||||
[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "$env:LocalAppData\Android\Sdk", "User")
|
||||
@@ -283,10 +283,10 @@ rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-andro
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
```ps
|
||||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
||||
```
|
||||
|
||||
```ps
|
||||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
@@ -11,5 +11,8 @@ import { LinkCard, CardGrid } from '@astrojs/starlight/components';
|
||||
href="/fr/develop/Debug/application//"
|
||||
/>
|
||||
<LinkCard title="Débogage dans VS Code" href="/fr/develop/Debug/vscode" />
|
||||
<LinkCard title="Débogage dans RustRover" href="/fr/develop/Debug/rustrover" />
|
||||
<LinkCard
|
||||
title="Débogage dans RustRover"
|
||||
href="/fr/develop/Debug/rustrover"
|
||||
/>
|
||||
</CardGrid>
|
||||
|
||||
@@ -42,9 +42,9 @@ Théoriquement, Tauri agit comme un hôte web statique. Vous avez besoin de four
|
||||
|
||||
Ci-dessous se trouve une liste des scénarios communs nécessaires pour intégrer un frontend avec Tauri :
|
||||
|
||||
{ /* TODO: Link to core concept of SSG/SSR, etc. */}
|
||||
{ /* TODO: Link to mobile development server guide */}
|
||||
{ /* TODO: Concept of how to do a client-server relationship? */}
|
||||
{/* TODO: Link to core concept of SSG/SSR, etc. */}
|
||||
{/* TODO: Link to mobile development server guide */}
|
||||
{/* TODO: Concept of how to do a client-server relationship? */}
|
||||
|
||||
- Utilisez la génération statique de site (SSG). Tauri ne supporte pas officiellent les solutions basées sur serveur (par exemple SSR).
|
||||
- Pour le développement mobile, un serveur de développement d'un certain type est nécessaire pour héberger le frontend sur votre IP locale.
|
||||
|
||||
@@ -21,7 +21,7 @@ Apprenez-en plus au sujet de Nuxt sur https://nuxt.com. Ce guide est valable à
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="npm">
|
||||
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -33,10 +33,10 @@ Apprenez-en plus au sujet de Nuxt sur https://nuxt.com. Ce guide est valable à
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -48,10 +48,10 @@ Apprenez-en plus au sujet de Nuxt sur https://nuxt.com. Ce guide est valable à
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -63,8 +63,9 @@ Apprenez-en plus au sujet de Nuxt sur https://nuxt.com. Ce guide est valable à
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
2. Mettez à jour la configuration de Nuxt :
|
||||
|
||||
@@ -23,8 +23,8 @@ Suivez les liens pour votre système d'exploitation:
|
||||
|
||||
Tauri exige un système varié de dépendances pour le développement sur Linux. Celles-ci peuvent être différentes selon votre distribution, mais nous avons inclus quelques distributions populaires ci-dessous pour vous aider durant l'installation.
|
||||
|
||||
{ /* Note: These are the officially supported linux distributions. */}
|
||||
{ /* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
{/* Note: These are the officially supported linux distributions. */}
|
||||
{/* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Debian">
|
||||
@@ -186,8 +186,8 @@ Voici le fichier contenant le script: [rustup.sh](https://sh.rustup.rs/)
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
Visitez https://www.rust-lang.org/tools/install pour installer `rustup`.
|
||||
|
||||
Visitez https://www.rust-lang.org/tools/install pour installer `rustup`.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
@@ -208,7 +208,7 @@ Si vous vouler que votre application soit utilisable sur Android et iOS, il faut
|
||||
1. Téléchargez et installez [Android Studio à partir du site Android Developers](https://developer.android.com/studio)
|
||||
2. Configurez la variable d'environement `JAVA_HOME`:
|
||||
|
||||
{ /* TODO: Can this be done in the 4th step? */}
|
||||
{/* TODO: Can this be done in the 4th step? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux">
|
||||
@@ -243,7 +243,7 @@ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
|
||||
|
||||
4. Configurez les variables d'environemment `ANDROID_HOME` et `NDK_HOME`
|
||||
|
||||
{ /* TODO: Does the version number change below? */}
|
||||
{/* TODO: Does the version number change below? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux and macOS">
|
||||
@@ -256,7 +256,7 @@ export NDK_HOME="$ANDROID_HOME/ndk/25.0.8775105"
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
{ /* TODO: Do we need a note about this version? */}
|
||||
{/* TODO: Do we need a note about this version? */}
|
||||
|
||||
```ps
|
||||
[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "$env:LocalAppData\Android\Sdk", "User")
|
||||
@@ -278,10 +278,10 @@ rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-andro
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
```ps
|
||||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
||||
```
|
||||
|
||||
```ps
|
||||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
@@ -37,9 +37,9 @@ import Cta from '@fragments/cta.mdx';
|
||||
</div>
|
||||
|
||||
<div class="lp-cta-card">
|
||||
<Card title="Create a Project" icon="rocket">
|
||||
<Cta/>
|
||||
</Card>
|
||||
<Card title="Create a Project" icon="rocket">
|
||||
<Cta />
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
<CardGrid>
|
||||
|
||||
@@ -35,11 +35,11 @@ Install the CLI plugin to get started.
|
||||
{' '}
|
||||
|
||||
<CommandTabs
|
||||
npm="npm run tauri add cli"
|
||||
yarn="yarn run tauri add cli"
|
||||
pnpm="pnpm tauri add cli"
|
||||
cargo="cargo tauri add cli"
|
||||
/>
|
||||
npm="npm run tauri add cli"
|
||||
yarn="yarn run tauri add cli"
|
||||
pnpm="pnpm tauri add cli"
|
||||
cargo="cargo tauri add cli"
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Manual">
|
||||
@@ -70,10 +70,10 @@ Install the CLI plugin to get started.
|
||||
3. Install the JavaScript Guest bindings using your preferred JavaScript package manager:
|
||||
|
||||
<CommandTabs
|
||||
npm="npm install @tauri-apps/plugin-cli"
|
||||
yarn="yarn add @tauri-apps/plugin-cli"
|
||||
pnpm="pnpm add @tauri-apps/plugin-cli"
|
||||
/>
|
||||
npm="npm install @tauri-apps/plugin-cli"
|
||||
yarn="yarn add @tauri-apps/plugin-cli"
|
||||
pnpm="pnpm add @tauri-apps/plugin-cli"
|
||||
/>
|
||||
|
||||
</Steps>
|
||||
</TabItem>
|
||||
@@ -126,7 +126,7 @@ All JSON configurations here are just samples, many other fields have been omitt
|
||||
|
||||
The `args` array represents the list of arguments accepted by its command or subcommand.
|
||||
|
||||
{ /* TODO: List available configuration */}
|
||||
{/* TODO: List available configuration */}
|
||||
|
||||
### Positional Arguments
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ Install the deep-link plugin to get started.
|
||||
</TabItem>
|
||||
<TabItem label="Manual">
|
||||
<Steps>
|
||||
|
||||
|
||||
1. Run `cargo add tauri-plugin-deep-link` to add the plugin to the project's dependencies in `Cargo.toml`.
|
||||
|
||||
2. Modify `lib.rs` to initialize the plugin:
|
||||
|
||||
@@ -85,7 +85,7 @@ in Rust:
|
||||
|
||||
See all [Dialog Options](/reference/javascript/dialog/) at the JavaScript API reference.
|
||||
|
||||
{ /* ASK */}
|
||||
{/* ASK */}
|
||||
|
||||
#### Create Yes/No Dialog
|
||||
|
||||
@@ -104,7 +104,7 @@ console.log(answer);
|
||||
// Prints boolean to the console
|
||||
```
|
||||
|
||||
{ /* CONFIRM */}
|
||||
{/* CONFIRM */}
|
||||
|
||||
#### Create Ok/Cancel Dialog
|
||||
|
||||
@@ -123,7 +123,7 @@ console.log(confirmation);
|
||||
// Prints boolean to the console
|
||||
```
|
||||
|
||||
{ /* MESSAGE */}
|
||||
{/* MESSAGE */}
|
||||
|
||||
#### Create Message Dialog
|
||||
|
||||
@@ -136,7 +136,7 @@ import { message } from '@tauri-apps/plugin-dialog';
|
||||
await message('File not found', { title: 'Tauri', kind: 'error' });
|
||||
```
|
||||
|
||||
{ /* OPEN */}
|
||||
{/* OPEN */}
|
||||
|
||||
#### Open a File Selector Dialog
|
||||
|
||||
@@ -156,7 +156,7 @@ console.log(file);
|
||||
// Prints file path and name to the console
|
||||
```
|
||||
|
||||
{ /* SAVE */}
|
||||
{/* SAVE */}
|
||||
|
||||
#### Save to File Dialog
|
||||
|
||||
|
||||
@@ -83,28 +83,28 @@ Install the log plugin to get started.
|
||||
## Usage
|
||||
|
||||
<Steps>
|
||||
|
||||
1. First, you need to register the plugin with Tauri.
|
||||
|
||||
```rust title="src-tauri/src/lib.rs" {1} {6-14}
|
||||
use tauri_plugin_log::{Target, TargetKind};
|
||||
1. First, you need to register the plugin with Tauri.
|
||||
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
pub fn run() {
|
||||
tauri::Builder::default()
|
||||
.plugin(
|
||||
tauri_plugin_log::Builder::new()
|
||||
.targets([
|
||||
Target::new(TargetKind::Stdout),
|
||||
Target::new(TargetKind::LogDir { file_name: None }),
|
||||
Target::new(TargetKind::Webview),
|
||||
])
|
||||
.build(),
|
||||
)
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
```
|
||||
```rust title="src-tauri/src/lib.rs" {1} {6-14}
|
||||
use tauri_plugin_log::{Target, TargetKind};
|
||||
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
pub fn run() {
|
||||
tauri::Builder::default()
|
||||
.plugin(
|
||||
tauri_plugin_log::Builder::new()
|
||||
.targets([
|
||||
Target::new(TargetKind::Stdout),
|
||||
Target::new(TargetKind::LogDir { file_name: None }),
|
||||
Target::new(TargetKind::Webview),
|
||||
])
|
||||
.build(),
|
||||
)
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
```
|
||||
|
||||
2. Afterwards, all the plugin's APIs are available through the JavaScript guest bindings:
|
||||
|
||||
|
||||
@@ -89,25 +89,26 @@ Additional setup is required to get tray-relative positions to work.
|
||||
[dependencies]
|
||||
tauri-plugin-positioner = { version = "2.0.0-beta", features = ["tray-icon"] }
|
||||
```
|
||||
|
||||
2. Setup `on_tray_event` for positioner plugin:
|
||||
```rust title="src-tauri/src/lib.rs" ins={4-12}
|
||||
fn run() {
|
||||
tauri::Builder::default()
|
||||
.plugin(tauri_plugin_positioner::init())
|
||||
// This is required to get tray-relative positions to work
|
||||
.setup(|app| {
|
||||
TrayIconBuilder::new()
|
||||
.on_tray_icon_event(|app, event| {
|
||||
tauri_plugin_positioner::on_tray_event(app.app_handle(), &event);
|
||||
})
|
||||
.build(app)?;
|
||||
Ok(())
|
||||
})
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
```
|
||||
|
||||
2. Setup `on_tray_event` for positioner plugin:
|
||||
```rust title="src-tauri/src/lib.rs" ins={4-12}
|
||||
fn run() {
|
||||
tauri::Builder::default()
|
||||
.plugin(tauri_plugin_positioner::init())
|
||||
// This is required to get tray-relative positions to work
|
||||
.setup(|app| {
|
||||
TrayIconBuilder::new()
|
||||
.on_tray_icon_event(|app, event| {
|
||||
tauri_plugin_positioner::on_tray_event(app.app_handle(), &event);
|
||||
})
|
||||
.build(app)?;
|
||||
Ok(())
|
||||
})
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
```
|
||||
|
||||
</Steps>
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -77,10 +77,10 @@ The plugin `init()` method takes a closure that is invoked when a new app instan
|
||||
The closure has three arguments:
|
||||
|
||||
<Steps>
|
||||
|
||||
1. **`app` :** The [AppHandle](https://docs.rs/tauri/latest/tauri/struct.AppHandle.html) of the application.
|
||||
2. **`args` :** The list of arguments, that was passed by the user to initiate this new instance.
|
||||
3. **`cwd` :** The Current Working Directory denotes the directory from which the new application instance was launched.
|
||||
|
||||
1. **`app` :** The [AppHandle](https://docs.rs/tauri/latest/tauri/struct.AppHandle.html) of the application.
|
||||
2. **`args` :** The list of arguments, that was passed by the user to initiate this new instance.
|
||||
3. **`cwd` :** The Current Working Directory denotes the directory from which the new application instance was launched.
|
||||
|
||||
</Steps>
|
||||
|
||||
|
||||
@@ -230,24 +230,21 @@ See [Access Control List](/reference/acl/) for more information.
|
||||
|
||||
```json title="src-tauri/capabilities/main.json" ins={7-8}
|
||||
{
|
||||
"$schema": "../gen/schemas/desktop-schema.json",
|
||||
"identifier": "main-capability",
|
||||
"description": "Capability for the main window",
|
||||
"windows": ["main"],
|
||||
"permissions": [
|
||||
"sql:allow-load",
|
||||
"sql:allow-execute",
|
||||
]
|
||||
"$schema": "../gen/schemas/desktop-schema.json",
|
||||
"identifier": "main-capability",
|
||||
"description": "Capability for the main window",
|
||||
"windows": ["main"],
|
||||
"permissions": ["sql:allow-load", "sql:allow-execute"]
|
||||
}
|
||||
```
|
||||
|
||||
| Permission | Description |
|
||||
|------|-----|
|
||||
|`sql:allow-close`|Enables the close command without any pre-configured scope.|
|
||||
|`sql:deny-close`|Denies the close command without any pre-configured scope.|
|
||||
|`sql:allow-execute`|Enables the execute command without any pre-configured scope.|
|
||||
|`sql:deny-execute`|Denies the execute command without any pre-configured scope.|
|
||||
|`sql:allow-load`|Enables the load command without any pre-configured scope.|
|
||||
|`sql:deny-load`|Denies the load command without any pre-configured scope.|
|
||||
|`sql:allow-select`|Enables the select command without any pre-configured scope.|
|
||||
|`sql:deny-select`|Denies the select command without any pre-configured scope.|
|
||||
| Permission | Description |
|
||||
| ------------------- | ------------------------------------------------------------- |
|
||||
| `sql:allow-close` | Enables the close command without any pre-configured scope. |
|
||||
| `sql:deny-close` | Denies the close command without any pre-configured scope. |
|
||||
| `sql:allow-execute` | Enables the execute command without any pre-configured scope. |
|
||||
| `sql:deny-execute` | Denies the execute command without any pre-configured scope. |
|
||||
| `sql:allow-load` | Enables the load command without any pre-configured scope. |
|
||||
| `sql:deny-load` | Denies the load command without any pre-configured scope. |
|
||||
| `sql:allow-select` | Enables the select command without any pre-configured scope. |
|
||||
| `sql:deny-select` | Denies the select command without any pre-configured scope. |
|
||||
|
||||
@@ -142,9 +142,9 @@ See [Access Control List](/reference/acl/) for more information.
|
||||
}
|
||||
```
|
||||
|
||||
| Permission | Description |
|
||||
| ----------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `window-state:allow-restore-state` | Enables the restore_state command without any pre-configured scope. |
|
||||
| `window-state:deny-restore-state` | Denies the restore_state command without any pre-configured scope. |
|
||||
| `window-state:allow-save-window-state` | Enables the save_window_state command without any pre-configured scope. |
|
||||
| `window-state:deny-save-window-state` | Denies the save_window_state command without any pre-configured scope. |
|
||||
| Permission | Description |
|
||||
| -------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| `window-state:allow-restore-state` | Enables the restore_state command without any pre-configured scope. |
|
||||
| `window-state:deny-restore-state` | Denies the restore_state command without any pre-configured scope. |
|
||||
| `window-state:allow-save-window-state` | Enables the save_window_state command without any pre-configured scope. |
|
||||
| `window-state:deny-save-window-state` | Denies the save_window_state command without any pre-configured scope. |
|
||||
|
||||
@@ -588,7 +588,6 @@ Options:
|
||||
|
||||
```
|
||||
|
||||
|
||||
## `capability`
|
||||
|
||||
<CommandTabs
|
||||
|
||||
2
src/content/docs/release/.gitignore
vendored
@@ -1,2 +1,2 @@
|
||||
*.md
|
||||
*.mdx
|
||||
*.mdx
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
---
|
||||
title: Tauri RSS Feeds
|
||||
i18nReady: true
|
||||
---
|
||||
|
||||
import { LinkCard } from '@astrojs/starlight/components';
|
||||
|
||||
<LinkCard title="All updates" href="/feed.xml" />
|
||||
<LinkCard title="Blog updates" href="/blog/rss.xml" />
|
||||
<LinkCard title="Pages updates" href="/pages.xml" />
|
||||
---
|
||||
title: Tauri RSS Feeds
|
||||
i18nReady: true
|
||||
---
|
||||
|
||||
import { LinkCard } from '@astrojs/starlight/components';
|
||||
|
||||
<LinkCard title="All updates" href="/feed.xml" />
|
||||
<LinkCard title="Blog updates" href="/blog/rss.xml" />
|
||||
<LinkCard title="Pages updates" href="/pages.xml" />
|
||||
|
||||
@@ -33,7 +33,7 @@ to defined them directly in the `capabilities` field.
|
||||
All capabilities inside the `capabilities` directory are automatically enabled
|
||||
by default.
|
||||
Once capabilities are explicitly enabled in the `tauri.conf.json`,
|
||||
only these are used in the application build.
|
||||
only these are used in the application build.
|
||||
|
||||
For a full reference of the configuration scheme please see the
|
||||
[references](/reference/config/) section.
|
||||
|
||||
@@ -35,23 +35,23 @@ We recommend starting with the vanilla template (HTML, CSS, and JavaScript witho
|
||||
|
||||
:::
|
||||
|
||||
{ /* TODO: Can CTA offer to install the deps? */}
|
||||
{/* TODO: Can CTA offer to install the deps? */}
|
||||
|
||||
After `create-tauri-app` has complete you can navigate into your project's folder, install dependencies, then use the [Tauri CLI](/reference/cli) to start the development server:
|
||||
|
||||
import CommandTabs from '@components/CommandTabs.astro';
|
||||
|
||||
<CommandTabs
|
||||
npm="cd tauri-app
|
||||
npm="cd tauri-app
|
||||
npm install
|
||||
npm run tauri dev"
|
||||
yarn="cd tauri-app
|
||||
yarn="cd tauri-app
|
||||
yarn install
|
||||
yarn tauri dev"
|
||||
pnpm="cd tauri-app
|
||||
pnpm="cd tauri-app
|
||||
pnpm install
|
||||
pnpm tauri dev"
|
||||
cargo="cd tauri-app
|
||||
cargo="cd tauri-app
|
||||
cargo tauri dev"
|
||||
/>
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ Conceptually Tauri acts as a static web host. You need to provide Tauri with a f
|
||||
|
||||
Below is a checklist of common scenarios needed to integrate a frontend with Tauri:
|
||||
|
||||
{ /* TODO: Link to core concept of SSG/SSR, etc. */}
|
||||
{ /* TODO: Link to mobile development server guide */}
|
||||
{ /* TODO: Concept of how to do a client-server relationship? */}
|
||||
{/* TODO: Link to core concept of SSG/SSR, etc. */}
|
||||
{/* TODO: Link to mobile development server guide */}
|
||||
{/* TODO: Concept of how to do a client-server relationship? */}
|
||||
|
||||
- Use static site generation (SSG), single-page applications (SPA), or classic multi-page apps (MPA). Tauri does not natively support server based alternatives (such as SSR).
|
||||
- For mobile development, a development server of some kind is necessary that can host the frontend on your internal IP.
|
||||
@@ -28,7 +28,7 @@ Below is a checklist of common scenarios needed to integrate a frontend with Tau
|
||||
|
||||
## JavaScript
|
||||
|
||||
{ /* TODO: Help me with the wording here lol */}
|
||||
{/* TODO: Help me with the wording here lol */}
|
||||
For most projects we recommend [Vite](https://vitejs.dev/) for SPA frameworks such as React, Vue, Svelte, and Solid, but also for plain JavaScript or TypeScript projects. Most other guides listed here show how to use Meta-Frameworks as they are typically designed for SSR and therefore require special configuration.
|
||||
|
||||
<CardGrid>
|
||||
@@ -36,10 +36,7 @@ For most projects we recommend [Vite](https://vitejs.dev/) for SPA frameworks su
|
||||
<LinkCard title="Nuxt" href="/start/frontend/nuxt/" />
|
||||
<LinkCard title="Qwik" href="/start/frontend/qwik/" />
|
||||
<LinkCard title="SvelteKit" href="/start/frontend/sveltekit/" />
|
||||
<LinkCard
|
||||
title="Vite (recommended)"
|
||||
href="/start/frontend/vite/"
|
||||
/>
|
||||
<LinkCard title="Vite (recommended)" href="/start/frontend/vite/" />
|
||||
<LinkCard title="Webpack" href="/start/frontend/webpack/" />
|
||||
</CardGrid>
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Learn more about Nuxt at https://nuxt.com. This guide is accurate as of Nuxt 3.7
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="npm">
|
||||
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -33,10 +33,10 @@ Learn more about Nuxt at https://nuxt.com. This guide is accurate as of Nuxt 3.7
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -48,10 +48,10 @@ Learn more about Nuxt at https://nuxt.com. This guide is accurate as of Nuxt 3.7
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -63,8 +63,9 @@ Learn more about Nuxt at https://nuxt.com. This guide is accurate as of Nuxt 3.7
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
2. Update Nuxt configuration:
|
||||
|
||||
@@ -53,11 +53,11 @@ fn main() {
|
||||
The Tauri v2 CLI includes a `migrate` command that automates most of the process and helps you finish the migration:
|
||||
|
||||
<CommandTabs
|
||||
npm="npm install @tauri-apps/cli@next
|
||||
npm="npm install @tauri-apps/cli@next
|
||||
npm run tauri migrate"
|
||||
yarn="yarn upgrade @tauri-apps/cli --next
|
||||
yarn="yarn upgrade @tauri-apps/cli --next
|
||||
yarn tauri migrate"
|
||||
pnpm="pnpm update @tauri-apps/cli@next
|
||||
pnpm="pnpm update @tauri-apps/cli@next
|
||||
pnpm tauri migrate"
|
||||
cargo='cargo install tauri-cli --version "^2.0.0-beta"
|
||||
cargo tauri migrate'
|
||||
@@ -1159,7 +1159,6 @@ On the JavaScript side, the `WebviewWindow` class is now exported in the `@tauri
|
||||
|
||||
The `onMenuClicked` function was removed, you can intercept menu events when creating a menu in JavaScript instead.
|
||||
|
||||
|
||||
### Migrate Embedded External Binaries (Sidecar)
|
||||
|
||||
In Tauri v1, the external binaries and their arguments were defined in the allowlist. In v2, use the new permissions system. Read [Migrate Permissions](#migrate-permissions) for more information.
|
||||
|
||||
@@ -13,16 +13,7 @@ Learn about common scenarios and steps to upgrade from Tauri 1.0 or migrate from
|
||||
import { LinkCard, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
<CardGrid>
|
||||
<LinkCard
|
||||
title="Upgrade from Tauri 1.0"
|
||||
href="/start/migrate/from-tauri-1"
|
||||
/>
|
||||
<LinkCard
|
||||
title="Migrate from Electron"
|
||||
href="/start/migrate/from-electron"
|
||||
/>
|
||||
<LinkCard
|
||||
title="Migrate from Flutter"
|
||||
href="/start/migrate/from-flutter"
|
||||
/>
|
||||
<LinkCard title="Upgrade from Tauri 1.0" href="/start/migrate/from-tauri-1" />
|
||||
<LinkCard title="Migrate from Electron" href="/start/migrate/from-electron" />
|
||||
<LinkCard title="Migrate from Flutter" href="/start/migrate/from-flutter" />
|
||||
</CardGrid>
|
||||
|
||||
@@ -25,8 +25,8 @@ Follow the link to get started for your respective operating system:
|
||||
|
||||
Tauri requires various system dependencies for development on Linux. These may be different depending on your distribution but we've included some popular distributions below to help you get setup.
|
||||
|
||||
{ /* Note: These are the officially supported linux distributions. */}
|
||||
{ /* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
{/* Note: These are the officially supported linux distributions. */}
|
||||
{/* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Debian">
|
||||
@@ -185,8 +185,8 @@ Here is the file as a plain script: [rustup.sh](https://sh.rustup.rs/)
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
Visit https://www.rust-lang.org/tools/install to install `rustup`.
|
||||
|
||||
Visit https://www.rust-lang.org/tools/install to install `rustup`.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
@@ -230,7 +230,7 @@ If you'd like to target your app for Android or iOS then there are a few additio
|
||||
1. Download and install [Android Studio from the Android Developers website](https://developer.android.com/studio)
|
||||
2. Set the `JAVA_HOME` environment variable:
|
||||
|
||||
{ /* TODO: Can this be done in the 4th step? */}
|
||||
{/* TODO: Can this be done in the 4th step? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux">
|
||||
|
||||
@@ -250,7 +250,7 @@ class ExamplePlugin: Plugin {
|
||||
|
||||
Tauri 自动为插件实现了两个命令:`checkPermissions` 和 `requestPermissions`。这些命令可以从 JavaScript 或 Rust 中直接调用。
|
||||
|
||||
{ /* TODO: PermissionState type should be exported in Tauri */}
|
||||
{/* TODO: PermissionState type should be exported in Tauri */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="JavaScript">
|
||||
@@ -317,7 +317,7 @@ impl<R: Runtime> Notification<R> {
|
||||
|
||||
## 插件事件
|
||||
|
||||
{ /* TODO: Is this section a duplicate of Lifecycle Events above? */}
|
||||
{/* TODO: Is this section a duplicate of Lifecycle Events above? */}
|
||||
|
||||
插件可以使用 `trigger` 函数在任何时候触发事件:
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ title: 插件开发
|
||||
i18nReady: true
|
||||
---
|
||||
|
||||
{ /* TODO: Add a CLI section */}
|
||||
{/* TODO: Add a CLI section */}
|
||||
|
||||
import CommandTabs from '@components/CommandTabs.astro';
|
||||
|
||||
{ /* TODO: Link to windowing system, commands for sending messages, and event system */}
|
||||
{/* TODO: Link to windowing system, commands for sending messages, and event system */}
|
||||
|
||||
:::tip[插件开发]
|
||||
|
||||
@@ -24,11 +24,11 @@ Tauri 提供了一个基于 webview 功能的视窗系统,一个在 Rust 进
|
||||
同时,一个插件项目可以包含一个 Android 库项目和/或一个用于 iOS 的 Swift 包。
|
||||
你可以查阅[移动端插件开发指南](/zh-cn/develop/plugins/develop-mobile)以获取更多关于开发安卓或 iOS 插件的信息。
|
||||
|
||||
{ /* TODO: https://github.com/tauri-apps/tauri/issues/7749 */}
|
||||
{/* TODO: https://github.com/tauri-apps/tauri/issues/7749 */}
|
||||
|
||||
## 命名规范
|
||||
|
||||
{ /* TODO: Add link to allowlist */}
|
||||
{/* TODO: Add link to allowlist */}
|
||||
|
||||
Tauri 插件具有一个前缀(Rust 包使用 `tauri-plugin-` 前缀,NPM 包使用 `@tauri-apps/plugin-` 前缀),随后是插件名称。
|
||||
插件名称由插件配置中的 [`tauri.conf.json > plugin`](/reference/config/#pluginconfig) 和许可列表中的配置确定。
|
||||
@@ -40,11 +40,11 @@ Tauri 插件具有一个前缀(Rust 包使用 `tauri-plugin-` 前缀,NPM 包
|
||||
要引导创建一个新的插件项目,请运行 `plugin init`。如果不需要相应的 NPM 程序包,请使用 `--no-api` 命令行标志。
|
||||
|
||||
<CommandTabs
|
||||
npm="npm run tauri plugin init"
|
||||
yarn="yarn tauri plugin init"
|
||||
pnpm="pnpm tauri plugin init"
|
||||
cargo="cargo tauri plugin init"
|
||||
/>
|
||||
npm="npm run tauri plugin init"
|
||||
yarn="yarn tauri plugin init"
|
||||
pnpm="pnpm tauri plugin init"
|
||||
cargo="cargo tauri plugin init"
|
||||
/>
|
||||
|
||||
这会初始化插件,并且生成如下所示的代码:
|
||||
|
||||
@@ -63,7 +63,7 @@ Tauri 插件具有一个前缀(Rust 包使用 `tauri-plugin-` 前缀,NPM 包
|
||||
└── package.json - NPM 包元数据
|
||||
```
|
||||
|
||||
{ /* TODO: https://github.com/tauri-apps/tauri/issues/7749 */}
|
||||
{/* TODO: https://github.com/tauri-apps/tauri/issues/7749 */}
|
||||
|
||||
如果你有一个现有的插件,并且想添加 Android 或 iOS 功能,你可以使用 `plugin android add` 和 `plugin ios add` 来引导移动端库项目,并指导你完成所需的更改。
|
||||
|
||||
|
||||
@@ -31,11 +31,11 @@ _这个插件要求 Rust 版本至少是 **1.75**_
|
||||
{' '}
|
||||
|
||||
<CommandTabs
|
||||
npm="npm run tauri add cli"
|
||||
yarn="yarn run tauri add cli"
|
||||
pnpm="pnpm tauri add cli"
|
||||
cargo="cargo tauri add cli"
|
||||
/>
|
||||
npm="npm run tauri add cli"
|
||||
yarn="yarn run tauri add cli"
|
||||
pnpm="pnpm tauri add cli"
|
||||
cargo="cargo tauri add cli"
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="手动">
|
||||
|
||||
@@ -82,7 +82,7 @@ import CommandTabs from '@components/CommandTabs.astro';
|
||||
|
||||
可以在 JavaScript API 参考中查看所有 [Dialog 选项](/reference/javascript/dialog/)。
|
||||
|
||||
{ /* ASK */}
|
||||
{/* ASK */}
|
||||
|
||||
#### 创建 Yes/No 对话框
|
||||
|
||||
@@ -101,7 +101,7 @@ console.log(answer);
|
||||
// Prints boolean to the console
|
||||
```
|
||||
|
||||
{ /* CONFIRM */}
|
||||
{/* CONFIRM */}
|
||||
|
||||
#### 创建 Ok/Cancel 对话框
|
||||
|
||||
@@ -120,7 +120,7 @@ console.log(confirmation);
|
||||
// Prints boolean to the console
|
||||
```
|
||||
|
||||
{ /* MESSAGE */}
|
||||
{/* MESSAGE */}
|
||||
|
||||
#### 创建 Message 对话框
|
||||
|
||||
@@ -133,7 +133,7 @@ import { message } from '@tauri-apps/plugin-dialog';
|
||||
await message('File not found', { title: 'Tauri', type: 'error' });
|
||||
```
|
||||
|
||||
{ /* OPEN */}
|
||||
{/* OPEN */}
|
||||
|
||||
#### 打开一个文件选择对话框
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ _这个插件要求 Rust 版本至少是 **1.75**_
|
||||
[dependencies]
|
||||
tauri-plugin-positioner = { version = "2.0.0-beta", features = ["tray-icon"] }
|
||||
```
|
||||
|
||||
|
||||
2. 为定位器插件设置 `on_tray_event`。
|
||||
```rust title="src-tauri/src/lib.rs" ins={4-12}
|
||||
fn run() {
|
||||
|
||||
@@ -23,20 +23,14 @@ Tauri 与前端无关,支持大多数开箱即用的前端框架。但是,
|
||||
<LinkCard title="Qwik" href="/zh-cn/start/frontend/qwik" />
|
||||
<LinkCard title="Svelte" href="/zh-cn/start/frontend/svelte" />
|
||||
<LinkCard title="Vite" href="/zh-cn/start/frontend/vite" />
|
||||
<LinkCard
|
||||
title="Webpack"
|
||||
href="/zh-cn/start/frontend/webpack"
|
||||
/>
|
||||
<LinkCard title="Webpack" href="/zh-cn/start/frontend/webpack" />
|
||||
</CardGrid>
|
||||
|
||||
## Rust
|
||||
|
||||
<CardGrid>
|
||||
<LinkCard title="Leptos" href="/zh-cn/start/frontend/leptos" />
|
||||
<LinkCard
|
||||
title="Sycamore"
|
||||
href="/zh-cn/start/frontend/sycamore"
|
||||
/>
|
||||
<LinkCard title="Sycamore" href="/zh-cn/start/frontend/sycamore" />
|
||||
<LinkCard title="Trunk" href="/zh-cn/start/frontend/trunk" />
|
||||
<LinkCard title="Yew" href="/zh-cn/start/frontend/yew" />
|
||||
</CardGrid>
|
||||
|
||||
@@ -21,7 +21,7 @@ import { Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="npm">
|
||||
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -33,10 +33,10 @@ import { Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="yarn">
|
||||
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -48,10 +48,10 @@ import { Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="pnpm">
|
||||
|
||||
|
||||
```json
|
||||
// tauri.conf.json
|
||||
{
|
||||
@@ -63,7 +63,7 @@ import { Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ import { Tabs, TabItem, Card } from '@astrojs/starlight/components';
|
||||
|
||||
Tauri 在 Linux 上进行开发需要各种系统依赖项。这些可能会有所不同,具体取决于你的发行版,但我们在下面提供了一些流行的发行版来帮助你进行设置。
|
||||
|
||||
{ /* Note: These are the officially supported linux distributions. */}
|
||||
{ /* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
{/* Note: These are the officially supported linux distributions. */}
|
||||
{/* If you wish to add another please open an issue to discuss prior to opening a PR */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Debian">
|
||||
@@ -185,7 +185,7 @@ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
|
||||
前往 https://www.rust-lang.org/tools/install 下载 `rustup`。
|
||||
|
||||
</TabItem>
|
||||
@@ -207,7 +207,7 @@ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
|
||||
1. 从 Android Developers 网站下载并安装 [Android Studio](https://developer.android.com/studio)。
|
||||
2. 设置 `JAVA_HOME` 环境变量:
|
||||
|
||||
{ /* TODO: Can this be done in the 4th step? */}
|
||||
{/* TODO: Can this be done in the 4th step? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux">
|
||||
@@ -242,7 +242,7 @@ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
|
||||
|
||||
4. 配置 `ANDROID_HOME` 和 `NDK_HOME` 环境变量:
|
||||
|
||||
{ /* TODO: Does the version number change below? */}
|
||||
{/* TODO: Does the version number change below? */}
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Linux and macOS">
|
||||
@@ -255,7 +255,7 @@ export NDK_HOME="$ANDROID_HOME/ndk/25.0.8775105"
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
{ /* TODO: Do we need a note about this version? */}
|
||||
{/* TODO: Do we need a note about this version? */}
|
||||
|
||||
```ps
|
||||
[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "$env:LocalAppData\Android\Sdk", "User")
|
||||
@@ -277,7 +277,7 @@ rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-andro
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Windows">
|
||||
|
||||
|
||||
```ps
|
||||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
|
||||
```
|
||||
|
||||