From 7fcbbed901a487a7cb79a74b34ddc920623526d3 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Thu, 29 Dec 2016 15:04:22 +0900
Subject: [PATCH] =?UTF-8?q?about=E3=81=AE=E3=83=89=E3=82=AD=E3=83=A5?=
 =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88(pug)=E3=82=92=E4=BA=88=E3=82=81?=
 =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=91=E3=82=A4=E3=83=AB=E3=81=97=E3=81=A6?=
 =?UTF-8?q?=E3=81=8A=E3=81=8F=E3=82=88=E3=81=86=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 gulpfile.ts                                 | 37 ++++++++++++++++-----
 src/web/about/base.pug                      |  2 +-
 src/web/about/pages/api/getting-started.pug |  6 ++--
 src/web/about/pages/license.pug             |  2 --
 src/web/server.ts                           | 11 ++----
 5 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/gulpfile.ts b/gulpfile.ts
index a052d5eed4..78d19909ab 100644
--- a/gulpfile.ts
+++ b/gulpfile.ts
@@ -2,6 +2,7 @@
  * Gulp tasks
  */
 
+import * as path from 'path';
 import * as gulp from 'gulp';
 import * as gutil from 'gulp-util';
 import * as babel from 'gulp-babel';
@@ -36,6 +37,7 @@ const tsProject = ts.createProject('tsconfig.json');
 gulp.task('build', [
 	'build:js',
 	'build:ts',
+	'build:pug',
 	'build:copy',
 	'build:client'
 ]);
@@ -60,16 +62,35 @@ gulp.task('build:ts', () =>
 		.pipe(gulp.dest('./built/'))
 );
 
-gulp.task('build:copy', () => {
-	gulp.src([
-		'./src/**/resources/**/*',
-		'!./src/web/app/**/resources/**/*'
-	]).pipe(gulp.dest('./built/'));
-	gulp.src([
-		'./src/web/about/**/*'
-	]).pipe(gulp.dest('./built/web/about/'));
+gulp.task('build:pug', () => {
+	const pugs = glob.sync('./src/web/about/pages/**/*.pug');
+	const streams = pugs.map(file => {
+		const page = file.replace('./src/web/about/pages/', '').replace('.pug', '');
+		return gulp.src(file)
+			.pipe(pug({
+				locals: Object.assign({
+					path: page
+				}, config)
+			}))
+			.pipe(gulp.dest('./built/web/about/pages/' + path.parse(page).dir));
+	});
+
+	return es.merge.apply(es, streams);
 });
 
+gulp.task('build:copy', () =>
+	es.merge(
+		gulp.src([
+			'./src/**/resources/**/*',
+			'!./src/web/app/**/resources/**/*'
+		]).pipe(gulp.dest('./built/')),
+		gulp.src([
+			'./src/web/about/**/*',
+			'!./src/web/about/**/*.pug'
+		]).pipe(gulp.dest('./built/web/about/'))
+	)
+);
+
 gulp.task('test', ['lint', 'build']);
 
 gulp.task('lint', () =>
diff --git a/src/web/about/base.pug b/src/web/about/base.pug
index a026c03f28..81d9497d18 100644
--- a/src/web/about/base.pug
+++ b/src/web/about/base.pug
@@ -5,7 +5,7 @@ html(lang='ja', dir='ltr')
 	head
 		meta(charset='utf-8')
 		meta(name='application-name', content='Misskey')
-		meta(name='theme-color', content='#f76d6c')
+		meta(name='theme-color', content=themeColor)
 		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')
diff --git a/src/web/about/pages/api/getting-started.pug b/src/web/about/pages/api/getting-started.pug
index 974964e3eb..61c9a9305f 100644
--- a/src/web/about/pages/api/getting-started.pug
+++ b/src/web/about/pages/api/getting-started.pug
@@ -29,7 +29,7 @@ block content
 			h3 アプリケーションを作成する
 			p まずはあなたのアプリケーションを作成しましょう。
 			p
-				| <a href=#{config.dev_url} target="_blank">デベロッパーセンター</a>にアクセスし、アプリ > アプリ作成 に進みます。
+				| <a href=#{dev_url} target="_blank">デベロッパーセンター</a>にアクセスし、アプリ > アプリ作成 に進みます。
 				br
 				| 次に、フォームに必要事項を記入します:
 			dl
@@ -55,7 +55,7 @@ block content
 		section
 			h3 ユーザーに認証させる
 			p あなたのアプリを使ってもらうには、ユーザーにアカウントへアクセスすることを許可してもらい、Misskeyにそのユーザーのアクセストークンを発行してもらう必要があります。
-			p 認証セッションを開始するには、<code>#{config.api_url}/auth/session/generate</code>へパラメータに<code>app_secret</code>としてApp Secretを含めたリクエストを送信します。
+			p 認証セッションを開始するには、<code>#{api_url}/auth/session/generate</code>へパラメータに<code>app_secret</code>としてApp Secretを含めたリクエストを送信します。
 			p
 				| そうすると、レスポンスとして認証セッションのトークンや認証フォームのURLが取得できます。
 				br
@@ -67,7 +67,7 @@ block content
 				h4 あなたのアプリがコールバックURLを設定していない場合
 				p ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
 			p
-				| 次に、<code>#{config.api_url}/auth/session/userkey</code>へ<code>app_secret</code>としてApp Secretを、<code>token</code>としてセッションのトークンをパラメータとして付与したリクエストを送信してください。
+				| 次に、<code>#{api_url}/auth/session/userkey</code>へ<code>app_secret</code>としてApp Secretを、<code>token</code>としてセッションのトークンをパラメータとして付与したリクエストを送信してください。
 				br
 				| 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
 
diff --git a/src/web/about/pages/license.pug b/src/web/about/pages/license.pug
index 7adda0bff4..1c4f5e8bc6 100644
--- a/src/web/about/pages/license.pug
+++ b/src/web/about/pages/license.pug
@@ -5,5 +5,3 @@ block title
 
 block content
 	h1 ライセンス
-
-	include ../../../../LICENSE
diff --git a/src/web/server.ts b/src/web/server.ts
index 8e6f00cf3c..31c00bc4af 100644
--- a/src/web/server.ts
+++ b/src/web/server.ts
@@ -17,7 +17,6 @@ import serveApp from './serve-app';
  */
 const app = express();
 app.disable('x-powered-by');
-app.set('view engine', 'pug');
 
 app.use(bodyParser.urlencoded({ extended: true }));
 app.use(compression());
@@ -64,17 +63,11 @@ app.use('/@/about/resources', express.static(`${__dirname}/about/resources`, {
 }));
 
 app.get('/@/about/', (req, res) => {
-	res.render(`${__dirname}/about/pages/index`, {
-		path: 'index',
-		config: config
-	});
+	res.sendFile(`${__dirname}/about/pages/index.html`);
 });
 
 app.get('/@/about/:page(*)', (req, res) => {
-	res.render(`${__dirname}/about/pages/${req.params.page}`, {
-		path: req.params.page,
-		config: config
-	});
+	res.sendFile(`${__dirname}/about/pages/${req.params.page}.html`);
 });
 
 app.get('/@/auth/*', serveApp('auth')); // authorize form