)
diff --git a/website/src/components/search.js b/website/src/components/search.js
index eeab9ef40..65d6f235a 100644
--- a/website/src/components/search.js
+++ b/website/src/components/search.js
@@ -6,13 +6,14 @@ import Icon from './icon'
import classes from '../styles/search.module.sass'
export default function Search({ id = 'docsearch', placeholder = 'Search docs', settings = {} }) {
- const { apiKey, indexName } = settings
+ const { apiKey, indexName, appId } = settings
if (!apiKey && !indexName) return null
const [initialized, setInitialized] = useState(false)
useEffect(() => {
if (!initialized) {
setInitialized(true)
window.docsearch({
+ appId,
apiKey,
indexName,
inputSelector: `#${id}`,
diff --git a/website/src/pages/404.js b/website/src/pages/404.js
index 4bdd43af6..53baebab9 100644
--- a/website/src/pages/404.js
+++ b/website/src/pages/404.js
@@ -41,6 +41,7 @@ export const pageQuery = graphql`
docSearch {
apiKey
indexName
+ appId
}
}
}
diff --git a/website/src/styles/embed.module.sass b/website/src/styles/embed.module.sass
index ba8a896c8..1eaf7b8d2 100644
--- a/website/src/styles/embed.module.sass
+++ b/website/src/styles/embed.module.sass
@@ -32,3 +32,7 @@
.image-link
display: block
+
+.google-sheet
+ width: 100%
+ margin-bottom: 1rem
diff --git a/website/src/styles/list.module.sass b/website/src/styles/list.module.sass
index 588b30ba0..1a352d9dd 100644
--- a/website/src/styles/list.module.sass
+++ b/website/src/styles/list.module.sass
@@ -36,6 +36,16 @@
box-sizing: content-box
vertical-align: top
+.emoji:before
+ content: attr(data-emoji)
+ padding-right: 0.75em
+ padding-top: 0
+ margin-left: -2.5em
+ width: 1.75em
+ text-align: right
+ font-size: 1em
+ position: static
+
.li-icon
text-indent: calc(-20px - 0.55em)
diff --git a/website/src/templates/index.js b/website/src/templates/index.js
index 56ac0dbed..dfd59e424 100644
--- a/website/src/templates/index.js
+++ b/website/src/templates/index.js
@@ -29,7 +29,7 @@ import Aside from '../components/aside'
import Button from '../components/button'
import Tag from '../components/tag'
import Grid from '../components/grid'
-import { YouTube, SoundCloud, Iframe, Image } from '../components/embed'
+import { YouTube, SoundCloud, Iframe, Image, GoogleSheet } from '../components/embed'
import Alert from '../components/alert'
import Search from '../components/search'
import Project from '../widgets/project'
@@ -72,6 +72,7 @@ const scopeComponents = {
YouTube,
SoundCloud,
Iframe,
+ GoogleSheet,
Abbr,
Tag,
Accordion,
@@ -234,6 +235,7 @@ export const pageQuery = graphql`
docSearch {
apiKey
indexName
+ appId
}
}
}
diff --git a/website/src/templates/universe.js b/website/src/templates/universe.js
index cfc8fdd0e..10f2520d9 100644
--- a/website/src/templates/universe.js
+++ b/website/src/templates/universe.js
@@ -8,10 +8,11 @@ import Title from '../components/title'
import Grid from '../components/grid'
import Button from '../components/button'
import Icon from '../components/icon'
+import Tag from '../components/tag'
import CodeBlock, { InlineCode } from '../components/code'
import Aside from '../components/aside'
import Sidebar from '../components/sidebar'
-import Section from '../components/section'
+import Section, { Hr } from '../components/section'
import Main from '../components/main'
import Footer from '../components/footer'
import { H3, H5, Label, InlineList } from '../components/typography'
@@ -121,6 +122,18 @@ const UniverseContent = ({ content = [], categories, theme, pageContext, mdxComp
)}
+
+
Found a mistake or something isn't working?
+
+ If you've come across a universe project that isn't working or is
+ incompatible with the reported spaCy version, let us know by{' '}
+
+ opening a discussion thread
+
+ .
+
)}
@@ -335,6 +364,7 @@ const query = graphql`
url
github
description
+ spacy_version
pip
cran
category
diff --git a/website/src/widgets/landing.js b/website/src/widgets/landing.js
index 74607fd09..b7ae35f6e 100644
--- a/website/src/widgets/landing.js
+++ b/website/src/widgets/landing.js
@@ -15,9 +15,9 @@ import {
} from '../components/landing'
import { H2 } from '../components/typography'
import { InlineCode } from '../components/code'
+import { Ul, Li } from '../components/list'
import Button from '../components/button'
import Link from '../components/link'
-import { YouTube } from '../components/embed'
import QuickstartTraining from './quickstart-training'
import Project from './project'
@@ -25,6 +25,7 @@ import Features from './features'
import courseImage from '../../docs/images/course.jpg'
import prodigyImage from '../../docs/images/prodigy_overview.jpg'
import projectsImage from '../../docs/images/projects.png'
+import tailoredPipelinesImage from '../../docs/images/spacy-tailored-pipelines_wide.png'
import Benchmarks from 'usage/_benchmarks-models.md'
@@ -104,23 +105,45 @@ const Landing = ({ data }) => {
- spaCy v3.0 features all new transformer-based pipelines that
- bring spaCy's accuracy right up to the current state-of-the-art
- . You can use any pretrained transformer to train your own pipelines, and even
- share one transformer between multiple components with{' '}
- multi-task learning. Training is now fully configurable and
- extensible, and you can define your own custom models using{' '}
- PyTorch, TensorFlow and other frameworks. The
- new spaCy projects system lets you describe whole{' '}
- end-to-end workflows in a single file, giving you an easy path
- from prototype to production, and making it easy to clone and adapt
- best-practice projects for your own use cases.
+
+
+
+
+ Get a custom spaCy pipeline, tailor-made for your NLP problem by spaCy's
+ core developers.
+
+
+
+
+
+ Streamlined. Nobody knows spaCy better than we do. Send
+ us your pipeline requirements and we'll be ready to start producing your
+ solution in no time at all.
+
+
+ Production ready. spaCy pipelines are robust and easy
+ to deploy. You'll get a complete spaCy project folder which is ready to{' '}
+ spacy project run.
+
+
+ Predictable. You'll know exactly what you're going to
+ get and what it's going to cost. We quote fees up-front, let you try
+ before you buy, and don't charge for over-runs at our end — all the risk
+ is on us.
+
+
+ Maintainable. spaCy is an industry standard, and we'll
+ deliver your pipeline with full code, data, tests and documentation, so
+ your team can retrain, update and extend the solution as your
+ requirements change.
+
+
{
-
-
+
+ spaCy v3.0 features all new transformer-based pipelines that
+ bring spaCy's accuracy right up to the current state-of-the-art
+ . You can use any pretrained transformer to train your own pipelines, and even
+ share one transformer between multiple components with{' '}
+ multi-task learning. Training is now fully configurable and
+ extensible, and you can define your own custom models using{' '}
+ PyTorch, TensorFlow and other frameworks.
{
{
id: 'venv',
title: 'virtual env',
- help:
- 'Use a virtual environment and install spaCy into a user directory',
+ help: 'Use a virtual environment',
},
{
id: 'train',
@@ -165,27 +164,51 @@ const QuickstartInstall = ({ id, title }) => {
setters={setters}
showDropdown={showDropdown}
>
- python -m venv .env
-
+
+ python -m venv .env
+
+
source .env/bin/activate
-
+
source .env/bin/activate
-
+
.env\Scripts\activate
+
+ python -m venv .env
+
+
+ source .env/bin/activate
+
+
+ source .env/bin/activate
+
+
+ .env\Scripts\activate
+
+
+ conda create -n venv
+
+
+ conda activate venv
+ pip install -U pip setuptools wheelpip install -U pip setuptools wheel
- pip install -U {pkg}
- {pipExtras && `[${pipExtras}]`}
+ {pipExtras
+ ? `pip install -U '${pkg}[${pipExtras}]'`
+ : `pip install -U ${pkg}`}
{nightly ? ' --pre' : ''}
conda install -c conda-forge spacy
conda install -c conda-forge cupy
+
+ conda install -c conda-forge spacy-transformers
+
git clone https://github.com/{repo}
{nightly ? ` --branch ${DEFAULT_BRANCH}` : ''}
@@ -205,9 +228,6 @@ const QuickstartInstall = ({ id, title }) => {
# packages only available via pip
-
- pip install spacy-transformers
-
pip install spacy-lookups-data