mirror of
https://iceshrimp.dev/iceshrimp/iceshrimp
synced 2024-11-25 15:46:06 +09:00
Partially disable search MFM (#9830)
Honestly, this workaround is pure garbage when this can be achieved by deleting a small piece of code from mfm-js, but this closes #9816 anyway 😅 Co-authored-by: naskya <m@naskya.net> Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9830 Co-authored-by: naskya <naskya@noreply.codeberg.org> Co-committed-by: naskya <naskya@noreply.codeberg.org>
This commit is contained in:
parent
f35a40a537
commit
9abd49bc88
@ -50,7 +50,9 @@ export default defineComponent({
|
||||
render() {
|
||||
if (this.text == null || this.text === "") return;
|
||||
|
||||
const ast = (this.plain ? mfm.parseSimple : mfm.parse)(this.text, {
|
||||
const isPlain = this.plain;
|
||||
|
||||
const ast = (isPlain ? mfm.parseSimple : mfm.parse)(this.text, {
|
||||
fnNameList: MFM_TAGS,
|
||||
});
|
||||
|
||||
@ -61,7 +63,7 @@ export default defineComponent({
|
||||
|
||||
const genEl = (ast: mfm.MfmNode[]) =>
|
||||
concat(
|
||||
ast.map((token): VNode[] => {
|
||||
ast.map((token, index): VNode[] => {
|
||||
switch (token.type) {
|
||||
case "text": {
|
||||
const text = token.props.text.replace(/(\r\n|\n|\r)/g, "\n");
|
||||
@ -459,6 +461,38 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
case "search": {
|
||||
// Disable "search" keyword
|
||||
// (see the issue #9816 on Codeberg)
|
||||
if (token.props.content.endsWith("search")) {
|
||||
const sentinel = "#";
|
||||
let ast2 = (isPlain ? mfm.parseSimple : mfm.parse)(
|
||||
token.props.content.slice(0, -6) + sentinel,
|
||||
{
|
||||
fnNameList: MFM_TAGS,
|
||||
},
|
||||
);
|
||||
if (
|
||||
ast2[ast2.length - 1].type === "text" &&
|
||||
ast2[ast2.length - 1].props.text.endsWith(sentinel)
|
||||
) {
|
||||
ast2[ast2.length - 1].props.text = ast2[
|
||||
ast2.length - 1
|
||||
].props.text.slice(0, -1);
|
||||
}
|
||||
|
||||
let prefix = "\n";
|
||||
if (
|
||||
index === 0 ||
|
||||
["blockCode", "mathBlock", "search", "quote"].includes(
|
||||
ast[index - 1].type,
|
||||
)
|
||||
) {
|
||||
prefix = "";
|
||||
}
|
||||
|
||||
return [prefix, ...genEl(ast2), "search\n"];
|
||||
}
|
||||
|
||||
return [
|
||||
h(MkGoogle, {
|
||||
key: Math.random(),
|
||||
|
Loading…
Reference in New Issue
Block a user