summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2024-01-14 13:00:00 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2024-01-14 13:00:00 +0900
commitfc4c86826907d1b8242bdadebf029ca8876a7352 (patch)
tree2f02dc46bdf41c5740a9d704e3bff54262ba0ac1 /packages/frontend/src/components
parentenhance(drop-and-fusion): sweets mode (diff)
parentfeat(CI): CHANGELOG.mdの追記個所をチェックするCIを追加 (#12963) (diff)
downloadmisskey-fc4c86826907d1b8242bdadebf029ca8876a7352.tar.gz
misskey-fc4c86826907d1b8242bdadebf029ca8876a7352.tar.bz2
misskey-fc4c86826907d1b8242bdadebf029ca8876a7352.zip
Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop
Diffstat (limited to 'packages/frontend/src/components')
-rw-r--r--packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts28
1 files changed, 23 insertions, 5 deletions
diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
index 650c79dff7..f55069200d 100644
--- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
+++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
@@ -61,7 +61,12 @@ export default function(props: MfmProps, context: SetupContext<MfmEvents>) {
if (t == null) return null;
return t.match(/^[0-9.]+s$/) ? t : null;
};
-
+
+ const validColor = (c: string | null | undefined): string | null => {
+ if (c == null) return null;
+ return c.match(/^[0-9a-f]{3,6}$/i) ? c : null;
+ };
+
const useAnim = defaultStore.state.advancedMfm && defaultStore.state.animatedMfm;
/**
@@ -240,17 +245,30 @@ export default function(props: MfmProps, context: SetupContext<MfmEvents>) {
break;
}
case 'fg': {
- let color = token.props.args.color;
- if (!/^[0-9a-f]{3,6}$/i.test(color)) color = 'f00';
+ let color = validColor(token.props.args.color);
+ color = color ?? 'f00';
style = `color: #${color}; overflow-wrap: anywhere;`;
break;
}
case 'bg': {
- let color = token.props.args.color;
- if (!/^[0-9a-f]{3,6}$/i.test(color)) color = 'f00';
+ let color = validColor(token.props.args.color);
+ color = color ?? 'f00';
style = `background-color: #${color}; overflow-wrap: anywhere;`;
break;
}
+ case 'border': {
+ let color = validColor(token.props.args.color);
+ color = color ? `#${color}` : 'var(--accent)';
+ let b_style = token.props.args.style;
+ if (
+ !['hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset']
+ .includes(b_style)
+ ) b_style = 'solid';
+ const width = parseFloat(token.props.args.width ?? '1');
+ const radius = parseFloat(token.props.args.radius ?? '0');
+ style = `border: ${width}px ${b_style} ${color}; border-radius: ${radius}px`;
+ break;
+ }
case 'ruby': {
if (token.children.length === 1) {
const child = token.children[0];