summaryrefslogtreecommitdiff
path: root/src/web/about
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2016-12-29 07:49:51 +0900
committersyuilo <syuilotan@yahoo.co.jp>2016-12-29 07:49:51 +0900
commitb3f42e62af698a67c2250533c437569559f1fdf9 (patch)
treecdf6937576e99cccf85e6fa3aa8860a1173c7cfb /src/web/about
downloadsharkey-b3f42e62af698a67c2250533c437569559f1fdf9.tar.gz
sharkey-b3f42e62af698a67c2250533c437569559f1fdf9.tar.bz2
sharkey-b3f42e62af698a67c2250533c437569559f1fdf9.zip
Initial commit :four_leaf_clover:
Diffstat (limited to 'src/web/about')
-rw-r--r--src/web/about/base.pug39
-rw-r--r--src/web/about/pages/api/entities/post.pug149
-rw-r--r--src/web/about/pages/api/entities/user.pug118
-rw-r--r--src/web/about/pages/api/getting-started.pug74
-rw-r--r--src/web/about/pages/api/library.pug14
-rw-r--r--src/web/about/pages/license.pug9
-rw-r--r--src/web/about/resources/style.css199
7 files changed, 602 insertions, 0 deletions
diff --git a/src/web/about/base.pug b/src/web/about/base.pug
new file mode 100644
index 0000000000..a026c03f28
--- /dev/null
+++ b/src/web/about/base.pug
@@ -0,0 +1,39 @@
+doctype html
+
+html(lang='ja', dir='ltr')
+
+ head
+ meta(charset='utf-8')
+ meta(name='application-name', content='Misskey')
+ meta(name='theme-color', content='#f76d6c')
+ meta(name='referrer', content='origin')
+ meta(name='viewport', content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no')
+ link(rel='stylesheet', href='/resources/style.css')
+ title
+ block title
+
+ body
+ nav
+ ul
+ li
+ p API
+ ul
+ li: a(href='/api/getting-started') Getting Started
+ li
+ p Entities
+ ul
+ li: a(href='/api/entities/post') Post
+ li: a(href='/api/entities/user') User
+ li: a(href='/api/library') ライブラリ
+ li: a(href='/license') ライセンス
+
+ main
+ article
+ block content
+ footer
+ p.contribution
+ | 間違いを見つけた、またはドキュメントに貢献したいですか?
+ a(href='https://github.com/syuilo/misskey/blob/master/src/web/about/pages/' + path + '.pug', target='_blank') Github 上でこのページを編集する
+ | か、
+ a(href='https://github.com/syuilo/misskey/fork', target='_blank') Github からこのサイトを Fork してプルリクエストしましょう!
+ p.copyright (c) syuilo 2016
diff --git a/src/web/about/pages/api/entities/post.pug b/src/web/about/pages/api/entities/post.pug
new file mode 100644
index 0000000000..ad53be9540
--- /dev/null
+++ b/src/web/about/pages/api/entities/post.pug
@@ -0,0 +1,149 @@
+extend ../../../base
+
+block title
+ | Entity: Post
+
+block content
+ h1 Post
+ p 投稿を表します。
+
+ section
+ h2 Properties
+ table.entity
+ thead: tr
+ td Name
+ td Type
+ td Description
+ tbody
+ tr.nullable.optional
+ td app
+ td: a(href='./app', target='_blank') App
+ td 投稿したアプリ
+ tr.nullable
+ td app_id
+ td ID
+ td 投稿したアプリのID
+ tr
+ td created_at
+ td Date
+ td 投稿日時
+ tr
+ td id
+ td ID
+ td 投稿ID
+ tr.optional
+ td is_liked
+ td Boolean
+ td いいね したかどうか
+ tr
+ td likes_count
+ td Number
+ td いいね数
+ tr.nullable.optional
+ td media_ids
+ td ID[]
+ td 添付されたメディアのIDの配列
+ tr.nullable.optional
+ td media
+ td: a(href='./drive-file', target='_blank') DriveFile[]
+ td 添付されたメディアの配列
+ tr
+ td replies_count
+ td Number
+ td 返信数
+ tr.optional
+ td reply_to
+ td: a(href='./post', target='_blank') Post
+ td 返信先の投稿
+ tr.nullable
+ td reply_to_id
+ td ID
+ td 返信先の投稿のID
+ tr.optional
+ td repost
+ td: a(href='./post', target='_blank') Post
+ td Repostした投稿
+ tr
+ td repost_count
+ td Number
+ td Repostされた数
+ tr.nullable
+ td repost_id
+ td ID
+ td Repostした投稿のID
+ tr.nullable
+ td text
+ td String
+ td 本文
+ tr.optional
+ td user
+ td: a(href='./user', target='_blank') User
+ td 投稿者
+ tr
+ td user_id
+ td ID
+ td 投稿者のID
+
+ section
+ h2 Example
+ pre: code.
+ {
+ "created_at": "2016-12-10T00:28:50.114Z",
+ "media_ids": null,
+ "reply_to_id": "584a16b15860fc52320137e3",
+ "repost_id": null,
+ "text": "小日向美穂だぞ!",
+ "user_id": "5848bf7764e572683f4402f8",
+ "app_id": null,
+ "likes_count": 1,
+ "replies_count": 1,
+ "id": "584b4c42d8e5186f8f755d0c",
+ "user": {
+ "birthday": null,
+ "created_at": "2016-12-08T02:03:35.332Z",
+ "bio": "女が嫌いです、女性は好きです",
+ "followers_count": 11,
+ "following_count": 11,
+ "links": null,
+ "location": "",
+ "name": "女が嫌い",
+ "posts_count": 26,
+ "likes_count": 2,
+ "liked_count": 20,
+ "username": "onnnagakirai",
+ "id": "5848bf7764e572683f4402f8",
+ "avatar_url": "https://file.himasaku.net/5848c0ec64e572683f4402fc",
+ "banner_url": "https://file.himasaku.net/5848c12864e572683f4402fd",
+ "is_following": true,
+ "is_followed": true
+ },
+ "reply_to": {
+ "created_at": "2016-12-09T02:28:01.563Z",
+ "media_ids": null,
+ "reply_to_id": "5849d35e547e4249be329884",
+ "repost_id": null,
+ "text": "アイコン小日向美穂?",
+ "user_id": "57d01a501fdf2d07be417afe",
+ "app_id": null,
+ "replies_count": 1,
+ "id": "584a16b15860fc52320137e3",
+ "user": {
+ "birthday": null,
+ "created_at": "2016-09-07T13:46:56.605Z",
+ "bio": "どうすれば君だけのために生きていけるの",
+ "followers_count": 51,
+ "following_count": 97,
+ "links": null,
+ "location": "川崎",
+ "name": "きな子",
+ "posts_count": 4813,
+ "username": "syuilo",
+ "likes_count": 3141,
+ "liked_count": 750,
+ "id": "57d01a501fdf2d07be417afe",
+ "avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a",
+ "banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5"
+ }
+ },
+ "is_liked": true
+ }
diff --git a/src/web/about/pages/api/entities/user.pug b/src/web/about/pages/api/entities/user.pug
new file mode 100644
index 0000000000..eef973fd63
--- /dev/null
+++ b/src/web/about/pages/api/entities/user.pug
@@ -0,0 +1,118 @@
+extend ../../../base
+
+block title
+ | Entity: User
+
+block content
+ h1 User
+ p ユーザーを表します。
+
+ section
+ h2 Properties
+ table.entity
+ thead: tr
+ td Name
+ td Type
+ td Description
+ tbody
+ tr.nullable.optional
+ td avatar_id
+ td ID
+ td アバターに設定しているドライブのファイルのID
+ tr.nullable
+ td avatar_url
+ td String
+ td アバターURL
+ tr.nullable.optional
+ td banner_id
+ td ID
+ td バナーに設定しているドライブのファイルのID
+ tr.nullable
+ td banner_url
+ td String
+ td バナーURL
+ tr.nullable
+ td bio
+ td String
+ td プロフィール
+ tr.nullable
+ td birthday
+ td String
+ td 誕生日
+ tr
+ td created_at
+ td Date
+ td アカウント作成日時
+ tr.optional
+ td drive_capacity
+ td Number
+ td ドライブの最大容量(byte単位)
+ tr
+ td followers_count
+ td Number
+ td フォロワー数
+ tr
+ td following_count
+ td Number
+ td フォロー数
+ tr
+ td id
+ td ID
+ td ユーザーID
+ tr.optional
+ td is_followed
+ td Boolean
+ td フォローされているか
+ tr.optional
+ td is_following
+ td Boolean
+ td フォローしているか
+ tr
+ td liked_count
+ td Number
+ td 投稿にいいねされた数
+ tr
+ td likes_count
+ td Number
+ td 投稿にいいねした数
+ tr.nullable
+ td location
+ td String
+ td 場所
+ tr
+ td name
+ td String
+ td ニックネーム
+ tr
+ td posts_count
+ td Number
+ td 投稿数
+ tr
+ td username
+ td String
+ td ユーザー名
+
+ section
+ h2 Example
+ pre: code.
+ {
+ "avatar_id": "583ddc6e64df272771f74c1a",
+ "avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a",
+ "banner_id": "584bfc82d8e5186f8f755ec5",
+ "banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5",
+ "bio": "どうすれば君だけのために生きていけるの",
+ "birthday": null,
+ "created_at": "2016-09-07T13:46:56.605Z",
+ "drive_capacity": 1073741824,
+ "email": null,
+ "followers_count": 51,
+ "following_count": 97,
+ "id": "57d01a501fdf2d07be417afe",
+ "liked_count": 750,
+ "likes_count": 3130,
+ "links": null,
+ "location": "川崎",
+ "name": "きな子",
+ "posts_count": 4811,
+ "username": "syuilo"
+ }
diff --git a/src/web/about/pages/api/getting-started.pug b/src/web/about/pages/api/getting-started.pug
new file mode 100644
index 0000000000..974964e3eb
--- /dev/null
+++ b/src/web/about/pages/api/getting-started.pug
@@ -0,0 +1,74 @@
+extend ../../base
+
+block title
+ | Getting Started
+
+block content
+ h1 Getting Started
+
+ p MisskeyはREST APIやStreaming APIを提供しており、プログラムからMisskeyの全ての機能を利用することができます。
+ p それらのAPIを利用するには、まずAPIを利用したいアカウントのアクセストークンを取得する必要があります:
+
+ section
+ h2 自分のアクセストークンを取得したい場合
+ p 自分自身のアクセストークンは、設定 > API で確認できます。
+ p.tip
+ | アカウントを乗っ取られてしまう可能性があるため、トークンは第三者に教えないでください(アプリなどにも入力しないでください)。
+ br
+ | 万が一トークンが漏れたりその可能性がある場合は トークンを再生成できます。(副作用として、ログインしているすべてのデバイスでログアウトが発生します)
+
+ section
+ h2 他人のアクセストークンを取得する
+ p
+ | 不特定多数のユーザーからAPIを利用したい場合、アプリケーションを作成します。
+ br
+ | アプリケーションを作成すると、ユーザーが連携を許可した時に、そのユーザーのアクセストークンを取得することができます。
+ p アプリケーションを作成しアクセストークンを取得するまでの流れを見ていきます。
+
+ section
+ h3 アプリケーションを作成する
+ p まずはあなたのアプリケーションを作成しましょう。
+ p
+ | <a href=#{config.dev_url} target="_blank">デベロッパーセンター</a>にアクセスし、アプリ > アプリ作成 に進みます。
+ br
+ | 次に、フォームに必要事項を記入します:
+ dl
+ dt アプリケーション名
+ dd あなたのアプリケーションの名前。
+ dt Named ID
+ dd アプリを識別する/a-z-/で構成されたID。
+ dt アプリの概要
+ dd アプリの簡単な説明を入力してください。
+ dt コールバックURL
+ dd あなたのアプリケーションがWebアプリケーションである場合、ユーザーが後述するフォームで認証を終えた際にリダイレクトするURLを設定できます。
+ dt 権限
+ dd アプリケーションが要求する権限。ここで要求した機能だけがAPIからアクセスできます。
+ p.tip
+ | 権限はアプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーはすべて無効になります。
+ p
+ | アプリケーションを作成すると、作ったアプリの管理ページに進みます。
+ br
+ | アプリのシークレットキー(App Secret)が表示されていますので、メモしておいてください。
+ p.tip
+ | アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。
+
+ section
+ h3 ユーザーに認証させる
+ p あなたのアプリを使ってもらうには、ユーザーにアカウントへアクセスすることを許可してもらい、Misskeyにそのユーザーのアクセストークンを発行してもらう必要があります。
+ p 認証セッションを開始するには、<code>#{config.api_url}/auth/session/generate</code>へパラメータに<code>app_secret</code>としてApp Secretを含めたリクエストを送信します。
+ p
+ | そうすると、レスポンスとして認証セッションのトークンや認証フォームのURLが取得できます。
+ br
+ | この認証フォームのURLをブラウザで表示し、ユーザーにフォームを表示してください。
+ section
+ h4 あなたのアプリがコールバックURLを設定している場合
+ p ユーザーがアプリの連携を許可すると設定しているコールバックURLに<code>token</code>という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。
+ section
+ h4 あなたのアプリがコールバックURLを設定していない場合
+ p ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
+ p
+ | 次に、<code>#{config.api_url}/auth/session/userkey</code>へ<code>app_secret</code>としてApp Secretを、<code>token</code>としてセッションのトークンをパラメータとして付与したリクエストを送信してください。
+ br
+ | 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
+
+ p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>_userkey</code>(「自分のアクセストークンを取得したい場合」の方法で取得したアクセストークンの場合は<code>i</code>)としてパラメータに含めるだけです。
diff --git a/src/web/about/pages/api/library.pug b/src/web/about/pages/api/library.pug
new file mode 100644
index 0000000000..b1ed16e71d
--- /dev/null
+++ b/src/web/about/pages/api/library.pug
@@ -0,0 +1,14 @@
+extend ../../base
+
+block title
+ | ライブラリ
+
+block content
+ h1 ライブラリ
+
+ p Misskey APIを便利に利用するためのライブラリ一覧です。
+
+ section
+ h2 .NET
+ ul
+ li: strong: a(href='https://github.com/syuilo/Misq') Misq (公式)
diff --git a/src/web/about/pages/license.pug b/src/web/about/pages/license.pug
new file mode 100644
index 0000000000..7adda0bff4
--- /dev/null
+++ b/src/web/about/pages/license.pug
@@ -0,0 +1,9 @@
+extend ../base
+
+block title
+ | ライセンス
+
+block content
+ h1 ライセンス
+
+ include ../../../../LICENSE
diff --git a/src/web/about/resources/style.css b/src/web/about/resources/style.css
new file mode 100644
index 0000000000..53d658fa6b
--- /dev/null
+++ b/src/web/about/resources/style.css
@@ -0,0 +1,199 @@
+html {
+ font-family: sans-serif;
+}
+
+body {
+ margin: 0;
+ color: #34495e;
+}
+
+nav {
+ display: block;
+ float: left;
+ width: 210px;
+}
+nav ul {
+ display: block;
+ margin: 0 0 16px 0;
+ padding: 0 0 0 16px;
+ list-style: none;
+}
+nav ul li {
+ margin: 0;
+ padding: 0;
+}
+nav ul li p {
+ margin: 16px 0 0 0;
+}
+@media screen and (max-width: 910px) {
+ nav {
+ display: none;
+ }
+}
+
+main {
+ float: left;
+ box-sizing: border-box;
+ padding: 32px;
+ width: 100%;
+ max-width: 700px;
+}
+@media screen and (max-width: 700px) {
+ main {
+ font-size: 8px;
+ }
+}
+
+footer {
+ padding: 32px 0 0 0;
+ margin: 32px 0 0 0;
+ border-top: solid 1px #eee;
+}
+
+footer .contribution {
+ margin: 0 0 16px 0;
+}
+
+footer .copyright {
+ margin: 16px 0 0 0;
+ color: #aaa;
+}
+
+a {
+ text-decoration: none;
+ color: #f76d6c;
+}
+ a:hover {
+ text-decoration: underline;
+ }
+
+section {
+ margin: 32px 0;
+}
+
+h1 {
+ margin: 0 0 24px 0;
+ padding: 16px 0;
+ font-size: 1.5em;
+ border-bottom: solid 2px #eee;
+}
+
+h2 {
+ margin: 0 0 24px 0;
+ padding: 0 0 16px 0;
+ font-size: 1.4em;
+ border-bottom: solid 1px #eee;
+}
+
+h3 {
+ margin: 0;
+ padding: 0;
+ font-size: 1.25em;
+}
+
+h4 {
+ margin: 0;
+}
+
+p {
+ margin: 1em 0;
+ line-height: 1.6em;
+}
+
+p.tip {
+ position: relative;
+ padding: 12px 24px 12px 30px;
+ margin: 1em 0;
+ font-size: 0.9em;
+ border-left: 4px solid #f66;
+ background-color: #f8f8f8;
+ border-bottom-right-radius: 2px;
+ border-top-right-radius: 2px;
+}
+ p.tip:before {
+ position: absolute;
+ top: 14px;
+ left: -12px;
+ background-color: #f66;
+ color: #fff;
+ content: "!";
+ width: 20px;
+ height: 20px;
+ border-radius: 100%;
+ text-align: center;
+ line-height: 20px;
+ font-weight: bold;
+ font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
+ font-size: 14px;
+ }
+
+table {
+ width: 100%;
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+
+table thead {
+ font-weight: bold;
+ border-bottom: solid 2px #eee;
+}
+
+table tbody tr {
+ border-bottom: dashed 1px #eee;
+}
+
+table th, table td {
+ padding: 8px 16px;
+}
+
+table.entity tbody tr td:nth-child(1) {
+ font-family: Consolas, 'Courier New', Courier, Monaco, monospace;
+}
+
+table.entity tbody tr td:nth-child(2) {
+ font-style: italic;
+}
+
+table.entity tr td:nth-child(3):after {
+ margin-left: 8px;
+ opacity: 0.7;
+}
+
+table.entity tr.nullable td:nth-child(2):after {
+ content: "?";
+ opacity: 0.7;
+}
+table.entity tr.nullable td:nth-child(3):after {
+ content: "(Null許容)";
+}
+
+table.entity tr.optional {
+ opacity: 0.7;
+}
+table.entity tr.optional td:nth-child(3):after {
+ content: "(省略可能)";
+}
+
+table.entity tr.nullable.optional td:nth-child(3):after {
+ content: "(Null許容かつ省略可能)";
+}
+
+pre, code, var, samp, kbd {
+ font-family: Consolas, 'Courier New', Courier, Monaco, monospace;
+}
+
+code {
+ display: inline-block;
+ margin: 0 4px;
+ padding: 0 8px;
+ color: #525252;
+ background: #f8f8f8;
+ border-radius: 2px;
+}
+
+pre code {
+ display: block;
+ overflow: auto;
+ margin: 0;
+ padding: 32px;
+}