#309 and some cleanups
|
@ -12,7 +12,7 @@ Welcome!
|
|||
[Misskey](https://misskey.xyz) is a completely open source,
|
||||
ultimately sophisticated new type of mini-blog based SNS.
|
||||
|
||||
![ss](./resources/ss.jpg)
|
||||
![ss](./assets/ss.jpg)
|
||||
|
||||
Key features
|
||||
--------------------------------
|
||||
|
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 628 B After Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB |
|
@ -8,7 +8,7 @@ html(lang='ja', dir='ltr')
|
|||
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')
|
||||
link(rel='stylesheet', href='/assets/style.css')
|
||||
title
|
||||
block title
|
||||
| | About Misskey
|
||||
|
|
20
gulpfile.ts
|
@ -85,8 +85,8 @@ gulp.task('build:about:docs', () => {
|
|||
gulp.task('build:copy', () =>
|
||||
es.merge(
|
||||
gulp.src([
|
||||
'./src/**/resources/**/*',
|
||||
'!./src/web/app/**/resources/**/*'
|
||||
'./src/**/assets/**/*',
|
||||
'!./src/web/app/**/assets/**/*'
|
||||
]).pipe(gulp.dest('./built/')) as any,
|
||||
gulp.src([
|
||||
'./src/web/about/**/*',
|
||||
|
@ -134,11 +134,11 @@ gulp.task('build:client:scripts', done => {
|
|||
require('./webpack.config').then(webpackOptions => {
|
||||
es.merge(
|
||||
webpack(webpackOptions, require('webpack'))
|
||||
.pipe(gulp.dest('./built/web/resources/')) as any,
|
||||
.pipe(gulp.dest('./built/web/assets/')) as any,
|
||||
gulp.src('./src/web/app/client/script.js')
|
||||
.pipe(replace('VERSION', JSON.stringify(version)))
|
||||
//.pipe(isProduction ? uglify() : gutil.noop())
|
||||
.pipe(gulp.dest('./built/web/resources/client/')) as any
|
||||
.pipe(gulp.dest('./built/web/assets/client/')) as any
|
||||
);
|
||||
done();
|
||||
});
|
||||
|
@ -150,22 +150,22 @@ gulp.task('build:client:styles', () =>
|
|||
.pipe(isProduction
|
||||
? (cssnano as any)()
|
||||
: gutil.noop())
|
||||
.pipe(gulp.dest('./built/web/resources/'))
|
||||
.pipe(gulp.dest('./built/web/assets/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client', [
|
||||
'build:client:scripts'
|
||||
], () =>
|
||||
gulp.src([
|
||||
'./resources/**/*',
|
||||
'./src/web/resources/**/*',
|
||||
'./src/web/app/*/resources/**/*'
|
||||
'./assets/**/*',
|
||||
'./src/web/assets/**/*',
|
||||
'./src/web/app/*/assets/**/*'
|
||||
])
|
||||
.pipe(isProduction ? (imagemin as any)() : gutil.noop())
|
||||
.pipe(rename(path => {
|
||||
path.dirname = path.dirname.replace('resources', '.');
|
||||
path.dirname = path.dirname.replace('assets', '.');
|
||||
}))
|
||||
.pipe(gulp.dest('./built/web/resources/'))
|
||||
.pipe(gulp.dest('./built/web/assets/'))
|
||||
);
|
||||
|
||||
gulp.task('build:client:pug', [
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 323 B |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 532 B |
Before Width: | Height: | Size: 930 B |
1794
resources/icon.ai
Before Width: | Height: | Size: 2.7 KiB |
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="256px" height="256px" viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve">
|
||||
<path fill="#EC6B43" d="M128,32c-44.183,0-80,35.817-80,80c0,31.234,16,56,44.002,71.462C111.037,193.973,112,224,128,224
|
||||
s16.964-30.025,36-40.538C192,168,208,143.233,208,112C208,67.817,172.183,32,128,32z M128,132c-11.046,0-20-8.954-20-20
|
||||
s8.954-20,20-20s20,8.954,20,20S139.046,132,128,132z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 843 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
@ -24,7 +24,7 @@ app.use(cors());
|
|||
/**
|
||||
* Statics
|
||||
*/
|
||||
app.use('/resources', express.static(__dirname + '/resources', {
|
||||
app.use('/assets', express.static(__dirname + '/assets', {
|
||||
maxAge: 1000 * 60 * 60 * 24 * 365 // 一年
|
||||
}));
|
||||
|
||||
|
@ -33,12 +33,12 @@ app.get('/', (req, res) => {
|
|||
});
|
||||
|
||||
app.get('/default-avatar.jpg', (req, res) => {
|
||||
const file = fs.readFileSync(__dirname + '/resources/avatar.jpg');
|
||||
const file = fs.readFileSync(__dirname + '/assets/avatar.jpg');
|
||||
send(file, 'image/jpeg', req, res);
|
||||
});
|
||||
|
||||
app.get('/app-default.jpg', (req, res) => {
|
||||
const file = fs.readFileSync(__dirname + '/resources/dummy.png');
|
||||
const file = fs.readFileSync(__dirname + '/assets/dummy.png');
|
||||
send(file, 'image/png', req, res);
|
||||
});
|
||||
|
||||
|
@ -54,7 +54,7 @@ async function raw(data: Buffer, type: string, download: boolean, res: express.R
|
|||
|
||||
async function thumbnail(data: Buffer, type: string, resize: number, res: express.Response): Promise<any> {
|
||||
if (!/^image\/.*$/.test(type)) {
|
||||
data = fs.readFileSync(__dirname + '/resources/dummy.png');
|
||||
data = fs.readFileSync(__dirname + '/assets/dummy.png');
|
||||
}
|
||||
|
||||
let g = gm(data);
|
||||
|
@ -100,7 +100,7 @@ app.get('/:id', async (req, res) => {
|
|||
const file = await File.findOne({_id: new mongodb.ObjectID(req.params.id)});
|
||||
|
||||
if (file == null) {
|
||||
res.status(404).sendFile(__dirname + '/resources/dummy.png');
|
||||
res.status(404).sendFile(__dirname + '/assets/dummy.png');
|
||||
return;
|
||||
} else if (file.data == null) {
|
||||
res.sendStatus(400);
|
||||
|
@ -120,7 +120,7 @@ app.get('/:id/:name', async (req, res) => {
|
|||
const file = await File.findOne({_id: new mongodb.ObjectID(req.params.id)});
|
||||
|
||||
if (file == null) {
|
||||
res.status(404).sendFile(__dirname + '/resources/dummy.png');
|
||||
res.status(404).sendFile(__dirname + '/assets/dummy.png');
|
||||
return;
|
||||
} else if (file.data == null) {
|
||||
res.sendStatus(400);
|
||||
|
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
|
@ -13,11 +13,11 @@ app.disable('x-powered-by');
|
|||
app.locals.cache = true;
|
||||
|
||||
app.get('/himasaku.png', (req, res) => {
|
||||
res.sendFile(__dirname + '/resources/himasaku.png');
|
||||
res.sendFile(__dirname + '/assets/himasaku.png');
|
||||
});
|
||||
|
||||
app.get('*', (req, res) => {
|
||||
res.sendFile(__dirname + '/resources/index.html');
|
||||
res.sendFile(__dirname + '/assets/index.html');
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
|
|
|
@ -3,7 +3,7 @@ import ms = require('ms');
|
|||
|
||||
const router = express.Router();
|
||||
|
||||
router.use('/@/about/resources', express.static(`${__dirname}/resources`, {
|
||||
router.use('/@/about/assets', express.static(`${__dirname}/assets`, {
|
||||
maxAge: ms('7 days')
|
||||
}));
|
||||
|
||||
|
|
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 646 B |
|
@ -23,7 +23,7 @@
|
|||
<h1>サインインしてください</h1>
|
||||
<mk-signin></mk-signin>
|
||||
</main>
|
||||
<footer><img src="/resources/auth/logo.svg" alt="Misskey"/></footer>
|
||||
<footer><img src="/assets/auth/logo.svg" alt="Misskey"/></footer>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
|
|
@ -2,4 +2,4 @@ extends ../base
|
|||
|
||||
block head
|
||||
meta(name='viewport' content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no')
|
||||
script(src=`/resources/auth/script.${version}.js` async defer)
|
||||
script(src=`/assets/auth/script.${version}.js` async defer)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
doctype html
|
||||
|
||||
!= '\r\n<!-- Thank you for using Misskey! @syuilo -->\r\n'
|
||||
!= '\n<!-- Thank you for using Misskey! @syuilo -->\n'
|
||||
|
||||
html(lang='ja' dir='ltr')
|
||||
|
||||
|
@ -11,7 +11,7 @@ html(lang='ja' dir='ltr')
|
|||
meta(name='referrer' content='origin')
|
||||
title Misskey
|
||||
style
|
||||
include ./../../../built/web/resources/init.css
|
||||
include ./../../../built/web/assets/init.css
|
||||
script(src='https://use.fontawesome.com/22aba0df4f.js' async)
|
||||
block head
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
function mountDesktop() {
|
||||
const script = document.createElement('script');
|
||||
script.setAttribute('src', `/resources/desktop/script.${VERSION}.js`);
|
||||
script.setAttribute('src', `/assets/desktop/script.${VERSION}.js`);
|
||||
script.setAttribute('async', 'true');
|
||||
script.setAttribute('defer', 'true');
|
||||
head.appendChild(script);
|
||||
|
@ -31,7 +31,7 @@
|
|||
head.appendChild(meta);
|
||||
|
||||
const script = document.createElement('script');
|
||||
script.setAttribute('src', `/resources/mobile/script.${VERSION}.js`);
|
||||
script.setAttribute('src', `/assets/mobile/script.${VERSION}.js`);
|
||||
script.setAttribute('async', 'true');
|
||||
script.setAttribute('defer', 'true');
|
||||
head.appendChild(script);
|
||||
|
|
|
@ -2,4 +2,4 @@ extends ../base
|
|||
|
||||
block head
|
||||
script
|
||||
include ./../../../../built/web/resources/client/script.js
|
||||
include ./../../../../built/web/assets/client/script.js
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-core-error>
|
||||
<!--i: i.fa.fa-times-circle-->
|
||||
<img src="/resources/error.jpg" alt=""/>
|
||||
<img src="/assets/error.jpg" alt=""/>
|
||||
<h1>サーバーに接続できません</h1>
|
||||
<p class="text">インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから<a onclick={ retry }>再度お試し</a>ください。</p>
|
||||
<p class="thanks">いつもMisskeyをご利用いただきありがとうございます。</p>
|
||||
|
|
|
@ -191,7 +191,7 @@
|
|||
|
||||
&:not([data-is-me]):not([data-is-read])
|
||||
> div
|
||||
background-image url("/resources/unread.svg")
|
||||
background-image url("/assets/unread.svg")
|
||||
background-repeat no-repeat
|
||||
background-position 0 center
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="content-container">
|
||||
<div class="balloon">
|
||||
<p class="read" if={ message.is_me && message.is_read }>既読</p>
|
||||
<button class="delete-button" if={ message.is_me } title="メッセージを削除"><img src="/resources/desktop/messaging/delete.png" alt="Delete"/></button>
|
||||
<button class="delete-button" if={ message.is_me } title="メッセージを削除"><img src="/assets/desktop/messaging/delete.png" alt="Delete"/></button>
|
||||
<div class="content" if={ !message.is_deleted }>
|
||||
<div ref="text"></div>
|
||||
<div class="image" if={ message.file }><img src={ message.file.url } alt="image" title={ message.file.name }/></div>
|
||||
|
|
Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 643 B |
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3 KiB |
|
@ -1,11 +1,11 @@
|
|||
<mk-drive-browser-file data-is-selected={ isSelected } data-is-contextmenu-showing={ isContextmenuShowing.toString() } onclick={ onclick } oncontextmenu={ oncontextmenu } draggable="true" ondragstart={ ondragstart } ondragend={ ondragend } title={ title }>
|
||||
<div class="label" if={ I.avatar_id == file.id }><img src="/resources/label.svg"/>
|
||||
<div class="label" if={ I.avatar_id == file.id }><img src="/assets/label.svg"/>
|
||||
<p>アバター</p>
|
||||
</div>
|
||||
<div class="label" if={ I.banner_id == file.id }><img src="/resources/label.svg"/>
|
||||
<div class="label" if={ I.banner_id == file.id }><img src="/assets/label.svg"/>
|
||||
<p>バナー</p>
|
||||
</div>
|
||||
<div class="label" if={ I.data.wallpaper == file.id }><img src="/resources/label.svg"/>
|
||||
<div class="label" if={ I.data.wallpaper == file.id }><img src="/assets/label.svg"/>
|
||||
<p>壁紙</p>
|
||||
</div>
|
||||
<div class="thumbnail"><img src={ file.url + '?thumbnail&size=128' } alt=""/></div>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-entrance>
|
||||
<main>
|
||||
<img src="/resources/title.svg" alt="Misskey"/>
|
||||
<img src="/assets/title.svg" alt="Misskey"/>
|
||||
<mk-entrance-signin if={ mode == 'signin' }></mk-entrance-signin>
|
||||
<mk-entrance-signup if={ mode == 'signup' }></mk-entrance-signup>
|
||||
<div class="introduction" if={ mode == 'introduction' }>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<ul>
|
||||
<li each={ files }>
|
||||
<div class="img" style="background-image: url({ url + '?thumbnail&size=64' })" title={ name }></div>
|
||||
<img class="remove" onclick={ removeFile } src="/resources/desktop/remove.png" title="添付取り消し" alt=""/>
|
||||
<img class="remove" onclick={ removeFile } src="/assets/desktop/remove.png" title="添付取り消し" alt=""/>
|
||||
</li>
|
||||
<li class="add" if={ files.length < 4 } title="PCからファイルを添付" onclick={ selectFile }><i class="fa fa-plus"></i></li>
|
||||
</ul>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
display block
|
||||
width 100%
|
||||
height 48px
|
||||
background-image url(/resources/desktop/header-logo-white.svg)
|
||||
background-image url(/assets/desktop/header-logo-white.svg)
|
||||
background-size 64px
|
||||
background-position center
|
||||
background-repeat no-repeat
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
extends ../base
|
||||
|
||||
block head
|
||||
script(src=`/resources/dev/script.${version}.js` async defer)
|
||||
script(src=`/assets/dev/script.${version}.js` async defer)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<mk-entrance>
|
||||
<main><img src="/resources/title.svg" alt="Misskey"/>
|
||||
<main><img src="/assets/title.svg" alt="Misskey"/>
|
||||
<mk-entrance-signin if={ mode == 'signin' }></mk-entrance-signin>
|
||||
<mk-entrance-signup if={ mode == 'signup' }></mk-entrance-signup>
|
||||
<div class="introduction" if={ mode == 'introduction' }>
|
||||
|
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 441 B |
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 352 KiB |
|
@ -35,12 +35,12 @@ app.use((req, res, next) => {
|
|||
});
|
||||
|
||||
/**
|
||||
* Static resources
|
||||
* Static assets
|
||||
*/
|
||||
app.use(favicon(`${__dirname}/resources/favicon.ico`));
|
||||
app.get('/manifest.json', (req, res) => res.sendFile(__dirname + '/resources/manifest.json'));
|
||||
app.get('/apple-touch-icon.png', (req, res) => res.sendFile(__dirname + '/resources/apple-touch-icon.png'));
|
||||
app.use('/resources', express.static(`${__dirname}/resources`, {
|
||||
app.use(favicon(`${__dirname}/assets/favicon.ico`));
|
||||
app.get('/manifest.json', (req, res) => res.sendFile(__dirname + '/assets/manifest.json'));
|
||||
app.get('/apple-touch-icon.png', (req, res) => res.sendFile(__dirname + '/assets/apple-touch-icon.png'));
|
||||
app.use('/assets', express.static(`${__dirname}/assets`, {
|
||||
maxAge: ms('7 days')
|
||||
}));
|
||||
|
||||
|
|