diff --git a/controllers/static.php b/controllers/static.php index c53fa14..6b64df7 100644 --- a/controllers/static.php +++ b/controllers/static.php @@ -1,5 +1,21 @@ 'Signing In', + 'creating-posts' => 'Creating Posts', + 'editor' => 'Rich Editor', + 'note' => 'Note Interface', + 'syndication' => 'Syndication', + 'post-status' => 'Post Status', + ]; + if($page == null) + return $pages; + else + return $pages[$page]; +} + + $app->get('/', function($format='html') use($app) { $res = $app->response(); $params = $app->request()->params(); @@ -23,14 +39,23 @@ $app->get('/creating-a-micropub-endpoint', function() use($app) { }); $app->get('/docs', function() use($app) { - render('docs', array('title' => 'Documentation', 'authorizing' => false)); + render('docs/index', array( + 'title' => 'Documentation', + 'authorizing' => false, + 'pages' => doc_pages() + )); }); -$app->get('/docs/post-status', function() use($app) { - render('docs/post-status', array('title' => 'Post Status Documentation', 'authorizing' => false)); +$app->get('/docs/:page', function($page) use($app) { + if(file_exists('views/docs/'.$page.'.php')) + render('docs/'.$page, array( + 'title' => doc_pages($page).' - Quill Documentation', + 'authorizing' => false + )); + else + $app->notFound(); }); $app->get('/privacy', function() use($app) { render('privacy', array('title' => 'Quill Privacy Policy', 'authorizing' => false)); }); - diff --git a/public/images/note-interface.png b/public/images/note-interface.png new file mode 100644 index 0000000..912bb1e Binary files /dev/null and b/public/images/note-interface.png differ diff --git a/public/images/quill-note-interface.png b/public/images/quill-note-interface.png new file mode 100644 index 0000000..f5fe0de Binary files /dev/null and b/public/images/quill-note-interface.png differ diff --git a/public/images/quill-ui.png b/public/images/quill-ui.png deleted file mode 100644 index d7de77a..0000000 Binary files a/public/images/quill-ui.png and /dev/null differ diff --git a/public/images/rich-editor-interface.png b/public/images/rich-editor-interface.png new file mode 100644 index 0000000..6490af3 Binary files /dev/null and b/public/images/rich-editor-interface.png differ diff --git a/views/docs/creating-posts.php b/views/docs/creating-posts.php new file mode 100644 index 0000000..ca19f48 --- /dev/null +++ b/views/docs/creating-posts.php @@ -0,0 +1,15 @@ +
+ + +

Creating Posts

+ +

Each posting interface in Quill is optimized for a different kind of post. There is an HTML-based editor for writing blog posts with a title and formatted content, a simple note interface, events, bookmarks, travel posts, reviews and more.

+

Each interface will make a Micropub request with different properties to your endpoint. The links below describe the specific properties sent by each posting interface.

+ + + +
diff --git a/views/docs/editor.php b/views/docs/editor.php new file mode 100644 index 0000000..23d2058 --- /dev/null +++ b/views/docs/editor.php @@ -0,0 +1,46 @@ +
+ + +

Rich Editor

+ + + +

The rich editor allows you to write posts with some basic formatting and embedded images.

+ +

Embedded Images

+ +

When editing, you can add images to your post in the interface. There are two ways embedded images are handled.

+ +

If your Micropub server supports a Media Endpoint, then at the time you add the image to the interface, Quill uploads the file to your Media Endpoint and embeds it in the editor as an <img> tag pointing to the file on your server. When you publish the post, the HTML will contain this img tag.

+ +
+    '); ?>
+  
+ +

If your Micropub server does not support a Media Endpoint, then when you add an image in the editor, the image is converted to a data URI, and will be sent to your Micropub endpoint when you publish the post. You don't need to do anything special to handle the image, since if you render this HTML directly, your viewers will see the image! Of course this means your HTML file will increase by the size of the image, so you may wish to implement a Media Endpoint in order to handle images in your posts separately.

+ +
+    
+  
+ +

Post Properties

+ +

The following properties will be sent in the Micropub request. This request will be sent as a standard form-encoded request.

+ +

The access token is sent in the Authorization HTTP header:

+
Authorization: Bearer XXXXXXXXX
+ + + +
+ +

Back to Creating Posts

+ +
diff --git a/views/docs/index.php b/views/docs/index.php new file mode 100644 index 0000000..2054a62 --- /dev/null +++ b/views/docs/index.php @@ -0,0 +1,29 @@ +
+ + +

Introduction

+ +
+ +
+ +

Quill is a simple Micropub client for + creating posts on your own website. To use it, your website will need to have + a Micropub endpoint, and this app will send requests to it to create posts.

+ +

There are Micropub plugins for various content management systems such as + Wordpress, and is supported + natively by some software such as Known. + It's also a relatively simple protocol you can implement if you are building + your own website.

+ +

Once you've signed in, you'll be able to use the various interfaces see an interface like the one shown which you can use to + write a post. Clicking "post" will make a Micropub request to your endpoint.

+ +

+ +
diff --git a/views/docs/note.php b/views/docs/note.php new file mode 100644 index 0000000..654c478 --- /dev/null +++ b/views/docs/note.php @@ -0,0 +1,40 @@ +
+ + +

Note

+ + + +

The note interface is for creating simple text posts and optionally adding images.

+ +

Adding Photos

+ +

If your Micropub server supports a Media Endpoint, then at the time you select a photo, Quill uploads the file to your Media Endpoint and shows a preview in the interface. The image URL will be sent as a string in the request.

+ +

If your Micropub server does not support a Media Endpoint, then when you add an image, it is not uploaded until you click "post", and then is sent to your Micropub endpoint as a file.

+ +

Post Properties

+ +

The following properties will be sent in the Micropub request. This request will be sent as either a form-encoded or a multipart-encoded request, depending on whether there are photos and whether you have a Media Endpoint.

+ +

If you have a Media Endpoint, then you'll always get a form-encoded request with the URL of any photos. If you do not have a Media Endpoint, and if there is a photo, you'll get a multipart request so that photos are uploaded directly to your Micropub endpoint.

+ +

The access token is sent in the Authorization HTTP header:

+
Authorization: Bearer XXXXXXXXX
+ + + +
+ +

Back to Creating Posts

+ +
diff --git a/views/docs/post-status.php b/views/docs/post-status.php new file mode 100644 index 0000000..dd08aa7 --- /dev/null +++ b/views/docs/post-status.php @@ -0,0 +1,10 @@ +
+ + +

Post Status

+ +

The "Post Status" dropdown in the Quill editor is just an indication to your Micropub endpoint to mark the post as "published" or "draft". If your Micropub endpoint does not support this property, then your post will be published immediately.

+ +

Setting the dropdown to "draft" will include a new property in the Micropub request, called post-status with the value set to draft. You can read more about this extension on the IndieWeb wiki.

+ +
\ No newline at end of file diff --git a/views/docs/signing-in.php b/views/docs/signing-in.php new file mode 100644 index 0000000..487192f --- /dev/null +++ b/views/docs/signing-in.php @@ -0,0 +1,37 @@ +
+ + +

Signing In

+ +

To begin using Quill, you need to sign in. This will grant Quill an access token that it + will use when it creates posts on your website.

+ +

Authentication happens at a website that you choose, and you authorize Quill to be able + to post on your website. If you are familiar with OAuth 2.0, you will recognize many + of the concepts here.

+ +

When you sign in to Quill, you start by entering your URL. This URL delegates the various + aspects of signing in and granting authorization to other services, which may or may + not be part of your website.

+ +

Configuring Endpoints

+ +

To tell Quill where to find the endpoints it will need to log you in, you'll need + to add some HTML tags to your home page.

+ +

Authorization Endpoint

+ + +

Token Endpoint

+ + +

Micropub Endpoint

+ + +

The Creating a Micropub Endpoint tutorial will walk you through how to handle incoming POST requests from apps like this.

+ +
+ +

Continue to Creating Posts

+ +
diff --git a/views/docs.php b/views/docs/syndication.php similarity index 55% rename from views/docs.php rename to views/docs/syndication.php index 7c6757d..3452173 100644 --- a/views/docs.php +++ b/views/docs/syndication.php @@ -1,38 +1,7 @@
-

Introduction

- -
- -
- -

This is a simple Micropub client for - creating text posts on your own website. To use it, you will need to turn your website - into an OAuth provider, and implement a Micropub endpoint that this app will send - requests to.

- -

Once you've signed in, you'll see an interface like the one shown which you can use to - write a post. Clicking "post" will make a Micropub request to your endpoint.

- - - -

Configuring Endpoints

- -

Authorization Endpoint

- - -

Token Endpoint

- - -

Micropub Endpoint

- - -

The Creating a Micropub Endpoint tutorial will walk you through how to handle incoming POST requests from apps like this.

- - - -

Syndication Targets

+

Syndication Targets

You can provide a list of supported syndication targets that will appear as checkboxes when you are creating a new post.

@@ -64,4 +33,6 @@ Content-type: application/json

Quill will check for your supported syndication targets when you sign in, but there is also a link on the new post screen to manually re-check if you'd like.

+

When you create a post and tap one of the syndication options, the value of uid is sent in a property called mp-syndicate-to, which instructs your endpoint to syndicate to that target. Note that Quill doesn't know whether the target is Twitter, Facebook, or something else, and doesn't talk to the service directly. It's just an instruction to your endpoint to syndicate to that destination.

+