diff --git a/build.sbt b/build.sbt index aced1339d..54a994064 100644 --- a/build.sbt +++ b/build.sbt @@ -336,9 +336,12 @@ lazy val root = project lazy val docs = project .in(file("docs")) - .aggregate(allModules: _*) .dependsOn(allModulesDeps: _*) .settings(name := "frees-rpc-docs") - .settings(noPublishSettings) - .settings(docsSettings) - .enablePlugins(TutPlugin) + .settings(freesMicrositeSettings: _*) + .settings(noPublishSettings: _*) + .settings( + libraryDependencies ++= Seq(%%("scalamockScalatest") % "tut"), + scalacOptions in Tut ~= (_ filterNot Set("-Ywarn-unused-import", "-Xlint").contains) + ) + .enablePlugins(MicrositesPlugin) diff --git a/docs/src/main/resources/microsite/data/menu.yml b/docs/src/main/resources/microsite/data/menu.yml new file mode 100644 index 000000000..c32fecb03 --- /dev/null +++ b/docs/src/main/resources/microsite/data/menu.yml @@ -0,0 +1,24 @@ +options: + - title: Core concepts + url: docs/rpc/core-concepts + + - title: Streaming + url: docs/rpc/streaming + + - title: Annotations + url: docs/rpc/annotations + + - title: IDL Generation + url: docs/rpc/idl-generation + + - title: Patterns + url: docs/rpc/patterns + + - title: SSL/TLS + url: docs/rpc/ssl-tls + + - title: Metrics Reporting + url: docs/rpc/metrics-reporting + + - title: References + url: docs/rpc/references \ No newline at end of file diff --git a/docs/src/main/resources/microsite/img/third_icon.png b/docs/src/main/resources/microsite/img/third_icon.png new file mode 100644 index 000000000..2d149ec99 Binary files /dev/null and b/docs/src/main/resources/microsite/img/third_icon.png differ diff --git a/docs/src/main/resources/microsite/img/third_icon2x.png b/docs/src/main/resources/microsite/img/third_icon2x.png new file mode 100644 index 000000000..83f267618 Binary files /dev/null and b/docs/src/main/resources/microsite/img/third_icon2x.png differ diff --git a/docs/src/main/tut/README.md b/docs/src/main/tut/README.md deleted file mode 100644 index e852228eb..000000000 --- a/docs/src/main/tut/README.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -title: RPC -permalink: /docs/rpc ---- - -# Freestyle-RPC - -[RPC] atop **Freestyle** is **`frees-rpc`**. - -Freestyle RPC is a purely functional library for building RPC endpoint-based services with support for [RPC] and [HTTP/2]. - -## Sections - -* [Quickstart](/docs/rpc/quickstart) -* [Core concepts](/docs/rpc/core-concepts) -* [Streaming](/docs/rpc/streaming) -* [Annotations](/docs/rpc/annotations) -* [IDL Generation](/docs/rpc/idl-generation) -* [Patterns](/docs/rpc/patterns) -* [SSL/TLS Generation](/docs/rpc/ssl-tls) -* [Metrics Reporting](/docs/rpc/metrics-reporting) -* [References](/docs/rpc/references) - -[RPC]: https://en.wikipedia.org/wiki/Remote_procedure_call -[HTTP/2]: https://http2.github.io/ -[gRPC]: https://grpc.io/ -[frees-rpc]: https://github.com/frees-io/freestyle-rpc -[Java gRPC]: https://github.com/grpc/grpc-java -[JSON]: https://en.wikipedia.org/wiki/JSON -[gRPC guide]: https://grpc.io/docs/guides/ -[@tagless algebra]: http://frees.io/docs/core/algebras/ -[PBDirect]: https://github.com/btlines/pbdirect -[scalamacros]: https://github.com/scalamacros/paradise -[Monix]: https://monix.io/ -[cats-effect]: https://github.com/typelevel/cats-effect -[Metrifier]: https://github.com/47deg/metrifier diff --git a/docs/src/main/tut/quickstart.md b/docs/src/main/tut/index.md similarity index 93% rename from docs/src/main/tut/quickstart.md rename to docs/src/main/tut/index.md index 23762a6e8..173152635 100644 --- a/docs/src/main/tut/quickstart.md +++ b/docs/src/main/tut/index.md @@ -1,7 +1,10 @@ --- -layout: docs -title: Quickstart -permalink: /docs/rpc/quickstart +layout: home +title: Home +technologies: + - first: ["Scala", "Frees-rpc library is completely written in Scala."] + - second: ["gRPC", "Frees-rpc combines RPC protocols, services and clients thank to gRPC framework."] + - third: ["Functional Programming", "frees-rpc is a purely functional library for building RPC endpoint based services."] --- # Quickstart diff --git a/docs/src/main/tut/references.md b/docs/src/main/tut/references.md index 9c141a02e..3c0757733 100644 --- a/docs/src/main/tut/references.md +++ b/docs/src/main/tut/references.md @@ -10,7 +10,7 @@ permalink: /docs/rpc/references * [RPC](https://en.wikipedia.org/wiki/Remote_procedure_call) * [gRPC](https://grpc.io/) * [Protocol Buffers Docs](https://developers.google.com/protocol-buffers/docs/overview) -* [scalamacros]: https://github.com/scalamacros/paradise +* [scalamacros](https://github.com/scalamacros/paradise) * [PBDirect](https://github.com/btlines/pbdirect) * [ScalaPB](https://scalapb.github.io/) * [Monix](https://monix.io) @@ -27,7 +27,7 @@ This is not specifically about [frees-rpc]. Very often our microservices archite ## Next Steps -If you want to delve deeper into [frees-rpc], we have a complete example at the [examples](/modules/examples) module, which is based on the [Route Guide Demo](https://grpc.io/docs/tutorials/basic/java.html#generating-client-and-server-code) originally shared by the [gRPC Java Project](https://github.com/grpc/grpc-java/tree/6ea2b8aacb0a193ac727e061bc228b40121460e3/examples/src/main/java/io/grpc/examples/routeguide). +If you want to delve deeper into [frees-rpc], we have a complete example at the [examples] module, which is based on the [Route Guide Demo](https://grpc.io/docs/tutorials/basic/java.html#generating-client-and-server-code) originally shared by the [gRPC Java Project](https://github.com/grpc/grpc-java/tree/6ea2b8aacb0a193ac727e061bc228b40121460e3/examples/src/main/java/io/grpc/examples/routeguide). [RPC]: https://en.wikipedia.org/wiki/Remote_procedure_call [HTTP/2]: https://http2.github.io/ @@ -42,3 +42,4 @@ If you want to delve deeper into [frees-rpc], we have a complete example at the [Monix]: https://monix.io/ [cats-effect]: https://github.com/typelevel/cats-effect [Metrifier]: https://github.com/47deg/metrifier +[examples]: https://github.com/frees-io/freestyle-rpc/tree/master/modules/examples diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index 12c209798..9219a0650 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -1,5 +1,7 @@ +import com.typesafe.sbt.site.jekyll.JekyllPlugin.autoImport._ import freestyle.FreestylePlugin import freestyle.FreestylePlugin.autoImport._ +import microsites.MicrositeKeys._ import sbt.Keys._ import sbt.ScriptedPlugin.autoImport._ import sbt._ @@ -210,10 +212,15 @@ object ProjectPlugin extends AutoPlugin { } ) - lazy val docsSettings = Seq( - // Pointing to https://github.com/frees-io/freestyle/tree/master/docs/src/main/tut/docs/rpc - tutTargetDirectory := baseDirectory.value.getParentFile.getParentFile / "docs" / "src" / "main" / "tut" / "docs" / "rpc", - libraryDependencies ++= Seq(%%("scalamockScalatest") % "tut") + lazy val freesMicrositeSettings = Seq( + micrositeName := "Frees-rpc", + micrositeDescription := "A purely functional library for building RPC endpoint-based services", + micrositeDocumentationUrl := "/docs/rpc/core-concepts.html", + micrositeGithubOwner := "frees-io", + micrositeGithubRepo := "freestyle-rpc", + micrositeGitterChannelUrl := "47deg/freestyle", + micrositeOrganizationHomepage := "http://www.47deg.com", + includeFilter in Jekyll := "*.html" | "*.css" | "*.png" | "*.jpg" | "*.gif" | "*.js" | "*.swf" | "*.md" ) } diff --git a/project/plugins.sbt b/project/plugins.sbt index 7ec215f6d..2e020086e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,8 +1,9 @@ resolvers += Resolver.sonatypeRepo("releases") resolvers += Resolver.sonatypeRepo("snapshots") -addSbtPlugin("io.frees" % "sbt-freestyle" % "0.3.23") -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.8.0") -addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.3.4") +addSbtPlugin("io.frees" % "sbt-freestyle" % "0.3.23") +addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.8.0") +addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.3.4") +addSbtPlugin("com.47deg" % "sbt-microsites" % "0.7.23") libraryDependencies += "org.scala-sbt" %% "scripted-plugin" % sbtVersion.value