5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 17:52:29 +08:00

feat(website): optimize website and sync documents (#1219)

- Optimize the homepage carousel
- Sync documents
- Update style files and images
This commit is contained in:
Misitebao 2022-03-07 16:28:37 +08:00 committed by GitHub
parent 0c09fe4560
commit 2a096a6ff9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 17429 additions and 436 deletions

View File

@ -53,7 +53,10 @@ const darkCodeTheme = require("prism-react-renderer/themes/palenight");
"https://github.com/wailsapp/wails/edit/master/website/blog/",
},
theme: {
customCss: [require.resolve("./src/css/custom.css"), require.resolve("./src/css/carousel.min.css")],
customCss: [
require.resolve("./src/css/custom.css"),
require.resolve("./src/css/carousel.css"),
],
},
}),
],
@ -169,12 +172,12 @@ const darkCodeTheme = require("prism-react-renderer/themes/palenight");
},
algolia: {
// The application ID provided by Algolia
appId: 'AWTCNFZ4FF',
appId: "AWTCNFZ4FF",
// Public API key: it is safe to commit it
apiKey: 'd6495e0dda237daa037967b3809e4089',
apiKey: "d6495e0dda237daa037967b3809e4089",
indexName: 'wails',
indexName: "wails",
// Optional: see doc section below
contextualSearch: true,
@ -186,7 +189,7 @@ const darkCodeTheme = require("prism-react-renderer/themes/palenight");
searchParameters: {},
// Optional: path for search page that enabled by default (`false` to disable it)
searchPagePath: 'false',
searchPagePath: "false",
//... other Algolia params
},

View File

