diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..aefe4cd69 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,122 @@ +# Contributing Guidelines + +You might want to make yourself familiar with [Docusaurus v2](https://v2.docusaurus.io/) to make significant changes to the website. If you only want to make content changes you will find the page source within the `docs` folder. + +## Setup + +### Prerequisites + +Install the latest LTS version of [node](https://nodejs.org/). + +### Install dependencies + +Run `npm install` in the root of this repository. + +### Start development server + +Run `npm start` in the root of this repository. + +This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server. + +### Deployment + +The website is automatically built and deployed on commit to master. + +## Docs pages + +### Adding new pages + +New pages can be added under each product within the `docs` folder (`docs/web`, `docs/mobile`, etc.). To add a new page: + +1. Create a new `.mdx` file within the appropriate product. When naming the file, look for existing or similar pages to follow a similar naming convention. The name of the file is important as it will become the name in the URL. For example, `docs/web/overview.mdx` becomes https://developers.geocortex.com/docs/web/overview +2. Add appropriate markdown headers at the top of the file in the following format: + +``` +--- +title: Overview +description: Geocortex Web - Overview +--- +``` + +- `title` becomes the prefix of the window title. For example `Overview | Developer Center` +- `description` is injected into the document's `head` as a `meta` element for SEO purposes to describe the page + +3. Add to the `/sidebars.js` file in the appropriate place to make it visible in the sidebar menu. + +### Adding hyperlinks + +Traditional markdown hyperlink syntax is used to link to other pages in the docs or elsewhere. For example: + +```md +See [Key Concepts](key-concepts.mdx) for more information. +``` + +```md +You can learn more in the [ArcGIS API for JavaScript documentation](https://developers.arcgis.com/javascript/) +``` + +- Note the use of `.mdx` file extension when linking to relative pages within these docs. This is important for two reasons: + - The link works correctly when browsing the source in GitHub + - The `remark-validate-links` plugin uses this link to check for validity + +### Adding code blocks + +To add a code block, use the markdown syntax like follows: + + ```ts + import foo from "bar"; + ``` + +- Use the appropriate language key in the beginning of the code block (`ts` in the case above). This enables the approriate syntax highlighting for the given language. Common keys in this project are: + - `json` + - `xml` + - `ts` + - `tsx` + - `csharp` + +#### File names + +You can add a file name to the code block when appropriate. We only recommend adding a file name when the code block is a _complete_ example - i.e. a user could copy the block into that file and it would run without modification. + +For example this is a complete sample (it would actually run): + + ```xml title="layout.xml" + + + + + + + ``` + +While this is not complete, and therefore doesn't have a filename: + + ```xml + + + + + + ``` + +#### Line highlighting + +You can bring emphasis to certain lines of code by specifying line ranges after the language meta string (leave a space after the language). + + ```json {6-7} title="app.json" + { + "schemaVersion": "1.0", + "items": [ + { + "$type": "layout", + "id": "desktop-layout", + "url": "resource://layout-large.xml", + "tags": [ "mobile", "large" ] + }, + ] + } + ``` + +### Adding images + +- Todo. See https://v2.docusaurus.io/docs/using-plugins#docusaurusplugin-ideal-image for consideration. diff --git a/README.md b/README.md index 02de9081b..d18cee8f0 100644 --- a/README.md +++ b/README.md @@ -8,24 +8,4 @@ This is the source for the Geocortex Developer Center website; feel free to sugg This documentation is an open source project, and you are encouraged to submit issues or pull requests for improvements or bug fixes if you notice them. -You might want to make yourself familiar with [Docusaurus v2](https://v2.docusaurus.io/) to make significant changes to the website. If you only want to make content changes you will find the page source within the `docs` folder. - -### Setup - -#### Prerequisites - -Install the latest LTS version of [node](https://nodejs.org/). - -#### Install dependencies - -Run `npm install` in the root of this repository. - -#### Start development server - -Run `npm start` in the root of this repository. - -This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server. - -#### Deploy - -The website is automatically built and deployed on commit to master. +Please see [CONTRIBUTING.md](CONTRIBUTING.md) for helpful guidelines.