From dd82c725b72c4430f8cfac619d1e6f5afae38344 Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Sun, 10 Dec 2023 21:31:42 +0200 Subject: [PATCH] build reference documentation --- .github/workflows/website.yml | 2 +- .nuke/build.schema.json | 12 ++++- .../nuke-build/Build.Documentation.cs | 50 +++++++++++++++++++ website/src/pages/documentation.md | 2 +- website/src/pages/download.md | 4 +- website/src/pages/examples.md | 24 ++++----- website/src/pages/overview.md | 36 ++++++------- 7 files changed, 94 insertions(+), 36 deletions(-) create mode 100644 build-support/nuke-build/Build.Documentation.cs diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 41ae8dada..d53578400 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -36,7 +36,7 @@ jobs: uses: actions/configure-pages@v2 - name: Build - run: yarn install && yarn build + run: ./build.sh website - name: Upload artifact uses: actions/upload-pages-artifact@v1 diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index ba3709135..39fa67468 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -93,11 +93,15 @@ "Compile", "CompileExamples", "CompileSolution", + "Docs", + "DocsReference", + "DocsSdk", "Pack", "PackBinaries", "Publish", "Restore", - "Test" + "Test", + "Website" ] } }, @@ -117,11 +121,15 @@ "Compile", "CompileExamples", "CompileSolution", + "Docs", + "DocsReference", + "DocsSdk", "Pack", "PackBinaries", "Publish", "Restore", - "Test" + "Test", + "Website" ] } }, diff --git a/build-support/nuke-build/Build.Documentation.cs b/build-support/nuke-build/Build.Documentation.cs new file mode 100644 index 000000000..619e562b0 --- /dev/null +++ b/build-support/nuke-build/Build.Documentation.cs @@ -0,0 +1,50 @@ +using Nuke.Common; +using Nuke.Common.IO; +using Nuke.Common.Tooling; + +public partial class Build +{ + readonly AbsolutePath ReferenceDocumentationPath = RootDirectory / "doc" / "reference"; + + Target Docs => _ => _ + .DependsOn(DocsReference, DocsSdk) + .Executes(() => + { + }); + + Target DocsReference => _ => _ + .Executes(() => + { + var targetDir = ReferenceDocumentationPath / "target"; + targetDir.CreateOrCleanDirectory(); + + ProcessTasks.StartProcess( + workingDirectory: targetDir, + toolPath: "java", + arguments: """ + -cp "..\lib\saxon6-5-5\saxon.jar;..\lib\xslthl-2.0.0\xslthl-2.0.0.jar" com.icl.saxon.StyleSheet ../src/index.xml "..\lib\docbook-xsl-snapshot\html\springnet.xsl" highlight.xslthl.config="file:///${project.basedir}/lib/docbook-xsl-snapshot/highlighting/xslthl-config.xml" + """ + ).AssertWaitForExit(); + + FileSystemTasks.CopyDirectoryRecursively(ReferenceDocumentationPath / "src" / "styles", targetDir / "html" / "styles", DirectoryExistsPolicy.Merge); + FileSystemTasks.CopyDirectoryRecursively(ReferenceDocumentationPath / "src" / "images", targetDir / "html" / "images", DirectoryExistsPolicy.Merge, excludeFile: file => file.Extension != ".gif" && file.Extension != ".svg" && file.Extension != ".jpg" && file.Extension != ".png"); + FileSystemTasks.CopyDirectoryRecursively(ReferenceDocumentationPath / "lib" / "docbook-xsl-snapshot" / "images", targetDir / "html" / "images", DirectoryExistsPolicy.Merge); + }); + + Target DocsSdk => _ => _ + .Executes(() => + { + }); + + Target Website => _ => _ + .DependsOn(DocsReference, DocsSdk) + .Executes(() => + { + var webSiteDir = RootDirectory / "website"; + ProcessTasks.StartProcess("yarn", arguments: "install", workingDirectory: webSiteDir).AssertWaitForExit(); + ProcessTasks.StartProcess("yarn", arguments: "build", workingDirectory: webSiteDir).AssertWaitForExit(); + + // copy reference docs + FileSystemTasks.CopyDirectoryRecursively(ReferenceDocumentationPath / "target" / "html", webSiteDir / "public" / "doc-latest" / "reference" / "html", DirectoryExistsPolicy.Merge); + }); +} diff --git a/website/src/pages/documentation.md b/website/src/pages/documentation.md index 3ac7ebf55..eb6c9cbcd 100644 --- a/website/src/pages/documentation.md +++ b/website/src/pages/documentation.md @@ -22,7 +22,7 @@ Note: To view HTML Help files on Windows you may need to 'unblock' the file. You ### Latest Documentation -Reference ( [HTML](http://www.springframework.net/doc-latest/reference/html/index.html) / [PDF](http://www.springframework.net/doc-latest/reference/pdf/spring-net-reference.pdf) / [HTML Help](http://www.springframework.net/doc-latest/reference/htmlhelp/spring-net-reference.chm) ) +Reference ( [HTML](/doc-latest/reference/html/index.html) / [PDF](/doc-latest/reference/pdf/spring-net-reference.pdf) / [HTML Help](/doc-latest/reference/htmlhelp/spring-net-reference.chm) ) ### Release - 1.3.2 diff --git a/website/src/pages/download.md b/website/src/pages/download.md index e90cc709d..de9be830b 100644 --- a/website/src/pages/download.md +++ b/website/src/pages/download.md @@ -25,7 +25,7 @@ You can download them from [here](http://www.springsource.com/download/community Nightly Snapshot Builds Nightly snapshot builds are provided for testing and development purposes. -- Download the [nightly snapshot](http://www.springframework.net/downloads/nightly) +- Download the [nightly snapshot](/downloads/nightly) ## OLDER RELEASES @@ -71,4 +71,4 @@ Nightly snapshot builds are provided for testing and development purposes. **Spring.NET 1.1.2** - Download it from [Sourceforge](https://sourceforge.net/project/showfiles.php?group_id=106751) -- See the [changelog](https://springframework.net/changelog.txt), [Breaking Changes](https://springframework.net/BreakingChanges-1.1.txt) +- See the [changelog](https://github.com/spring-projects/spring-net/blob/main/changelog.txt), [Breaking Changes](https://github.com/spring-projects/spring-net/blob/main/BreakingChanges.txt) diff --git a/website/src/pages/examples.md b/website/src/pages/examples.md index dbbd2abb1..0b1eda1ce 100644 --- a/website/src/pages/examples.md +++ b/website/src/pages/examples.md @@ -18,30 +18,30 @@ keywords: The examples directory in the distribution contain the following examples. -[Movie Finder](https://springframework.net/doc-latest/reference/html/quickstarts.html): A simple demonstration of Dependency Injection (DI) techniques using Spring's Inversion of Control (IoC) container. +[Movie Finder](/doc-latest/reference/html/quickstarts.html): A simple demonstration of Dependency Injection (DI) techniques using Spring's Inversion of Control (IoC) container. -[Application Context](https://springframework.net/doc-latest/reference/html/quickstarts.html): Demonstrates IoC container features such as localization, accessing of ResourceSet objects, and applying resources to object properties. +[Application Context](/doc-latest/reference/html/quickstarts.html): Demonstrates IoC container features such as localization, accessing of ResourceSet objects, and applying resources to object properties. -[Aspect Oriented Programming](https://springframework.net/doc-latest/reference/html/aop-quickstart.html): Demonstrates use of the AOP framework to add additional behavior to your existing object. Examples of programmatic and declarative AOP configuration are shown. +[Aspect Oriented Programming](/doc-latest/reference/html/aop-quickstart.html): Demonstrates use of the AOP framework to add additional behavior to your existing object. Examples of programmatic and declarative AOP configuration are shown. -[Distributed Computing](https://springframework.net/doc-latest/reference/html/remoting-quickstart.html): A calculator demonstrating remote service abstractions that let you 'export' a plain .NET object (PONO) via .NET Remoting, Web Services, or an EnterpriseService ServiceComponent. Corresponding client side proxies are also demonstrated. +[Distributed Computing](/doc-latest/reference/html/remoting-quickstart.html): A calculator demonstrating remote service abstractions that let you 'export' a plain .NET object (PONO) via .NET Remoting, Web Services, or an EnterpriseService ServiceComponent. Corresponding client side proxies are also demonstrated. -[WCF](http://www.springframework.net/doc-latest/reference/html/wcf-quickstart.html): A calculator demonstrating dependency injection and applying AOIP advice to WCF services. +[WCF](/doc-latest/reference/html/wcf-quickstart.html): A calculator demonstrating dependency injection and applying AOIP advice to WCF services. -[Web Application - Spring Air](http://www.springframework.net/doc-latest/reference/html/springair.html): A ticket booking application that demonstrates the ASP.NET framework showing features such as DI for ASP.NET pages, data binding, validation and localization. +[Web Application - Spring Air](/doc-latest/reference/html/springair.html): A ticket booking application that demonstrates the ASP.NET framework showing features such as DI for ASP.NET pages, data binding, validation and localization. Web Development: Introductory examples showing use of dependency injection and Spring's bi-directional data binding in ASP.NET -[Data Access](https://springframework.net/doc-latest/reference/html/data-quickstart.html): Demonstrates the ADO.NET framework showing how to simplify the use of ADO.NET +[Data Access](/doc-latest/reference/html/data-quickstart.html): Demonstrates the ADO.NET framework showing how to simplify the use of ADO.NET -[Transaction Management](https://springframework.net/doc-latest/reference/html/tx-quickstart.html): Demonstrates the use of declarative transaction management for both local and distributed transaction in both .NET 1.1 and 2.0. +[Transaction Management](/doc-latest/reference/html/tx-quickstart.html): Demonstrates the use of declarative transaction management for both local and distributed transaction in both .NET 1.1 and 2.0. AJAX : Demonstrates how to access a plain .NET object as a webservice in client side JavaScript -[NHibernate Northwind](http://www.springframework.net/doc-latest/reference/html/nh-quickstart.html): Demonstrates use of Spring's NHibernate integration to simplify the use of NHibernate. Web tier is also included showing how to use the Open-Session In View approach to session management in the web tier. +[NHibernate Northwind](/doc-latest/reference/html/nh-quickstart.html): Demonstrates use of Spring's NHibernate integration to simplify the use of NHibernate. Web tier is also included showing how to use the Open-Session In View approach to session management in the web tier. -[Apache ActiveMQ](http://www.springframework.net/doc-latest/reference/html/nms-quickstart.html): This quick start application demonstrates how to use asynchronous messaging to implement a system for purchasing a stock. +[Apache ActiveMQ](/doc-latest/reference/html/nms-quickstart.html): This quick start application demonstrates how to use asynchronous messaging to implement a system for purchasing a stock. -[Microsoft Message Queue](http://www.springframework.net/doc-latest/reference/html/msmq-quickstart.html): This quick start application demonstrates how to use asynchronous messaging to implement a system for purchasing a stock. +[Microsoft Message Queue](/doc-latest/reference/html/msmq-quickstart.html): This quick start application demonstrates how to use asynchronous messaging to implement a system for purchasing a stock. -[Job Scheduling](http://www.springframework.net/doc-latest/reference/html/quartz-quickstart.html): This quick start application demonstrates how to declarative create and configure Quartz Jobs, Triggers, and Schedules and how to make a PONO object be invoked by Quartz. +[Job Scheduling](/doc-latest/reference/html/quartz-quickstart.html): This quick start application demonstrates how to declarative create and configure Quartz Jobs, Triggers, and Schedules and how to make a PONO object be invoked by Quartz. diff --git a/website/src/pages/overview.md b/website/src/pages/overview.md index 6c9e7d2dc..cbf5eebc6 100644 --- a/website/src/pages/overview.md +++ b/website/src/pages/overview.md @@ -24,40 +24,40 @@ The breath of functionality in Spring .NET spans application tiers which allows Spring.NET consists of the following modules. Click on the module name for more information. -[Spring.Core](http://www.springframework.net/doc-latest/reference/html/objects.html) – Use this module to configure your application using Dependency Injection. +[Spring.Core](/doc-latest/reference/html/objects.html) – Use this module to configure your application using Dependency Injection. -[Spring.Aop](http://www.springframework.net/doc-latest/reference/html/aop.html) – Use this module to perform Aspect-Oriented Programming (AOP). AOP centralizes common functionality that can then be declaratively applied across your application in a targeted manner. An [aspect library](http://www.springframework.net/doc-latest/reference/html/aop-aspect-library.html) provides predefined easy to use aspects for transactions, logging, performance monitoring, caching, method retry, and exception handling. +[Spring.Aop](/doc-latest/reference/html/aop.html) – Use this module to perform Aspect-Oriented Programming (AOP). AOP centralizes common functionality that can then be declaratively applied across your application in a targeted manner. An [aspect library](/doc-latest/reference/html/aop-aspect-library.html) provides predefined easy to use aspects for transactions, logging, performance monitoring, caching, method retry, and exception handling. -[Spring.Data](http://www.springframework.net/doc-latest/reference/html/spring-middle-tier.html) – Use this module to achieve greater efficiency and consistency in writing data access functionality in ADO.NET and to perform declarative transaction management. +[Spring.Data](/doc-latest/reference/html/spring-middle-tier.html) – Use this module to achieve greater efficiency and consistency in writing data access functionality in ADO.NET and to perform declarative transaction management. -[Spring.Data.NHibernate](http://www.springframework.net/doc-latest/reference/html/orm.html) – Use this module to integrate NHibernate with Spring’s declarative transaction management functionality allowing easy mixing of ADO.NET and NHibernate operations within the same transaction. NHibernate 1.0 users will benefit from ease of use APIs to perform data access operations. +[Spring.Data.NHibernate](/doc-latest/reference/html/orm.html) – Use this module to integrate NHibernate with Spring’s declarative transaction management functionality allowing easy mixing of ADO.NET and NHibernate operations within the same transaction. NHibernate 1.0 users will benefit from ease of use APIs to perform data access operations. -[Spring.Web](http://www.springframework.net/doc-latest/reference/html/web.html) – Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration. +[Spring.Web](/doc-latest/reference/html/web.html) – Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration. -[Spring.Web.Extensions](http://www.springframework.net/doc-latest/reference/html/ajax.html) – Use this module to easily expose a plain .NET object (PONO), that is one that doesn't have any attributes or special base classes, as a web service, configured via dependency injection, 'decorated' by applying AOP, and then exposed to client side java script. +[Spring.Web.Extensions](/doc-latest/reference/html/ajax.html) – Use this module to easily expose a plain .NET object (PONO), that is one that doesn't have any attributes or special base classes, as a web service, configured via dependency injection, 'decorated' by applying AOP, and then exposed to client side java script. -[Spring.Services](http://www.springframework.net/doc-latest/reference/html/spring-services.html) – Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, ASMX Web Services, and WCF services. These services can be configured via dependency injection and ‘decorated’ by applying AOP. +[Spring.Services](/doc-latest/reference/html/spring-services.html) – Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, ASMX Web Services, and WCF services. These services can be configured via dependency injection and ‘decorated’ by applying AOP. -[Spring.Testing.NUnit](http://www.springframework.net/doc-latest/reference/html/testing.html) - Use this module to perform integration testing with NUnit. +[Spring.Testing.NUnit](/doc-latest/reference/html/testing.html) - Use this module to perform integration testing with NUnit. -[Spring.Testing.Microsoft](http://www.springframework.net/doc-latest/reference/html/testing.html) - Use this module to perform integration testing with Microsoft test framework (MSTEST). +[Spring.Testing.Microsoft](/doc-latest/reference/html/testing.html) - Use this module to perform integration testing with Microsoft test framework (MSTEST). -[Spring.Messaging](http://www.springframework.net/doc-latest/reference/html/msmq.html) - Use this module to increase your productivity creating Microsoft Message Queue (MSMQ) applications that adhere to architectural best practices +[Spring.Messaging](/doc-latest/reference/html/msmq.html) - Use this module to increase your productivity creating Microsoft Message Queue (MSMQ) applications that adhere to architectural best practices -[Spring.Messaging.Nms](http://www.springframework.net/doc-latest/reference/html/messaging.html) - Use this module to increase your productivity creating Apache ActiveMQ applications that adhere to architectural best practices. +[Spring.Messaging.Nms](/doc-latest/reference/html/messaging.html) - Use this module to increase your productivity creating Apache ActiveMQ applications that adhere to architectural best practices. -[Spring.Messaging.Ems](http://www.springframework.net/doc-latest/reference/html/messaging.html) - Use this module to increase your productivity creating TIBCO EMS applications that adhere to architectural best practices. +[Spring.Messaging.Ems](/doc-latest/reference/html/messaging.html) - Use this module to increase your productivity creating TIBCO EMS applications that adhere to architectural best practices. -[Spring.Scheduling.Quartz](http://www.springframework.net/doc-latest/reference/html/scheduling.html#scheduling-quartz) - Provides integration with the Quartz.NET job scheduler providing declarative configuration of Quartz jobs, schedulers, and triggers as well as several convenience classes to increase productivity when creating job scheduling applications. +[Spring.Scheduling.Quartz](/doc-latest/reference/html/scheduling.html#scheduling-quartz) - Provides integration with the Quartz.NET job scheduler providing declarative configuration of Quartz jobs, schedulers, and triggers as well as several convenience classes to increase productivity when creating job scheduling applications. -[Spring.Template.Velocity](http://www.springframework.net/docs/1.3.0/reference/html/templating.html) - Helper classes to configure a NVelocity template engine in a Spring based application. +[Spring.Template.Velocity](/doc-latest/reference/html/templating.html) - Helper classes to configure a NVelocity template engine in a Spring based application. Additional Functionality in Spring.Core The Spring.Core module also includes the following additional features the you may find useful in their own right. -- [Expression Language](http://www.springframework.net/doc-latest/reference/html/expressions.html) - provides efficient querying and manipulation of an object graphs at runtime. -- [Validation Framework](http://www.springframework.net/doc-latest/reference/html/validation.html) - a robust UI agnostic framework for creating complex validation rules for business objects either programmatically or declaratively. +- [Expression Language](/doc-latest/reference/html/expressions.html) - provides efficient querying and manipulation of an object graphs at runtime. +- [Validation Framework](/doc-latest/reference/html/validation.html) - a robust UI agnostic framework for creating complex validation rules for business objects either programmatically or declaratively. - Data binding Framework - a UI agnostic framework for performing data binding. - Dynamic Reflection - provides a high performance reflection API. -- [Threading](http://www.springframework.net/doc-latest/reference/html/threading.html) - provides additional concurrency abstractions such as Latch, Semaphore and Thread Local Storage. -- [Resource abstraction](http://www.springframework.net/doc-latest/reference/html/resources.html) - provides a common interface to treat the InputStream from a file and from a URL in a polymorphic and protocol-independent manner. \ No newline at end of file +- [Threading](/doc-latest/reference/html/threading.html) - provides additional concurrency abstractions such as Latch, Semaphore and Thread Local Storage. +- [Resource abstraction](/doc-latest/reference/html/resources.html) - provides a common interface to treat the InputStream from a file and from a URL in a polymorphic and protocol-independent manner. \ No newline at end of file