enhance(MFM): limit large MFM (#8540)

* add CSS classes for zoom MFM

* limit nesting of x2, x3, x4 MFM

* simplify CSS calculation

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
This commit is contained in:
Johann150 2022-05-19 13:38:14 +02:00 committed by GitHub
parent 0f33864df1
commit 60fd793bc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 6 deletions

View File

@ -31,6 +31,32 @@ const props = withDefaults(defineProps<{
} }
} }
.mfm-x2 {
--mfm-zoom-size: 200%;
}
.mfm-x3 {
--mfm-zoom-size: 400%;
}
.mfm-x4 {
--mfm-zoom-size: 600%;
}
.mfm-x2, .mfm-x3, .mfm-x4 {
font-size: var(--mfm-zoom-size);
.mfm-x2, .mfm-x3, .mfm-x4 {
/* only half effective */
font-size: calc(var(--mfm-zoom-size) / 2 + 50%);
.mfm-x2, .mfm-x3, .mfm-x4 {
/* disabled */
font-size: 100%;
}
}
}
@keyframes mfm-spin { @keyframes mfm-spin {
0% { transform: rotate(0deg); } 0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); } 100% { transform: rotate(360deg); }

View File

@ -142,16 +142,19 @@ export default defineComponent({
break; break;
} }
case 'x2': { case 'x2': {
style = `font-size: 200%;`; return h('span', {
break; class: 'mfm-x2',
}, genEl(token.children));
} }
case 'x3': { case 'x3': {
style = `font-size: 400%;`; return h('span', {
break; class: 'mfm-x3',
}, genEl(token.children));
} }
case 'x4': { case 'x4': {
style = `font-size: 600%;`; return h('span', {
break; class: 'mfm-x4',
}, genEl(token.children));
} }
case 'font': { case 'font': {
const family = const family =