@ -180,7 +180,7 @@
"description": "The title of the tag list page"
},
"homepage.Tagline": {
"message": "使用 Go + HTML + CSS + JS 构建跨平台桌面应用"
"message": "使用 Go + HTML + CSS + JS 构建漂亮的跨平台桌面应用"
},
"homepage.ButtonText": {
"message": "快速入门"

View File

@ -6,7 +6,7 @@ sidebar_position: 1
## 支持的平台
- Windows 10 AMD64/ARM64
- Windows 10/11 AMD64/ARM64
- MacOS 10.13+ AMD64
- MacOS 11.0+ ARM64
- Linux AMD64/ARM64

View File

@ -12,3 +12,13 @@ var assets embed.FS
```
检查`frontend/dist`中是否包含您的应用程序资源。
## Mac 应用程序无效
如果您构建的应用程序在 finder 中如下所示:
<p className="text--center">
<img src="/img/troubleshooting/invalid_mac_app.png"></img>
</p>
您的应用程序的 `info.plist` 可能无效。更新 `build/<yourapp>.app/Contents/info.plist` 文件并检查数据是否有效,例如二进制文件名称是否正确。要保留更改,请将文件复制回 `build/darwin` 目录。

17070
website/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,308 @@
/********************************************
BREAKPOINT WIDTHS
********************************************/
/********************************************
FONTS
********************************************/
/********************************************
COLOURS
********************************************/
.carousel .control-arrow,
.carousel.carousel-slider .control-arrow {
-webkit-transition: all 0.25s ease-in;
-moz-transition: all 0.25s ease-in;
-ms-transition: all 0.25s ease-in;
-o-transition: all 0.25s ease-in;
transition: all 0.25s ease-in;
opacity: 0.4;
filter: alpha(opacity=40);
position: absolute;
z-index: 2;
top: 20px;
background: none;
border: 0;
font-size: 32px;
cursor: pointer;
}
.carousel .control-arrow:focus,
.carousel .control-arrow:hover {
opacity: 1;
filter: alpha(opacity=100);
}
.carousel .control-arrow:before,
.carousel.carousel-slider .control-arrow:before {
margin: 0 5px;
display: inline-block;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
content: "";
}
.carousel .control-disabled.control-arrow {
opacity: 0;
filter: alpha(opacity=0);
cursor: inherit;
display: none;
}
.carousel .control-prev.control-arrow {
left: 0;
}
.carousel .control-prev.control-arrow:before {
border-right: 8px solid #fff;
}
.carousel .control-next.control-arrow {
right: 0;
}
.carousel .control-next.control-arrow:before {
border-left: 8px solid #fff;
}
.carousel-root {
outline: none;
}
.carousel {
position: relative;
width: 100%;
}
.carousel * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.carousel img {
width: 100%;
display: inline-block;
pointer-events: none;
}
.carousel .carousel {
position: relative;
}
.carousel .control-arrow {
outline: 0;
border: 0;
background: none;
top: 50%;
margin-top: -13px;
font-size: 18px;
}
.carousel .thumbs-wrapper {
margin: 20px;
overflow: hidden;
}
.carousel .thumbs {
-webkit-transition: all 0.15s ease-in;
-moz-transition: all 0.15s ease-in;
-ms-transition: all 0.15s ease-in;
-o-transition: all 0.15s ease-in;
transition: all 0.15s ease-in;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
position: relative;
list-style: none;
white-space: nowrap;
}
.carousel .thumb {
-webkit-transition: border 0.15s ease-in;
-moz-transition: border 0.15s ease-in;
-ms-transition: border 0.15s ease-in;
-o-transition: border 0.15s ease-in;
transition: border 0.15s ease-in;
display: inline-block;
margin-right: 6px;
white-space: nowrap;
overflow: hidden;
border: 3px solid #fff;
padding: 2px;
}
.carousel .thumb:focus {
border: 3px solid #ccc;
outline: none;
}
.carousel .thumb.selected,
.carousel .thumb:hover {
border: 3px solid #333;
}
.carousel .thumb img {
vertical-align: top;
}
.carousel.carousel-slider {
position: relative;
margin: 0;
overflow: hidden;
}
.carousel.carousel-slider .control-arrow {
top: 0;
color: #fff;
font-size: 26px;
bottom: 0;
margin-top: 0;
padding: 5px;
}
.carousel.carousel-slider .control-arrow:hover {
background: rgba(0, 0, 0, 0.2);
}
.carousel .slider-wrapper {
overflow: hidden;
margin: auto;
width: 100%;
-webkit-transition: height 0.15s ease-in;
-moz-transition: height 0.15s ease-in;
-ms-transition: height 0.15s ease-in;
-o-transition: height 0.15s ease-in;
transition: height 0.15s ease-in;
}
.carousel .slider-wrapper.axis-horizontal .slider {
-ms-box-orient: horizontal;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex;
}
.carousel .slider-wrapper.axis-horizontal .slider .slide {
flex-direction: column;
flex-flow: column;
}
.carousel .slider-wrapper.axis-vertical {
-ms-box-orient: horizontal;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex;
}
.carousel .slider-wrapper.axis-vertical .slider {
-webkit-flex-direction: column;
flex-direction: column;
}
.carousel .slider {
margin: 0;
padding: 0;
position: relative;
list-style: none;
width: 100%;
}
.carousel .slider.animated {
-webkit-transition: all 0.35s ease-in-out;
-moz-transition: all 0.35s ease-in-out;
-ms-transition: all 0.35s ease-in-out;
-o-transition: all 0.35s ease-in-out;
transition: all 0.35s ease-in-out;
}
.carousel .slide {
min-width: 100%;
margin: 0;
position: relative;
text-align: center;
}
.carousel .slide img {
width: 100%;
vertical-align: top;
border: 0;
}
.carousel .slide iframe {
display: inline-block;
width: calc(100% - 80px);
margin: 0 40px 40px;
border: 0;
}
.carousel .slide .legend {
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
-ms-transition: all 0.5s ease-in-out;
-o-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
position: absolute;
bottom: 40px;
left: 50%;
margin-left: -45%;
width: 90%;
border-radius: 10px;
background: #000;
color: #fff;
padding: 10px;
font-size: 12px;
text-align: center;
opacity: 0.25;
-webkit-transition: opacity 0.35s ease-in-out;
-moz-transition: opacity 0.35s ease-in-out;
-ms-transition: opacity 0.35s ease-in-out;
-o-transition: opacity 0.35s ease-in-out;
transition: opacity 0.35s ease-in-out;
}
.carousel .control-dots {
position: absolute;
bottom: 0;
margin: 10px 0;
padding: 0;
text-align: center;
width: 100%;
z-index: 1;
}
@media (min-width: 960px) {
.carousel .control-dots {
bottom: 0;
}
}
.carousel .control-dots .dot {
-webkit-transition: opacity 0.25s ease-in;
-moz-transition: opacity 0.25s ease-in;
-ms-transition: opacity 0.25s ease-in;
-o-transition: opacity 0.25s ease-in;
transition: opacity 0.25s ease-in;
opacity: 0.3;
filter: alpha(opacity=30);
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
background: #fff;
border-radius: 50%;
width: 8px;
height: 8px;
cursor: pointer;
display: inline-block;
margin: 0 8px;
}
.carousel .control-dots .dot.selected,
.carousel .control-dots .dot:hover {
opacity: 1;
filter: alpha(opacity=100);
}
.carousel .carousel-status {
position: absolute;
top: 0;
right: 0;
padding: 5px;
font-size: 10px;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.9);
color: #fff;
}
.carousel:hover .slide .legend {
opacity: 1;
}
/* The above is the default css */
/* Below is the custom css */
.carousel .slider-wrapper {
width: 100%;
}
.slide-item-box {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
padding: 0 5px;
}
@media (min-width: 960px) {
.carousel .slider-wrapper {
width: 50%;
}
}

View File

@ -1,309 +0,0 @@
.carousel .control-arrow, .carousel.carousel-slider .control-arrow {
-webkit-transition: all .25s ease-in;
-moz-transition: all .25s ease-in;
-ms-transition: all .25s ease-in;
-o-transition: all .25s ease-in;
transition: all .25s ease-in;
opacity: .4;
filter: alpha(opacity=40);
position: absolute;
z-index: 2;
top: 20px;
background: none;
border: 0;
font-size: 32px;
cursor: pointer
}
.carousel .control-arrow:focus, .carousel .control-arrow:hover {
opacity: 1;
filter: alpha(opacity=100)
}
.carousel .control-arrow:before, .carousel.carousel-slider .control-arrow:before {
margin: 0 5px;
display: inline-block;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
content: ''
}
.carousel .control-disabled.control-arrow {
opacity: 0;
filter: alpha(opacity=0);
cursor: inherit;
display: none
}
.carousel .control-prev.control-arrow {
left: 0
}
.carousel .control-prev.control-arrow:before {
border-right: 8px solid #fff
}
.carousel .control-next.control-arrow {
right: 0
}
.carousel .control-next.control-arrow:before {
border-left: 8px solid #fff
}
.carousel-root {
outline: none;
margin-left: 33%;
}
.carousel {
position: relative;
width: 100%
}
.carousel * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box
}
.carousel img {
width: 100%;
display: inline-block;
pointer-events: none
}
.carousel .carousel {
position: relative
}
.carousel .control-arrow {
outline: 0;
border: 0;
background: none;
top: 50%;
margin-top: -13px;
font-size: 18px
}
.carousel .thumbs-wrapper {
margin: 20px;
overflow: hidden
}
.carousel .thumbs {
-webkit-transition: all .15s ease-in;
-moz-transition: all .15s ease-in;
-ms-transition: all .15s ease-in;
-o-transition: all .15s ease-in;
transition: all .15s ease-in;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
position: relative;
list-style: none;
white-space: nowrap
}
.carousel .thumb {
-webkit-transition: border .15s ease-in;
-moz-transition: border .15s ease-in;
-ms-transition: border .15s ease-in;
-o-transition: border .15s ease-in;
transition: border .15s ease-in;
display: inline-block;
margin-right: 6px;
white-space: nowrap;
overflow: hidden;
border: 3px solid #fff;
padding: 2px
}
.carousel .thumb:focus {
border: 3px solid #ccc;
outline: none
}
.carousel .thumb.selected, .carousel .thumb:hover {
border: 3px solid #333
}
.carousel .thumb img {
vertical-align: top
}
.carousel.carousel-slider {
position: relative;
margin: 0;
overflow: hidden
}
.carousel.carousel-slider .control-arrow {
top: 0;
color: #fff;
font-size: 26px;
bottom: 0;
margin-top: 0;
padding: 5px
}
.carousel.carousel-slider .control-arrow:hover {
background: rgba(0, 0, 0, 0.2)
}
.carousel .slider-wrapper {
overflow: hidden;
margin: auto;
width: 101%;
-webkit-transition: height .15s ease-in;
-moz-transition: height .15s ease-in;
-ms-transition: height .15s ease-in;
-o-transition: height .15s ease-in;
transition: height .15s ease-in
}
.carousel .slider-wrapper.axis-horizontal .slider {
-ms-box-orient: horizontal;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex
}
.carousel .slider-wrapper.axis-horizontal .slider .slide {
flex-direction: column;
flex-flow: column
}
.carousel .slider-wrapper.axis-vertical {
-ms-box-orient: horizontal;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -moz-flex;
display: -webkit-flex;
display: flex
}
.carousel .slider-wrapper.axis-vertical .slider {
-webkit-flex-direction: column;
flex-direction: column
}
.carousel .slider {
margin: 0;
padding: 0;
position: relative;
list-style: none;
width: 100%
}
.carousel .slider.animated {
-webkit-transition: all .35s ease-in-out;
-moz-transition: all .35s ease-in-out;
-ms-transition: all .35s ease-in-out;
-o-transition: all .35s ease-in-out;
transition: all .35s ease-in-out
}
.carousel .slide {
min-width: 100%;
margin: 0;
position: relative;
text-align: center
}
.carousel .slide img {
width: 100%;
vertical-align: top;
border: 0
}
.carousel .slide iframe {
display: inline-block;
width: calc(100% - 80px);
margin: 0 40px 40px;
border: 0
}
.carousel .slide .legend {
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
-ms-transition: all .5s ease-in-out;
-o-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
position: absolute;
bottom: 40px;
left: 50%;
margin-left: -45%;
width: 90%;
border-radius: 10px;
background: #000;
color: #fff;
padding: 10px;
font-size: 12px;
text-align: center;
opacity: 0.25;
-webkit-transition: opacity .35s ease-in-out;
-moz-transition: opacity .35s ease-in-out;
-ms-transition: opacity .35s ease-in-out;
-o-transition: opacity .35s ease-in-out;
transition: opacity .35s ease-in-out
}
.carousel .control-dots {
position: absolute;
bottom: 0;
margin: 10px 0;
padding: 0;
text-align: center;
width: 100%;
z-index: 1
}
@media (min-width: 960px) {
.carousel .control-dots {
bottom: 0
}
}
.carousel .control-dots .dot {
-webkit-transition: opacity .25s ease-in;
-moz-transition: opacity .25s ease-in;
-ms-transition: opacity .25s ease-in;
-o-transition: opacity .25s ease-in;
transition: opacity .25s ease-in;
opacity: .3;
filter: alpha(opacity=30);
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
background: #fff;
border-radius: 50%;
width: 8px;
height: 8px;
cursor: pointer;
display: inline-block;
margin: 0 8px
}
.carousel .control-dots .dot.selected, .carousel .control-dots .dot:hover {
opacity: 1;
filter: alpha(opacity=100)
}
.carousel .carousel-status {
position: absolute;
top: 0;
right: 0;
padding: 5px;
font-size: 10px;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.9);
color: #fff
}
.carousel:hover .slide .legend {
opacity: 1
}

View File

@ -1,43 +1,55 @@
import React from 'react';
import clsx from 'clsx';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import styles from './index.module.css';
import HomepageFeatures from '../components/HomepageFeatures';
import {translate} from '@docusaurus/Translate'; // i18n component
var Carousel = require('react-responsive-carousel').Carousel;
import React from "react";
import clsx from "clsx";
import Layout from "@theme/Layout";
import Link from "@docusaurus/Link";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import styles from "./index.module.css";
import HomepageFeatures from "../components/HomepageFeatures";
import { translate } from "@docusaurus/Translate"; // i18n component
import useBaseUrl from "@docusaurus/useBaseUrl";
var Carousel = require("react-responsive-carousel").Carousel;
function HomepageHeader() {
const { siteConfig } = useDocusaurusContext();
return (
<header className={clsx('hero', styles.heroBanner)}>
<header className={clsx("hero", styles.heroBanner)}>
<div className="container">
<Carousel showArrows={false} width={"50%"}
showThumbs={false} stopOnHover={false}
showStatus={false} autoPlay={true}
<Carousel
showArrows={false}
width={"100%"}
showThumbs={false}
stopOnHover={false}
showStatus={false}
autoPlay={true}
showIndicators={false}
infiniteLoop={true} interval={3000} transitionTime={1000}>
<div>
<img src="/img/wails-app-mac.png"/>
infiniteLoop={true}
interval={4000}
transitionTime={1000}
>
<div className="slide-item-box">
<img src={useBaseUrl("/img/home-carousel/mac-app.jpg")} />
</div>
<div>
<img src="/img/showcase/ytd.png"/>
<div className="slide-item-box">
<img src={useBaseUrl("/img/showcase/ytd.png")} />
</div>
<div>
<img src="/img/showcase/wombat.png"/>
<div className="slide-item-box">
<img src={useBaseUrl("/img/showcase/wombat.png")} />
</div>
<div>
<img src="/img/showcase/wally.png"/>
<div className="slide-item-box">
<img src={useBaseUrl("/img/showcase/wally.png")} />
</div>
<div>
<img src="/img/october.png"/>
<div className="slide-item-box">
<img src={useBaseUrl("/img/october.png")} />
</div>
<div>
<img src="/img/showcase/mollywallet.png"/>
<div className="slide-item-box">
<img
className="img"
src={useBaseUrl("/img/showcase/mollywallet.png")}
/>
</div>
</Carousel>
{/*<ThemedImage*/}
{/* alt="Wails Logo"*/}
{/* width="30%"*/}
@ -46,11 +58,15 @@ function HomepageHeader() {
{/* dark: useBaseUrl('/img/logo-dark.svg'),*/}
{/* }}*/}
{/*/>*/}
<p className="hero__subtitle">{translate({id: "homepage.Tagline"})}</p>
<p className="hero__subtitle">
{translate({ id: "homepage.Tagline" })}
</p>
<div className={styles.buttons}>
<Link
className="button button--primary button--lg"
to="/docs/gettingstarted/installation">
to="/docs/gettingstarted/installation"
>
{translate({ id: "homepage.ButtonText" })}
</Link>
</div>
@ -64,7 +80,8 @@ export default function Home() {
return (
<Layout
title={`The ${siteConfig.title} Project`}
description={translate({id: "homepage.Tagline"})}>
description={translate({ id: "homepage.Tagline" })}
>
<HomepageHeader />
<main>
<HomepageFeatures />

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB