diff --git a/.dockerignore b/.dockerignore index 7cef84d940..9ed558a258 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,6 +2,7 @@ .github .travis .vscode +.config Dockerfile build/ built/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c93da9bee..76d5f8da92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - リモートユーザーのDeleteアクティビティに対応 ### Bugfixes +- popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 ## 12.90.1 (2021/09/05) diff --git a/docker-compose.yml b/docker-compose.yml index df648d291d..717b756c7d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: - external_network volumes: - ./files:/misskey/files + - ./.config:/misskey/.config:ro redis: restart: always diff --git a/docs/push-docker-hub.ja.md b/docs/push-docker-hub.ja.md new file mode 100644 index 0000000000..923e4c16e0 --- /dev/null +++ b/docs/push-docker-hub.ja.md @@ -0,0 +1,28 @@ +GitHub Actionsを使用してDocker Hubへpushする方法 +================================================================ + +[/.github/workflows/docker.yml](/.github/workflows/docker.yml) に +GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 + +オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 +※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 + +Fork先でこのワークフローを実行すると失敗します。 + +以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 + +## 自分のDocker Hubリポジトリにpushするように設定する方法 + +1. Docker Hubでリポジトリを作成します。 +2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 +3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 + 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 + +## pushする方法 + +上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 +具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 + +また、GitHub上から手動でpushすることも出来ます。 +それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 +ただし、この場合作成されるタグは`<ブランチ名>`になります。 diff --git a/package.json b/package.json index 90914c76a9..514da0c7cc 100644 --- a/package.json +++ b/package.json @@ -104,9 +104,9 @@ "@types/websocket": "1.0.4", "@types/ws": "7.4.7", "@typescript-eslint/parser": "4.29.2", - "@vue/compiler-sfc": "3.2.4", + "@vue/compiler-sfc": "3.2.11", "abort-controller": "3.0.0", - "apexcharts": "3.27.3", + "apexcharts": "3.28.1", "autobind-decorator": "2.4.0", "autosize": "4.0.4", "autwh": "0.1.0", @@ -114,8 +114,8 @@ "bcryptjs": "2.4.3", "blurhash": "1.1.4", "broadcast-channel": "4.2.0", - "bull": "3.28.1", - "cacheable-lookup": "6.0.0", + "bull": "3.29.2", + "cacheable-lookup": "6.0.1", "cafy": "15.2.1", "cbor": "8.0.0", "chalk": "4.1.2", @@ -131,7 +131,7 @@ "dateformat": "4.5.1", "escape-regexp": "0.0.1", "eslint": "7.32.0", - "eslint-plugin-vue": "7.16.0", + "eslint-plugin-vue": "7.17.0", "eventemitter3": "4.0.7", "feed": "4.2.2", "file-type": "16.5.3", @@ -156,7 +156,7 @@ "json5-loader": "4.0.1", "jsonld": "5.2.0", "jsrsasign": "8.0.20", - "katex": "0.13.13", + "katex": "0.13.18", "koa": "2.13.1", "koa-bodyparser": "4.3.0", "koa-favicon": "2.1.0", @@ -190,7 +190,7 @@ "promise-limit": "2.7.0", "pug": "3.0.2", "punycode": "2.1.1", - "pureimage": "0.3.2", + "pureimage": "0.3.5", "qrcode": "1.4.4", "random-seed": "0.3.0", "ratelimiter": "3.4.1", @@ -204,16 +204,16 @@ "rimraf": "3.0.2", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.38.0", + "sass": "1.41.0", "sass-loader": "12.1.0", "seedrandom": "3.0.5", - "sharp": "0.29.0", + "sharp": "0.29.1", "speakeasy": "2.0.0", "stringz": "2.1.0", "style-loader": "3.2.1", "summaly": "2.4.1", "syslog-pro": "1.0.0", - "systeminformation": "5.8.0", + "systeminformation": "5.9.2", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", "three": "0.117.1", @@ -223,16 +223,16 @@ "ts-loader": "9.2.5", "ts-node": "10.2.1", "tsc-alias": "1.3.9", - "tsconfig-paths": "3.10.1", + "tsconfig-paths": "3.11.0", "tslint": "6.1.3", "tslint-sonarts": "1.9.0", "twemoji-parser": "13.1.0", "typeorm": "0.2.37", - "typescript": "4.3.5", + "typescript": "4.4.3", "ulid": "2.3.0", "uuid": "8.3.2", "v-debounce": "0.1.2", - "vue": "3.2.4", + "vue": "3.2.11", "vue-loader": "16.5.0", "vue-prism-editor": "2.0.0-alpha.2", "vue-router": "4.0.5", @@ -240,10 +240,10 @@ "vue-svg-loader": "0.17.0-beta.2", "vuedraggable": "4.0.1", "web-push": "3.4.5", - "webpack": "5.51.0", + "webpack": "5.52.1", "webpack-cli": "4.8.0", "websocket": "1.0.34", - "ws": "8.2.0", + "ws": "8.2.2", "xev": "2.0.1" }, "devDependencies": { diff --git a/src/client/components/global/avatar.vue b/src/client/components/global/avatar.vue index eea970ec9a..395ed5d8ce 100644 --- a/src/client/components/global/avatar.vue +++ b/src/client/components/global/avatar.vue @@ -73,6 +73,22 @@ export default defineComponent({ diff --git a/src/client/components/ui/folder.vue b/src/client/components/ui/folder.vue index 1f3593a74a..eecf1d8be1 100644 --- a/src/client/components/ui/folder.vue +++ b/src/client/components/ui/folder.vue @@ -99,7 +99,8 @@ export default defineComponent({ z-index: 10; position: sticky; top: var(--stickyTop, 0px); - background: var(--panel); + padding: var(--x-padding); + background: var(--x-header, var(--panel)); /* TODO panelの半透明バージョンをプログラマティックに作りたい background: var(--X17); -webkit-backdrop-filter: var(--blur, blur(8px)); diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue index 05ce5d3e15..a916a0b035 100644 --- a/src/client/components/ui/input.vue +++ b/src/client/components/ui/input.vue @@ -245,7 +245,7 @@ export default defineComponent({ font-size: 1em; color: var(--fg); background: var(--panel); - border: solid 1px var(--inputBorder); + border: solid 0.5px var(--inputBorder); border-radius: 6px; outline: none; box-shadow: none; diff --git a/src/client/components/ui/textarea.vue b/src/client/components/ui/textarea.vue index 53a141f011..08ac3182a9 100644 --- a/src/client/components/ui/textarea.vue +++ b/src/client/components/ui/textarea.vue @@ -212,7 +212,7 @@ export default defineComponent({ font-size: 1em; color: var(--fg); background: var(--panel); - border: solid 1px var(--inputBorder); + border: solid 0.5px var(--inputBorder); border-radius: 6px; outline: none; box-shadow: none; diff --git a/src/client/init.ts b/src/client/init.ts index 89e926cc3d..ffcfbb179a 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -15,7 +15,7 @@ if (localStorage.getItem('accounts') != null) { import * as Sentry from '@sentry/browser'; import { Integrations } from '@sentry/tracing'; -import { computed, createApp, watch, markRaw } from 'vue'; +import { computed, createApp, watch, markRaw, version as vueVersion } from 'vue'; import compareVersions from 'compare-versions'; import widgets from '@client/widgets'; @@ -49,6 +49,8 @@ window.onunhandledrejection = null; if (_DEV_) { console.warn('Development mode!!!'); + console.info(`vue ${vueVersion}`); + (window as any).$i = $i; (window as any).$store = defaultStore; diff --git a/src/client/pages/emojis.category.vue b/src/client/pages/emojis.category.vue new file mode 100644 index 0000000000..0c24b06d16 --- /dev/null +++ b/src/client/pages/emojis.category.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/client/pages/emojis.emoji.vue b/src/client/pages/emojis.emoji.vue new file mode 100644 index 0000000000..3c9bb4debe --- /dev/null +++ b/src/client/pages/emojis.emoji.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/client/pages/emojis.vue b/src/client/pages/emojis.vue index 391aff8297..c1f87047d3 100644 --- a/src/client/pages/emojis.vue +++ b/src/client/pages/emojis.vue @@ -1,151 +1,30 @@ diff --git a/src/client/pages/favorites.vue b/src/client/pages/favorites.vue index a2d61b98d9..f13723c2d1 100644 --- a/src/client/pages/favorites.vue +++ b/src/client/pages/favorites.vue @@ -22,7 +22,8 @@ export default defineComponent({ return { [symbols.PAGE_INFO]: { title: this.$ts.favorites, - icon: 'fas fa-star' + icon: 'fas fa-star', + bg: 'var(--bg)', }, pagination: { endpoint: 'i/favorites', diff --git a/src/client/pages/note.vue b/src/client/pages/note.vue index 7725ca14b4..fe85d7364e 100644 --- a/src/client/pages/note.vue +++ b/src/client/pages/note.vue @@ -1,37 +1,39 @@ @@ -63,12 +65,14 @@ export default defineComponent({ return { [symbols.PAGE_INFO]: computed(() => this.note ? { title: this.$ts.note, + subtitle: new Date(this.note.createdAt).toLocaleString(), avatar: this.note.user, path: `/notes/${this.note.id}`, share: { title: this.$t('noteOf', { user: this.note.user.name }), text: this.note.text, }, + bg: 'var(--bg)', } : null), note: null, clips: null, @@ -149,52 +153,54 @@ export default defineComponent({ .fcuexfpr { background: var(--bg); - > .note { - > .main { - > .load { - min-width: 0; - margin: 0 auto; - border-radius: 999px; + > ._root { + > .note { + > .main { + > .load { + min-width: 0; + margin: 0 auto; + border-radius: 999px; - &.next { - margin-bottom: var(--margin); - } - - &.prev { - margin-top: var(--margin); - } - } - - > .note { - > .note { - border-radius: var(--radius); - background: var(--panel); - } - } - - > .clips { - > .title { - font-weight: bold; - padding: 12px; - } - - > .item { - display: block; - padding: 16px; - - > .description { - padding: 8px 0; + &.next { + margin-bottom: var(--margin); } - > .user { - $height: 32px; - padding-top: 16px; - border-top: solid 0.5px var(--divider); - line-height: $height; + &.prev { + margin-top: var(--margin); + } + } - > .avatar { - width: $height; - height: $height; + > .note { + > .note { + border-radius: var(--radius); + background: var(--panel); + } + } + + > .clips { + > .title { + font-weight: bold; + padding: 12px; + } + + > .item { + display: block; + padding: 16px; + + > .description { + padding: 8px 0; + } + + > .user { + $height: 32px; + padding-top: 16px; + border-top: solid 0.5px var(--divider); + line-height: $height; + + > .avatar { + width: $height; + height: $height; + } } } } diff --git a/src/client/pages/notifications.vue b/src/client/pages/notifications.vue index 633718a90b..06f8ad3cba 100644 --- a/src/client/pages/notifications.vue +++ b/src/client/pages/notifications.vue @@ -21,6 +21,7 @@ export default defineComponent({ [symbols.PAGE_INFO]: { title: this.$ts.notifications, icon: 'fas fa-bell', + bg: 'var(--bg)', actions: [{ text: this.$ts.markAllAsRead, icon: 'fas fa-check', diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index e7e2506020..3fb5f5f1e6 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -86,7 +86,8 @@ export default defineComponent({ setup(props, context) { const indexInfo = { title: i18n.locale.settings, - icon: 'fas fa-cog' + icon: 'fas fa-cog', + bg: 'var(--bg)', }; const INFO = ref(indexInfo); const page = ref(props.initialPage); diff --git a/src/client/pages/settings/other.vue b/src/client/pages/settings/other.vue index 6857950350..21b5439041 100644 --- a/src/client/pages/settings/other.vue +++ b/src/client/pages/settings/other.vue @@ -26,7 +26,7 @@ BIOS CLI - {{ $ts.closeAccount }} + {{ $ts.closeAccount }} diff --git a/src/client/pages/timeline.vue b/src/client/pages/timeline.vue index f54549b982..125191223c 100644 --- a/src/client/pages/timeline.vue +++ b/src/client/pages/timeline.vue @@ -1,25 +1,10 @@