diff --git a/.gitignore b/.gitignore
index 61e7a48..4394572 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,29 @@
+# dependencies
+node_modules
+
+# production
+build
+
+# generated files
+.docusaurus
+.cache-loader
+
+# misc
.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
*.log
-node_modules
-docs
-converted-docs
+
+# lock
package-lock.json
yarn.lock
-website/build
+
+# generated
+docs
+converted-docs
diff --git a/.npmrc b/.npmrc
index 43c97e7..cf86fe1 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1,2 @@
package-lock=false
+loglevel=error
diff --git a/README.md b/README.md
index c248ef4..be81253 100644
--- a/README.md
+++ b/README.md
@@ -5,12 +5,36 @@ This is the repository containing the code for the official gulp website [gulpjs

## Contributing
+This website is built using [Docusaurus 2](https://v2.docusaurus.io/), a modern static website generator.
+
+### Getting started
To get started working on this site you first need to clone this repository
+
```
-$ git clone https://github.com/gulpjs/gulpjs.github.io.git
+$ git clone git://github.com/gulpjs/gulpjs.github.io
```
-__The rest is a work in progress, we'll update once things are working__
-
When you are done making your improvements, create a [Pull Request](https://github.com/gulpjs/gulpjs.github.io/compare).
+
+### Installation
+
+```
+$ npm install
+```
+
+### Local Development
+
+```
+$ npm start
+```
+
+This command will first pull down the markdown documentation from the main gulp repository, then starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
+
+### Build
+
+```
+$ npm build
+```
+
+This command generates static content into the `build` directory and can be served using any static contents hosting service.
diff --git a/docusaurus.config.js b/docusaurus.config.js
new file mode 100644
index 0000000..8373001
--- /dev/null
+++ b/docusaurus.config.js
@@ -0,0 +1,122 @@
+'use strict';
+
+var isProd = process.env.NODE_ENV === 'production';
+
+module.exports = {
+ title: 'gulp.js',
+ favicon: 'img/favicon.png',
+ url: 'https://gulpjs.com/',
+ baseUrl: '/',
+ tagline: 'The streaming build system',
+ // Used by the deployment
+ organizationName: 'gulpjs',
+ projectName: 'gulpjs.github.io',
+ // The theme
+ themeConfig: {
+ disableDarkMode: true,
+ navbar: {
+ logo: {
+ alt: 'gulp',
+ src: 'img/gulp.svg',
+ // TODO: Remove these when we have a homepage in the router
+ href: 'https://gulpjs.com/',
+ target: '_self',
+ },
+ links: [
+ { to: 'docs/en/getting-started/quick-start',
+ label: 'Getting Started',
+ position: 'left',
+ },
+ { to: 'docs/en/api/concepts',
+ label: 'API',
+ position: 'left',
+ },
+ { href: 'https://gulpjs.com/plugins',
+ label: 'Plugins',
+ position: 'left',
+ },
+ { href: 'https://twitter.com/gulpjs',
+ logo: {
+ alt: 'Gulp on Twitter',
+ src: 'img/twitter.svg',
+ },
+ position: 'right'
+ },
+ { href: 'https://medium.com/gulpjs',
+ logo: {
+ alt: 'The gulp blog',
+ src: 'img/medium.svg',
+ },
+ position: 'right'
+ },
+ ]
+ },
+ footer: {
+ links: [
+ { items: [
+ { html: '
' }
+ ]
+ },
+ { title: 'Docs',
+ items: [
+ { to: 'docs/en/getting-started/quick-start',
+ label: 'Getting Started',
+ },
+ { to: 'docs/en/api/concepts',
+ label: 'API',
+ },
+ ]
+ },
+ { title: 'Community',
+ items: [
+ { href: 'https://github.com/gulpjs/gulp',
+ label: 'GitHub',
+ },
+ { href: 'https://stackoverflow.com/questions/tagged/gulp',
+ label: 'Stack Overflow',
+ },
+ { href: 'https://twitter.com/gulpjs',
+ label: 'Twitter',
+ }
+ ]
+ },
+ ],
+ copyright: `Copyright © ${new Date().getFullYear()} GulpJS`,
+ },
+ prism: {
+ // One of:
+ // dracula, duotoneDark, duotoneLight, github, nightOwl, nightOwlLight,
+ // oceanicNext, palenight, shad esOfPurple, ultramin, vsDark
+ theme: require('prism-react-renderer/themes/vsDark'),
+ },
+ algolia: {
+ apiKey: 'a6ef919bce0b83de1bcbad1d4ef753f8',
+ indexName: 'gulpjs',
+ algoliaOptions: {} // Optional, if provided by Algolia
+ },
+ googleAnalytics: {
+ trackingID: 'UA-128126650-1',
+ },
+ gtag: {
+ trackingID: 'UA-128126650-1',
+ },
+ },
+ themes: [
+ ['@docusaurus/theme-classic', {
+ customCss: require.resolve('./src/css/docs.css')
+ }],
+ ['@docusaurus/theme-search-algolia', {}]
+ ],
+ plugins: [
+ ['@docusaurus/plugin-content-docs', {
+ path: 'docs',
+ sidebarPath: require.resolve('./sidebars.json'),
+ // This is a holdover because we set up original docusaurus
+ // to support translations and v2 doesn't support them yet
+ routeBasePath: 'docs/en/',
+ }],
+ isProd && ['@docusaurus/plugin-google-analytics', {}],
+ isProd && ['@docusaurus/plugin-google-gtag', {}],
+ isProd && ['@docusaurus/plugin-sitemap', {}],
+ ]
+};
diff --git a/gulpfile.js b/gulpfile.js
index 0189803..40090d3 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -2,60 +2,45 @@
// This file is only for generating the docs
// No need to use any of this if working on the main website
-
-const { src, dest, series } = require('gulp');
-const pump = require('pump');
-const through2 = require('through2');
+const del = require('del');
+const gulplog = require('gulplog');
+const { series } = require('gulp');
const frontMatter = require('gray-matter');
const download = require('github-download-directory');
// Exports for task registration
-exports.default = series(fetchDocs, convertComments);
+exports.default = series(clean, generateDocs);
const owner = 'gulpjs';
const repo = 'gulp';
const directory = 'docs';
-const outDirectory = 'converted-docs';
const fmOptions = {
delimiters: ['']
};
-function fetchDocs() {
- return download(owner, repo, directory, { sha: "master" });
-}
-
-function convertComments(cb) {
- pump([
- // Only process markdown files in the directory we fetched
- src('**/*.md', { cwd: directory }),
- pluginless(convertToDocusaurus),
- // Overwrite the markdown files we fetched
- dest(outDirectory)
- ], cb)
+async function clean() {
+ return del(directory);
}
-/* utils */
-function convertToDocusaurus(file) {
- var config = frontMatter(file.contents, fmOptions);
- if (!config.data.id) {
- console.error(`File missing front-matter. Path: ${file.path}`);
- return; // Filter out any file without frontmatter
- }
-
- file.contents = Buffer.from(config.stringify());
+async function generateDocs() {
+ // Fetch
+ const files = await download.fetchFiles(owner, repo, directory, { sha: "master" });
- return file;
-}
+ // Process
+ const docusaurusFiles = files.reduce((result, {path, contents}) => {
+ const config = frontMatter(contents, fmOptions);
+ if (!config.data.id) {
+ gulplog.debug(`File missing front-matter. Path: ${path}`);
+ return result;
+ }
-function pluginless(fn) {
- return through2.obj(handler);
+ return result.concat({
+ path,
+ contents: Buffer.from(config.stringify())
+ });
+ }, []);
- function handler(file, _, cb) {
- try {
- cb(null, fn(file));
- } catch(err) {
- cb(err);
- }
- }
+ // Write
+ await Promise.all(docusaurusFiles.map(download.output))
}
diff --git a/package.json b/package.json
index af89b5b..1a65392 100644
--- a/package.json
+++ b/package.json
@@ -2,24 +2,46 @@
"name": "gulpjs.github.io",
"version": "0.0.0",
"private": true,
+ "engines": {
+ "node": ">=8.0.0"
+ },
"scripts": {
- "clean": "rm -r docs converted-docs",
"fetch-docs": "gulp",
"prestart": "npm run fetch-docs",
- "start": "cd website && npm run start",
+ "start": "docusaurus start",
"prebuild": "npm run fetch-docs",
- "build": "cd website && npm run build",
- "pregh-pages": "npm run fetch-docs",
- "gh-pages": "cd website && npm run publish-gh-pages"
- },
- "engines": {
- "node": ">=8.0.0"
+ "build": "docusaurus build",
+ "predeploy": "npm run fetch-docs",
+ "deploy": "docusaurus deploy",
+ "swizzle": "docusaurus swizzle"
},
"devDependencies": {
- "github-download-directory": "^1.1.1",
+ "@docusaurus/core": "^2.0.0-alpha.50",
+ "@docusaurus/plugin-content-docs": "^2.0.0-alpha.50",
+ "@docusaurus/plugin-google-analytics": "^2.0.0-alpha.50",
+ "@docusaurus/plugin-google-gtag": "^2.0.0-alpha.50",
+ "@docusaurus/plugin-sitemap": "^2.0.0-alpha.50",
+ "@docusaurus/theme-classic": "^2.0.0-alpha.50",
+ "@docusaurus/theme-search-algolia": "^2.0.0-alpha.50",
+ "del": "^5.1.0",
+ "github-download-directory": "^1.2.0",
"gray-matter": "^3.1.1",
- "gulp": "^4.0.0",
- "pump": "^2.0.1",
- "through2": "^2.0.3"
+ "gulp": "^4.0.2",
+ "gulplog": "^1.0.0",
+ "react": "^16.13.1",
+ "react-dom": "^16.13.1",
+ "remark-admonitions": "^1.2.1"
+ },
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
}
}
diff --git a/website/sidebars.json b/sidebars.json
similarity index 100%
rename from website/sidebars.json
rename to sidebars.json
diff --git a/src/css/docs.css b/src/css/docs.css
new file mode 100644
index 0000000..d2dfddb
--- /dev/null
+++ b/src/css/docs.css
@@ -0,0 +1,190 @@
+:root {
+ --ifm-global-radius: 4px;
+ --ifm-background-color: var(--ifm-color-white);
+ /* Primary color */
+ --ifm-color-primary: #cf4647;
+ --ifm-color-primary-dark: #c63334;
+ --ifm-color-primary-darker: #bb3132;
+ --ifm-color-primary-darkest: #9a2829;
+ --ifm-color-primary-light: #d55c5d;
+ --ifm-color-primary-lighter: #d86768;
+ --ifm-color-primary-lightest: #e08889;
+ /* Secondary color */
+ --ifm-color-secondary: #20232a;
+ /* Navbar */
+ --ifm-navbar-height: unset;
+ --ifm-navbar-item-padding-horizontal: 0.5rem;
+ --ifm-navbar-background-color: var(--ifm-color-primary);
+ --ifm-navbar-link-color: var(--ifm-color-white);
+ --ifm-navbar-link-hover-color: var(--ifm-color-white);
+ --ifm-navbar-link-hover-decoration: underline;
+ /* Search */
+ --ifm-navbar-search-input-background-color: var(--ifm-color-primary-darkest);
+ --ifm-navbar-search-input-color: var(--ifm-color-white);
+ --ifm-navbar-search-input-placeholder-color: var(--ifm-color-white);
+ --ifm-navbar-search-input-icon: url('data:image/svg+xml;utf8,');
+ /* Footer */
+ --ifm-footer-background-color: var(--ifm-color-secondary);
+ --ifm-footer-color: var(--ifm-color-white);
+ --ifm-footer-link-color: var(--ifm-color-white);
+ /* Tables */
+ --ifm-table-border-width: 0;
+ --ifm-table-head-background: var(--ifm-color-primary);
+ --ifm-table-head-color: var(--ifm-color-white);
+ --ifm-table-stripe-background: rgba(76, 76, 76, 0.1);
+ /* Button */
+ --ifm-button-background-color: var(--ifm-color-primary);
+}
+
+/* Element defaults */
+small {
+ font-size: 14px;
+ font-style: italic;
+}
+
+i {
+ font-style: normal;
+}
+
+/* hash links */
+h1 .hash-link {
+ display: none;
+}
+
+/* Navbar */
+.navbar .navbar__logo {
+ max-width: unset;
+}
+
+.navbar .navbar__toggle {
+ color: var(--ifm-navbar-link-color);
+}
+
+.navbar .navbar__link:hover {
+ text-decoration: var(--ifm-navbar-link-hover-decoration);
+}
+
+@media (max-width: 996px) {
+ .navbar .navbar__item {
+ display: unset;
+ }
+}
+
+/* Buttons */
+.button.button--secondary {
+ --ifm-button-border-color: var(--ifm-color-white);
+}
+
+.button.button--secondary:not(.button--outline) {
+ --ifm-button-background-color: var(--ifm-color-primary);
+
+ color: var(--ifm-color-white);
+}
+
+.button.button--secondary:not(.button--outline):hover {
+ --ifm-button-background-color: var(--ifm-color-primary);
+ --ifm-button-border-color: var(--ifm-color-white);
+}
+
+.button.button.button--secondary:active,
+.button.button.button--secondary.button--active {
+ --ifm-button-background-color: var(--ifm-color-primary);
+ --ifm-button-border-color: var(--ifm-color-white);
+ background-color: var(--ifm-color-primary);
+ border-color: var(--ifm-color-white);
+}
+
+/* Tables */
+th, td {
+ text-align: start;
+}
+
+th[align="center"],
+td[align="center"] {
+ text-align: center;
+}
+
+table tr th code,
+table tr td code {
+ word-break: normal;
+}
+
+table tr th:last-child,
+table tr td:last-child {
+ min-width: 175px;
+}
+
+table tr th + th + th:last-child,
+table tr td + td + td:last-child {
+ min-width: 320px;
+ width: 100%;
+}
+
+/* Code Blocks */
+.prism-code {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+ border-radius: var(--ifm-global-radius);
+}
+
+/* Search */
+.navbar .navbar__search .navbar__search-input {
+ width: 15.5rem;
+ border-radius: var(--ifm-global-radius);
+}
+
+/* Footer (for logo) */
+.footer__col:first-of-type .footer__item {
+ text-align: center;
+}
+.footer__item img {
+ width: 60px;
+}
+
+@media only screen and (max-width: 720px) {
+ table {
+ box-shadow: -10px 0px 10px -10px #000000 inset;
+ }
+}
+
+/* TODO: These will need to be update when "Enterprise" is added */
+@media only screen and (max-width: 767px) {
+ .navbar .navbar__items {
+ padding-top: var(--ifm-navbar-item-padding-vertical);
+ padding-bottom: var(--ifm-navbar-item-padding-vertical);
+ justify-content: space-around;
+ }
+
+ .navbar .navbar__items.navbar__items--right {
+ justify-content: space-around;
+ }
+}
+
+@media only screen and (min-width: 768px) {
+ .navbar .navbar__search .navbar__search-input {
+ width: 12.5rem;
+ transition: width 0.5s ease 0s;
+ }
+
+ .navbar .navbar__search .navbar__search-input:active,
+ .navbar .navbar__search .navbar__search-input:focus {
+ width: 16.5rem;
+ }
+}
+
+
+@media only screen and (max-width: 996px) {
+ .footer .col.col.col {
+ --ifm-col-width: 33%;
+ }
+}
+
+@media only screen and (max-width: 375px) {
+ /* This is our logo */
+ .footer__col:first-of-type {
+ display: none;
+ }
+ .footer .col.col.col {
+ --ifm-col-width: 50%;
+ }
+}
diff --git a/src/theme/Navbar/index.js b/src/theme/Navbar/index.js
new file mode 100644
index 0000000..8c7808d
--- /dev/null
+++ b/src/theme/Navbar/index.js
@@ -0,0 +1,191 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import React, {useCallback, useState} from 'react';
+import classnames from 'classnames';
+import Link from '@docusaurus/Link';
+import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
+import useBaseUrl from '@docusaurus/useBaseUrl';
+import isInternalUrl from '@docusaurus/isInternalUrl';
+
+import SearchBar from '@theme/SearchBar';
+import Toggle from '@theme/Toggle';
+import useThemeContext from '@theme/hooks/useThemeContext';
+import useHideableNavbar from '@theme/hooks/useHideableNavbar';
+import useLogo from '@theme/hooks/useLogo';
+
+import styles from './styles.module.css';
+
+
+const useLinkLogo = (logo = {}) => {
+ const {
+ siteConfig: {baseUrl} = {},
+ } = useDocusaurusContext();
+ const {isDarkTheme} = useThemeContext();
+ const logoLink = logo.href || baseUrl;
+ let logoLinkProps = {};
+
+ if (logo.target) {
+ logoLinkProps = {target: logo.target};
+ } else if (!isInternalUrl(logoLink)) {
+ logoLinkProps = {
+ rel: 'noopener noreferrer',
+ target: '_blank',
+ };
+ }
+
+ const logoSrc = logo.srcDark && isDarkTheme ? logo.srcDark : logo.src;
+ const logoImageUrl = useBaseUrl(logoSrc);
+
+ return {
+ logoImageUrl,
+ logoAlt: logo.alt,
+ };
+};
+
+function NavLink({activeBasePath, to, href, logo, label, position, ...props}) {
+ const toUrl = useBaseUrl(to);
+ const activeBaseUrl = useBaseUrl(activeBasePath);
+ const {logoImageUrl, logoAlt} = useLinkLogo(logo);
+
+ const content = logoImageUrl != null ?
: label;
+
+ return (
+
+ location.pathname.startsWith(activeBaseUrl),
+ }
+ : null),
+ })}
+ {...props}>
+ {content}
+
+ );
+}
+
+function NavItem({items, position, ...props}) {
+ if (!items) {
+ return ;
+ }
+
+ return (
+
+
+ {props.label}
+
+
+ {items.map((linkItemInner, i) => (
+ -
+
+
+ ))}
+
+
+ );
+}
+
+
+function Navbar() {
+ const {
+ siteConfig: {
+ themeConfig: {
+ navbar: {title, links = [], hideOnScroll = false} = {},
+ disableDarkMode = false,
+ },
+ },
+ isClient,
+ } = useDocusaurusContext();
+ const [isSearchBarExpanded, setIsSearchBarExpanded] = useState(false);
+
+ const {isDarkTheme, setLightTheme, setDarkTheme} = useThemeContext();
+ const {navbarRef, isNavbarVisible} = useHideableNavbar(hideOnScroll);
+ const {logoLink, logoLinkProps, logoImageUrl, logoAlt} = useLogo();
+
+ const onToggleChange = useCallback(
+ e => (e.target.checked ? setDarkTheme() : setLightTheme()),
+ [setLightTheme, setDarkTheme],
+ );
+
+ return (
+
+ );
+}
+
+export default Navbar;
diff --git a/src/theme/Navbar/styles.module.css b/src/theme/Navbar/styles.module.css
new file mode 100644
index 0000000..04c3a9e
--- /dev/null
+++ b/src/theme/Navbar/styles.module.css
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+@media screen and (max-width: 997px) {
+ .displayOnlyInLargeViewport {
+ display: none !important;
+ }
+}
+
+@media (max-width: 360px) {
+ .hideLogoText {
+ display: none;
+ }
+}
+
+.navbarHideable {
+ transition: top 0.2s ease-in-out;
+}
+
+.navbarHidden {
+ top: calc(var(--ifm-navbar-height) * -1) !important;
+}
+
+.noWrap {
+ white-space: nowrap;
+}
+
+.navbarIcon {
+ vertical-align: middle;
+ max-width: unset;
+}
diff --git a/website/static/.nojekyll b/static/.nojekyll
similarity index 100%
rename from website/static/.nojekyll
rename to static/.nojekyll
diff --git a/website/static/CNAME b/static/CNAME
similarity index 100%
rename from website/static/CNAME
rename to static/CNAME
diff --git a/website/static/css/devices.css b/static/css/devices.css
similarity index 100%
rename from website/static/css/devices.css
rename to static/css/devices.css
diff --git a/website/static/css/homepage.css b/static/css/homepage.css
similarity index 100%
rename from website/static/css/homepage.css
rename to static/css/homepage.css
diff --git a/website/static/img/atom.svg b/static/img/atom.svg
similarity index 100%
rename from website/static/img/atom.svg
rename to static/img/atom.svg
diff --git a/website/static/img/book.svg b/static/img/book.svg
similarity index 100%
rename from website/static/img/book.svg
rename to static/img/book.svg
diff --git a/website/static/img/browser.svg b/static/img/browser.svg
similarity index 100%
rename from website/static/img/browser.svg
rename to static/img/browser.svg
diff --git a/website/static/img/cli.svg b/static/img/cli.svg
similarity index 100%
rename from website/static/img/cli.svg
rename to static/img/cli.svg
diff --git a/website/static/img/docs-gulp-command.png b/static/img/docs-gulp-command.png
similarity index 100%
rename from website/static/img/docs-gulp-command.png
rename to static/img/docs-gulp-command.png
diff --git a/website/static/img/docs-gulp-tasks-command.png b/static/img/docs-gulp-tasks-command.png
similarity index 100%
rename from website/static/img/docs-gulp-tasks-command.png
rename to static/img/docs-gulp-tasks-command.png
diff --git a/website/static/img/docs-gulp-version-command.png b/static/img/docs-gulp-version-command.png
similarity index 100%
rename from website/static/img/docs-gulp-version-command.png
rename to static/img/docs-gulp-version-command.png
diff --git a/website/static/img/docs-node-version-command.png b/static/img/docs-node-version-command.png
similarity index 100%
rename from website/static/img/docs-node-version-command.png
rename to static/img/docs-node-version-command.png
diff --git a/website/static/img/docs-npm-version-command.png b/static/img/docs-npm-version-command.png
similarity index 100%
rename from website/static/img/docs-npm-version-command.png
rename to static/img/docs-npm-version-command.png
diff --git a/website/static/img/docs-npx-version-command.png b/static/img/docs-npx-version-command.png
similarity index 100%
rename from website/static/img/docs-npx-version-command.png
rename to static/img/docs-npx-version-command.png
diff --git a/website/static/img/favicon.png b/static/img/favicon.png
similarity index 100%
rename from website/static/img/favicon.png
rename to static/img/favicon.png
diff --git a/website/static/img/guage.svg b/static/img/guage.svg
similarity index 100%
rename from website/static/img/guage.svg
rename to static/img/guage.svg
diff --git a/website/static/img/gulp-shirt-photo.jpg b/static/img/gulp-shirt-photo.jpg
similarity index 100%
rename from website/static/img/gulp-shirt-photo.jpg
rename to static/img/gulp-shirt-photo.jpg
diff --git a/website/static/img/gulp-white-logo.svg b/static/img/gulp-white-logo.svg
similarity index 100%
rename from website/static/img/gulp-white-logo.svg
rename to static/img/gulp-white-logo.svg
diff --git a/website/static/img/gulp-white-text.svg b/static/img/gulp-white-text.svg
similarity index 100%
rename from website/static/img/gulp-white-text.svg
rename to static/img/gulp-white-text.svg
diff --git a/website/static/img/gulp.jpg b/static/img/gulp.jpg
similarity index 100%
rename from website/static/img/gulp.jpg
rename to static/img/gulp.jpg
diff --git a/website/static/img/gulp.svg b/static/img/gulp.svg
similarity index 100%
rename from website/static/img/gulp.svg
rename to static/img/gulp.svg
diff --git a/static/img/medium.svg b/static/img/medium.svg
new file mode 100644
index 0000000..dfb3921
--- /dev/null
+++ b/static/img/medium.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/img/new-gulp-shirt.jpg b/static/img/new-gulp-shirt.jpg
similarity index 100%
rename from website/static/img/new-gulp-shirt.jpg
rename to static/img/new-gulp-shirt.jpg
diff --git a/website/static/img/opencollective.svg b/static/img/opencollective.svg
similarity index 100%
rename from website/static/img/opencollective.svg
rename to static/img/opencollective.svg
diff --git a/website/static/img/pipe-error.png b/static/img/pipe-error.png
similarity index 100%
rename from website/static/img/pipe-error.png
rename to static/img/pipe-error.png
diff --git a/website/static/img/pump-error.png b/static/img/pump-error.png
similarity index 100%
rename from website/static/img/pump-error.png
rename to static/img/pump-error.png
diff --git a/website/static/img/tidelift.png b/static/img/tidelift.png
similarity index 100%
rename from website/static/img/tidelift.png
rename to static/img/tidelift.png
diff --git a/static/img/twitter.svg b/static/img/twitter.svg
new file mode 100644
index 0000000..893004b
--- /dev/null
+++ b/static/img/twitter.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/static/index.html b/static/index.html
similarity index 100%
rename from website/static/index.html
rename to static/index.html
diff --git a/website/static/js/script.js b/static/js/script.js
similarity index 100%
rename from website/static/js/script.js
rename to static/js/script.js
diff --git a/website/README.md b/website/README.md
deleted file mode 100644
index f3da77f..0000000
--- a/website/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-This website was created with [Docusaurus](https://docusaurus.io/).
-
-# What's In This Document
-
-* [Get Started in 5 Minutes](#get-started-in-5-minutes)
-* [Directory Structure](#directory-structure)
-* [Editing Content](#editing-content)
-* [Adding Content](#adding-content)
-* [Full Documentation](#full-documentation)
-
-# Get Started in 5 Minutes
-
-1. Make sure all the dependencies for the website are installed:
-
-```sh
-# Install dependencies
-$ yarn
-```
-2. Run your dev server:
-
-```sh
-# Start the site
-$ yarn start
-```
-
-## Directory Structure
-
-Your project file structure should look something like this
-
-```
-my-docusaurus/
- docs/
- doc-1.md
- doc-2.md
- doc-3.md
- website/
- blog/
- 2016-3-11-oldest-post.md
- 2017-10-24-newest-post.md
- core/
- node_modules/
- pages/
- static/
- css/
- img/
- package.json
- sidebar.json
- siteConfig.js
-```
-
-# Editing Content
-
-## Editing an existing docs page
-
-Edit docs by navigating to `docs/` and editing the corresponding document:
-
-`docs/doc-to-be-edited.md`
-
-```markdown
----
-id: page-needs-edit
-title: This Doc Needs To Be Edited
----
-
-Edit me...
-```
-
-For more information about docs, click [here](https://docusaurus.io/docs/en/navigation)
-
-## Editing an existing blog post
-
-Edit blog posts by navigating to `website/blog` and editing the corresponding post:
-
-`website/blog/post-to-be-edited.md`
-```markdown
----
-id: post-needs-edit
-title: This Blog Post Needs To Be Edited
----
-
-Edit me...
-```
-
-For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
-
-# Adding Content
-
-## Adding a new docs page to an existing sidebar
-
-1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`:
-
-```md
----
-id: newly-created-doc
-title: This Doc Needs To Be Edited
----
-
-My new content here..
-```
-
-1. Refer to that doc's ID in an existing sidebar in `website/sidebar.json`:
-
-```javascript
-// Add newly-created-doc to the Getting Started category of docs
-{
- "docs": {
- "Getting Started": [
- "quick-start",
- "newly-created-doc" // new doc here
- ],
- ...
- },
- ...
-}
-```
-
-For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation)
-
-## Adding a new blog post
-
-1. Make sure there is a header link to your blog in `website/siteConfig.js`:
-
-`website/siteConfig.js`
-```javascript
-headerLinks: [
- ...
- { blog: true, label: 'Blog' },
- ...
-]
-```
-
-2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`:
-
-`website/blog/2018-05-21-New-Blog-Post.md`
-
-```markdown
----
-author: Frank Li
-authorURL: https://twitter.com/foobarbaz
-authorFBID: 503283835
-title: New Blog Post
----
-
-Lorem Ipsum...
-```
-
-For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
-
-## Adding items to your site's top navigation bar
-
-1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`:
-
-`website/siteConfig.js`
-```javascript
-{
- headerLinks: [
- ...
- /* you can add docs */
- { doc: 'my-examples', label: 'Examples' },
- /* you can add custom pages */
- { page: 'help', label: 'Help' },
- /* you can add external links */
- { href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' },
- ...
- ],
- ...
-}
-```
-
-For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation)
-
-## Adding custom pages
-
-1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`:
-1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element:
-
-`website/siteConfig.js`
-```javascript
-{
- headerLinks: [
- ...
- { page: 'my-new-custom-page', label: 'My New Custom Page' },
- ...
- ],
- ...
-}
-```
-
-For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages).
-
-# Full Documentation
-
-Full documentation can be found on the [website](https://docusaurus.io/).
diff --git a/website/core/Footer.js b/website/core/Footer.js
deleted file mode 100644
index 1afdecb..0000000
--- a/website/core/Footer.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright (c) 2017-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-const React = require('react');
-
-class Footer extends React.Component {
- docUrl(doc, language) {
- const baseUrl = this.props.config.baseUrl;
- return `${baseUrl}docs/${language ? `${language}/` : ''}${doc}`;
- }
-
- pageUrl(doc, language) {
- const baseUrl = this.props.config.baseUrl;
- return baseUrl + (language ? `${language}/` : '') + doc;
- }
-
- render() {
- return (
-
- );
- }
-}
-
-module.exports = Footer;
diff --git a/website/i18n/en.json b/website/i18n/en.json
deleted file mode 100644
index 05f564f..0000000
--- a/website/i18n/en.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "_comment": "This file is auto-generated by write-translations.js",
- "localized-strings": {
- "next": "Next",
- "previous": "Previous",
- "tagline": "The streaming build system",
- "docs": {
- "api/concepts": {
- "title": "API Concepts",
- "sidebar_label": "Concepts"
- },
- "api/dest": {
- "title": "dest()",
- "sidebar_label": "dest()"
- },
- "api/lastrun": {
- "title": "lastRun()",
- "sidebar_label": "lastRun()"
- },
- "api/parallel": {
- "title": "parallel()",
- "sidebar_label": "parallel()"
- },
- "api/registry": {
- "title": "registry()",
- "sidebar_label": "registry()"
- },
- "api/series": {
- "title": "series()",
- "sidebar_label": "series()"
- },
- "api/src": {
- "title": "src()",
- "sidebar_label": "src()"
- },
- "api/symlink": {
- "title": "symlink()",
- "sidebar_label": "symlink()"
- },
- "api/task": {
- "title": "task()",
- "sidebar_label": "task()"
- },
- "api/tree": {
- "title": "tree()",
- "sidebar_label": "tree()"
- },
- "api/vinyl-iscustomprop": {
- "title": "Vinyl.isCustomProp()",
- "sidebar_label": "Vinyl.isCustomProp()"
- },
- "api/vinyl-isvinyl": {
- "title": "Vinyl.isVinyl()",
- "sidebar_label": "Vinyl.isVinyl()"
- },
- "api/vinyl": {
- "title": "Vinyl",
- "sidebar_label": "Vinyl"
- },
- "api/watch": {
- "title": "watch()",
- "sidebar_label": "watch()"
- },
- "documentation-missing": {
- "title": "Documentation Missing"
- },
- "getting-started/quick-start": {
- "title": "Quick Start",
- "sidebar_label": "Quick Start"
- },
- "getting-started/javascript-and-gulpfiles": {
- "title": "JavaScript and Gulpfiles",
- "sidebar_label": "JavaScript and Gulpfiles"
- },
- "getting-started/creating-tasks": {
- "title": "Creating Tasks",
- "sidebar_label": "Creating Tasks"
- },
- "getting-started/async-completion": {
- "title": "Async Completion",
- "sidebar_label": "Async Completion"
- },
- "getting-started/working-with-files": {
- "title": "Working with Files",
- "sidebar_label": "Working with Files"
- },
- "getting-started/explaining-globs": {
- "title": "Explaining Globs",
- "sidebar_label": "Explaining Globs"
- },
- "getting-started/using-plugins": {
- "title": "Using Plugins",
- "sidebar_label": "Using Plugins"
- },
- "getting-started/watching-files": {
- "title": "Watching Files",
- "sidebar_label": "Watching Files"
- }
- },
- "links": {
- "Getting Started": "Getting Started",
- "API": "API",
- "Plugins": "Plugins",
- "Twitter": "Twitter",
- "Blog": "Blog"
- },
- "categories": {
- "Getting Started": "Getting Started",
- "API": "API"
- }
- },
- "pages-strings": {
- "Help Translate|recruit community translators for your project": "Help Translate",
- "Edit this Doc|recruitment message asking to edit the doc source": "Edit",
- "Translate this Doc|recruitment message asking to translate the docs": "Translate"
- }
-}
diff --git a/website/package.json b/website/package.json
deleted file mode 100644
index d1af394..0000000
--- a/website/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "scripts": {
- "examples": "docusaurus-examples",
- "start": "docusaurus-start",
- "build": "docusaurus-build",
- "publish-gh-pages": "docusaurus-publish",
- "write-translations": "docusaurus-write-translations",
- "version": "docusaurus-version",
- "rename-version": "docusaurus-rename-version"
- },
- "devDependencies": {
- "docusaurus": "^1.6.0"
- }
-}
diff --git a/website/pages/en/help.js b/website/pages/en/help.js
deleted file mode 100755
index 512e335..0000000
--- a/website/pages/en/help.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Copyright (c) 2017-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-const React = require('react');
-
-const CompLibrary = require('../../core/CompLibrary.js');
-
-const Container = CompLibrary.Container;
-const GridBlock = CompLibrary.GridBlock;
-
-const siteConfig = require(`${process.cwd()}/siteConfig.js`);
-
-function docUrl(doc, language) {
- return `${siteConfig.baseUrl}docs/${language ? `${language}/` : ''}${doc}`;
-}
-
-class Help extends React.Component {
- render() {
- const language = this.props.language || '';
- const supportLinks = [
- {
- content: `Learn more using the [documentation on this site.](${docUrl(
- 'doc1.html',
- language,
- )})`,
- title: 'Browse Docs',
- },
- {
- content: 'Ask questions about the documentation and project',
- title: 'Join the community',
- },
- {
- content: "Find out what's new with this project",
- title: 'Stay up to date',
- },
- ];
-
- return (
-
-
-
-
-
This project is maintained by a dedicated group of people.
-
-
-
-
- );
- }
-}
-
-module.exports = Help;
diff --git a/website/siteConfig.js b/website/siteConfig.js
deleted file mode 100644
index 331d371..0000000
--- a/website/siteConfig.js
+++ /dev/null
@@ -1,45 +0,0 @@
-const siteConfig = {
- disableHeaderTitle: true,
- disableHeaderTagline: true,
- title: 'gulp.js',
- tagline: 'The streaming build system',
- url: 'https://gulpjs.com/',
- baseUrl: '/',
- customDocsPath: 'converted-docs',
- organizationName: 'gulpjs',
- projectName: 'gulpjs.github.io',
- headerLinks: [
- { doc: 'getting-started/quick-start', label: 'Getting Started' },
- { doc: 'api/concepts', label: 'API' },
- { href: 'https://gulpjs.com/plugins', label: 'Plugins' },
- { href: 'https://twitter.com/gulpjs', label: 'Twitter' },
- { href: 'https://medium.com/gulpjs', label: 'Blog' },
- { search: true },
- ],
- headerIcon: 'img/gulp.svg',
- footerIcon: 'img/gulp.svg',
- favicon: 'img/favicon.png',
- colors: {
- primaryColor: '#cf4647',
- secondaryColor: '#cf4647',
- },
- copyright: `Copyright © ${new Date().getFullYear()} GulpJS`,
- highlight: {
- theme: 'tomorrow-night',
- },
- separateCss: ['static/css'],
- onPageNav: 'separate',
- cleanUrl: true,
- useEnglishUrl: true,
- scripts: ['https://buttons.github.io/buttons.js'],
- repoUrl: 'https://github.com/gulpjs/gulp',
- algolia: {
- apiKey: 'a6ef919bce0b83de1bcbad1d4ef753f8',
- indexName: 'gulpjs',
- algoliaOptions: {} // Optional, if provided by Algolia
- },
- gaGtag: true,
- gaTrackingId: 'UA-128126650-1',
-};
-
-module.exports = siteConfig;
diff --git a/website/static/docs-css/custom.css b/website/static/docs-css/custom.css
deleted file mode 100644
index 3e0064e..0000000
--- a/website/static/docs-css/custom.css
+++ /dev/null
@@ -1,227 +0,0 @@
-/* your custom css */
-
-small {
- font-size: 14px;
- font-style: italic;
-}
-
-code {
- background-color: rgba(27, 31, 35, 0.1);
-}
-
-h1 {
- margin-top: 0;
-}
-
-i {
- font-style: normal;
-}
-
-body,
-.mainContainer,
-nav.toc .toggleNav,
-nav.toc .toggleNav .navGroup,
-nav.toc .toggleNav .navGroup.navGroupActive {
- background: #fff;
-}
-
-.mainContainer {
- padding: 40px 0;
-}
-
-.mainContainer .wrapper blockquote p {
- padding: 0;
-}
-
-.mainContainer .wrapper .post .postHeader {
- margin-bottom: 0;
-}
-
-nav.toc .toggleNav .navToggle::before,
-nav.toc .toggleNav .navToggle::after {
- border-color: #fff;
-}
-
-nav.toc .toggleNav .navToggle i::before,
-nav.toc .toggleNav .navToggle i::after {
- border-color: transparent #fff;
-}
-
-.navBreadcrumb i {
- color: #fff;
-}
-
-.navBreadcrumb span {
- color: #fff;
-}
-
-.docsNavContainer {
- background: none;
-}
-
-.docsNavContainer nav.toc .navBreadcrumb,
-.docsSliderActive nav.toc .navBreadcrumb {
- background: #cf4647;
- border-top: 2px solid #fff;
-}
-
-.navigationSlider .slidingNav ul {
- justify-content: space-around;
- flex-wrap: wrap;
-}
-
-.navigationSlider .slidingNav ul li a {
- color: #fff;
- padding: 10px 20px;
-}
-
-/* Tables */
-table {
- border: none;
- display: block;
- overflow-x: auto;
-}
-
-table thead {
- border: none;
-}
-
-table tr {
- border: none;
-}
-
-table tr th {
- text-transform: none;
- color: #fff;
- border: none;
-}
-
-table tr th,
-table tr td {
- border: none;
-}
-
-table tr th code,
-table tr td code {
- word-break: normal;
-}
-
-table tr th:last-child,
-table tr td:last-child {
- min-width: 175px;
-}
-
-table tr th + th + th:last-child,
-table tr td + td + td:last-child {
- min-width: 320px;
- width: 100%;
-}
-
-table tr:nth-of-type(odd) {
- background: none;
-}
-
-table tbody tr:nth-of-type(even) {
- background-color: rgba(76, 76, 76, 0.1);
-}
-
-table thead tr:nth-of-type(odd) {
- background-color: #cf4547;
-}
-
-/* Code Blocks */
-.hljs {
- margin-top: 2rem;
- margin-bottom: 2rem;
-}
-
-/* Search */
-input#search_input_react {
- line-height: 25px;
- border-radius: 4px;
-}
-
-input#search_input_react:focus,
-input#search_input_react:active {
- background-color: #a91b1c;
-}
-
-@media (max-width: 375px) {
- .logo {
- display: initial;
- }
-}
-
-@media only screen and (max-width: 488px) {
- .fixedHeaderContainer a {
- display: none;
- }
- .navSearchWrapper {
- display: none;
- }
-
- .navigationSlider .slidingNav ul {
- margin-top: 0;
- }
-}
-
-@media only screen and (max-width: 735px) {
-
- .docs-next {
- clear: unset;
- float: right;
- }
-
- table {
- box-shadow: -10px 0px 10px -10px #000000 inset;
- display: inline-block;
- max-width: 100%;
- width: unset;
- }
-}
-
-
-@media only screen and (min-device-width: 360px) and (max-device-width: 736px) {
- /* Better use of screen on mobile */
- .wrapper {
- width: 100%;
- }
-}
-
-@media only screen and (min-width: 1024px) {
- .docMainWrapper > * {
- margin: 0 10px;
- }
-
- .docsNavContainer {
- height: unset;
- }
-
- .docOnPageNav,
- .separateOnPageNav .docsNavContainer {
- flex: 1 0 180px;
- }
-}
-
-@media only screen and (max-width: 1023px) {
- .mainContainer {
- padding-top: 50px;
- }
-}
-
-@media only screen and (max-width: 1024px) {
- .reactNavSearchWrapper input#search_input_react {
- line-height: 25px;
- border-radius: 4px;
- }
- .reactNavSearchWrapper input#search_input_react:focus,
- .reactNavSearchWrapper input#search_input_react:active {
- background-color: #a91b1c;
- }
-}
-
-@media only screen and (min-width: 1400px) {
-}
-
-@media only screen and (min-width: 1500px) {
-}