Document
#|
#|
#|
#|
#|
#|
#|
#|
#| Response
#|
#|
#| ///|
/// The IDE a moongql endpoint serves by default: a page built by the library
/// itself, in the same language as the rest of the documentation — a gold-haired
/// plate, the document on the left, the answer on the right, and a schema drawer.
///
/// It needs nothing from a CDN and nothing from a bundler: the whole page is one
/// string `Ide::html` returns. Because the endpoint serves the page, its path is
/// baked in at request time.
///
/// The interaction is the one the documentation's playground has: a field lit on
/// one side lights the same field on the other, dims everything else, and names
/// its path with the type the schema declares for it. That is not decoration —
/// with a document and a response side by side, "which line did this field come
/// from" is the question people actually ask.
///|
/// The page up to the endpoint literal. Everything after it is `gilded_tail`.
fn gilded_head() -> String {
let head =
#|
#|
#|
#|
#|
#| MoonQL
#|
#|
#|
#|
#|
#|
#|
#|
#|
#|
#| moongql
#| GraphQL · MoonBit
#|
#|
#| ready
#|
#|
#|
#|
#|
#|
#|
#|
#|
#|
#|
#| Document
#|
#|
#|
#|
#|
#|
#|
#|
#|
#|
#| Response
#|
#|
#|
#|
#|
#|
#|
#|
#|
tail
}
///|
/// The gilded page, wired to `endpoint`. The endpoint may be relative: the page
/// is served by the endpoint it talks to, so a relative path is the normal case.
fn gilded_page(endpoint : String) -> String {
gilded_head() + endpoint + gilded_tail()
}