diff --git a/core/codegen/src/lib.rs b/core/codegen/src/lib.rs index 9cb71742..bd5e82d8 100644 --- a/core/codegen/src/lib.rs +++ b/core/codegen/src/lib.rs @@ -249,7 +249,7 @@ macro_rules! route_attribute { /// /// If a data guard fails, the request is forwarded if the /// [`Outcome`] is `Forward` or failed if the [`Outcome`] is - /// `Failure`. See [`FromData` Outcomes] for further detail. + /// `Failure`. See [`FromData`] for further detail. /// /// If all validation succeeds, the decorated function is called. /// The returned value is used to generate a [`Response`] via the @@ -265,14 +265,13 @@ macro_rules! route_attribute { /// 3. A macro used by [`uri!`] to type-check and generate an /// [`Origin`]. /// - /// [`Handler`]: rocket::route::Handler + /// [`Handler`]: ../rocket/route/trait.Handler.html /// [`routes!`]: macro.routes.html /// [`uri!`]: macro.uri.html - /// [`Origin`]: rocket::http::uri::Origin - /// [`Outcome`]: rocket::outcome::Outcome - /// [`Response`]: rocket::Response - /// [`FromRequest` Outcomes]: rocket::request::FromRequest#outcomes - /// [`FromData` Outcomes]: rocket::data::FromData#outcomes + /// [`Origin`]: ../rocket/http/uri/struct.Origin.html + /// [`Outcome`]: ../rocket/outcome/enum.Outcome.html + /// [`Response`]: ../rocket/struct.Response.html + /// [`FromRequest` Outcomes]: ../rocket/request/trait.FromRequest.html#outcomes #[proc_macro_attribute] pub fn $name(args: TokenStream, input: TokenStream) -> TokenStream { emit!(attribute::route::route_attribute($method, args, input)) @@ -346,13 +345,13 @@ route_attribute!(options => Method::Options); /// name (the function's name) and status code from the route attribute or /// `None` if `default`. The handler is set to the generated handler. /// -/// [`&Request`]: rocket::Request -/// [`Status`]: rocket::http::Status -/// [`Handler`]: rocket::catcher::Handler +/// [`&Request`]: ../rocket/struct.Request.html +/// [`Status`]: ../rocket/http/struct.Status.html +/// [`Handler`]: ../rocket/catcher/trait.Handler.html /// [`catchers!`]: macro.catchers.html -/// [`Catcher`]: rocket::Catcher -/// [`Response`]: rocket::Response -/// [`Responder`]: rocket::Responder +/// [`Catcher`]: ../rocket/struct.Catcher.html +/// [`Response`]: ../rocket/struct.Response.html +/// [`Responder`]: ../rocket/response/trait.Responder.html #[proc_macro_attribute] pub fn catch(args: TokenStream, input: TokenStream) -> TokenStream { emit!(attribute::catch::catch_attribute(args, input)) @@ -540,8 +539,7 @@ pub fn launch(args: TokenStream, input: TokenStream) -> TokenStream { /// variant. In the example above, the the strings `"fourth"`, `"FOUrth"`, /// `"fiFTH"` and so on would parse as `MyValue::Third`. /// -/// [`FromFormField`]: rocket::form::FromFormField -/// [`FromFormField::Error`]: rocket::form::FromFormField::Error +/// [`FromFormField`]: ../rocket/form/trait.FromFormField.html #[proc_macro_derive(FromFormField, attributes(field))] pub fn derive_from_form_field(input: TokenStream) -> TokenStream { emit!(derive::from_form_field::derive_from_form_field(input)) @@ -941,9 +939,9 @@ pub fn derive_responder(input: TokenStream) -> TokenStream { /// the example above, the variant `Kind::String` will render with a value of /// `str`. /// -/// [`UriDisplay`]: ../rocket/http/uri/trait.UriDisplay.html -/// [`Formatter::write_named_value()`]: ../rocket/http/uri/struct.Formatter.html#method.write_named_value -/// [`Formatter::write_value()`]: ../rocket/http/uri/struct.Formatter.html#method.write_value +/// [`UriDisplay`]: ../rocket/http/uri/fmt/trait.UriDisplay.html +/// [`Formatter::write_named_value()`]: ../rocket/http/uri/fmt/struct.Formatter.html#method.write_named_value +/// [`Formatter::write_value()`]: ../rocket/http/uri/fmt/struct.Formatter.html#method.write_value #[proc_macro_derive(UriDisplayQuery, attributes(field))] pub fn derive_uri_display_query(input: TokenStream) -> TokenStream { emit!(derive::uri_display::derive_uri_display_query(input)) @@ -968,8 +966,8 @@ pub fn derive_uri_display_query(input: TokenStream) -> TokenStream { /// The derive generates an implementation of the [`UriDisplay`] trait. /// The implementation calls [`Formatter::write_value()`] for the field. /// -/// [`UriDisplay`]: ../rocket/http/uri/trait.UriDisplay.html -/// [`Formatter::write_value()`]: ../rocket/http/uri/struct.Formatter.html#method.write_value +/// [`UriDisplay`]: ../rocket/http/uri/fmt/trait.UriDisplay.html +/// [`Formatter::write_value()`]: ../rocket/http/uri/fmt/struct.Formatter.html#method.write_value #[proc_macro_derive(UriDisplayPath)] pub fn derive_uri_display_path(input: TokenStream) -> TokenStream { emit!(derive::uri_display::derive_uri_display_path(input)) @@ -1376,9 +1374,9 @@ pub fn catchers(input: TokenStream) -> TokenStream { /// [`Authority`]: ../rocket/http/uri/struct.Authority.html /// [`Absolute`]: ../rocket/http/uri/struct.Absolute.html /// [`Reference`]: ../rocket/http/uri/struct.Reference.html -/// [`FromUriParam`]: ../rocket/http/uri/trait.FromUriParam.html -/// [`UriDisplay`]: ../rocket/http/uri/trait.UriDisplay.html -/// [`Ignorable`]: ../rocket/http/uri/trait.Ignorable.html +/// [`FromUriParam`]: ../rocket/http/uri/fmt/trait.FromUriParam.html +/// [`UriDisplay`]: ../rocket/http/uri/fmt/trait.UriDisplay.html +/// [`Ignorable`]: ../rocket/http/uri/fmt/trait.Ignorable.html #[proc_macro] pub fn uri(input: TokenStream) -> TokenStream { emit!(bang::uri_macro(input)) diff --git a/core/http/src/uri/fmt/from_uri_param.rs b/core/http/src/uri/fmt/from_uri_param.rs index 51cd53da..76052153 100644 --- a/core/http/src/uri/fmt/from_uri_param.rs +++ b/core/http/src/uri/fmt/from_uri_param.rs @@ -22,9 +22,8 @@ use crate::uri::fmt::{self, Part}; /// * `impl<'x, P: Part> FromUriParam for T` /// * `impl<'x, P: Part> FromUriParam for T` /// -/// See [`impl_from_uri_param_identity`] for usage details. -/// -/// [`impl_from_uri_param_identity`]: ../macro.impl_from_uri_param_identity.html +/// See [`impl_from_uri_param_identity!`](crate::impl_from_uri_param_identity!) +/// for usage details. /// /// # Code Generation /// diff --git a/core/http/src/uri/fmt/uri_display.rs b/core/http/src/uri/fmt/uri_display.rs index 9be25518..c2d3514b 100644 --- a/core/http/src/uri/fmt/uri_display.rs +++ b/core/http/src/uri/fmt/uri_display.rs @@ -203,8 +203,8 @@ use crate::uri::fmt::{Part, Path, Query, Formatter}; /// details. /// /// [`Ignorable`]: crate::uri::fmt::Ignorable -/// [`UriDisplay`]: ../../derive.UriDisplayPath.html -/// [`UriDisplay`]: ../../derive.UriDisplayQuery.html +/// [`UriDisplay`]: ../../../derive.UriDisplayPath.html +/// [`UriDisplay`]: ../../../derive.UriDisplayQuery.html /// /// # Implementing /// diff --git a/core/http/src/uri/origin.rs b/core/http/src/uri/origin.rs index 466045d5..de29b167 100644 --- a/core/http/src/uri/origin.rs +++ b/core/http/src/uri/origin.rs @@ -400,7 +400,7 @@ impl<'a> Origin<'a> { /// Returns `true` if `self` is normalized. Otherwise, returns `false`. /// - /// See [Normalization](#normalization) for more information on what it + /// See [Normalization](Self#normalization) for more information on what it /// means for an origin URI to be normalized. Note that `uri!()` always /// normalizes static input. /// diff --git a/core/lib/src/response/stream/bytes.rs b/core/lib/src/response/stream/bytes.rs index 8aab6483..28da6c4d 100644 --- a/core/lib/src/response/stream/bytes.rs +++ b/core/lib/src/response/stream/bytes.rs @@ -55,7 +55,7 @@ use crate::response::stream::ReaderStream; pub struct ByteStream(pub S); impl From for ByteStream { - /// Creates a `ByteStream` from any [`S: Stream`](Stream). + /// Creates a `ByteStream` from any `S: Stream`. fn from(stream: S) -> Self { ByteStream(stream) } diff --git a/core/lib/src/response/stream/sse.rs b/core/lib/src/response/stream/sse.rs index 83856688..6b640b17 100644 --- a/core/lib/src/response/stream/sse.rs +++ b/core/lib/src/response/stream/sse.rs @@ -55,7 +55,7 @@ use crate::http::ContentType; /// appears only in the raw server-sent event data stream and is inaccessible by /// most clients. This includes JavaScript's `EventSource`. As such, they serve /// little utility beyond debugging a raw data stream and keeping a connection -/// alive. See [hearbeat](struct@EventStream#hearbeat) for information on +/// alive. See [hearbeat](struct@EventStream#heartbeat) for information on /// Rocket's `EventStream` keep-alive. /// /// # Fields diff --git a/core/lib/src/response/stream/text.rs b/core/lib/src/response/stream/text.rs index 7bd23fc3..df4eddad 100644 --- a/core/lib/src/response/stream/text.rs +++ b/core/lib/src/response/stream/text.rs @@ -56,7 +56,7 @@ use crate::response::stream::ReaderStream; pub struct TextStream(pub S); impl From for TextStream { - /// Creates a `TextStream` from any [`S: Stream`](Stream). + /// Creates a `TextStream` from any `S: Stream`. fn from(stream: S) -> Self { TextStream(stream) } diff --git a/core/lib/src/shield/policy.rs b/core/lib/src/shield/policy.rs index b63d5827..d0a88b12 100644 --- a/core/lib/src/shield/policy.rs +++ b/core/lib/src/shield/policy.rs @@ -780,8 +780,8 @@ pub enum Feature { Usb, /// The "web-share" feature. WebShare, - /// The "xr-spatial-tracking[2](#fn2)" feature. - XrSpatialtracking, + /// The "xr-spatial-tracking" feature. + XrSpatialTracking, // Proposed. @@ -856,7 +856,7 @@ impl Feature { SyncXhr => "sync-xhr", Usb => "usb", WebShare => "web-share", - XrSpatialtracking => "xr-spatial-tracking[2](#fn2)", + XrSpatialTracking => "xr-spatial-tracking", ClipboardRead => "clipboard-read", ClipboardWrite => "clipboard-write", diff --git a/site/guide/4-requests.md b/site/guide/4-requests.md index 98a858df..da07a535 100644 --- a/site/guide/4-requests.md +++ b/site/guide/4-requests.md @@ -699,7 +699,7 @@ async fn upload(mut file: TempFile<'_>) -> std::io::Result<()> { } ``` -[`TempFile`]: @api/rocket/fs/struct.TempFile.html +[`TempFile`]: @api/rocket/fs/enum.TempFile.html ### Streaming diff --git a/site/guide/5-responses.md b/site/guide/5-responses.md index fa7834d6..5a254cc2 100644 --- a/site/guide/5-responses.md +++ b/site/guide/5-responses.md @@ -300,11 +300,10 @@ async fn files(file: PathBuf) -> Result> { Some of Rocket's best features are implemented through responders. Among these are: - * [`Content`] - Used to override the Content-Type of a response. * [`NamedFile`] - Streams a file to the client; automatically sets the Content-Type based on the file's extension. * [`Redirect`] - Redirects the client to a different URI. - * [`Stream`] - Streams a response to a client from an arbitrary `Read`er type. + * [`content`] - Contains types that override the Content-Type a response. * [`status`] - Contains types that override the status code of a response. * [`Flash`] - Sets a "flash" cookie that is removed when accessed. * [`Json`] - Automatically serializes values into JSON. @@ -312,20 +311,22 @@ are: * [`Template`] - Renders a dynamic template using handlebars or Tera. [`status`]: @api/rocket/response/status/ +[`content`]: @api/rocket/response/content/ [`response`]: @api/rocket/response/ -[`NamedFile`]: @api/rocket/response/struct.NamedFile.html -[`Content`]: @api/rocket/response/struct.Content.html +[`NamedFile`]: @api/rocket/fs/struct.NamedFile.html [`Redirect`]: @api/rocket/response/struct.Redirect.html -[`Stream`]: @api/rocket/response/struct.Stream.html [`Flash`]: @api/rocket/response/struct.Flash.html [`MsgPack`]: @api/rocket/serde/msgpack/struct.MsgPack.html [`Template`]: @api/rocket_dyn_templates/struct.Template.html ### Async Streams -The [`stream`] responders allow serving potentially infinite async [`Stream`]s. +The [`stream`] responders allow serving potentially infinite [async `Stream`]s. A stream can be created from any async `Stream` or `AsyncRead` type, or via -generator syntax using the [`stream!`] macro and its typed equivalents. +generator syntax using the [`stream!`] macro and its typed equivalents. Streams +are the building blocks for unidirectional real-time communication. For +instance, the [`chat` example] uses an [`EventStream`] to implement a real-time, +multi-room chat application using Server-Sent Events (SSE). The simplest version creates a [`ReaderStream`] from a single `AsyncRead` type. For example, to stream from a TCP connection, we might write: @@ -372,9 +373,11 @@ how to detect and handle graceful shutdown requests. [`stream`]: @api/rocket/response/stream/index.html [`stream!`]: @api/rocket/response/stream/macro.stream.html -[`Stream`]: https://docs.rs/futures/0.3/futures/stream/trait.Stream.html +[async `Stream`]: https://docs.rs/futures/0.3/futures/stream/trait.Stream.html [`ReaderStream`]: @api/rocket/response/stream/struct.ReaderStream.html [`TextStream`]: @api/rocket/response/stream/struct.TextStream.html +[`EventStream`]: @api/rocket/response/stream/struct.EventStream.html +[`chat` example]: @example/chat ### JSON @@ -482,7 +485,7 @@ including how to customize a template engine to add custom helpers and filters. The [templating example](@example/templating) uses both Tera and Handlebars templating to implement the same application. -[configurable]: ../configuration/#extras +[configurable]: ../configuration ## Typed URIs @@ -713,14 +716,14 @@ uri!(person(id = 100, details = "a/b/c")); See the [`FromUriParam`] documentation for further details. [`Origin`]: @api/rocket/http/uri/struct.Origin.html -[`Part`]: @api/rocket/http/uri/trait.Part.html +[`Part`]: @api/rocket/http/uri/fmt/trait.Part.html [`Uri`]: @api/rocket/http/uri/enum.Uri.html [`Redirect::to()`]: @api/rocket/response/struct.Redirect.html#method.to [`uri!`]: @api/rocket/macro.uri.html -[`UriDisplay`]: @api/rocket/http/uri/trait.UriDisplay.html -[`FromUriParam`]: @api/rocket/http/uri/trait.FromUriParam.html -[`Path`]: @api/rocket/http/uri/enum.Path.html -[`Query`]: @api/rocket/http/uri/enum.Query.html -[`Ignorable`]: @api/rocket/http/uri/trait.Ignorable.html +[`UriDisplay`]: @api/rocket/http/uri/fmt/trait.UriDisplay.html +[`FromUriParam`]: @api/rocket/http/uri/fmt/trait.FromUriParam.html +[`Path`]: @api/rocket/http/uri/fmt/enum.Path.html +[`Query`]: @api/rocket/http/uri/fmt/enum.Query.html +[`Ignorable`]: @api/rocket/http/uri/fmt/trait.Ignorable.html [`UriDisplayPath`]: @api/rocket/derive.UriDisplayPath.html [`UriDisplayQuery`]: @api/rocket/derive.UriDisplayQuery.html diff --git a/site/guide/9-configuration.md b/site/guide/9-configuration.md index 3e1999d4..e548a0f3 100644 --- a/site/guide/9-configuration.md +++ b/site/guide/9-configuration.md @@ -58,7 +58,7 @@ selected profile doesn't contain a requested values, while values in the [`Config::figment()`]: @api/rocket/struct.Config.html#method.figment [`Toml`]: @figment/providers/struct.Toml.html [`Json`]: @figment/providers/struct.Json.html -[`Figment`]: @api/rocket/struct.Figment.html +[`Figment`]: @figment/struct.Figment.html [`Deserialize`]: @api/rocket/serde/trait.Deserialize.html [`LogLevel`]: @api/rocket/config/enum.LogLevel.html [`Limits`]: @api/rocket/data/struct.Limits.html diff --git a/site/index.toml b/site/index.toml index a844ca78..14c7b912 100644 --- a/site/index.toml +++ b/site/index.toml @@ -150,19 +150,19 @@ color = 'purple' margin = -6 [[bottom_features]] -title = 'Streams' -text = "Rocket streams all incoming and outgoing data, so size isn't a concern." +title = 'Async Streams' +text = "Create and return potentially infinite async streams of data with ease." image = 'streams-icon' -url = 'guide/requests/#streaming' +url = 'guide/responses/#async-streams' button = 'Learn More' color = 'red' margin = -29 [[bottom_features]] -title = 'Config Environments' -text = "Configure your application your way for development, staging, and production." +title = 'Config Profiles' +text = "Configure your application your way for debug, release, or anything else!" image = 'config-icon' -url = 'guide/configuration/#environment' +url = 'guide/configuration/#profiles' button = 'Learn More' color = 'yellow' margin = -3 diff --git a/site/news/2017-02-06-version-0.2.md b/site/news/2017-02-06-version-0.2.md index c1cd824f..246c5dcd 100644 --- a/site/news/2017-02-06-version-0.2.md +++ b/site/news/2017-02-06-version-0.2.md @@ -46,7 +46,7 @@ state's type in the function signature. It works in two easy steps: value passed into `manage`. Rocket takes care of the rest! `State` works through Rocket's [request -guards](../../guide/requests/#request-guards). You can call `manage` any number +guards](@guide-v0.3/requests/#request-guards). You can call `manage` any number of times, as long as each call corresponds to a value of a different type. As a simple example, consider the following "hit counter" example application: @@ -110,14 +110,14 @@ help: maybe add a call to 'manage' here? | ^^^^^^^^^^^^^^^^ ``` -You can read more about managed state in the [guide](../../guide/state/), the -API docs for [manage](@api/rocket/struct.Rocket.html#method.manage), and the API -docs for [State](@api/rocket/struct.State.html). +You can read more about managed state in the [guide](@guide-v0.3/state/), the +API docs for [manage](@api-v0.3/rocket/struct.Rocket.html#method.manage), and the API +docs for [State](@api-v0.3/rocket/struct.State.html). ### Unmounted Routes Lint A common mistake that new Rocketeers make is forgetting to -[mount](../../guide/overview/#mounting) declared routes. In Rocket v0.2, Rocket +[mount](@guide-v0.3/overview/#mounting) declared routes. In Rocket v0.2, Rocket adds a _lint_ that results in a compile-time warning for unmounted routes. As a simple illustration, consider the canonical "Hello, world!" Rocket application below, and note that we've forgotten to mount the `hello` route: @@ -156,7 +156,7 @@ help: maybe add a call to 'mount' here? The lint can be disabled selectively per route by adding an `#[allow(unmounted_route)]` annotation to a given route declaration. It can also be disabled globally by adding `#![allow(unmounted_route)]`. You can read more -about this lint in the [codegen documentation](@api/rocket_codegen/index.html). +about this lint in the [codegen documentation](@api-v0.3/rocket_codegen/index.html). ### Configuration via Environment Variables @@ -174,7 +174,7 @@ Configuration parameters set via environment variables take precedence over parameters set via the `Rocket.toml` configuration file. Note that _any_ parameter can be set via an environment variable, include _extras_. For more about configuration in Rocket, see the [configuration section of the -guide](../../guide/overview#configuration). +guide](@guide-v0.3/overview#configuration). ### And Plenty More! @@ -391,4 +391,4 @@ contributing! Not already using Rocket? Rocket is extensively documented, making it easy for you to start writing your web applications in Rocket! See the [overview](../../overview) or start writing code immediately by reading through -[the guide](../../guide). +[the guide](@guide-v0.3). diff --git a/site/news/2017-07-14-version-0.3.md b/site/news/2017-07-14-version-0.3.md index be77a938..566fe64d 100644 --- a/site/news/2017-07-14-version-0.3.md +++ b/site/news/2017-07-14-version-0.3.md @@ -21,7 +21,7 @@ sacrificing flexibility or type safety. All with minimal code. Not already using Rocket? Join the thousands of users and dozens of companies happily using Rocket today! Rocket's extensive documentation makes it easy. Get -started now by [reading through the guide](../../guide) or learning more from +started now by [reading through the guide](@guide-v0.3) or learning more from [the overview](../../overview). ## What's New? @@ -61,8 +61,8 @@ limitations and abilities, and includes implementation examples. I encourage you to experiment with fairings and report your experiences. As always, feedback is instrumental in solidifying a robust design. -[`Fairing`]: @api/rocket/fairing/trait.Fairing.html -[fairings guide]: ../../guide/fairings +[`Fairing`]: @api-v0.3/rocket/fairing/trait.Fairing.html +[fairings guide]: @guide-v0.3/fairings ### Native TLS Support @@ -88,7 +88,7 @@ For more details on Rocket's TLS support, see the [configuring TLS] section of the guide. [`rustls`]: https://github.com/ctz/rustls -[configuring TLS]: ../../guide/configuration/#configuring-tls +[configuring TLS]: @guide-v0.3/configuration/#configuring-tls ### Private Cookies @@ -126,11 +126,11 @@ automatically generates a fresh key at launch. For more details on private cookies, see the [private cookies] section of the guide. -[`Cookies`]: @api/rocket/http/enum.Cookies.html -[`get_private`]: @api/rocket/http/enum.Cookies.html#method.get_private -[`add_private`]: @api/rocket/http/enum.Cookies.html#method.add_private -[`remove_private`]: @api/rocket/http/enum.Cookies.html#method.remove_private -[private cookies]: ../../guide/requests/#private-cookies +[`Cookies`]: @api-v0.3/rocket/http/enum.Cookies.html +[`get_private`]: @api-v0.3/rocket/http/enum.Cookies.html#method.get_private +[`add_private`]: @api-v0.3/rocket/http/enum.Cookies.html#method.add_private +[`remove_private`]: @api-v0.3/rocket/http/enum.Cookies.html#method.remove_private +[private cookies]: @guide-v0.3/requests/#private-cookies ### Form Field Naming @@ -163,9 +163,9 @@ struct External { Rocket will automatically match the form field named "type" to the structure field named `api_type`. For more details on form field naming, see the [field -renaming](../../guide/requests/#field-renaming) section of the guide. +renaming](@guide-v0.3/requests/#field-renaming) section of the guide. -[`FromForm`]: @api/rocket/request/trait.FromForm.html +[`FromForm`]: @api-v0.3/rocket/request/trait.FromForm.html ### And Plenty More! @@ -189,7 +189,7 @@ following new features: * [`Response::content_type()`] was added to retrieve the Content-Type header of a response. * Data limits on incoming data are [now - configurable](../../guide/configuration/#data-limits). + configurable](@guide-v0.3/configuration/#data-limits). * [`Request::limits()`] was added to retrieve incoming data limits. * Responders may dynamically adjust their response based on the incoming request. @@ -211,28 +211,28 @@ following new features: * The [`NotFound`] responder was added for simple **404** response construction. -[`MsgPack`]: @api/rocket_contrib/msgpack/struct.MsgPack.html -[`Rocket::launch()`]: @api/rocket/struct.Rocket.html#method.launch -[`LaunchError`]: @api/rocket/error/struct.LaunchError.html -[Default rankings]: @api/rocket/struct.Route.html -[`&Route`]: @api/rocket/struct.Route.html -[`Route`]: @api/rocket/struct.Route.html -[`Accept`]: @api/rocket/http/struct.Accept.html -[`Request::accept()`]: @api/rocket/struct.Request.html#method.accept -[`contrib`]: @api/rocket_contrib/ -[`Rocket::routes()`]: @api/rocket/struct.Rocket.html#method.routes -[`Response::body_string()`]: @api/rocket/struct.Response.html#method.body_string -[`Response::body_bytes()`]: @api/rocket/struct.Response.html#method.body_bytes -[`Response::content_type()`]: @api/rocket/struct.Response.html#method.content_type -[`Request::guard()`]: @api/rocket/struct.Request.html#method.guard -[`Request::limits()`]: @api/rocket/struct.Request.html#method.limits -[`Request::route()`]: @api/rocket/struct.Request.html#method.route -[`Config`]: @api/rocket/struct.Config.html -[`Cookies`]: @api/rocket/http/enum.Cookies.html -[`Config::get_datetime()`]: @api/rocket/struct.Config.html#method.get_datetime -[`LenientForm`]: @api/rocket/request/struct.LenientForm.html -[configuration parameters]: @api/rocket/config/index.html#environment-variables -[`NotFound`]: @api/rocket/response/status/struct.NotFound.html +[`MsgPack`]: @api-v0.3/rocket_contrib/msgpack/struct.MsgPack.html +[`Rocket::launch()`]: @api-v0.3/rocket/struct.Rocket.html#method.launch +[`LaunchError`]: @api-v0.3/rocket/error/struct.LaunchError.html +[Default rankings]: @api-v0.3/rocket/struct.Route.html +[`&Route`]: @api-v0.3/rocket/struct.Route.html +[`Route`]: @api-v0.3/rocket/struct.Route.html +[`Accept`]: @api-v0.3/rocket/http/struct.Accept.html +[`Request::accept()`]: @api-v0.3/rocket/struct.Request.html#method.accept +[`contrib`]: @api-v0.3/rocket_contrib/ +[`Rocket::routes()`]: @api-v0.3/rocket/struct.Rocket.html#method.routes +[`Response::body_string()`]: @api-v0.3/rocket/struct.Response.html#method.body_string +[`Response::body_bytes()`]: @api-v0.3/rocket/struct.Response.html#method.body_bytes +[`Response::content_type()`]: @api-v0.3/rocket/struct.Response.html#method.content_type +[`Request::guard()`]: @api-v0.3/rocket/struct.Request.html#method.guard +[`Request::limits()`]: @api-v0.3/rocket/struct.Request.html#method.limits +[`Request::route()`]: @api-v0.3/rocket/struct.Request.html#method.route +[`Config`]: @api-v0.3/rocket/struct.Config.html +[`Cookies`]: @api-v0.3/rocket/http/enum.Cookies.html +[`Config::get_datetime()`]: @api-v0.3/rocket/struct.Config.html#method.get_datetime +[`LenientForm`]: @api-v0.3/rocket/request/struct.LenientForm.html +[configuration parameters]: @api-v0.3/rocket/config/index.html#environment-variables +[`NotFound`]: @api-v0.3/rocket/response/status/struct.NotFound.html ## Breaking Changes @@ -267,9 +267,9 @@ In addition to new features, Rocket saw the following improvements: * The format of a request is always logged when available. [`yansi`]: https://crates.io/crates/yansi -[`Request`]: @api/rocket/struct.Request.html -[`State`]: @api/rocket/struct.State.html -[`Config`]: @api/rocket/struct.Config.html +[`Request`]: @api-v0.3/rocket/struct.Request.html +[`State`]: @api-v0.3/rocket/struct.State.html +[`Config`]: @api-v0.3/rocket/struct.Config.html ## What's Next? @@ -300,7 +300,7 @@ and usability. The following major features are planned: type-checks. In the next release, a `url!` macro will be available to automatically generate URLs for routes in a type-safe manner. -[much wordier than necessary]: ../../guide/state/#databases +[much wordier than necessary]: @guide-v0.3/state/#databases ## Contributors to v0.3 diff --git a/site/news/2018-10-31-version-0.4-rc.md b/site/news/2018-10-31-version-0.4-rc.md index 8a2b9dac..5958bd3d 100644 --- a/site/news/2018-10-31-version-0.4-rc.md +++ b/site/news/2018-10-31-version-0.4-rc.md @@ -26,7 +26,7 @@ Friday, November 9th for the general release! [GitHub issue tracker]: https://github.com/SergioBenitez/Rocket/issues [API docs]: https://api.rocket.rs/v0.4/rocket/ -[guide]: ../../guide +[guide]: @guide-v0.4 [CHANGELOG]: https://github.com/SergioBenitez/Rocket/tree/v0.4/CHANGELOG.md#version-040-rc-oct-31-2018 ## About Rocket @@ -37,5 +37,5 @@ sacrificing flexibility or type safety. All with minimal code. Not already using Rocket? Join the tens of thousands of users and hundreds of companies happily using Rocket today! Rocket's extensive documentation makes it -easy. Get started now by [reading through the guide](../../guide) or learning +easy. Get started now by [reading through the guide](@guide-v0.4) or learning more from [the overview](../../overview). diff --git a/site/news/2018-11-30-version-0.4-rc-2.md b/site/news/2018-11-30-version-0.4-rc-2.md index f5bea22c..048a729b 100644 --- a/site/news/2018-11-30-version-0.4-rc-2.md +++ b/site/news/2018-11-30-version-0.4-rc-2.md @@ -32,8 +32,8 @@ We're excited for your feedback, and we look forward to seeing you again on Wednesday, December 5th for the general release! [GitHub issue tracker]: https://github.com/SergioBenitez/Rocket/issues -[API docs]: https://api.rocket.rs/v0.4/rocket/ -[guide]: ../../guide +[API docs]: @api-v0.4 +[guide]: @guide-v0.4 [CHANGELOG]: https://github.com/SergioBenitez/Rocket/tree/v0.4/CHANGELOG.md#version-040-rc2-nov-30-2018 ## About Rocket @@ -44,5 +44,5 @@ sacrificing flexibility or type safety. All with minimal code. Not already using Rocket? Join the tens of thousands of users and hundreds of companies happily using Rocket today! Rocket's extensive documentation makes it -easy. Get started now by [reading through the guide](../../guide) or learning +easy. Get started now by [reading through the guide](@guide-v0.4) or learning more from [the overview](../../overview). diff --git a/site/news/2018-12-08-version-0.4.md b/site/news/2018-12-08-version-0.4.md index db69dbcd..4eb606b8 100644 --- a/site/news/2018-12-08-version-0.4.md +++ b/site/news/2018-12-08-version-0.4.md @@ -23,7 +23,7 @@ without sacrificing flexibility or type safety. Not already using Rocket? Join the tens of thousands of users and hundreds of companies happily using Rocket today! Rocket's extensive documentation makes it -easy. Get started now by [reading through the guide](../../guide) or learning +easy. Get started now by [reading through the guide](@guide-v0.4) or learning more from [the overview](../../overview). ## What's New? @@ -151,8 +151,8 @@ We recommend that `uri!` is exclusively used when constructing route URIs. For more information on typed URIs, see the new [Typed URIs] guide section and the [`uri!`] macro documentation. -[`uri!`]: @api/rocket_codegen/macro.uri.html -[Typed URIs]: ../../guide/responses/#typed-uris +[`uri!`]: @api-v0.4/rocket_codegen/macro.uri.html +[Typed URIs]: @guide-v0.4/responses/#typed-uris ### Database Support @@ -197,8 +197,8 @@ fn get_logs(conn: LogsDbConn, id: usize) -> Result { For more information on Rocket's database support, see the new [Database] guide section and the [`rocket_contrib::databases`] module documentation. -[Database]: ../../guide/state/#databases -[`rocket_contrib::databases`]: @api/rocket_contrib/databases/index.html +[Database]: @guide-v0.4/state/#databases +[`rocket_contrib::databases`]: @api-v0.4/rocket_contrib/databases/index.html ### Revamped Queries @@ -241,10 +241,10 @@ and [`FromFormValue`] can be derived. For more details on handling query strings, see the new [Query Strings] guide section and the updated [`route` attribute] documentation. -[`FromFormValue`]: @api/rocket/request/trait.FromFormValue.html -[`FromQuery`]: @api/rocket/request/trait.FromQuery.html -[`route` attribute]: @api/rocket_codegen/attr.get.html -[Query Strings]: ../../guide/requests/#query-strings +[`FromFormValue`]: @api-v0.4/rocket/request/trait.FromFormValue.html +[`FromQuery`]: @api-v0.4/rocket/request/trait.FromQuery.html +[`route` attribute]: @api-v0.4/rocket_codegen/attr.get.html +[Query Strings]: @guide-v0.4/requests/#query-strings [#608]: https://github.com/SergioBenitez/Rocket/issues/608 ### Stateful Handlers @@ -269,8 +269,8 @@ fn main() { We encourage users to explore the new `Handler` API and contribute libraries with pluggable handlers! For more details, see the [`Handler`] documentation. -[`Handler`]: @api/rocket/trait.Handler.html -[`StaticFiles`]: @api/rocket_contrib/serve/struct.StaticFiles.html +[`Handler`]: @api-v0.4/rocket/trait.Handler.html +[`StaticFiles`]: @api-v0.4/rocket_contrib/serve/struct.StaticFiles.html ### Responder Derive @@ -319,9 +319,9 @@ headers to the response (here, `ContentType`). For more on using the `Responder` derive, see the new [Custom Responders] guide section and the [`Responder` derive] documentation. -[Custom Responders]: ../../guide/responses/#custom-responders -[`Responder` derive]: @api/rocket_codegen/derive.Responder.html -[`Responder`]: @api/rocket/response/trait.Responder.html +[Custom Responders]: @guide-v0.4/responses/#custom-responders +[`Responder` derive]: @api-v0.4/rocket_codegen/derive.Responder.html +[`Responder`]: @api-v0.4/rocket/response/trait.Responder.html ### Live Template Reloading @@ -465,17 +465,17 @@ In addition to new features, Rocket saw the following improvements: * The `cookie` dependency was updated to `0.11`. [Tera templates example]: @github/examples/tera_templates -[`FormItems`]: @api/rocket/request/enum.FormItems.html -[`Config::active()`]: @api/rocket/config/struct.Config.html#method.active -[`Flash`]: @api/rocket/response/struct.Flash.html -[`AdHoc::on_attach()`]: @api/rocket/fairing/struct.AdHoc.html#method.on_attach -[`AdHoc::on_launch()`]: @api/rocket/fairing/struct.AdHoc.html#method.on_launch -[`Config::root_relative()`]: @api/rocket/struct.Config.html#method.root_relative -[`Config::tls_enabled()`]: @api/rocket/struct.Config.html#method.tls_enabled -[`rocket_codegen`]: @api/rocket_codegen/index.html -[`FromParam`]: @api/rocket/request/trait.FromParam.html -[`FromFormValue`]: @api/rocket/request/trait.FromFormValue.html -[`Data`]: @api/rocket/struct.Data.html +[`FormItems`]: @api-v0.4/rocket/request/enum.FormItems.html +[`Config::active()`]: @api-v0.4/rocket/config/struct.Config.html#method.active +[`Flash`]: @api-v0.4/rocket/response/struct.Flash.html +[`AdHoc::on_attach()`]: @api-v0.4/rocket/fairing/struct.AdHoc.html#method.on_attach +[`AdHoc::on_launch()`]: @api-v0.4/rocket/fairing/struct.AdHoc.html#method.on_launch +[`Config::root_relative()`]: @api-v0.4/rocket/struct.Config.html#method.root_relative +[`Config::tls_enabled()`]: @api-v0.4/rocket/struct.Config.html#method.tls_enabled +[`rocket_codegen`]: @api-v0.4/rocket_codegen/index.html +[`FromParam`]: @api-v0.4/rocket/request/trait.FromParam.html +[`FromFormValue`]: @api-v0.4/rocket/request/trait.FromFormValue.html +[`Data`]: @api-v0.4/rocket/struct.Data.html [`Form`]: https://api.rocket.rs/v0.4/rocket/request/struct.Form.html [`LenientForm`]: https://api.rocket.rs/v0.4/rocket/request/struct.LenientForm.html diff --git a/site/overview.toml b/site/overview.toml index 96df81d6..17839b5a 100644 --- a/site/overview.toml +++ b/site/overview.toml @@ -68,7 +68,7 @@ fn login(user_form: Form) -> String { ``` The `login` route above says that it expects `data` of type `Form` in -the `user_form` parameter. The [Form](@api/rocket/request/struct.Form.html) type +the `user_form` parameter. The [Form](@api/rocket/form/struct.Form.html) type is a built-in Rocket type that knows how to parse web forms into structures. Rocket will automatically attempt to parse the request body into the `Form` and call the `login` handler if parsing succeeds. Other built-in `FromData` types