forked from FoundKeyGang/FoundKey
chore: fix client lint errors (#8934)
* Fix client lint * Hide no-v-html * Ignore banned type * Update page-editor.vue Co-authored-by: Johann150 <johann.galle@protonmail.com>
This commit is contained in:
parent
390a5efb59
commit
26e89405cf
11 changed files with 69 additions and 82 deletions
|
@ -20,6 +20,7 @@
|
||||||
<span v-if="emoji.isCustomEmoji" class="emoji"><img :src="defaultStore.state.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url" :alt="emoji.emoji"/></span>
|
<span v-if="emoji.isCustomEmoji" class="emoji"><img :src="defaultStore.state.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url" :alt="emoji.emoji"/></span>
|
||||||
<span v-else-if="!defaultStore.state.useOsNativeEmojis" class="emoji"><img :src="emoji.url" :alt="emoji.emoji"/></span>
|
<span v-else-if="!defaultStore.state.useOsNativeEmojis" class="emoji"><img :src="emoji.url" :alt="emoji.emoji"/></span>
|
||||||
<span v-else class="emoji">{{ emoji.emoji }}</span>
|
<span v-else class="emoji">{{ emoji.emoji }}</span>
|
||||||
|
<!-- eslint-disable-next-line vue/no-v-html -->
|
||||||
<span class="name" v-html="emoji.name.replace(q, `<b>${q}</b>`)"></span>
|
<span class="name" v-html="emoji.name.replace(q, `<b>${q}</b>`)"></span>
|
||||||
<span v-if="emoji.aliasOf" class="alias">({{ emoji.aliasOf }})</span>
|
<span v-if="emoji.aliasOf" class="alias">({{ emoji.aliasOf }})</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<template>
|
<template>
|
||||||
<code v-if="inline" :class="`language-${prismLang}`" v-html="html"></code>
|
<code v-if="inline" :class="`language-${prismLang}`" v-html="html"></code>
|
||||||
<pre v-else :class="`language-${prismLang}`"><code :class="`language-${prismLang}`" v-html="html"></code></pre>
|
<pre v-else :class="`language-${prismLang}`"><code :class="`language-${prismLang}`" v-html="html"></code></pre>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<template>
|
<template>
|
||||||
<div v-if="block" v-html="compiledFormula"></div>
|
<div v-if="block" v-html="compiledFormula"></div>
|
||||||
<span v-else v-html="compiledFormula"></span>
|
<span v-else v-html="compiledFormula"></span>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs" v-model:tab="tab"/></template>
|
<template #header><XHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="900">
|
<MkSpacer :content-max="900">
|
||||||
<div class="ogwlenmc">
|
<div class="ogwlenmc">
|
||||||
<div v-if="tab === 'local'" class="local">
|
<div v-if="tab === 'local'" class="local">
|
||||||
|
|
|
@ -32,7 +32,7 @@ const props = withDefaults(defineProps<{
|
||||||
let values: string = $ref(props.value.values.join('\n'));
|
let values: string = $ref(props.value.values.join('\n'));
|
||||||
|
|
||||||
watch(values, () => {
|
watch(values, () => {
|
||||||
props.value.values = values.split('\n')
|
props.value.values = values.split('\n');
|
||||||
}, {
|
}, {
|
||||||
deep: true
|
deep: true
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs" v-model:tab="tab"/></template>
|
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="700">
|
<MkSpacer :content-max="700">
|
||||||
<div class="jqqmcavi">
|
<div class="jqqmcavi">
|
||||||
<MkButton v-if="pageId" class="button" inline link :to="`/@${ author.username }/pages/${ currentName }`"><i class="fas fa-external-link-square-alt"></i> {{ $ts._pages.viewPage }}</MkButton>
|
<MkButton v-if="pageId" class="button" inline link :to="`/@${ author.username }/pages/${ currentName }`"><i class="fas fa-external-link-square-alt"></i> {{ $ts._pages.viewPage }}</MkButton>
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { defineComponent, defineAsyncComponent, computed, provide, watch } from 'vue';
|
import { defineAsyncComponent, computed, provide, watch } from 'vue';
|
||||||
import 'prismjs';
|
import 'prismjs';
|
||||||
import { highlight, languages } from 'prismjs/components/prism-core';
|
import { highlight, languages } from 'prismjs/components/prism-core';
|
||||||
import 'prismjs/components/prism-clike';
|
import 'prismjs/components/prism-clike';
|
||||||
|
@ -93,7 +93,6 @@ import { v4 as uuid } from 'uuid';
|
||||||
import XVariable from './page-editor.script-block.vue';
|
import XVariable from './page-editor.script-block.vue';
|
||||||
import XBlocks from './page-editor.blocks.vue';
|
import XBlocks from './page-editor.blocks.vue';
|
||||||
import MkTextarea from '@/components/form/textarea.vue';
|
import MkTextarea from '@/components/form/textarea.vue';
|
||||||
import MkContainer from '@/components/ui/container.vue';
|
|
||||||
import MkButton from '@/components/ui/button.vue';
|
import MkButton from '@/components/ui/button.vue';
|
||||||
import MkSelect from '@/components/form/select.vue';
|
import MkSelect from '@/components/form/select.vue';
|
||||||
import MkSwitch from '@/components/form/switch.vue';
|
import MkSwitch from '@/components/form/switch.vue';
|
||||||
|
@ -168,15 +167,15 @@ function save() {
|
||||||
const options = getSaveOptions();
|
const options = getSaveOptions();
|
||||||
|
|
||||||
const onError = err => {
|
const onError = err => {
|
||||||
if (err.id == '3d81ceae-475f-4600-b2a8-2bc116157532') {
|
if (err.id === '3d81ceae-475f-4600-b2a8-2bc116157532') {
|
||||||
if (err.info.param == 'name') {
|
if (err.info.param === 'name') {
|
||||||
os.alert({
|
os.alert({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
title: i18n.ts._pages.invalidNameTitle,
|
title: i18n.ts._pages.invalidNameTitle,
|
||||||
text: i18n.ts._pages.invalidNameText,
|
text: i18n.ts._pages.invalidNameText,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (err.code == 'NAME_ALREADY_EXISTS') {
|
} else if (err.code === 'NAME_ALREADY_EXISTS') {
|
||||||
os.alert({
|
os.alert({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
text: i18n.ts._pages.nameAlreadyExists,
|
text: i18n.ts._pages.nameAlreadyExists,
|
||||||
|
@ -310,7 +309,7 @@ function getPageBlockList() {
|
||||||
function getScriptBlockList(type: string = null) {
|
function getScriptBlockList(type: string = null) {
|
||||||
const list = [];
|
const list = [];
|
||||||
|
|
||||||
const blocks = blockDefs.filter(block => type === null || block.out === null || block.out === type || typeof block.out === 'number');
|
const blocks = blockDefs.filter(block => type == null || block.out == null || block.out === type || typeof block.out === 'number');
|
||||||
|
|
||||||
for (const block of blocks) {
|
for (const block of blocks) {
|
||||||
const category = list.find(x => x.category === block.category);
|
const category = list.find(x => x.category === block.category);
|
||||||
|
@ -345,8 +344,8 @@ function getScriptBlockList(type: string = null) {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEyeCatchingImage(e) {
|
function setEyeCatchingImage(evt) {
|
||||||
selectFile(e.currentTarget ?? e.target, null).then(file => {
|
selectFile(evt.currentTarget ?? evt.target, null).then(file => {
|
||||||
eyeCatchingImageId = file.id;
|
eyeCatchingImageId = file.id;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
<span class="text">{{ instanceName }}</span>
|
<span class="text">{{ instanceName }}</span>
|
||||||
</h1>
|
</h1>
|
||||||
<div class="about">
|
<div class="about">
|
||||||
|
<!-- eslint-disable-next-line vue/no-v-html -->
|
||||||
<div class="desc" v-html="meta.description || i18n.ts.headlineMisskey"></div>
|
<div class="desc" v-html="meta.description || i18n.ts.headlineMisskey"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="action">
|
<div class="action">
|
||||||
|
|
|
@ -14,13 +14,13 @@ export type Fn = {
|
||||||
export type Type = 'string' | 'number' | 'boolean' | 'stringArray' | null;
|
export type Type = 'string' | 'number' | 'boolean' | 'stringArray' | null;
|
||||||
|
|
||||||
export const literalDefs: Record<string, { out: any; category: string; icon: any; }> = {
|
export const literalDefs: Record<string, { out: any; category: string; icon: any; }> = {
|
||||||
text: { out: 'string', category: 'value', icon: 'fas fa-quote-right', },
|
text: { out: 'string', category: 'value', icon: 'fas fa-quote-right', },
|
||||||
multiLineText: { out: 'string', category: 'value', icon: 'fas fa-align-left', },
|
multiLineText: { out: 'string', category: 'value', icon: 'fas fa-align-left', },
|
||||||
textList: { out: 'stringArray', category: 'value', icon: 'fas fa-list', },
|
textList: { out: 'stringArray', category: 'value', icon: 'fas fa-list', },
|
||||||
number: { out: 'number', category: 'value', icon: 'fas fa-sort-numeric-up', },
|
number: { out: 'number', category: 'value', icon: 'fas fa-sort-numeric-up', },
|
||||||
ref: { out: null, category: 'value', icon: 'fas fa-magic', },
|
ref: { out: null, category: 'value', icon: 'fas fa-magic', },
|
||||||
aiScriptVar: { out: null, category: 'value', icon: 'fas fa-magic', },
|
aiScriptVar: { out: null, category: 'value', icon: 'fas fa-magic', },
|
||||||
fn: { out: 'function', category: 'value', icon: 'fas fa-square-root-alt', },
|
fn: { out: 'function', category: 'value', icon: 'fas fa-square-root-alt', },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const blockDefs = [
|
export const blockDefs = [
|
||||||
|
|
|
@ -125,54 +125,56 @@ export function initAiLib(hpml: Hpml) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
})
|
}),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export const funcDefs: Record<string, { in: any[]; out: any; category: string; icon: any; }> = {
|
export const funcDefs: Record<string, { in: any[]; out: any; category: string; icon: any; }> = {
|
||||||
if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: 'fas fa-share-alt', },
|
if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: 'fas fa-share-alt' },
|
||||||
for: { in: ['number', 'function'], out: null, category: 'flow', icon: 'fas fa-recycle', },
|
for: { in: ['number', 'function'], out: null, category: 'flow', icon: 'fas fa-recycle' },
|
||||||
not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag', },
|
not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' },
|
||||||
or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag', },
|
or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' },
|
||||||
and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag', },
|
and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' },
|
||||||
add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-plus', },
|
add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-plus' },
|
||||||
subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-minus', },
|
subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-minus' },
|
||||||
multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-times', },
|
multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-times' },
|
||||||
divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide', },
|
divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide' },
|
||||||
mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide', },
|
mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide' },
|
||||||
round: { in: ['number'], out: 'number', category: 'operation', icon: 'fas fa-calculator', },
|
round: { in: ['number'], out: 'number', category: 'operation', icon: 'fas fa-calculator' },
|
||||||
eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-equals', },
|
eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-equals' },
|
||||||
notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-not-equal', },
|
notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-not-equal' },
|
||||||
gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than', },
|
gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than' },
|
||||||
lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than', },
|
lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than' },
|
||||||
gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than-equal', },
|
gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than-equal' },
|
||||||
ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than-equal', },
|
ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than-equal' },
|
||||||
strLen: { in: ['string'], out: 'number', category: 'text', icon: 'fas fa-quote-right', },
|
strLen: { in: ['string'], out: 'number', category: 'text', icon: 'fas fa-quote-right' },
|
||||||
strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: 'fas fa-quote-right', },
|
strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: 'fas fa-quote-right' },
|
||||||
strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right', },
|
strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right' },
|
||||||
strReverse: { in: ['string'], out: 'string', category: 'text', icon: 'fas fa-quote-right', },
|
strReverse: { in: ['string'], out: 'string', category: 'text', icon: 'fas fa-quote-right' },
|
||||||
join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right', },
|
join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right' },
|
||||||
stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: 'fas fa-exchange-alt', },
|
stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: 'fas fa-exchange-alt' },
|
||||||
numberToString: { in: ['number'], out: 'string', category: 'convert', icon: 'fas fa-exchange-alt', },
|
numberToString: { in: ['number'], out: 'string', category: 'convert', icon: 'fas fa-exchange-alt' },
|
||||||
splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: 'fas fa-exchange-alt', },
|
splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: 'fas fa-exchange-alt' },
|
||||||
pick: { in: [null, 'number'], out: null, category: 'list', icon: 'fas fa-indent', },
|
pick: { in: [null, 'number'], out: null, category: 'list', icon: 'fas fa-indent' },
|
||||||
listLen: { in: [null], out: 'number', category: 'list', icon: 'fas fa-indent', },
|
listLen: { in: [null], out: 'number', category: 'list', icon: 'fas fa-indent' },
|
||||||
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice', },
|
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' },
|
||||||
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice', },
|
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' },
|
||||||
seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice', },
|
seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' },
|
||||||
random: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice', },
|
random: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' },
|
||||||
dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice', },
|
dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' },
|
||||||
seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: 'fas fa-dice', },
|
seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' },
|
||||||
randomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice', },
|
randomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice' },
|
||||||
dailyRandomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice', },
|
dailyRandomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice' },
|
||||||
seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: 'fas fa-dice', },
|
seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: 'fas fa-dice' },
|
||||||
DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: 'fas fa-dice', }, // dailyRandomPickWithProbabilityMapping
|
DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: 'fas fa-dice' }, // dailyRandomPickWithProbabilityMapping
|
||||||
};
|
};
|
||||||
|
|
||||||
export function initHpmlLib(expr: Expr, scope: HpmlScope, randomSeed: string, visitor?: any) {
|
export function initHpmlLib(expr: Expr, scope: HpmlScope, randomSeed: string, visitor?: any) {
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
const day = `${visitor ? visitor.id : ''} ${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`;
|
const day = `${visitor ? visitor.id : ''} ${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`;
|
||||||
|
|
||||||
|
// SHOULD be fine to ignore since it's intended + function shape isn't defined
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||||
const funcs: Record<string, Function> = {
|
const funcs: Record<string, Function> = {
|
||||||
not: (a: boolean) => !a,
|
not: (a: boolean) => !a,
|
||||||
or: (a: boolean, b: boolean) => a || b,
|
or: (a: boolean, b: boolean) => a || b,
|
||||||
|
@ -188,7 +190,7 @@ export function initHpmlLib(expr: Expr, scope: HpmlScope, randomSeed: string, vi
|
||||||
const result: any[] = [];
|
const result: any[] = [];
|
||||||
for (let i = 0; i < times; i++) {
|
for (let i = 0; i < times; i++) {
|
||||||
result.push(fn.exec({
|
result.push(fn.exec({
|
||||||
[fn.slots[0]]: i + 1
|
[fn.slots[0]]: i + 1,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
<div>
|
<div>
|
||||||
<h1 v-if="meta"><img v-if="meta.logoImageUrl" class="logo" :src="meta.logoImageUrl"><span v-else class="text">{{ instanceName }}</span></h1>
|
<h1 v-if="meta"><img v-if="meta.logoImageUrl" class="logo" :src="meta.logoImageUrl"><span v-else class="text">{{ instanceName }}</span></h1>
|
||||||
<div v-if="meta" class="about">
|
<div v-if="meta" class="about">
|
||||||
|
<!-- eslint-disable-next-line vue/no-v-html -->
|
||||||
<div class="desc" v-html="meta.description || $ts.introMisskey"></div>
|
<div class="desc" v-html="meta.description || $ts.introMisskey"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="action">
|
<div class="action">
|
||||||
|
@ -79,7 +80,9 @@ export default defineComponent({
|
||||||
this.$store.set('darkMode', !this.$store.state.darkMode);
|
this.$store.set('darkMode', !this.$store.state.darkMode);
|
||||||
},
|
},
|
||||||
's': search,
|
's': search,
|
||||||
'h|/': this.help,
|
'h|/': () => {
|
||||||
|
window.open('https://misskey-hub.net/docs/keyboard-shortcut.md', '_blank');
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -99,27 +102,6 @@ export default defineComponent({
|
||||||
}, { passive: true });
|
}, { passive: true });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
|
||||||
setParallax(el) {
|
|
||||||
//new simpleParallax(el);
|
|
||||||
},
|
|
||||||
|
|
||||||
changePage(page) {
|
|
||||||
if (page == null) return;
|
|
||||||
if (page[symbols.PAGE_INFO]) {
|
|
||||||
this.pageInfo = page[symbols.PAGE_INFO];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
top() {
|
|
||||||
window.scroll({ top: 0, behavior: 'smooth' });
|
|
||||||
},
|
|
||||||
|
|
||||||
help() {
|
|
||||||
window.open('https://misskey-hub.net/docs/keyboard-shortcut.md', '_blank');
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<template>
|
<template>
|
||||||
<div class="rwqkcmrc" :style="{ backgroundImage: transparent ? 'none' : `url(${ $instance.backgroundImageUrl })` }">
|
<div class="rwqkcmrc" :style="{ backgroundImage: transparent ? 'none' : `url(${ $instance.backgroundImageUrl })` }">
|
||||||
<div class="back" :class="{ transparent }"></div>
|
<div class="back" :class="{ transparent }"></div>
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<h1 v-if="meta" :class="{ full }">
|
<h1 v-if="meta" :class="{ full }">
|
||||||
<MkA to="/" class="link"><img v-if="meta.logoImageUrl" class="logo" :src="meta.logoImageUrl"><span v-else class="text">{{ instanceName }}</span></MkA>
|
<MkA to="/" class="link"><img v-if="meta.logoImageUrl" class="logo" :src="meta.logoImageUrl" alt="logo"><span v-else class="text">{{ instanceName }}</span></MkA>
|
||||||
</h1>
|
</h1>
|
||||||
<template v-if="full">
|
<template v-if="full">
|
||||||
<div v-if="meta" class="about">
|
<div v-if="meta" class="about">
|
||||||
|
@ -21,7 +22,7 @@
|
||||||
<div class="title">{{ announcement.title }}</div>
|
<div class="title">{{ announcement.title }}</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<Mfm :text="announcement.text"/>
|
<Mfm :text="announcement.text"/>
|
||||||
<img v-if="announcement.imageUrl" :src="announcement.imageUrl"/>
|
<img v-if="announcement.imageUrl" :src="announcement.imageUrl" alt="announcement image"/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</MkPagination>
|
</MkPagination>
|
||||||
|
|
Loading…
Reference in a new issue