diff --git a/.github/workflows/affine-keck.yml b/.github/workflows/affine-keck.yml.bak similarity index 100% rename from .github/workflows/affine-keck.yml rename to .github/workflows/affine-keck.yml.bak diff --git a/.github/workflows/livedemo.yml b/.github/workflows/livedemo.yml new file mode 100644 index 0000000000..d5ed5b9987 --- /dev/null +++ b/.github/workflows/livedemo.yml @@ -0,0 +1,87 @@ +name: Build AFFiNE-Local + +on: + push: + branches: [master] + # pull_request: + # branches: [master] + +# Cancels all previous workflow runs for pull requests that have not completed. +# See https://docs.github.com/en/actions/using-jobs/using-concurrency +concurrency: + # The concurrency group contains the workflow name and the branch name for + # pull requests or the commit hash for any other events. + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true + +env: + REGISTRY: ghcr.io + NAMESPACE: toeverything + AFFINE_IMAGE_NAME: LIVEDEMO + IMAGE_TAG_LATEST: nightly-latest + LOCAL_CACHE: localhost:5000/toeverything/relocate:latest + +jobs: + ligo-virgo: + runs-on: self-hosted + environment: development + permissions: + contents: read + packages: write + + services: + registry: + image: registry:2 + ports: + - 5000:5000 + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + with: + driver-opts: network=host + + - name: Extract metadata (tags, labels) for Docker (AFFiNE-Local) + id: meta_affine + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/${{ env.AFFINE_IMAGE_NAME }} + tags: ${{ env.IMAGE_TAG_LATEST }} + + - name: Build and push Docker image (AFFINE-Local) + uses: docker/build-push-action@v3 + env: + HUBSPOT_API_SECRET: ${{ secrets.SuperSecret }} + with: + context: . + push: true + file: ./.github/deployment/Dockerfile-affine + tags: ${{ env.LOCAL_CACHE }} + target: AFFiNE + + - name: Build and push Docker image (AFFINE-Local) + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64,linux/arm64/v8 + file: ./.github/deployment/Dockerfile-affine-multiplatform + push: ${{ github.ref == 'refs/heads/master' && true || false }} + tags: ${{ steps.meta_affine.outputs.tags }} + labels: ${{ steps.meta_affine.outputs.labels }} + target: AFFiNE + build-args: | + BASE_IMAGE=${{ env.LOCAL_CACHE }} diff --git a/apps/ligo-virgo/src/template.html b/apps/ligo-virgo/src/template.html index d0c4a84e0b..badce60082 100644 --- a/apps/ligo-virgo/src/template.html +++ b/apps/ligo-virgo/src/template.html @@ -4,6 +4,7 @@ <%= htmlWebpackPlugin.options.title %> + <%= htmlWebpackPlugin.options.hubspotScript %>
diff --git a/apps/ligo-virgo/webpack.config.js b/apps/ligo-virgo/webpack.config.js index 11be2e1c76..377f32551a 100644 --- a/apps/ligo-virgo/webpack.config.js +++ b/apps/ligo-virgo/webpack.config.js @@ -12,6 +12,13 @@ const Style9Plugin = require('style9/webpack'); const enableBundleAnalyzer = process.env.BUNDLE_ANALYZER; +function generateHubspotScript() { + const hubspotApiSecret = process.env.HUBSPOT_API_SECRET; + if (hubspotApiSecret) { + return ``; + } +} + module.exports = function (webpackConfig) { const config = getNxWebpackConfig(webpackConfig); @@ -175,6 +182,7 @@ module.exports = function (webpackConfig) { ), //favicon path template: path.resolve(__dirname, './src/template.html'), publicPath: '/', + hubspotScript: generateHubspotScript(), }), new Style9Plugin(), isProd && diff --git a/apps/venus/src/app/IndexPage/Alternatives.tsx b/apps/venus/src/app/IndexPage/Alternatives.tsx index 17403e01c9..4c7645a9d8 100644 --- a/apps/venus/src/app/IndexPage/Alternatives.tsx +++ b/apps/venus/src/app/IndexPage/Alternatives.tsx @@ -7,7 +7,7 @@ import { useMediaQuery } from '@mui/material'; const Alternatives = styled(Box)<{ width: string }>(({ width }) => ({ position: 'relative', - width: '20em', + width: '24em', height: '128px', transform: 'translateY(-8px)', overflowY: 'hidden', @@ -21,7 +21,7 @@ const Alternatives = styled(Box)<{ width: string }>(({ width }) => ({ height: 'inherit', position: 'absolute', left: '0', - top: '0', + top: '-23px', paddingTop: '22px', lineHeight: '96px', '@media (max-width: 1024px)': { @@ -105,7 +105,7 @@ export const AlternativesProduct = () => { )} > { }} > - + - + - + - + - + + + + + setDrawerState(false)} + > + + + navigate('/aboutus')}> + + + + window.open('https://blog.affine.pro') + } + > + + + + window.open('https://docs.affine.pro/') + } + > + + + + window.open('https://feedback.affine.pro/') + } + > + + + + + {contactUsCollapse ? ( + + ) : ( + + )} + + + + window.open('https://discord.gg/Arn7TqJBvG') + } + > + + + + window.open('https://t.me/affineworkos') + } + > + + + + window.open( + 'https://www.reddit.com/r/Affine/' + ) + } + > + + + + window.open( + 'https://medium.com/@affineworkos' + ) + } + > + + + + window.open( + 'mailto:contact@toeverything.info' + ) + } + > + + + + + + {languageCollapse ? : } + + + i18n.changeLanguage('en')} + > + + + + i18n.changeLanguage('zh')} + > + + + + + + + + + ); +}; + +const Container = styled(Grid)({ + position: 'fixed', + top: 0, + left: '50%', + transform: 'translateX(-50%)', + width: '100%', + paddingTop: '1em', + backgroundColor: '#fff', + zIndex: 1500, + maxWidth: '1440px', + margin: 'auto', + marginTop: '0 !important', +}); + +const StyledImage = styled('img')({ + height: '24px', + marginRight: '16px', + cursor: 'pointer', +}); + +const StyledDrawerContainer = styled('div')({ + paddingTop: '72px', +}); diff --git a/apps/venus/src/app/i18n/resources/en.json b/apps/venus/src/app/i18n/resources/en.json index 789a577584..80381df1d7 100644 --- a/apps/venus/src/app/i18n/resources/en.json +++ b/apps/venus/src/app/i18n/resources/en.json @@ -10,6 +10,7 @@ "Alternative": "Alternative", "Check GitHub": "Check GitHub", "Try it Online": "Try it Online", + "language": "Language", "description1": { "part1": "Affine is the next-generation collaborative knowledge base for professionals.", "part2": "It's not just a collection of Docs, whiteboard, and tables.", diff --git a/apps/venus/src/app/i18n/resources/zh.json b/apps/venus/src/app/i18n/resources/zh.json index 9a3e51a2ca..545a644c28 100644 --- a/apps/venus/src/app/i18n/resources/zh.json +++ b/apps/venus/src/app/i18n/resources/zh.json @@ -10,6 +10,7 @@ "Alternative": "的另一种选择", "Check GitHub": "GitHub中查看", "Try it Online": "在线试用", + "language": "语言", "description1": { "part1": "Affine是面向专业人士的下一代协同知识库", "part2": "它不仅仅是一个文档、白板和表格的集合。",