Giter Club home page Giter Club logo

lagom.github.io's Introduction

Lagom website

This project is responsible for generating the Lagom website.

The Lagom website is a static website deployed to GitHub pages that is generated from this project. This project uses twirl for templating, along with sbt-web to process web assets and webjar for dependencies.

The documentation is generated from the lagom main project as unstyled HTML snippets, along with javadocs/scaladocs, and an index file that describes the navigation structure of the documentation. Each time the website is generated, the documentation pages are recreated from these HTML snippets, allowing the layout and styling to be kept up to date, and allowing links between versions of the documentation.

Project layout

- src
  - blog - each markdown file in here gets converted to a blog post
  - docs
    - 1.0.x - the documentation for each version of Lagom
      - index.json - the index for this version of the docs
      - api - api docs
  - main
    - markdown - each file in here gets served as a web page
    - twirl - twirl templates for the documentation
    - assets - compiled assets, eg, stylus stylesheets
    - public - static assets, eg images
    - scala - the Scala source code that actually does the documentation generation

Developing the website

Due to bintray being shutdown, some of the dependencies of this build are not available for download from anywhere. The easiest way to address this is build them locally:

git clone https://github.com/lightbend/lightbend-markdown.git
cd lightbend-markdown
git checkout v1.7.0
sbt publishLocal

A static version of the website can be generated by running sbt webStage. This will output the entire website to the target/web/stage directory. You should start a simple HTTP server from here to serve the docs, eg using python -m http.server. The sbt ~web-stage command can be used to tell sbt to watch for changes and rebuild the site whenever anything changes.

For convenience, sbt run does the above for you, starting a static Akka HTTP server in the stage directory, and then watching the filesystem for changes and rebuilding the site whenever it changes.

Troubleshooting

