diff --git a/build.sbt b/build.sbt index 7d666f57..d9fdb82a 100644 --- a/build.sbt +++ b/build.sbt @@ -101,7 +101,8 @@ lazy val mdocSettings = Seq( "CLIENT_NAME" -> "RDFShape Client", "CLIENT_REPO" -> "https://github.com/weso/rdfshape-client/", "CLIENT_URL" -> "https://rdfshape.weso.es/", - "WESOLOCAL_URL" -> "https://github.com/weso/wesolocal/wiki/RDFShape" + "WESOLOCAL_URL" -> "https://github.com/weso/wesolocal/wiki/RDFShape", + "API-DOCS_URL" -> "https://app.swaggerhub.com/apis-docs/weso/RDFShape" ), mdocExtraArguments := Seq("--no-link-hygiene"), /* When creating/publishing the docusaurus site, update the dynamic mdoc and diff --git a/docs/api-usage/usage_cli.md b/docs/api-usage/usage_cli.md index a7a4bd26..df7ba089 100644 --- a/docs/api-usage/usage_cli.md +++ b/docs/api-usage/usage_cli.md @@ -9,10 +9,10 @@ title: Command Line Interface @APP_NAME@'s CLI currently supports the following launch-arguments: -- `--https` Attempt to serve the API via HTTPS (defaults to false), searching for certificates as specified in the - current environment. -- `-p, --port` Port in which the API will listen for requests. Values must be in range 1-65535 (defaults to 8080). -- `-v, --verbose` Show additional logging information (use cumulative times for additional info, like: `-vvv`) +- `--https` Attempt to serve the API via HTTPS (default is false), searching for certificates as specified in the current environment. +- `-p, --port` Port in which the API will listen for requests. Values must be in range 1-65535 (default is 8080). +- `-s, --silent` Enable silent mode in order not to log any output to console (default is false) +- `-v, --verbose` Show additional logging information (use cumulative times for additional info, like: `-vvv`) - `--version` Print the version of the program - `--help` Print the help menu diff --git a/docs/api-usage/usage_examples.md b/docs/api-usage/usage_examples.md deleted file mode 100644 index 04ebafb8..00000000 --- a/docs/api-usage/usage_examples.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -id: usage_examples -title: Example API Requests ---- - -# Example API requests - -## Data info - -``` -curl -i -X POST -H "Content-type:multipart/form-data" \ -'https://api.rdfshape.weso.es/api/data/info' \ ---form-string 'data=@prefix : . @prefix foaf: . :alice a foaf:Person .' \ ---form-string 'dataSource=byText' \ ---form-string 'dataFormat=turtle' \ ---form-string 'dataInference=None' -``` - -
- -#### Pending examples - -## Validation - -## Wikidata - -## Convert RDF data to JSON representation - -The JSON representation follows the format used by -the [Cytoscape component](https://github.com/plotly/react-cytoscapejs). diff --git a/docs/api-usage/usage_tutorial.md b/docs/api-usage/usage_tutorial.md deleted file mode 100644 index dbcf0166..00000000 --- a/docs/api-usage/usage_tutorial.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: usage_tutorial -title: API Tutorial ---- - -# API Tutorial - -@APP_NAME@ is a public API that can be used as a playground for RDF, Shape Expressions, SHACL, etc. - -## ShEx - -Validate RDF data with ShEx. Example from the [Validating RDF book](https://book.validatingrdf.com/): - -- [Example](https://rdfshape.weso.es/shExValidate?activeSchemaTab=%23schemaTextArea&activeTab=%23dataTextArea&data=PREFIX%20%3A%20%20%20%20%20%20%20%3Chttp%3A%2F%2Fexample.org%2F%3E%0APREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20xsd%3A%20%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX%20foaf%3A%20%20%20%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0A%0A%3Aalice%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Alice%22%20%3B%20%20%20%20%20%20%20%20%20%20%20%20%23%20%25%2A%20%5CPasses%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AFemale%20%3B%0A%20%20%20%20%20%20%20schema%3Aknows%20%20%20%20%20%20%20%20%20%20%3Abob%20.%0A%0A%3Abob%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AMale%20%3B%20%20%20%20%20%20%20%20%23%20%25%2A%20%5CPasses%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Robert%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3AbirthDate%20%20%20%20%20%20%221980-03-10%22%5E%5Exsd%3Adate%20.%0A%0A%3Acarol%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Carol%22%20%3B%20%20%20%20%20%20%20%20%20%20%20%20%23%20%25%2A%20%5CPasses%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20%22unspecified%22%20%3B%20%20%0A%20%20%20%20%20%20%20foaf%3Aname%20%20%20%20%20%20%20%20%20%20%20%20%20%22Carol%22%20.%0A%0A%3Adave%20%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Dave%22%3B%20%20%20%20%20%20%20%20%20%23%20%25%2A%20%5CFails%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20%22XYY%22%3B%20%20%20%20%20%20%20%20%20%20%23%0A%20%20%20%20%20%20%20schema%3AbirthDate%20%20%20%20%20%201980%20.%20%20%20%20%20%20%20%20%20%20%23%20%25%2A%201980%20is%20not%20an%20xsd%3Adate%20%2A%29%0A%0A%3Aemily%20schema%3Aname%20%22Emily%22%2C%20%22Emilee%22%20%3B%20%20%20%20%20%20%20%23%20%25%2A%20%5CFails%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AFemale%20.%20%23%20%25%2A%20too%20many%20schema%3Anames%20%2A%29%0A%0A%3Afrank%20foaf%3Aname%20%20%20%20%20%20%20%20%20%20%20%20%20%22Frank%22%20%3B%20%20%20%20%20%20%20%23%20%25%2A%20%5CFails%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Agender%3A%20%20%20%20%20%20%20%20schema%3AMale%20.%20%20%20%23%20%25%2A%20missing%20schema%3Aname%20%2A%29%0A%0A%3Agrace%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Grace%22%20%3B%20%20%20%20%20%20%20%23%20%25%2A%20%5CFails%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AMale%20%3B%20%20%20%23%20%0A%20%20%20%20%20%20%20schema%3Aknows%20%20%20%20%20%20%20%20%20%20_%3Ax%20.%20%20%20%20%20%20%20%20%20%20%20%23%20%25%2A%20%5C_%3Ax%20is%20not%20an%20IRI%20%2A%29%0A%0A%3Aharold%20schema%3Aname%20%20%20%20%20%20%20%20%20%22Harold%22%20%3B%20%20%20%20%23%20%25%2A%20%5CFails%7B%3AUser%7D%20%2A%29%0A%20%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20schema%3AMale%20%3B%20%0A%20%20%20%20%20%20%20%20schema%3Aknows%20%20%20%20%20%20%20%20%3Agrace%20.%20%20%20%20%20%20%23%20%25%2A%20%3Agrace%20does%20not%20conform%20to%20%3AUser%20%2A%29&dataFormat=TURTLE&dataFormatTextArea=TURTLE&endpoint=&inference=None&schema=PREFIX%20%3A%20%20%20%20%20%20%20%3Chttp%3A%2F%2Fexample.org%2F%3E%0APREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20xsd%3A%20%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0A%0A%3AUser%20%7B%0A%20%20schema%3Aname%20%20%20%20%20%20%20%20%20%20xsd%3Astring%20%20%3B%0A%20%20schema%3AbirthDate%20%20%20%20%20xsd%3Adate%3F%20%20%3B%0A%20%20schema%3Agender%20%20%20%20%20%20%20%20%5B%20schema%3AMale%20schema%3AFemale%20%5D%20OR%20xsd%3Astring%20%3B%0A%20%20schema%3Aknows%20%20%20%20%20%20%20%20%20IRI%20%40%3AUser%2A%0A%7D&schemaEngine=ShEx&schemaFormat=ShExC&shapeMap=%3Aalice%40%3AUser%2C%3Abob%40%3AUser%2C%3Acarol%40%3AUser%2C%3Aemily%40%3AUser%2C%3Afrank%40%3AUser%2C%3Agrace%40%3AUser%2C%3Aharold%40%3AUser&shapeMapActiveTab=%23shapeMapTextArea&shapeMapFormat=Compact&triggerMode=shapeMap) - -## SHACL - -Validate RDF data with SHACL. Example from the Validating RDF book: - -- [Example](https://rdfshape.weso.es/shaclValidate?activeSchemaTab=%23schemaTextArea&activeTab=%23dataTextArea&data=%40prefix%20%3A%20%20%20%20%20%20%20%3Chttp%3A%2F%2Fexample.org%2F%3E%20.%0A%40prefix%20sh%3A%20%20%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2Fns%2Fshacl%23%3E%20.%0A%40prefix%20xsd%3A%20%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%20.%0A%40prefix%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%20.%0A%40prefix%20foaf%3A%20%20%20%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%20.%0A%40prefix%20rdfs%3A%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%20.%0A%20%20%20%20%20%20%20%20%0A%0A%3Aalice%20a%20%3AUser%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%25%2A%5CPasses%7B%3AUserShape%7D%20%2A%29%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Alice%22%20%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AFemale%20%3B%0A%20%20%20%20%20%20%20schema%3Aknows%20%20%20%20%20%20%20%20%20%20%3Abob%20.%0A%0A%3Abob%20%20%20a%20%3AUser%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%25%2A%5CPasses%7B%3AUserShape%7D%20%2A%29%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AMale%20%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Robert%22%3B%0A%20%20%20%20%20%20%20schema%3AbirthDate%20%20%20%20%20%20%221980-03-10%22%5E%5Exsd%3Adate%20.%0A%0A%3Acarol%20a%20%3AUser%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%25%2A%5CPasses%7B%3AUserShape%7D%20%2A%29%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3Aname%20%20%20%20%20%20%20%20%20%20%20%22Carol%22%20%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20schema%3Agender%20%20%20%20%20%20%20%20%20schema%3AFemale%20%3B%20%20%0A%20%20%20%20%20%20%20foaf%3Aname%20%20%20%20%20%20%20%20%20%20%20%20%20%22Carol%22%20.&dataFormat=TURTLE&dataFormatTextArea=TURTLE&endpoint=&inference=None&schema=%40prefix%20%3A%20%20%20%20%20%20%20%3Chttp%3A%2F%2Fexample.org%2F%3E%20.%0A%40prefix%20sh%3A%20%20%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2Fns%2Fshacl%23%3E%20.%0A%40prefix%20xsd%3A%20%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%20.%0A%40prefix%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%20.%0A%40prefix%20foaf%3A%20%20%20%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%20.%0A%40prefix%20rdfs%3A%20%20%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%20.%0A%20%20%20%20%20%20%20%20%0A%3AUserShape%20a%20sh%3ANodeShape%3B%0A%20%20%20sh%3AtargetClass%20%3AUser%20%3B%0A%20%20%20sh%3Aproperty%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Blank%20node%201%0A%20%20%20%20sh%3Apath%20%20%20%20%20schema%3Aname%20%3B%20%0A%20%20%20%20sh%3AminCount%201%3B%20%0A%20%20%20%20sh%3AmaxCount%201%3B%0A%20%20%20%20sh%3Adatatype%20xsd%3Astring%20%3B%0A%20%20%5D%20%3B%0A%20%20sh%3Aproperty%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Blank%20node%202%0A%20%20%20sh%3Apath%20schema%3Agender%20%3B%0A%20%20%20sh%3AminCount%201%3B%0A%20%20%20sh%3AmaxCount%201%3B%0A%20%20%20sh%3Aor%20%28%0A%20%20%20%20%5B%20sh%3Ain%20%28schema%3AMale%20schema%3AFemale%29%20%5D%0A%20%20%20%20%5B%20sh%3Adatatype%20xsd%3Astring%5D%0A%20%20%20%29%0A%20%20%5D%20%3B%0A%20%20sh%3Aproperty%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Blank%20node%203%20%20%0A%20%20%20sh%3Apath%20%20%20%20%20schema%3AbirthDate%20%3B%20%0A%20%20%20sh%3AmaxCount%201%3B%20%0A%20%20%20sh%3Adatatype%20xsd%3Adate%20%3B%0A%20%20%5D%20%3B%0A%20%20sh%3Aproperty%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Blank%20node%204%20%0A%20%20%20sh%3Apath%20%20%20%20%20schema%3Aknows%20%3B%20%0A%20%20%20sh%3AnodeKind%20sh%3AIRI%20%3B%0A%20%20%20sh%3Aclass%20%20%20%20%3AUser%20%3B%0A%20%20%5D%20.&schemaEngine=JenaSHACL&schemaFormat=TURTLE&schemaInference=none&triggerMode=targetDecls) - -## Data + Schema - -- If the _Schema_ option is selected, then @APP_NAME@ validates both the syntax and the shape of RDF graphs. -- The Schema can be entered by URI, by file or by text input. -- Once the validation has finished, the system can generate a shareable permalink with the result. -- For visualizations, the system can also generate a link for embedding the visualizations. - -## Data + Schema + Node - -- In this option, the system asks for a node in the RDF Graph that will act as the pointed node in the graph to start - the validation process - -## Data Conversions - -- This option allows to convert between different RDF formats. -- The available formats are: - * Turtle - * RDF/XML - * RDF/JSON - * N-Triples - -## Schema Conversions - -- This option can be used to convert different representations of schema data. -- The available formats are: - * ShExC (Shape expression compact syntax) - * The RDF formats: Turtle, RDF/XML, RDF/JSON, N-TRIPLES, etc. - -## Further info - -@APP_NAME@ is based on [SHaclEX](http://github.com/weso/shaclex/), a Shape Expressions processor which can also be used as -a command line tool. \ No newline at end of file diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 9de88762..fb3619bf 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -1,6 +1,7 @@ const deployUrl = "https://weso.github.io" const baseUrl = "/rdfshape-api/" -const docsUrl = `${deployUrl}${baseUrl}api/es/weso/rdfshape/` +const scalaDocUrl = `${deployUrl}${baseUrl}api/es/weso/rdfshape/` +const apiDocsUrl = "https://app.swaggerhub.com/apis-docs/weso/RDFShape/" /** @type {import('@docusaurus/types').DocusaurusConfig} */ module.exports = { @@ -15,12 +16,10 @@ module.exports = { favicon: "favicon.ico", trailingSlash: true, customFields: { - docsUrl, + scalaDocUrl, apiDocsUrl }, themeConfig: { - image: "img/preview.png", - hideableSidebar: false, - colorMode: { + image: "img/preview.png", hideableSidebar: false, colorMode: { defaultMode: "light", disableSwitch: false, respectPrefersColorScheme: true, @@ -30,99 +29,61 @@ module.exports = { darkIconStyle: {marginLeft: "2px"}, lightIconStyle: {marginLeft: "1px"}, }, - }, - navbar: { - title: "RDFShape API", - logo: { - alt: "RDFShape API - WESO", - src: "img/logo-weso.png", - }, - items: [ - // Web docs + }, navbar: { + title: "RDFShape API", logo: { + alt: "RDFShape API - WESO", src: "img/logo-weso.png", + }, items: [// Web docs + { + to: "/docs", label: "Web docs", position: "left", + }, // Scaladoc { - to: "/docs", - label: "Web docs", - position: "left", - }, - // Scaladoc + to: scalaDocUrl, label: "Scaladoc", position: "left", + }, // API Docs in SwaggerHub { - to: docsUrl, - label: "Scaladoc", - position: "left", - }, - // Link to repo + href: "https://github.com/weso/rdfshape-api", + label: "SwaggerHub", + position: "right", + }, // Link to repo { href: "https://github.com/weso/rdfshape-api", label: "GitHub", position: "right", - }, - ], - }, - footer: { + },], + }, footer: { style: "light", logo: { alt: "RDFShape API - WESO", src: "img/logo-weso-footer.png", href: "https://www.weso.es/", }, - links: [ - { - title: "About us", - items: [ - { - label: "WESO Research Group", - to: "https://www.weso.es/", - }, - { - label: "University of Oviedo", - to: "https://www.uniovi.es/", - }, - ], - }, - { - title: "Community", - items: [ - { - label: "GitHub", - to: "https://github.com/weso", - }, - { - label: "Twitter", - to: "https://twitter.com/wesoviedo", - }, - ], - }, - { - title: "Further work", - items: [ - { - label: "RDFShape project", - to: "https://github.com/weso/rdfshape", - }, - { - label: "More software by WESO", - to: "https://www.weso.es/#software", - }, - ], - }, - ], + links: [{ + title: "About us", items: [{ + label: "WESO Research Group", to: "https://www.weso.es/", + }, { + label: "University of Oviedo", to: "https://www.uniovi.es/", + },], + }, { + title: "Community", items: [{ + label: "GitHub", to: "https://github.com/weso", + }, { + label: "Twitter", to: "https://twitter.com/wesoviedo", + },], + }, { + title: "Further work", items: [{ + label: "RDFShape project", to: "https://github.com/weso/rdfshape", + }, { + label: "More software by WESO", to: "https://www.weso.es/#software", + },], + },], copyright: `Copyright © ${new Date().getFullYear()} WESO Research Group`, }, }, - presets: [ - [ - "@docusaurus/preset-classic", - { - docs: { - path: "../rdfshape-docs/target/mdoc", - sidebarPath: require.resolve("./sidebars.js"), - }, - blog: false, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, - sitemap: {}, - }, - ], - ], + presets: [["@docusaurus/preset-classic", { + docs: { + path: "../rdfshape-docs/target/mdoc", + sidebarPath: require.resolve("./sidebars.js"), + }, blog: false, theme: { + customCss: require.resolve("./src/css/custom.css"), + }, sitemap: {}, + },],], }; diff --git a/website/sidebars.js b/website/sidebars.js index 928c46cb..755461d4 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -1,80 +1,53 @@ -const docsUrl = "https://www.weso.es/rdfshape-api/api/es/weso/rdfshape/" -const apiDocsUrl = "https://app.swaggerhub.com/apis/weso/RDFShape" +import {customFields} from "./docusaurus.config" +const {scalaDocUrl, apiDocsUrl} = customFields module.exports = { - // Generate a sidebar from the docs folder structure - // sidebar: [{type: "autogenerated", dirName: "."}], - - // Create a sidebar manually - docsSidebar: [ - /* Home */ - { - type: "doc", - id: "home", - label: "Welcome", - }, - - /* Category: deployment */ - { - type: "category", - label: "API Deployment", - items: [ - "api-deployment/deployment_overview", - "api-deployment/deployment_manual", - "api-deployment/deployment_docker" - ], - collapsed: false - }, - - /* Category: usage */ - { - type: "category", - label: "API Usage", - items: [ - "api-usage/usage_cli", - "api-usage/usage_tutorial", - "api-usage/usage_examples" - ], - collapsed: false - }, - - /* Category: testing */ - { - type: "category", - label: "API Testing and Auditing", - items: [ - "api-testing-auditing/testing-auditing_munit", - "api-testing-auditing/testing-auditing_integration", - "api-testing-auditing/testing-auditing_logs" - ], - collapsed: true - }, - - /* Category: documentation */ - { - type: "category", - label: "Additional documentation", - items: [ - { - type: "link", - label: "Scaladoc", - href: docsUrl - }, { - type: "link", - label: "API Docs (Swagger Hub)", - href: apiDocsUrl - } - ], - collapsed: false - }, - - /* Webpage information */ - { - type: "doc", - id: "webpage/webpage_info", - label: "About this webpage", - }, - ], + // Generate a sidebar from the docs folder structure + // sidebar: [{type: "autogenerated", dirName: "."}], + + // Create a sidebar manually + docsSidebar: [/* Home */ + { + type: "doc", id: "home", label: "Welcome", + }, + + /* Category: deployment */ + { + type: "category", + label: "API Deployment", + items: ["api-deployment/deployment_overview", "api-deployment/deployment_manual", "api-deployment/deployment_docker"], + collapsed: false + }, + + /* Category: usage */ + { + type: "category", + label: "API Usage", + items: ["api-usage/usage_cli"], + collapsed: false + }, + + /* Category: testing */ + { + type: "category", + label: "API Testing and Auditing", + items: ["api-testing-auditing/testing-auditing_munit", "api-testing-auditing/testing-auditing_integration", "api-testing-auditing/testing-auditing_logs"], + collapsed: true + }, + + /* Category: documentation */ + { + type: "category", label: "Additional documentation", items: [{ + type: "link", label: "Scaladoc", href: scalaDocUrl + }, { + type: "link", label: "API Docs (Swagger Hub)", href: apiDocsUrl + }], collapsed: false + }, + + /* Webpage information */ + { + type: "doc", id: "webpage/webpage_info", label: "About this webpage", + },], }; diff --git a/website/src/components/HomepageFeatures.js b/website/src/components/HomepageFeatures.js index c45c7c3f..a0cce469 100644 --- a/website/src/components/HomepageFeatures.js +++ b/website/src/components/HomepageFeatures.js @@ -4,68 +4,54 @@ import styles from "./HomepageFeatures.module.css"; import Link from "@docusaurus/core/lib/client/exports/Link"; import {customFields} from "../../docusaurus.config" -const docsUrl = customFields.docsUrl -const apiDocsUrl = "https://app.swaggerhub.com/apis/weso/RDFShape" +const {scalaDocUrl, apiDocsUrl} = customFields -const FeatureList = [ - { - title: "Scaladoc", - Svg: require("../../static/img/scala-icon.svg").default, - description: ( - <> - Check out the automatically generated Scaladoc, up to date with our latest stable - build - - ), - link: docsUrl - }, - { - title: "Web documentation", - Svg: require("../../static/img/webdocs.svg").default, - description: ( - <> - Friendly guides and short articles related to the project and the usage of the API - - ), - link: "/docs" - }, - { - title: "API Docs", - Svg: require("../../static/img/rocket.svg").default, - description: ( - <> - Browse the API Docs and test the API directly in Swagger Hub without having to learn about the - underlying infrastructure - - ), - link: apiDocsUrl - }, -]; +const FeatureList = [{ + title: "Scaladoc", + Svg: require("../../static/img/scala-icon.svg").default, + description: (<> + Check out the automatically generated Scaladoc, up to date with our + latest stable + build + ), + link: scalaDocUrl +}, { + title: "Web documentation", + Svg: require("../../static/img/webdocs.svg").default, + description: (<> + Friendly guides and short articles related to the project and the usage + of the API + ), + link: "/docs" +}, { + title: "API Docs", + Svg: require("../../static/img/rocket.svg").default, + description: (<> + Browse the API Docs and test the API directly in Swagger Hub without + having to learn about the + underlying infrastructure + ), + link: apiDocsUrl +},]; function Feature({Svg, title, description, link}) { - return ( -
-
- -
-
-

{title}

-

{description}

-
+ return (
+
+
- ); +
+

{title}

+

{description}

+
+
); } export default function HomepageFeatures() { - return ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
+ return (
+
+
+ {FeatureList.map((props, idx) => ())}
-
- ); +
+
); }