Javascript 在发布wmd标记编辑器之前,我如何拦截和修改该编辑器中的标记?

Javascript 在发布wmd标记编辑器之前,我如何拦截和修改该编辑器中的标记?,javascript,wmd,Javascript,Wmd,我正在启动一个堆栈交换站点,我希望能够在标记脚本到达之前和之后拦截问题文本 我希望能够在问题窗口中输入[custom tag]要更改的内容[/custom tag],然后删除要更改的内容,因为标准降价引擎将无法解释它并存储它,然后用我自己的服务器端引擎处理后要修改的内容替换输出中的标记 我在第一步就失败了;我找不到降价的javascript。它是否隐藏在/content/js/master.js中 编辑:我将尝试用一个我试图实现的例子来让这一点更清楚 我正在运行一个面向扑克的SE站点。玩家讨论扑

我正在启动一个堆栈交换站点,我希望能够在标记脚本到达之前和之后拦截问题文本

我希望能够在问题窗口中输入[custom tag]要更改的内容[/custom tag],然后删除要更改的内容,因为标准降价引擎将无法解释它并存储它,然后用我自己的服务器端引擎处理后要修改的内容替换输出中的标记

我在第一步就失败了;我找不到降价的javascript。它是否隐藏在/content/js/master.js中

编辑:我将尝试用一个我试图实现的例子来让这一点更清楚

我正在运行一个面向扑克的SE站点。玩家讨论扑克牌,但不是输入一手牌中发生的事情的纯文本记录,而是使用转换器使其更具可读性

因此,与其在论坛上发布,不如:

PokerStars Game #29112867044: Omaha Pot Limit ($100/$200) - 2009/06/07 19:51:27 ET Table 'Thomsen' 9-max Seat #2 is the button Seat 2: Mary & Joey ($14729 in chips) Seat 4: William ($28306 in chips) Mary & Joey: posts small blind $100 William: posts big blind $200 *** HOLE CARDS *** Mary & Joey: raises $400 to $600 William: calls $400 *** FLOP *** [6d Td 3c] William: checks Mary & Joey: checks *** TURN *** [6d Td 3c] [Kc] William: checks Mary & Joey: checks *** RIVER *** [6d Td 3c Kc] [7d] William: bets $600 Mary & Joey: folds Uncalled bet ($600) returned to William William collected $1198 from pot William: doesn't show hand *** SUMMARY *** Total pot $1200 | Rake $2 Board [6d Td 3c Kc 7d] Seat 2: Mary & Joey (button) (small blind) folded on the River Seat 4: William (big blind) collected ($1198) 他们将首先访问第三方网站并将其转换为:

PokerStars Pot Limit奥马哈200.00美元BB 2手 给某人14729美元 BB$28306 预扣: SB下注600美元,BB下注400美元 失败:1200 6人,10人,3人,2人 BB支票,SB支票 回合:$1200 k2玩家 BB支票,SB支票 River:$1200 7 2名玩家 BB赌注600美元,1倍 总罐数:$1200 |耙数:$2

我想删掉一个步骤,用户必须转到第三方网站,粘贴在他们手中,选择HTML输出,然后复制并粘贴结果到问题中。相反,我希望他们能够用[hand][/hand]标记包装原始的手工测试,转换将自动处理

编辑2:

在进一步的调查中,如果没有大量的黑客JS,这似乎是不可能的。 要使用任何外部服务进行转换,首先需要绕过Ajax跨域问题

然后,如果你成功地覆盖了大规模杀伤性武器预览-你仍然必须确定当实际答案正常呈现时该怎么做。一种方法是让JS在呈现任何问题或答案时查找标记,并使用转换后的版本更新DOM,这将从性能POV中吸取教训


我想我必须等待,并希望SE允许我们以其他方式覆盖它。

WMD会在您键入时自动填充预览元素,对吗?好吧,它需要有一个转换器才能做到这一点。那个转换器是你可以选择的决战。以下是从源文件中提取的用法:

// Showdown usage:

var text = "Markdown *rocks*.";

var converter = new Showdown.converter();
var html = converter.makeHtml(text);

这意味着您不能简单地使用提供的preview元素,而是使用您自己的元素来填充您自己的元素。此外,您还需要自己监听文本区域上的按键事件,并对文本进行解析,然后调用Showdown。当输出如您所愿时,将其放入您自己的预览元素。

如果您不想将问题移动到meta,请不要将其标记为StackOverflow。我不清楚这一点。你能提供一个例子,说明你希望文本在每个阶段是什么样的吗。添加了一个真实生活的描述,描述了我正在努力实现的目标。SG,这是有道理的!如果您保存了标记或HTML,那么添加标记可能是一个好主意。如果您正在保存标记,那么只需在标记到达标记处理器之前对其进行处理,因为它将很乐意接受html。谢谢。这帮助我得到了预览。不久之后,我意识到,如果我不能在问题和答案发布后覆盖它们的呈现,那么这真的没有什么帮助。我认为我做不到。你应该能够覆盖帖子的呈现。你不能提供你自己的CSS吗?仅仅用CSS进行手工转换是非常困难的。我基本上需要调用外部服务来执行转换。转换过程并不简单,因为在不同的网站和游戏类型中,有50多种不同的手牌变体可供支持。我能看到的唯一可能的方法是使用javascript读取每个页面并查找[hand]标记,如果看到它,则转换hand并更新DOM。这会很糟糕,因为每次查看页面时都需要缓慢地调用ahnd转换服务。只需转换[hand]即可应用CSS。允许使用基本HTML。