element-modifications/greentext-patcher.sh
2021-03-27 17:02:15 +00:00

45 lines
4.2 KiB
Bash

if grep -q "renderer.block_quote = function block_quote" "../node_modules/matrix-react-sdk/src/Markdown.js" ; then
echo 'Already patched!' ;
else
LINESTR=$(awk "/const real_paragraph = renderer.paragraph;/{ print NR; exit }" '/home/user/git/element-web/node_modules/matrix-react-sdk/src/Markdown.js')
sed -i "${LINESTR}i renderer.block_quote = function block_quote(node, entering) { \n\
var attrs = this.attrs(node); \n\
if (node.firstChild !== null) { \n\
var w = node.walker(), e, m=node.firstChild \n\
while (m.firstChild !== null) \n\
m = m.firstChild \n\
while (m.type !== 'document') { \n\
if (m.type == 'text' && m.literal[0] !== '>') \n\
m.literal = '>' + m.literal \n\
m = m.parent \n\
} \n\
while (e = w.next()) { \n\
const n = e.node \n\
if (e.entering == false) \n\
continue \n\
if (n.type == 'text') { \n\
let o = n.parent \n\
while (o.type !== 'document') \n\
if (o.type == 'block_quote') \n\
break \n\
else \n\
o = o.parent \n\
if (o.type == 'block_quote' && (n.prev && n.prev.type == 'softbreak') && n.literal[0] !== '>') { \n\
n.literal = '>' + n.literal \n\
} \n\
} \n\
} \n\
} \n\
\n\
if (entering) { \n\
this.tag('font', [...attrs, ['color', '#789922']]); \n\
if (!node.firstChild) \n\
this.buffer += '<p>&gt;</p>' \n\
} else { \n\
this.tag('/font'); \n\
} \n\
};" '/home/user/git/element-web/node_modules/matrix-react-sdk/src/Markdown.js'
fi