This projects requires Node 12.x (currently the latest LTS) installed. Using newer versions is known to be the cause of issues (see #229). Use nvm (https://github.com/nvm-sh/nvm) to make sure what node version you are using:

nvm install --lts

Deploying the documentation

A new version of the markdown docs can be generated by running sbt markdownGenerateAllDocumentation in the docs directory of the main Lagom project, this outputs the documentation to docs/target/markdown-generated-docs. This can be then copied into the corresponding src/docs/<version> directory in this project.

A new version of the API docs can be generated by running sbt unidoc in the main Lagom project. This will output the javadocs in target/javaunidoc, which can then be copied into the corresponding src/docs/<version>/api/java directory in this project.

Writing blog posts

Lagom uses a format similar to Jekyll for writing blog posts. Blog posts are written in markdown, prefixed with a front matter in YAML format. To create a new blog post, copy the src/blog/_template.md file to a new file in the same directory. The name of the file should match the URL that you want it served at, so for example, if you want it to be served at blog/my-blog-post.html, it should be in src/blog/my-blog-post.md.

Edit the front matter to suit your needs. The title and date fields are compulsory. The author_github, if provided, will be used by the website generator to lookup the author details from GitHub, including the name, URL and Avatar of the author. These can all be overridden, and must be provided manually if no GitHub username is provided, using the author_name, author_url and author_avatar fields.

The tags field can be used to specify a space separated list of tags. Multi-word tags can be configured by separating the words with a + symbol. The summary field can be used to provide a summary, this is what's displayed on the blog index page as well as on the tag index pages, and it will be markdown rendered. Usually it will simply be the first paragraph of the blog post.

The remainder of the file is the blog post. You can preview your blog post by following the Developing the website instructions above.

Search

Search is powered by Algolia. Currently, James Roper and Renato Cavalcanti have access to the configuration for it.

lagom.github.io's People

Contributors

agemooij avatar dwijnand avatar ennru avatar ignasi35 avatar ihostage avatar jroper avatar justinpihony avatar lutzh avatar marcospereira avatar mergify[bot] avatar octonato avatar raboof avatar rasummer avatar rstento avatar theoliverwhite avatar yannickdeturck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lagom.github.io's Issues

Restore cross-searching

Starting sometime around mid-september 2020, the search box in lagomframework.com stopped returning results. Inspecting with the JS console on the browser pointed to a 403 status response from the Algolia servers.

The temporary fix in #232 disables cross-search (searching across multiple algolia indices) under the assumption that Algolia implemented more restrictive permissions. The problem is that Akka, Play and Lagom websites are indexed separately by Algolia and each of the sites uses different credentials to query the indices. So, the cross-search implementation in lagomframework.com would send multiple search queries to gather results from all three indices at once. Each query was supposedly built and run using the correct credentials for each index. Apparently only the lagom credentials were being used.

I suspect that in order to restore cross-searching the implementation needs to clearly separate any query to Algolia to use a single index on each request. This will require some rework on our end in order to gather and reorder results depending on what index the results were found on.

Refs https://discuss.lightbend.com/t/documentation-search-does-not-work/7249

Lagom Documentation Code Samples not always scrollable horizontally on a phone

Code listings on the documentation page are able to be scrolled horizontally only when the code listing is on the bottom section of the screen. Once they are on the middle or top part of the screen, code listings fail to scroll horizontally.
I tried to do a remote debugging on the device, but when inspecting, the problem is not reproducible.

Browser: Chrome 49.0.2623.91
OS: Android 4.4.2

Adjust top-level nav "Get Started" to "Try Lagom"

In the usability studies we conducted, there was a bit of confusion over the "Get Started" tab in the nav bar. Some users were looking for "Download", (which was the tab name before, but also caused confusion). Also, lightbend.com is going to change their button to say "Try Lagom" so this issue is to change "Get Started" to "Try Lagom" and see if that helps new visitors navigate more easily.

[Proposal] Promote misc content to it's own section

There's a few links on the Community Content section but that's a bit out of reach or unnaturally located. We should extract Community Content from under the Documentation index and put it into it's own page.

The proposal is to have an index including:

  • out in the wild blog posts, videos, etc... as we have now.
  • get rid of the Community part in the name and merge community and lightbend provided contents (aka, conference recordings, slides of talks, etc...)
  • an index of Lagom recipes linking back to the recipes repository

I think this new page would still be part of the Documentation section so it won't need a new item in the Nav bar at the top. Then, I would add a subsection with two or three items in the Documentation side menu.

screen_shot_2018-06-01_at_09_46_10

WDYT?
(cc @rstento)

Prefer "-Dsbt.version=0.13.13" to avoid sbt version issues

When running sbt new lagom/lagom-scala.g8 a version 0.13.13+ of the local sbt launcher is required. This implies we must tell users to upgrade.

Alternatively we could suggest using the command sbt new -Dsbt.version=0.13.13 lagom/lagom-scala.g8 (or lagom-scala.g8), that would also lift the need to bump the version of the user's sbt launcher.

Highlight links in monospaced text

In the documentation theme, the style for monospace text (wrapped in backticks) overrides the style for links, so there is no visual indication that certain code references are linked.

As an example, look at the first reference to JdbcSession in the Relational Database Read-Side support page:

jdbc-session-screen-shot

You can't tell by looking, but the first JdbcSession is a link to the Javadocs, while the second is not linked. Readers may miss the links to API documentation that are common through the documentation, because they don't look like links.

We can fix this by changing the CSS so that monospace text no longer overrides the font weight and color. Here's what it looks like when I disable those CSS rules in my browser's inspector:

jdbc-session-screen-shot-fixed

Note that we'll need to fix both the theme in this project (for the website build) and the development theme in lagom/lagom.

Update Scala instructions to use Tech Hub

The Tech Hub Project Starter creates a project from the Lagom G8 template, includes a distribution sbt, and compresses the file. This is simpler for the user because they do not need to install sbt separately. The Try Lagom >Scala flow should be updated to this simpler flow.

Running sbt run fails without running web-stage first

Error

java.io.IOException: Cannot run program "python" (in directory "/Users/tmoore/Projects/lagom.github.io/target/web/stage"): error=2, No such file or directory

Reproduction

rm -r target && sbt run

Workaround

sbt web-stage run

Invalid padding of list item in certain situations.

As mentioned in https://github.com/lagom/lagom/pull/516/files#r102375824 there's certain situations in which list items will use the wrong padding.

I tried to nail down the issue but the rules to generate the HTML seem a bit more complex than I anticipated. I used the markdown:

After working through "Getting started with Lagom", follow the path that make the most sense to you:

* single item list (uses smaller font, padding underneath comes from ul-tag):

A separator paragraph, lorem ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

* single item list with nested list (uses smaller font and no padding:
    * asdf
    * asdf
    * asdf

A separator paragraph, lorem ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

* first item of a list with nested list (uses bigger font and padding, ¿both from p-tag?):
    * [[Import an existing Maven project into Eclipse|EclipseMavenInt]]
    * [[Create a new Eclipse project using the Lagom Maven archetype|EclipseMavenNew]]
    * [[Import an existing sbt build into Eclipse|EclipseSbt]]

* second item of a list with nested list (uses bigger font and padding, ¿both from p-tag?):
    * [[Import an existing Maven project into Intellij|intellijMaven]]
    * [[Import an existing sbt build into Intellij|IntellijSbtJava]]

* last item of a list (uses bigger font, why?)

Which creates the page:

screen shot 2017-02-22 at 14 24 19

Addd SQLServer and couhcbase on FAQ page

FAQ doesn't list all supported DBs.

No, Lagom supports using either Cassandra or relational databases, including MySQL, PostgreSQL, Oracle and H2. The Lagom development environment provides and uses Cassandra by default because it offers great scalability and replication features. See more in the Java documentation or the Scala documentation.

Can't run "sbt webStage"

Trying to run sbt webStage locally fails with :

[error] internal/fs/utils.js:701
[error]     throw new ERR_INVALID_ARG_TYPE(
[error]     ^
[error]
[error] TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Object
[error]     at Object.writeFileSync (fs.js:1409:5)

(full stack trace below)

Environment:

$ node --version
v14.11.0

$ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)

$ alias sbt
sbt=sbtx

I also checked in vegemite (the build machine publishing the site nightly), where no error is reported yet:

$ node --version
v11.1.0

$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
Full output
sbt webStage
[info] Loading settings for project global-plugins from dependencyGraph.sbt ...
[info] Loading global plugins from /Users/ignasi/.sbt/1.0/plugins
[info] Loading settings for project template-build from plugins.sbt ...
[info] Loading project definition from /Users/ignasi/git/github/lagom/lagom.github.io/template/project
[info] Loading settings for project lagom-docs from build.sbt ...
[info] Set current project to lagom-docs (in build file:/Users/ignasi/git/github/lagom/lagom.github.io/template/)
[info] Updating ...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Compiling 36 Scala sources to /Users/ignasi/git/github/lagom/lagom.github.io/template/target/scala-2.12/classes ...
[info] Stylus compiling on 1 source(s)
[error] (node:60762) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
[error] (Use `node --trace-warnings ...` to show where the warning was created)
[error] (node:60762) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
[error] (node:60762) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
[error] (node:60762) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
[error] (node:60762) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
[error] (node:60762) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
[info] Optimizing 1 JavaScript(s) with Uglify
[error] WARN: Collapsing variable iOS [main.js:9,11]
[error] internal/fs/utils.js:701
[error]     throw new ERR_INVALID_ARG_TYPE(
[error]     ^
[error]
[error] TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Object
[error]     at Object.writeFileSync (fs.js:1409:5)
[error]     at done (/Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:516:20)
[error]     at cb (/Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:324:39)
[error]     at /Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:391:9
[error]     at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3) {
[error]   code: 'ERR_INVALID_ARG_TYPE'
[error] }
[info] Done compiling.
[info] Packaging /Users/ignasi/git/github/lagom/lagom.github.io/template/target/scala-2.12/lagom-docs_2.12-0.1.0-SNAPSHOT.jar ...
[info] Done packaging.
[info] Running com.lightbend.lagom.docs.DocumentationGenerator /Users/ignasi/git/github/lagom/lagom.github.io/template/target/web/generated-html /Users/ignasi/git/github/lagom/lagom.github.io/template/src/docs /Users/ignasi/git/github/lagom/lagom.github.io/template/src/main/markdown /Users/ignasi/git/github/lagom/lagom.github.io/template/src/blog 915635b767f34655325b4ad249b57fa06ba4b6fe
[error] com.typesafe.sbt.jse.SbtJsTask$JsTaskFailure: WARN: Collapsing variable iOS [main.js:9,11]
[error] internal/fs/utils.js:701
[error]     throw new ERR_INVALID_ARG_TYPE(
[error]     ^
[error]
[error] TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Object
[error]     at Object.writeFileSync (fs.js:1409:5)
[error]     at done (/Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:516:20)
[error]     at cb (/Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:324:39)
[error]     at /Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:391:9
[error]     at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3) {
[error]   code: 'ERR_INVALID_ARG_TYPE'
[error] }
[error]
[error] 	at com.typesafe.sbt.jse.SbtJsTask$.$anonfun$executeJsOnEngine$1(SbtJsTask.scala:218)
[error] 	at scala.util.Success.$anonfun$map$1(Try.scala:251)
[error] 	at scala.util.Success.map(Try.scala:209)
[error] 	at scala.concurrent.Future.$anonfun$map$1(Future.scala:288)
[error] 	at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
[error] 	at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
[error] 	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
[error] 	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
[error] 	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[error] 	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[error] 	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[error] 	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
[error] (webPipeline) com.typesafe.sbt.jse.SbtJsTask$JsTaskFailure: WARN: Collapsing variable iOS [main.js:9,11]
[error] internal/fs/utils.js:701
[error]     throw new ERR_INVALID_ARG_TYPE(
[error]     ^
[error]
[error] TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Object
[error]     at Object.writeFileSync (fs.js:1409:5)
[error]     at done (/Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:516:20)
[error]     at cb (/Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:324:39)
[error]     at /Users/ignasi/git/github/lagom/lagom.github.io/template/project/target/node-modules/webjars/uglify-js/bin/uglifyjs:391:9
[error]     at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3) {
[error]   code: 'ERR_INVALID_ARG_TYPE'
[error] }
[error] Total time: 21 s, completed Sep 21, 2020 4:01:27 PM

Add community videos

There are a few videos of community users and hobbyists introducing Lagom in general or concepts Lagom uses in particular.

We could have a section on the community content page including those.

Some links I found on a quick youtube search:

There are a few more presentation by LB employees too:

Add "current" and "latest" documentation trees

  • current should be a mirror of the current stable version, allowing for a permanent link to the current version of a documentation page (assuming no page name changes)
  • latest can always build from master, allowing us to preview changes that are merged to master but not yet part of an explicitly versioned tree

Remove invalid `Icon\r` files

As attempted by @TimMoore in 52be306 we have to remove 3 weird files (0-byte, CR reserved char on the filename).

Those are rebuilt nightly by vegemite so we'd have to get this solved in the core repo or the build machine (?).

Update Java sbt instructions to use Tech Hub

The Tech Hub Project Starter creates a project from the Lagom G8 template, includes a distribution sbt, and compresses the file. This is simpler for the user because they do not need to install sbt separately. The Try Lagom >Java flow should be updated to this simpler flow.

Upgrade project to sbt 1.0

Bumping the sbt version will allow using newer AkkaHTTp instead of

libraryDependencies += "com.typesafe.akka" % "akka-http-experimental_2.10" % "2.0.4"

Minor changes to Home page

We want visitors to be more aware of Lightbend and have links to learn more about Akka and Play and our commercial offerings.

Please document withAutoACL

In reference to my post on gitter. Please document with AutoACL

@orefalo I can’t find it in the doc, so I guess we forgot about it. Please, file a ticket. In a nutshell, by default services’ endpoints are NOT exposed to the service gateway (and are not accessible to the outside world when running in production). If you want all endpoints of a service to be expose, you can do so with Descriptor#withAutoACL(true). If you want a single endpoint to be exposed, you can call withAutoACL(true) on the endpoint definition.

Sincerely,

Add an FAQ page to the website

Although it is good to incorporate answers to frequently asked questions in the documentation, there is a benefit to having an FAQ that captures the language used by our target audience.

resolver errors (uses http)

[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/com/fasterxml/oss-parent/12/oss-parent-12.jar

Full output:

[info] Loading global plugins from /Users/marcospereira/.sbt/0.13/plugins
[info] Updating {file:/Users/marcospereira/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Loading project definition from /Users/marcospereira/Projects/lagom/lagom.github.io/project
[info] Updating {file:/Users/marcospereira/Projects/lagom/lagom.github.io/project/}lagom-github-io-build...
[info] Resolving com.fasterxml#oss-parent;12 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/com/fasterxml/oss-parent/12/oss-parent-12.jar
[info] Resolving com.fasterxml#oss-parent;11 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/com/fasterxml/oss-parent/11/oss-parent-11.jar
[info] Resolving org.iq80.leveldb#leveldb-project;0.5 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/org/iq80/leveldb/leveldb-project/0.5/leveldb-project-0.5.jar
[info] Resolving org.sonatype.oss#oss-parent;7 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/com/google/guava/guava-parent/12.0/guava-parent-12.0.jar
[info] Resolving org.fusesource#fusesource-pom;1.9 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/org/fusesource/leveldbjni/leveldbjni-project/1.7/leveldbjni-project-1.7.jar
[info] Resolving org.fusesource#fusesource-pom;1.9 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/org/fusesource/hawtjni/hawtjni-project/1.8/hawtjni-project-1.8.jar
[info] Resolving org.fusesource#fusesource-pom;1.9 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/org/fusesource/leveldbjni/leveldbjni-project/1.5/leveldbjni-project-1.5.jar
[info] Resolving org.sonatype.oss#oss-parent;7 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/io/apigee/trireme/trireme/0.8.5/trireme-0.8.5.jar
[info] Resolving io.apigee.trireme#trireme;0.8.5 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/io/apigee/trireme/trireme-node10/0.8.5/trireme-node10-0.8.5.jar
[info] Resolving org.slf4j#slf4j-parent;1.7.12 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-parent/1.7.12/slf4j-parent-1.7.12.jar
[info] Resolving com.typesafe#jstranspiler;1.0.0 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/com/typesafe/jstranspiler/1.0.0/jstranspiler-1.0.0.pom
[warn] 	module not found: com.typesafe#jstranspiler;1.0.0
[warn] ==== typesafe-ivy-releases: tried
[warn]   https://repo.typesafe.com/typesafe/ivy-releases/com.typesafe/jstranspiler/1.0.0/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn]   https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe/jstranspiler/1.0.0/ivys/ivy.xml
[warn] ==== local: tried
[warn]   /Users/marcospereira/.ivy2/local/com.typesafe/jstranspiler/1.0.0/ivys/ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/typesafe/jstranspiler/1.0.0/jstranspiler-1.0.0.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   /Users/marcospereira/.sbt/preloaded/com.typesafe/jstranspiler/1.0.0/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:////Users/marcospereira/.sbt/preloaded/com/typesafe/jstranspiler/1.0.0/jstranspiler-1.0.0.pom
[warn] ==== Typesafe Releases Repository: tried
[warn]   http://repo.typesafe.com/typesafe/releases/com/typesafe/jstranspiler/1.0.0/jstranspiler-1.0.0.pom
[info] Resolving org.sonatype.oss#oss-parent;7 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/org/webjars/when-parent/3.2.2/when-parent-3.2.2.jar
[info] Resolving net.ground5hark.sbt#sbt-concat;0.1.8 ...
[error] Server access Error: Connection refused (Connection refused) url=http://repo.typesafe.com/typesafe/releases/net/ground5hark/sbt/sbt-concat/0.1.8/sbt-concat-0.1.8.jar
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] downloading https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-twirl/scala_2.10/sbt_0.13/1.1.1/jars/sbt-twirl.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.sbt#sbt-twirl;1.1.1!sbt-twirl.jar (1162ms)
[info] downloading https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.10/sbt_0.13/1.3.0/jars/sbt-web.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.sbt#sbt-web;1.3.0!sbt-web.jar (1313ms)
[info] downloading https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-js-engine/scala_2.10/sbt_0.13/1.1.3/jars/sbt-js-engine.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.sbt#sbt-js-engine;1.1.3!sbt-js-engine.jar (1061ms)
[info] downloading https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-stylus/scala_2.10/sbt_0.13/1.0.1/jars/sbt-stylus.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.sbt#sbt-stylus;1.0.1!sbt-stylus.jar (818ms)
[info] downloading https://repo1.maven.org/maven2/net/ground5hark/sbt/sbt-concat_2.10_0.13/0.1.8/sbt-concat-0.1.8.jar ...
[info] 	[SUCCESSFUL ] net.ground5hark.sbt#sbt-concat;0.1.8!sbt-concat.jar (166ms)
[info] downloading https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-uglify/scala_2.10/sbt_0.13/1.0.3/jars/sbt-uglify.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.sbt#sbt-uglify;1.0.3!sbt-uglify.jar (794ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-http-experimental_2.10/2.0.4/akka-http-experimental_2.10-2.0.4.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-http-experimental_2.10;2.0.4!akka-http-experimental_2.10.jar (990ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/play/twirl-compiler_2.10/1.1.1/twirl-compiler_2.10-1.1.1.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.play#twirl-compiler_2.10;1.1.1!twirl-compiler_2.10.jar (112ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/play/twirl-api_2.10/1.1.1/twirl-api_2.10-1.1.1.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.play#twirl-api_2.10;1.1.1!twirl-api_2.10.jar (84ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/play/twirl-parser_2.10/1.1.1/twirl-parser_2.10-1.1.1.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.play#twirl-parser_2.10;1.1.1!twirl-parser_2.10.jar (150ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/webjars-locator/0.26/webjars-locator-0.26.jar ...
[info] 	[SUCCESSFUL ] org.webjars#webjars-locator;0.26!webjars-locator.jar (74ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/webjars-locator-core/0.26/webjars-locator-core-0.26.jar ...
[info] 	[SUCCESSFUL ] org.webjars#webjars-locator-core;0.26!webjars-locator-core.jar (84ms)
[info] downloading https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar ...
[info] 	[SUCCESSFUL ] com.fasterxml.jackson.core#jackson-databind;2.3.3!jackson-databind.jar(bundle) (341ms)
[info] downloading https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar ...
[info] 	[SUCCESSFUL ] com.fasterxml.jackson.core#jackson-annotations;2.3.0!jackson-annotations.jar(bundle) (75ms)
[info] downloading https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.3.3/jackson-core-2.3.3.jar ...
[info] 	[SUCCESSFUL ] com.fasterxml.jackson.core#jackson-core;2.3.3!jackson-core.jar(bundle) (116ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/jse_2.10/1.1.2/jse_2.10-1.1.2.jar ...
[info] 	[SUCCESSFUL ] com.typesafe#jse_2.10;1.1.2!jse_2.10.jar (113ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/npm_2.10/1.1.1/npm_2.10-1.1.1.jar ...
[info] 	[SUCCESSFUL ] com.typesafe#npm_2.10;1.1.1!npm_2.10.jar (95ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-contrib_2.10/2.3.11/akka-contrib_2.10-2.3.11.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-contrib_2.10;2.3.11!akka-contrib_2.10.jar (252ms)
[info] downloading https://repo1.maven.org/maven2/io/apigee/trireme/trireme-core/0.8.5/trireme-core-0.8.5.jar ...
[info] 	[SUCCESSFUL ] io.apigee.trireme#trireme-core;0.8.5!trireme-core.jar (181ms)
[info] downloading https://repo1.maven.org/maven2/io/apigee/trireme/trireme-node10src/0.8.5/trireme-node10src-0.8.5.jar ...
[info] 	[SUCCESSFUL ] io.apigee.trireme#trireme-node10src;0.8.5!trireme-node10src.jar (223ms)
[info] downloading https://repo1.maven.org/maven2/io/spray/spray-json_2.10/1.3.2/spray-json_2.10-1.3.2.jar ...
[info] 	[SUCCESSFUL ] io.spray#spray-json_2.10;1.3.2!spray-json_2.10.jar(bundle) (137ms)
[info] downloading https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar ...
[info] 	[SUCCESSFUL ] org.slf4j#slf4j-simple;1.7.12!slf4j-simple.jar (78ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-remote_2.10/2.3.11/akka-remote_2.10-2.3.11.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-remote_2.10;2.3.11!akka-remote_2.10.jar (391ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-cluster_2.10/2.3.11/akka-cluster_2.10-2.3.11.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-cluster_2.10;2.3.11!akka-cluster_2.10.jar (483ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-persistence-experimental_2.10/2.3.11/akka-persistence-experimental_2.10-2.3.11.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-persistence-experimental_2.10;2.3.11!akka-persistence-experimental_2.10.jar (319ms)
[info] downloading https://repo1.maven.org/maven2/io/netty/netty/3.8.0.Final/netty-3.8.0.Final.jar ...
[info] 	[SUCCESSFUL ] io.netty#netty;3.8.0.Final!netty.jar(bundle) (307ms)
[info] downloading https://repo1.maven.org/maven2/org/uncommons/maths/uncommons-maths/1.2.2a/uncommons-maths-1.2.2a.jar ...
[info] 	[SUCCESSFUL ] org.uncommons.maths#uncommons-maths;1.2.2a!uncommons-maths.jar (76ms)
[info] downloading https://repo1.maven.org/maven2/org/iq80/leveldb/leveldb/0.5/leveldb-0.5.jar ...
[info] 	[SUCCESSFUL ] org.iq80.leveldb#leveldb;0.5!leveldb.jar (109ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-all/1.7/leveldbjni-all-1.7.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-all;1.7!leveldbjni-all.jar(bundle) (352ms)
[info] downloading https://repo1.maven.org/maven2/org/iq80/leveldb/leveldb-api/0.5/leveldb-api-0.5.jar ...
[info] 	[SUCCESSFUL ] org.iq80.leveldb#leveldb-api;0.5!leveldb-api.jar (102ms)
[info] downloading https://repo1.maven.org/maven2/com/google/guava/guava/12.0/guava-12.0.jar ...
[info] 	[SUCCESSFUL ] com.google.guava#guava;12.0!guava.jar (400ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni/1.7/leveldbjni-1.7.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni;1.7!leveldbjni.jar (95ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-osx/1.5/leveldbjni-osx-1.5.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-osx;1.5!leveldbjni-osx.jar (105ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-linux32/1.5/leveldbjni-linux32-1.5.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-linux32;1.5!leveldbjni-linux32.jar (117ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-linux64/1.5/leveldbjni-linux64-1.5.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-linux64;1.5!leveldbjni-linux64.jar (118ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-win32/1.5/leveldbjni-win32-1.5.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-win32;1.5!leveldbjni-win32.jar (109ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-win64/1.5/leveldbjni-win64-1.5.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-win64;1.5!leveldbjni-win64.jar (121ms)
[info] downloading https://repo1.maven.org/maven2/org/fusesource/hawtjni/hawtjni-runtime/1.8/hawtjni-runtime-1.8.jar ...
[info] 	[SUCCESSFUL ] org.fusesource.hawtjni#hawtjni-runtime;1.8!hawtjni-runtime.jar (84ms)
[info] downloading https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar ...
[info] 	[SUCCESSFUL ] org.slf4j#slf4j-api;1.7.12!slf4j-api.jar (102ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/npm/2.11.2/npm-2.11.2.jar ...
[info] 	[SUCCESSFUL ] org.webjars#npm;2.11.2!npm.jar (655ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/mkdirp/0.3.5/mkdirp-0.3.5.jar ...
[info] 	[SUCCESSFUL ] org.webjars#mkdirp;0.3.5!mkdirp.jar (72ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/stylus/0.45.1/stylus-0.45.1.jar ...
[info] 	[SUCCESSFUL ] org.webjars#stylus;0.45.1!stylus.jar (173ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/stylus-nib/1.0.2-1/stylus-nib-1.0.2-1.jar ...
[info] 	[SUCCESSFUL ] org.webjars#stylus-nib;1.0.2-1!stylus-nib.jar (168ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/when-node/3.2.2/when-node-3.2.2.jar ...
[info] 	[SUCCESSFUL ] org.webjars#when-node;3.2.2!when-node.jar (74ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/debug/0.8.1/debug-0.8.1.jar ...
[info] 	[SUCCESSFUL ] org.webjars#debug;0.8.1!debug.jar (97ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/glob/4.0.2/glob-4.0.2.jar ...
[info] 	[SUCCESSFUL ] org.webjars#glob;4.0.2!glob.jar (94ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/sax/0.6.0/sax-0.6.0.jar ...
[info] 	[SUCCESSFUL ] org.webjars#sax;0.6.0!sax.jar (96ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/inherits/2.0.1/inherits-2.0.1.jar ...
[info] 	[SUCCESSFUL ] org.webjars#inherits;2.0.1!inherits.jar (179ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/minimatch/0.3.0/minimatch-0.3.0.jar ...
[info] 	[SUCCESSFUL ] org.webjars#minimatch;0.3.0!minimatch.jar (89ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/once/1.3.0/once-1.3.0.jar ...
[info] 	[SUCCESSFUL ] org.webjars#once;1.3.0!once.jar (171ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/lru-cache/2.5.0/lru-cache-2.5.0.jar ...
[info] 	[SUCCESSFUL ] org.webjars#lru-cache;2.5.0!lru-cache.jar (93ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/sigmund/1.0.0/sigmund-1.0.0.jar ...
[info] 	[SUCCESSFUL ] org.webjars#sigmund;1.0.0!sigmund.jar (101ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/uglifyjs/2.4.13/uglifyjs-2.4.13.jar ...
[info] 	[SUCCESSFUL ] org.webjars#uglifyjs;2.4.13!uglifyjs.jar (92ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/async/0.2.10/async-0.2.10.jar ...
[info] 	[SUCCESSFUL ] org.webjars#async;0.2.10!async.jar (129ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/optimist/0.3.7/optimist-0.3.7.jar ...
[info] 	[SUCCESSFUL ] org.webjars#optimist;0.3.7!optimist.jar (76ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/source-map/0.1.31-2/source-map-0.1.31-2.jar ...
[info] 	[SUCCESSFUL ] org.webjars#source-map;0.1.31-2!source-map.jar (79ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/wordwrap/0.0.2/wordwrap-0.0.2.jar ...
[info] 	[SUCCESSFUL ] org.webjars#wordwrap;0.0.2!wordwrap.jar (95ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/amdefine/0.1.0-1/amdefine-0.1.0-1.jar ...
[info] 	[SUCCESSFUL ] org.webjars#amdefine;0.1.0-1!amdefine.jar (86ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-http-core-experimental_2.10/2.0.4/akka-http-core-experimental_2.10-2.0.4.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-http-core-experimental_2.10;2.0.4!akka-http-core-experimental_2.10.jar (727ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-parsing-experimental_2.10/2.0.4/akka-parsing-experimental_2.10-2.0.4.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-parsing-experimental_2.10;2.0.4!akka-parsing-experimental_2.10.jar (295ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-stream-experimental_2.10/2.0.4/akka-stream-experimental_2.10-2.0.4.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-stream-experimental_2.10;2.0.4!akka-stream-experimental_2.10.jar (924ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.10/2.3.15/akka-actor_2.10-2.3.15.jar ...
[info] 	[SUCCESSFUL ] com.typesafe.akka#akka-actor_2.10;2.3.15!akka-actor_2.10.jar (520ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/ssl-config-akka_2.10/0.1.0/ssl-config-akka_2.10-0.1.0.jar ...
[info] 	[SUCCESSFUL ] com.typesafe#ssl-config-akka_2.10;0.1.0!ssl-config-akka_2.10.jar (134ms)
[info] downloading https://repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.10/0.1.0/ssl-config-core_2.10-0.1.0.jar ...
[info] 	[SUCCESSFUL ] com.typesafe#ssl-config-core_2.10;0.1.0!ssl-config-core_2.10.jar (134ms)
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	::          UNRESOLVED DEPENDENCIES         ::
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	:: com.typesafe#jstranspiler;1.0.0: not found
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] 	Note: Unresolved dependencies path:
[warn] 		com.typesafe:jstranspiler:1.0.0
[warn] 		  +- com.typesafe.sbt:sbt-stylus:1.0.1 (scalaVersion=2.10, sbtVersion=0.13) (/Users/marcospereira/Projects/lagom/lagom.github.io/project/plugins.sbt#L4-5)
[warn] 		  +- default:lagom-github-io-build:0.1-SNAPSHOT (scalaVersion=2.10, sbtVersion=0.13)
sbt.ResolveException: unresolved dependency: com.typesafe#jstranspiler;1.0.0: not found
	at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:313)
	at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:191)
	at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:168)
	at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:156)
	at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:156)
	at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:133)
	at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:57)
	at sbt.IvySbt$$anon$4.call(Ivy.scala:65)
	at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95)
	at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80)
	at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99)
	at xsbt.boot.Using$.withResource(Using.scala:10)
	at xsbt.boot.Using$.apply(Using.scala:9)
	at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60)
	at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50)
	at xsbt.boot.Locks$.apply0(Locks.scala:31)
	at xsbt.boot.Locks$.apply(Locks.scala:28)
	at sbt.IvySbt.withDefaultLogger(Ivy.scala:65)
	at sbt.IvySbt.withIvy(Ivy.scala:128)
	at sbt.IvySbt.withIvy(Ivy.scala:125)
	at sbt.IvySbt$Module.withModule(Ivy.scala:156)
	at sbt.IvyActions$.updateEither(IvyActions.scala:168)
	at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1439)
	at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1435)
	at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$90.apply(Defaults.scala:1470)
	at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$90.apply(Defaults.scala:1468)
	at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:37)
	at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1473)
	at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1467)
	at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:60)
	at sbt.Classpaths$.cachedUpdate(Defaults.scala:1490)
	at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1417)
	at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1369)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
	at sbt.std.Transform$$anon$4.work(System.scala:63)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.Execute.work(Execute.scala:237)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
