Skip to content

Commit 2d818c6

Browse files
authored
Transition Docs (parse-community#424)
* Removes the links to parse.com * Fixes broken links on new repo * concat H1 section name with H2 to avoid link conflicts
1 parent ef278bb commit 2d818c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+299
-10318
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Parse Docs
22

3-
These are the markdown sources for all of the [Parse SDK guides](https://parseplatform.github.io/#sdks). The content for the guides is stored in this repo, and we use Jekyll to generate a static site that is hosted on GitHub Pages.
3+
These are the markdown sources for all of the [Parse SDK guides](https://parse-community.github.io/#sdks). The content for the guides is stored in this repo, and we use Jekyll to generate a static site that is hosted on GitHub Pages.
44

55
## Repository Structure
66

_config.yml

+8-3
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,20 @@ name: Parse Open Source Docs
1010
title: Parse Docs
1111
1212
description: The open source GitHub page for the Parse platform.
13-
baseurl: /docs # the subpath of your site, e.g. /blog
14-
url: "https://parseplatform.github.io/docs" # the base hostname & protocol for your site
15-
repository: parseplatform/docs
13+
url: "https://docs.parseplatform.org" # the base hostname & protocol for your site
14+
repository: parse-community/docs
1615
facebook_username: parseit
1716
twitter_username: parseit
1817
github_username: parseplatform
1918
stackoverflow_tag: parse.com
2019
serverfault_tag: parse
2120
support_url: https://www.parse.com/help
21+
apis:
22+
osx: https://parse-community.github.io/Parse-SDK-iOS-OSX/api
23+
android: https://parse-community.github.io/Parse-SDK-Android/api
24+
js: https://parse-community.github.io/Parse-SDK-JS/api
25+
php: https://parse-community.github.io/parse-php-sdk/namespaces/Parse.html
26+
dotnet: https://parse-community.github.io/Parse-SDK-dotNET/api
2227

2328
# Build settings
2429
markdown: kramdown

_includes/android/getting-started.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Getting Started
22

3-
Note that we support Android 2.3 and higher. You can also check out our [API Reference](/Parse-SDK-Android/api/) for more detailed information about our SDK.
3+
Note that we support Android 2.3 and higher. You can also check out our [API Reference]({{ site.apis.android }}) for more detailed information about our SDK.
44

55
## Installation
66
**Step 1:** Download `Parse-SDK-Android`

_includes/android/handling-errors.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
Many of the methods on `ParseObject`, including `save()`, `delete()`, and `get()` will throw a `ParseException` on an invalid request, such as deleting or editing an object that no longer exists in the cloud, or when there is a network failure preventing communication with the Parse Cloud. You will need to catch and deal with these exceptions.
44

5-
For more details, look at the [Android API](https://parse.com/docs/android/api/).
5+
For more details, look at the [Android API]({{ site.apis.android }}).

_includes/android/user-interface.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ At the end of the day, users of your application will be interacting with Androi
44

55
## ParseLoginUI
66

7-
If you are using Parse to manage users in your mobile app, you are already familiar with the `ParseUser` class. At some point in your app, you might want to present a screen to log in your `ParseUser`. Parse provides an open-source [ParseLoginUI](https://github.com/ParsePlatform/ParseUI-Android) library that does exactly this. Please note ParseLoginUI is not included with the Parse Android SDK; you need to import this library from maven or from our Git repository into your project. Check the README.md of the [ParseLoginUI](https://github.com/ParsePlatform/ParseUI-Android) for detail steps.
7+
If you are using Parse to manage users in your mobile app, you are already familiar with the `ParseUser` class. At some point in your app, you might want to present a screen to log in your `ParseUser`. Parse provides an open-source [ParseLoginUI](https://github.com/parse-community/ParseUI-Android) library that does exactly this. Please note ParseLoginUI is not included with the Parse Android SDK; you need to import this library from maven or from our Git repository into your project. Check the README.md of the [ParseLoginUI](https://github.com/parse-community/ParseUI-Android) for detail steps.
88

99
This library contains an Android login activity that is ultra-customizable and easy to integrate with your app. You can configure the look and feel of the login screens by either specifying XML configurations or constructing an Intent in code. In this guide, we first provide several ways to integrate with the login library. Then, we describe in detail how to customize the login screens.
1010

@@ -42,7 +42,7 @@ When `ParseLoginActivity` finishes, your caller activity will receive either:
4242
* `RESULT_OK`: The user successfully logged in. `ParseUser.getCurrentUser()` will be populated.
4343
* `RESULT_CANCELLED`: The user pressed the back button. If the user fails to log in or sign up, the only way to return to the previous screen is by pressing the back button.
4444

45-
We've provided a sample app, [ParseLoginSampleBasic](https://github.com/ParsePlatform/ParseUI-Android) for this use case. This sample app is a simple profile viewer. If you are not logged in, `SampleProfileActivity` prompts you to log in. Clicking on the login button in `SampleProfileActivity` launches the `ParseLoginActivity`, which prompts the user for login credentials. If the user successfully logs in, `ParseLoginActivity` will automatically finish itself and return `RESULT_OK`. Then, `SampleProfileActivity` will display the user's name and a logout button.
45+
We've provided a sample app, [ParseLoginSampleBasic](https://github.com/parse-community/ParseUI-Android) for this use case. This sample app is a simple profile viewer. If you are not logged in, `SampleProfileActivity` prompts you to log in. Clicking on the login button in `SampleProfileActivity` launches the `ParseLoginActivity`, which prompts the user for login credentials. If the user successfully logs in, `ParseLoginActivity` will automatically finish itself and return `RESULT_OK`. Then, `SampleProfileActivity` will display the user's name and a logout button.
4646

4747
![]({{ '/assets/images/basic_login.png' | prepend: site.baseurl }})
4848

@@ -61,7 +61,7 @@ public class SampleDispatchActivity extends ParseLoginDispatchActivity {
6161
}
6262
```
6363

64-
We've provided another sample app, [ParseLoginSampleWithDispatchActivity](https://github.com/ParsePlatform/ParseUI-Android) for this use case. The `SampleProfileActivity` in this app cannot function without a logged-in user, so it is protected by `SampleDispatchActivity`.
64+
We've provided another sample app, [ParseLoginSampleWithDispatchActivity](https://github.com/parse-community/ParseUI-Android) for this use case. The `SampleProfileActivity` in this app cannot function without a logged-in user, so it is protected by `SampleDispatchActivity`.
6565

6666
![]({{ '/assets/images/login_with_dispatch.png' | prepend: site.baseurl }})
6767

@@ -147,7 +147,7 @@ For the Facebook permission array, you also need to have this in your `res/value
147147

148148
### Configure by Code
149149

150-
You can configure the `ParseLoginActivity` by code using the ParseLoginBuilder. You specify the options on the builder, and then call `build()` to generate an `Intent` that can be used to start the `ParseLoginActivity`. We've provided a sample app, [ParseLoginSampleCodeCustomization](https://github.com/ParsePlatform/ParseUI-Android) demonstrating this use case. The options in `ParseLoginBuilder` are the same as those in activity metadata customization. If you specify options in both code and activity metadata, the options in code take precedence.
150+
You can configure the `ParseLoginActivity` by code using the ParseLoginBuilder. You specify the options on the builder, and then call `build()` to generate an `Intent` that can be used to start the `ParseLoginActivity`. We've provided a sample app, [ParseLoginSampleCodeCustomization](https://github.com/parse-community/ParseUI-Android) demonstrating this use case. The options in `ParseLoginBuilder` are the same as those in activity metadata customization. If you specify options in both code and activity metadata, the options in code take precedence.
151151

152152
```java
153153
ParseLoginBuilder builder = new ParseLoginBuilder(ProfileActivity.this);
@@ -176,7 +176,7 @@ You can override any layout resources by having files with the same name as thos
176176
* `com_parse_ui_parse_signup_fragment.xml`: You can add additional input fields in the signup form here. If you do, you also need add code to `ParseSignupFragment` to copy that data into the `ParseUser` object.
177177
* `com_parse_ui_parse_login_help_fragment.xml`: You can change the message for password reset.
178178

179-
We've provided another sample app, [ParseLoginSampleLayoutOverride](https://github.com/ParsePlatform/ParseUI-Android) showing how to do this. This sample app only has a Facebook login button in `com_parse_ui_parse_login_fragment.xml`, and adds a background image to the login screens.
179+
We've provided another sample app, [ParseLoginSampleLayoutOverride](https://github.com/parse-community/ParseUI-Android) showing how to do this. This sample app only has a Facebook login button in `com_parse_ui_parse_login_fragment.xml`, and adds a background image to the login screens.
180180

181181
## ParseQueryAdapter
182182

_includes/arduino/getting-started.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Getting Started
22

3-
If you haven't installed the SDK yet, please [head over to the QuickStart guide](https://parse.com{{ page.quickstart }}#embedded/arduino) to install the SDK in the Arduino IDE. Note that this SDK requires the Arduino Yún and the Arduino IDE v1.6.0+.
3+
If you haven't installed the SDK yet, please [head over to the QuickStart guide]({ page.quickstart }}#embedded/arduino) to install the SDK in the Arduino IDE. Note that this SDK requires the Arduino Yún and the Arduino IDE v1.6.0+.
44

55
The Parse platform provides a complete backend solution for your hardware device. Our goal is to totally eliminate the need for writing server code or maintaining servers.
66

7-
Note that the Arduino SDK only contains a subset of Parse features found in mobile and desktop. This allows the SDK to be smaller in size and more performant, making it suitable for constrained embedded environments. The Arduino SDK is fully open source, and anyone can contribute to make it better, or make their own changes if necessary. Check out the[ GitHub repository](https://github.com/ParsePlatform/parse-embedded-sdks) for more information.
7+
Note that the Arduino SDK only contains a subset of Parse features found in mobile and desktop. This allows the SDK to be smaller in size and more performant, making it suitable for constrained embedded environments. The Arduino SDK is fully open source, and anyone can contribute to make it better, or make their own changes if necessary. Check out the[ GitHub repository](https://github.com/parse-community/parse-embedded-sdks) for more information.
88

99
## Initialization
1010

_includes/arduino/sample-app.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Sample App
22

3-
We prepared a [sample app](https://github.com/ParsePlatform/Anydevice) that demonstrates how to provision connected devices using a companion phone app such that connected devices can securely access user-specific data on the Parse Cloud. This sample app also demonstrates how to send push notifications between the phone app and connected devices.
3+
We prepared a [sample app](https://github.com/parse-community/Anydevice) that demonstrates how to provision connected devices using a companion phone app such that connected devices can securely access user-specific data on the Parse Cloud. This sample app also demonstrates how to send push notifications between the phone app and connected devices.

_includes/cloudcode/cloud-code-advanced.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,4 @@ The response object passed into the `success` and `error` will contain:
146146
* **`buffer`** - The raw byte representation of the response body.
147147
* **`text`** - The raw response body.
148148
* **`data`** - The parsed response, if Cloud Code knows how to parse the content-type that was sent.
149-
* **`cookies`** - The cookies sent by the server. They are [Parse.Cloud.Cookie](https://parse.com/docs/js/api/classes/Parse.Cloud.HTTPResponse.html) objects.
149+
* **`cookies`** - The cookies sent by the server. They are [Parse.Cloud.Cookie]({{ site.apis.js }}/classes/Parse.Cloud.HTTPResponse.html) objects.

_includes/cloudcode/cloud-code.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ If `response.error` is called, the `Review` object will not be saved, and the cl
210210

211211
One useful tip is that even if your mobile app has many different versions, the same version of Cloud Code applies to all of them. Thus, if you launch an application that doesn't correctly check the validity of input data, you can still fix this problem by adding a validation with `beforeSave`.
212212

213-
If you want to use `beforeSave` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User](https://parse.com/docs/js/api/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself:
213+
If you want to use `beforeSave` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User]({{ site.apis.js }}/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself:
214214

215215
```javascript
216216
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
@@ -260,11 +260,11 @@ Parse.Cloud.afterSave("Comment", function(request) {
260260

261261
The client will receive a successful response to the save request after the handler terminates, regardless of how it terminates. For instance, the client will receive a successful response even if the handler throws an exception. Any errors that occurred while running the handler can be found in the Cloud Code log.
262262

263-
If you want to use `afterSave` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User](https://parse.com/docs/js/api/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself.
263+
If you want to use `afterSave` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User]({{ site.apis.js }}/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself.
264264

265265
# beforeDelete Triggers
266266

267-
You can run custom Cloud Code before an object is deleted. You can do this with the `beforeDelete` method. For instance, this can be used to implement a restricted delete policy that is more sophisticated than what can be expressed through [ACLs](https://parse.com/docs/js/api/symbols/Parse.ACL.html). For example, suppose you have a photo album app, where many photos are associated with each album, and you want to prevent the user from deleting an album if it still has a photo in it. You can do that by writing a function like this:
267+
You can run custom Cloud Code before an object is deleted. You can do this with the `beforeDelete` method. For instance, this can be used to implement a restricted delete policy that is more sophisticated than what can be expressed through [ACLs]({{ site.apis.js }}/symbols/Parse.ACL.html). For example, suppose you have a photo album app, where many photos are associated with each album, and you want to prevent the user from deleting an album if it still has a photo in it. You can do that by writing a function like this:
268268

269269
```javascript
270270
Parse.Cloud.beforeDelete("Album", function(request, response) {
@@ -287,7 +287,7 @@ Parse.Cloud.beforeDelete("Album", function(request, response) {
287287

288288
If `response.error` is called, the `Album` object will not be deleted, and the client will get an error. If `response.success` is called, the object will be deleted normally. Your code should call one of these two callbacks.
289289

290-
If you want to use `beforeDelete` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User](https://parse.com/docs/js/api/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself.
290+
If you want to use `beforeDelete` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User]({{ site.apis.js }}/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself.
291291

292292

293293
# afterDelete Triggers
@@ -318,7 +318,7 @@ The `afterDelete` handler can access the object that was deleted through `reques
318318

319319
The client will receive a successful response to the delete request after the handler terminates, regardless of how it terminates. For instance, the client will receive a successful response even if the handler throws an exception. Any errors that occurred while running the handler can be found in the Cloud Code log.
320320

321-
If you want to use `afterDelete` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User](https://parse.com/docs/js/api/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself.
321+
If you want to use `afterDelete` for a predefined class in the Parse JavaScript SDK (e.g. [Parse.User]({{ site.apis.js }}/symbols/Parse.User.html)), you should not pass a String for the first argument. Instead, you should pass the class itself.
322322

323323
# beforeFind Triggers
324324

_includes/common/security.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -474,13 +474,13 @@ There are some special classes in Parse that don't follow all of the same securi
474474

475475
## Data Integrity in Cloud Code
476476

477-
For most apps, care around keys, class-level permissions, and object-level ACLs are all you need to keep your app and your users' data safe. Sometimes, though, you'll run into an edge case where they aren't quite enough. For everything else, there's [Cloud Code](https://parse.com/docs/cloudcode/guide#cloud-code).
477+
For most apps, care around keys, class-level permissions, and object-level ACLs are all you need to keep your app and your users' data safe. Sometimes, though, you'll run into an edge case where they aren't quite enough. For everything else, there's [Cloud Code](/docs/cloudcode/guide#cloud-code).
478478

479479
Cloud Code allows you to upload JavaScript to Parse's servers, where we will run it for you. Unlike client code running on users' devices that may have been tampered with, Cloud Code is guaranteed to be the code that you've written, so it can be trusted with more responsibility.
480480

481481
One particularly common use case for Cloud Code is preventing invalid data from being stored. For this sort of situation, it's particularly important that a malicious client not be able to bypass the validation logic.
482482

483-
To create validation functions, Cloud Code allows you to implement a `beforeSave` trigger for your class. These triggers are run whenever an object is saved, and allow you to modify the object or completely reject a save. For example, this is how you create a [Cloud Code beforeSave trigger](https://parse.com/docs/cloudcode/guide#cloud-code-beforesave-triggers) to make sure every user has an email address set:
483+
To create validation functions, Cloud Code allows you to implement a `beforeSave` trigger for your class. These triggers are run whenever an object is saved, and allow you to modify the object or completely reject a save. For example, this is how you create a [Cloud Code beforeSave trigger](/docs/cloudcode/guide#cloud-code-beforesave-triggers) to make sure every user has an email address set:
484484

485485
```js
486486
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
@@ -493,7 +493,7 @@ Parse.Cloud.beforeSave(Parse.User, function(request, response) {
493493
});
494494
```
495495

496-
Our [Cloud Code guide](https://parse.com/docs/cloudcode/guide#cloud-code) provides instructions on how to upload this trigger to our servers.
496+
Our [Cloud Code guide](/docs/cloudcode/guide#cloud-code) provides instructions on how to upload this trigger to our servers.
497497

498498
Validations can lock down your app so that only certain values are acceptable. You can also use `afterSave` validations to normalize your data (e.g. formatting all phone numbers or currency identically). You get to retain most of the productivity benefits of accessing Parse data directly from your client applications, but you can also enforce certain invariants for your data on the fly.
499499

0 commit comments

Comments
 (0)