diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..9ac2a53b9
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = tab
+insert_final_newline = true
+
+[*.json]
+indent_size = 2
+indent_style = space
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..90b9f343a
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+* text eol=lf
+*.png binary
+*.exe binary
+*.dll binary
+
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 000000000..a958ae0e2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,24 @@
+Thanks for filing a bug! To save time, if you're having trouble using the library, please check off the items you have tried. If you are just asking a question, skip right to the bottom.
+
+### Please verify these steps before filing an issue, and check them off as you go
+- [ ] The relevant native JavascriptEngineSwitcher library packages are installed (such as `JavaScriptEngineSwitcher.V8.Native.win-x64`)
+- [ ] The VC++ 2017 runtime is installed
+- [ ] The value of `SetUseReact` and `SetUseBabel` is correct in `ReactConfig.cs` or `Startup.cs`
+- [ ] I've looked at the sample projects in this repo to verify that my app is configured correctly
+
+### I'm using these library versions:
+- `ReactJS.NET`:
+- `JavaScriptEngineSwitcher`:
+- `react` and `react-dom`: (N/A if using bundled react, or version number)
+- `webpack`: (N/A if using bundled react)
+- `node`: (N/A if using bundled react)
+
+### Runtime environment:
+- OS: (Mac, Windows, Linux flavor. Include 32-bit/64-bit and version)
+- .NET Framework or .NET Core Version:
+
+### Steps to reproduce
+
+-------
+
+(Describe your issue here)
diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml
new file mode 100644
index 000000000..194ac738e
--- /dev/null
+++ b/.github/workflows/dotnet-core-desktop.yml
@@ -0,0 +1,64 @@
+name: .NET Core Desktop
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+jobs:
+
+ build:
+
+ strategy:
+ matrix:
+ configuration: [Debug, Release]
+
+ runs-on: windows-latest # For a list of available runner types, refer to
+ # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Cache node modules
+ uses: actions/cache@v2
+ env:
+ cache-name: cache-node-modules
+ with:
+ # npm cache files are stored in `~/.npm` on Linux/macOS
+ path: ~/.npm
+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-build-${{ env.cache-name }}-
+ ${{ runner.os }}-build-
+ ${{ runner.os }}-
+
+ - name: Install .NET Core
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 3.1.x
+
+ - name: Use Node.js 12
+ uses: actions/setup-node@v1
+ with:
+ node-version: 12
+
+ - name: Setup MSBuild.exe
+ uses: microsoft/setup-msbuild@2008f912f56e61277eefaac6d1888b750582aa16
+ env:
+ ACTIONS_ALLOW_UNSECURE_COMMANDS: true
+
+ - name: Build
+ run: msbuild build.proj /p:PackageOutputDir="${{ env.GITHUB_WORKSPACE }}/nuget-output" /p:Configuration=${{ matrix.configuration }}
+ env:
+ ACTIONS_ALLOW_UNSECURE_COMMANDS: true
+ Configuration: ${{ matrix.configuration }}
+
+ - name: Upload build artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: Nuget Package
+ path: "${{ env.GITHUB_WORKSPACE }}/nuget-output"
diff --git a/.gitignore b/.gitignore
index ed7ef684c..b32bd32fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,20 @@
_old/
src/SharedAssemblyVersionInfo.cs
*.nupkg
+*.snupkg
src/**/*.nuspec
!src/template.nuspec
site/jekyll/_site
src/React.Sample.Cassette/cassette-cache
+src/React.Sample.*/ClearScript.V8
+src/React.Sample.Webpack/build
*.generated.js
+*.generated.js.map
+*.generated.min.js
+*.lock.json
+.vs/
+results/
+dist/
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
diff --git a/.gitmodules b/.gitmodules
index ee3518802..e69de29bb 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +0,0 @@
-[submodule "site/packages"]
- path = site/packages
- url = https://github.com/Daniel15/simple-nuget-server.git
-[submodule "lib/VroomJs"]
- path = lib/VroomJs
- url = https://github.com/Daniel15/vroomjs.git
diff --git a/LICENSE b/LICENSE
index 3cac634d4..10d9a688c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,28 +1,21 @@
-BSD License for ReactJS.NET
+MIT License for ReactJS.NET
-Copyright (c) 2014, Facebook, Inc. All rights reserved.
+Copyright (c) Facebook, Inc. and its affiliates.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
- endorse or promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/PATENTS b/PATENTS
deleted file mode 100644
index e0ee8eb12..000000000
--- a/PATENTS
+++ /dev/null
@@ -1,23 +0,0 @@
-Additional Grant of Patent Rights
-
-�Software� means the ReactJS.NET software distributed by Facebook, Inc.
-
-Facebook hereby grants you a perpetual, worldwide, royalty-free, non-exclusive,
-irrevocable (subject to the termination provision below) license under any
-rights in any patent claims owned by Facebook, to make, have made, use, sell,
-offer to sell, import, and otherwise transfer the Software. For avoidance of
-doubt, no license is granted under Facebook�s rights in any patent claims that
-are infringed by (i) modifications to the Software made by you or a third party,
-or (ii) the Software in combination with any software or other technology
-provided by you or a third party.
-
-The license granted hereunder will terminate, automatically and without notice,
-for anyone that makes any claim (including by filing any lawsuit, assertion or
-other action) alleging (a) direct, indirect, or contributory infringement or
-inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or
-affiliates, whether or not such claim is related to the Software, (ii) by any
-party if such claim arises in whole or in part from any software, product or
-service of Facebook or any of its subsidiaries or affiliates, whether or not
-such claim is related to the Software, or (iii) by any party relating to the
-Software; or (b) that any right in any patent claim of Facebook is invalid or
-unenforceable.
\ No newline at end of file
diff --git a/README.md b/README.md
index e60dd314a..8a6674e56 100644
--- a/README.md
+++ b/README.md
@@ -1,64 +1,55 @@
-[ReactJS.NET](http://reactjs.net/)
-===========
+# [ReactJS.NET](http://reactjs.net/)
-ReactJS.NET is a library that makes it easier to use Facebook's
-[React](http://facebook.github.io/react/) and
-[JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C#.
+ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](https://reactjs.org/) and [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C#.
-[]((http://teamcity.codebetter.com/viewType.html?buildTypeId=bt1242&guest=1))
-
-
-
+
+[](https://www.nuget.org/packages/React.Core/)
+[](https://www.nuget.org/packages/React.Core/)
-Features
-========
- * On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html)
- * JSX to JavaScript compilation via popular minification/combination
- libraries:
- * [ASP.NET Bundling and Minification](http://reactjs.net/guides/weboptimizer.html)
- * [Cassette](http://reactjs.net/guides/cassette.html)
- * [Server-side component rendering](http://reactjs.net/guides/server-side-rendering.html)
- to make your initial render super-fast (experimental!)
- * [Runs on Linux](http://reactjs.net/guides/mono.html) via Mono and V8
+# Features
-Quick Start
-===========
-Install the package
-```
-Install-Package React.Web.Mvc4
-```
+- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/)
-Create JSX files
-```javascript
-// /Scripts/HelloWorld.jsx
-/** @jsx React.DOM */
-var HelloWorld = React.createClass({
- render: function () {
- return (
-
Hello {this.props.name}
- );
- }
-});
-```
+* JSX to JavaScript compilation via popular minification/combination
+ libraries:
+ - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html)
+ - [Cassette](http://reactjs.net/bundling/cassette.html)
+ - [Webpack](http://reactjs.net/bundling/webpack.html)
+ - [MSBuild](http://reactjs.net/bundling/msbuild.html)
+* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html)
+ to make your initial render super-fast, including support for:
+ - [CSS-in-JS libraries](https://reactjs.net/features/css-in-js.html)
+ - [React Router](https://reactjs.net/features/react-router.html)
+ - [React Helmet](https://reactjs.net/features/react-helmet.html)
+ - Custom JS logic via implementing [IRenderFunctions](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.Core/IRenderFunctions.cs) and passing to [Html.React](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.AspNet/HtmlHelperExtensions.cs#L71)
+* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore
+* Supports both ASP.NET 4.0/4.5 and ASP.NET Core
+
+# Quick Start
-Reference the JSX files from your HTML
-```html
-
```
+dotnet new -i React.Template
+dotnet new reactnet-vanilla
+dotnet run
+```
+
+#### Planning on using `require` or `import` module syntax in your application? Use the `reactnet-webpack` template instead for webpack support.
-Now you can use the `HelloWorld` component.
+See also:
-For information on more advanced topics (including precompilation and
-server-side rendering), check out [the documentation](http://reactjs.net/docs)
+- [Getting Started](https://reactjs.net/getting-started/aspnetcore.html)
+- [Tutorial](https://reactjs.net/tutorials/aspnetcore.html)
-Building Manually and Contributing
-----------------------------------
+## Building Manually and Contributing
When building your own copy of ReactJS.NET (for example, if implementing a new
-feature or fixing a bug), your first build always needs to be done using the
-build script (`dev-build.bat`) as this generates a few files required by the
-build (such as `SharedAssemblyVersionInfo.cs`). Once this build is completed,
+feature or fixing a bug), your first build always needs to be done using the
+build script (`dev-build.bat`) as this generates a few files required by the
+build (such as `SharedAssemblyVersionInfo.cs`). Once this build is completed,
you can open `React.sln` in Visual Studio and compile directly from Visual
-Studio. Please refer to the [documentation page on
+Studio. Please refer to the [documentation page on
contributing](http://reactjs.net/dev/contributing.html) for more information on
contributing to ReactJS.NET.
+
+Note that the build requires you to have Git installed. If you do not want to
+install Git, you may remove the `GitVersion` task from `build.proj`.
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 000000000..2c176e021
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,39 @@
+trigger:
+ - main
+ - ci-updates
+
+pool:
+ vmImage: 'windows-2019'
+
+variables:
+ buildPlatform: 'Any CPU'
+ buildConfiguration: 'Release'
+ buildType: 'Release'
+
+steps:
+ - task: NodeTool@0
+ inputs:
+ versionSpec: '10.x'
+
+ - script: npm install --global npm
+
+ - task: UseDotNet@2
+ displayName: 'Use .NET Core sdk'
+ inputs:
+ packageType: 'sdk'
+ version: '3.1.x'
+
+ - task: VSBuild@1
+ inputs:
+ solution: 'build.proj'
+ msbuildArgs: '/p:PackageOutputDir="$(build.artifactStagingDirectory)"'
+ platform: '$(buildPlatform)'
+ configuration: '$(buildConfiguration)'
+
+ - task: DotNetCoreCLI@2
+ inputs:
+ command: 'test'
+ projects: 'tests/React.Tests/React.Tests.csproj'
+ arguments: '--no-build --configuration $(buildConfiguration)'
+
+ - task: PublishBuildArtifacts@1
diff --git a/build.proj b/build.proj
index a175ac947..afbf537d6 100644
--- a/build.proj
+++ b/build.proj
@@ -1,6 +1,6 @@
- 1
- 1
- 1
+ 5
+ 2
+ 130http://reactjs.net/packages/$(MSBuildProjectDirectory)\tools\MSBuildTasks
+ $(MSBuildProjectDirectory)\output
+ Dev
+
src\React.sln
- output
-
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+ $(Major).$(Minor).$(Build)
+
- $(Build)-dev-$(Date)
+ $(Major).$(Minor).$(Build)-dev-$(Date)
+
+ AssemblyFileVersion="$(VersionString).$(Revision)"
+ AssemblyInformationalVersion="$(VersionString)"
+ />
+
+
+
+
+
+
-
+
+
+
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
@@ -107,7 +155,7 @@ of patent rights can be found in the PATENTS file in the same directory.
@@ -116,4 +164,4 @@ of patent rights can be found in the PATENTS file in the same directory.
Command="tools\NuGet\nuget.exe push $(PackageOutputDir)\*.symbols.nupkg -Source $(DevNuGetServer) -NonInteractive"
/>
-
\ No newline at end of file
+
diff --git a/dev-build-push.bat b/dev-build-push.bat
index 59041e18a..68f142d80 100644
--- a/dev-build-push.bat
+++ b/dev-build-push.bat
@@ -1,3 +1 @@
-@echo off
-"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" build.proj /t:Package;Push /p:BuildType=Dev
-pause
\ No newline at end of file
+call runs-msbuild.bat "/p:BuildType=Dev" "/t:Package;Push"
diff --git a/dev-build.bat b/dev-build.bat
index b11d61502..b09ae3031 100644
--- a/dev-build.bat
+++ b/dev-build.bat
@@ -1,3 +1 @@
-@echo off
-"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" build.proj /p:BuildType=Dev
-pause
\ No newline at end of file
+call runs-msbuild.bat "/p:BuildType=Dev"
diff --git a/lib/Mvc3/System.Web.Mvc.dll b/lib/Mvc3/System.Web.Mvc.dll
deleted file mode 100644
index eed0d994a..000000000
Binary files a/lib/Mvc3/System.Web.Mvc.dll and /dev/null differ
diff --git a/lib/Mvc3/System.Web.Razor.dll b/lib/Mvc3/System.Web.Razor.dll
deleted file mode 100644
index cd950e6d1..000000000
Binary files a/lib/Mvc3/System.Web.Razor.dll and /dev/null differ
diff --git a/lib/Mvc3/System.Web.WebPages.Razor.dll b/lib/Mvc3/System.Web.WebPages.Razor.dll
deleted file mode 100644
index 9846dd3fc..000000000
Binary files a/lib/Mvc3/System.Web.WebPages.Razor.dll and /dev/null differ
diff --git a/lib/Mvc3/System.Web.WebPages.dll b/lib/Mvc3/System.Web.WebPages.dll
deleted file mode 100644
index 9fea01285..000000000
Binary files a/lib/Mvc3/System.Web.WebPages.dll and /dev/null differ
diff --git a/lib/VroomJs b/lib/VroomJs
deleted file mode 160000
index 5f8cc0ec7..000000000
--- a/lib/VroomJs
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5f8cc0ec7d3c37075ed1b8f233e6de343444d7de
diff --git a/lib/VroomJs.dll b/lib/VroomJs.dll
deleted file mode 100644
index 2167ac61a..000000000
Binary files a/lib/VroomJs.dll and /dev/null differ
diff --git a/lib/build-vroomjs.bat b/lib/build-vroomjs.bat
deleted file mode 100644
index 51d905dc0..000000000
--- a/lib/build-vroomjs.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" VroomJs\VroomJs\VroomJs.csproj /p:BuildProjectReferences=false /p:Configuration=Release /p:OutputPath=..\..\ /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=..\..\..\src\Key.snk
-pause
\ No newline at end of file
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 000000000..31296b025
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,65 @@
+[build]
+ base = "site/jekyll"
+ publish = "site/jekyll/_site"
+ command = "bundle exec jekyll build"
+
+# Shortcuts
+[[redirects]]
+ from = "/download"
+ to = "/getting-started/download.html"
+ status = 302
+
+[[redirects]]
+ from = "/docs"
+ to = "/getting-started/aspnetcore.html"
+ status = 302
+
+# Old documentation URLs
+[[redirects]]
+ from = "/getting-started/aspnet5.html"
+ to = "/getting-started/aspnetcore.html"
+
+[[redirects]]
+ from = "/getting-started/tutorial.html"
+ to = "/tutorials/aspnetcore.html"
+
+[[redirects]]
+ from = "/guides/weboptimizer.html"
+ to = "/bundling/weboptimizer.html"
+
+[[redirects]]
+ from = "/guides/cassette.html"
+ to = "/bundling/cassette.html"
+
+[[redirects]]
+ from = "/guides/webpack.html"
+ to = "/bundling/webpack.html"
+
+[[redirects]]
+ from = "/guides/msbuild.html"
+ to = "/bundling/msbuild.html"
+
+[[redirects]]
+ from = "/guides/server-side-rendering.html"
+ to = "/features/server-side-rendering.html"
+
+[[redirects]]
+ from = "/guides/es6.html"
+ to = "/features/es6.html"
+
+[[redirects]]
+ from = "/guides/react-router.html"
+ to = "/features/react-router.html"
+
+[[redirects]]
+ from = "/guides/chakracore.html"
+ to = "/getting-started/chakracore.html"
+
+# Old package URLs
+[[redirects]]
+ from = "/packages/*"
+ to = "https://ci.appveyor.com/nuget/reactjs.net/:splat"
+
+[[redirects]]
+ from = "/dev/packages/*"
+ to = "https://ci.appveyor.com/nuget/reactjs.net/:splat"
diff --git a/release-build-push.bat b/release-build-push.bat
index 724c9dc50..9a9f15c34 100644
--- a/release-build-push.bat
+++ b/release-build-push.bat
@@ -1,3 +1 @@
-@echo off
-"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" build.proj /t:Package;Push /p:BuildType=Release
-pause
\ No newline at end of file
+call runs-msbuild.bat "/p:BuildType=Release" "/t:Package;Push"
diff --git a/release-build.bat b/release-build.bat
index 39ae9d306..788e125a5 100644
--- a/release-build.bat
+++ b/release-build.bat
@@ -1,3 +1 @@
-@echo off
-"%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" build.proj /p:BuildType=Release
-pause
\ No newline at end of file
+call runs-msbuild.bat "/p:BuildType=Release"
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 000000000..f197b0de8
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,39 @@
+{
+ "extends": [
+ "config:base"
+ ],
+ "packageRules": [
+ {
+ "sourceUrlPrefixes": ["https://github.com/Taritsyn/JavaScriptEngineSwitcher"],
+ "groupName": "JavaScriptEngineSwitcher packages"
+ },
+ {
+ "sourceUrlPrefixes": ["https://github.com/aspnet/Extensions"],
+ "groupName": "ASP.NET Extensions"
+ },
+ {
+ "packagePatterns": ["^Microsoft.AspNetCore"],
+ "groupName": "ASP.NET Core packages"
+ },
+ {
+ "packagePatterns": ["^Microsoft.Owin"],
+ "groupName": "Owin packages"
+ },
+ {
+ "sourceUrlPrefixes": [
+ "https://github.com/aspnet/MetaPackages",
+ "https://github.com/aspnet/AspNetCore"
+ ],
+ "groupName": "ASP.NET Core packages"
+ },
+ {
+ "packagePatterns": ["^React"],
+ "groupName": "React.NET packages"
+ }
+ ],
+ "separateMinorPatch": true,
+ "automerge": false,
+ "patch": {
+ "automerge": true
+ }
+}
diff --git a/runs-msbuild.bat b/runs-msbuild.bat
new file mode 100644
index 000000000..360f79b15
--- /dev/null
+++ b/runs-msbuild.bat
@@ -0,0 +1,23 @@
+@echo off
+
+set BUILDTYPE="%~1"
+set ACTION="%~2"
+
+for %%s in (
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"
+ "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe"
+) do (
+ if exist %%s (
+ echo %%s build.proj %ACTION% %BUILDTYPE%
+ %%s build.proj %ACTION% %BUILDTYPE%
+ goto :done
+ )
+)
+
+:notfound
+echo Could not find MSBuild.exe. Make sure Visual Studio 2019 is installed and try again.
+
+:done
+pause
diff --git a/site/build.sh b/site/build.sh
new file mode 100755
index 000000000..69fdc556d
--- /dev/null
+++ b/site/build.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+set -ex
+cd jekyll
+bundle install
+bundle exec jekyll build
+cd ..
diff --git a/site/jekyll/Gemfile b/site/jekyll/Gemfile
new file mode 100644
index 000000000..5b8edb617
--- /dev/null
+++ b/site/jekyll/Gemfile
@@ -0,0 +1,10 @@
+source 'https://rubygems.org'
+
+gem 'jekyll', '~>1.5.1'
+gem 'jekyll-assets', '~>0.9.2'
+gem 'bourbon', '~>3'
+
+# For markdown header cleanup
+gem 'sanitize'
+
+gem 'wdm', '~> 0.1.0' if Gem.win_platform?
diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock
new file mode 100644
index 000000000..60c113656
--- /dev/null
+++ b/site/jekyll/Gemfile.lock
@@ -0,0 +1,96 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ blankslate (2.1.2.4)
+ bourbon (3.2.4)
+ sass (~> 3.2)
+ thor
+ classifier (1.3.4)
+ fast-stemmer (>= 1.0.0)
+ colorator (0.1)
+ commander (4.1.6)
+ highline (~> 1.6.11)
+ crass (1.0.6)
+ fast-stemmer (1.0.2)
+ ffi (1.9.18)
+ ffi (1.9.18-x64-mingw32)
+ highline (1.6.21)
+ hike (1.2.3)
+ jekyll (1.5.1)
+ classifier (~> 1.3)
+ colorator (~> 0.1)
+ commander (~> 4.1.3)
+ liquid (~> 2.5.5)
+ listen (~> 1.3)
+ maruku (= 0.7.0)
+ pygments.rb (~> 0.5.0)
+ redcarpet (~> 2.3.0)
+ safe_yaml (~> 1.0)
+ toml (~> 0.1.0)
+ jekyll-assets (0.9.2)
+ jekyll (>= 1.0.0, < 3.0.0)
+ sass (~> 3.2)
+ sprockets (~> 2.10)
+ sprockets-helpers
+ sprockets-sass
+ liquid (2.5.5)
+ listen (1.3.1)
+ rb-fsevent (>= 0.9.3)
+ rb-inotify (>= 0.9)
+ rb-kqueue (>= 0.2)
+ maruku (0.7.0)
+ mini_portile2 (2.4.0)
+ multi_json (1.12.1)
+ nokogiri (1.10.9)
+ mini_portile2 (~> 2.4.0)
+ nokogiri (1.10.9-x64-mingw32)
+ mini_portile2 (~> 2.4.0)
+ nokogumbo (2.0.2)
+ nokogiri (~> 1.8, >= 1.8.4)
+ parslet (1.5.0)
+ blankslate (~> 2.0)
+ posix-spawn (0.3.13)
+ pygments.rb (0.5.4)
+ posix-spawn (~> 0.3.6)
+ yajl-ruby (~> 1.1.0)
+ rack (1.6.12)
+ rb-fsevent (0.9.8)
+ rb-inotify (0.9.8)
+ ffi (>= 0.5.0)
+ rb-kqueue (0.2.4)
+ ffi (>= 0.5.0)
+ redcarpet (2.3.0)
+ safe_yaml (1.0.4)
+ sanitize (5.2.1)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.8.0)
+ nokogumbo (~> 2.0)
+ sass (3.4.23)
+ sprockets (2.12.4)
+ hike (~> 1.2)
+ multi_json (~> 1.0)
+ rack (~> 1.0)
+ tilt (~> 1.1, != 1.3.0)
+ sprockets-helpers (1.2.1)
+ sprockets (>= 2.2)
+ sprockets-sass (1.3.1)
+ sprockets (~> 2.0)
+ tilt (~> 1.1)
+ thor (0.19.4)
+ tilt (1.4.1)
+ toml (0.1.2)
+ parslet (~> 1.5.0)
+ yajl-ruby (1.1.0)
+
+PLATFORMS
+ ruby
+ x64-mingw32
+
+DEPENDENCIES
+ bourbon (~> 3)
+ jekyll (~> 1.5.1)
+ jekyll-assets (~> 0.9.2)
+ sanitize
+
+BUNDLED WITH
+ 1.14.5
diff --git a/site/jekyll/_assets/stylesheets/react.scss b/site/jekyll/_assets/stylesheets/react.scss
index 35ea0dea3..36ea1f560 100644
--- a/site/jekyll/_assets/stylesheets/react.scss
+++ b/site/jekyll/_assets/stylesheets/react.scss
@@ -17,7 +17,28 @@ $columnGutter: 40px;
$twoColumnWidth: 2 * $columnWidth + $columnGutter;
$navHeight: 50px;
+// Breakpoints
+$bp-large: 960px;
+$bp-medium: 640px;
+$bp-small: 480px;
+@mixin bp-small {
+ @media (max-width: $bp-small) {
+ @content;
+ }
+}
+
+@mixin bp-medium {
+ @media (max-width: $bp-medium) {
+ @content;
+ }
+}
+
+@mixin bp-large {
+ @media (max-width: $bp-large) {
+ @content;
+ }
+}
// basic reset
* {
@@ -145,7 +166,6 @@ h1, h2, h3, h4, h5, h6 {
}
.nav-logo {
- @include retina-image('../img/logo_small', 38px 38px);
vertical-align: middle;
}
@@ -765,3 +785,47 @@ div[data-twttr-id] iframe {
.three-column > ul:first-child {
margin-left: 20px;
}
+
+/* Algolia Doc Search */
+
+input#algolia-doc-search {
+ background: transparent url('../img/search.png') no-repeat 10px center;
+ background-size: 16px 16px;
+
+ position: relative;
+ vertical-align: top;
+ margin-left: 10px;
+ padding: 0 10px;
+ padding-left: 35px;
+ height: 30px;
+ margin-top: 10px;
+ font-size: 16px;
+ line-height: 20px;
+ background-color: #333;
+ border-radius: 4px;
+ color: white;
+ outline: none;
+ width: 170px;
+
+ transition: width .2s ease;
+
+ &:focus {
+ width: 240px;
+ }
+
+ @include bp-large {
+ background-color: transparent;
+ width: 0;
+ cursor: pointer;
+
+ &:focus {
+ width: 200px;
+ background-color: #333;
+ }
+ }
+}
+
+.algolia-autocomplete {
+ vertical-align: top;
+ height: 53px;
+}
diff --git a/site/jekyll/_config.yml b/site/jekyll/_config.yml
index c7ff9a184..7f32721e7 100644
--- a/site/jekyll/_config.yml
+++ b/site/jekyll/_config.yml
@@ -4,13 +4,19 @@ pygments: true
permalink: /:year/:month/:title.html
paginate: 5
paginate_path: /blog/page:num.html
-url: http://reactjs.net
+url: https://reactjs.net
doc-sections:
- - id: getting-started
- title: Getting Started
- - id: guides
- title: Guides
- - id: dev
- title: Development
+ - id: getting-started
+ title: 'Getting Started'
+ - id: tutorials
+ title: Tutorials
+ - id: features
+ title: Features
+ - id: bundling
+ title: Bundling
+ - id: dev
+ title: Development
+
+title: Development
assets:
- css_compressor: sass
+ css_compressor: sass
diff --git a/site/jekyll/_layouts/default.html b/site/jekyll/_layouts/default.html
index 1d821026d..d59c8b506 100644
--- a/site/jekyll/_layouts/default.html
+++ b/site/jekyll/_layouts/default.html
@@ -9,14 +9,15 @@
-
+
-
+
{% stylesheet main %}
+
@@ -38,8 +39,10 @@