[error] (*:update) sbt.ResolveException: unresolved dependency: com.typesafe#jstranspiler;1.0.0: not found

Rework downloads page

The downloads page needs to be reworked. It needs to provide a clean user experience for the following:

  • Helping the user understand what needs to be downloaded, what purpose those things serve
  • Helping the user understand what choices they have to make, eg choose between Maven/sbt, Scala/Java
  • Links to pre-bundled templates that can be downloaded and run with nothing but a JDK
  • A smooth transition from the downloads page into the Lagom installation and getting started documentation

pathCall() and restCall() cannot accept multi-value parameters

I would like to be able to bind multi-value parameters using pathCall() and restCall() as illustrated by the snippet below:

trait UserService extends Service {
    def lookupByUsername(tenantId: String, username: Seq[String])
    override final def descriptor = {
        import Service._
        named("users").withCalls {
            restCall(Method.GET, "/tenants/:tenantId/users?username", lookupByUsername _)
        } 
    }
}
curl http://localhost:9000/tenants/abcdef/users?username=ghijkl&username=mnopqr&username=stuvwx

Clicking a heading anchor scrolls the heading out of view

When you click the § section marker next to a heading, the heading is scrolled behind the fixed header at the top of the page.

This is handled correctly on the initial page load with an anchor, just not when interactively clicking one.

I'm pretty sure this worked correctly in the past and must have regressed recently.

Getting started steps for Java/Maven need update

Now that we have an option to download a project built using a Maven archetype from Tech Hub, the Java/Maven instructions need to be updated to parallel the Java/sbt and Scala/sbt instructions. Also, the introductory page needs minor edits.

Enhancement request: default search version

Currently when you search the doc, the 1.0 version of the docs is searched by default. You have to explicitly select a different version from the dropdown menu. The default version should probably be the latest stable release.

Also, when you move to a new page, the version goes back to 1.0. It would be nice to persist the selection until the visitor changes it. I almost think I'd like more of the functionality of radio buttons than of a dropdown, but that might be messy after many releases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.