我正在启动Stack Exchange网站,我希望能够在markdown脚本获取之前和之后拦截问题文本。
我希望能够在问题窗口中输入[custom-tag]stuff to be altered[/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底池限注奥马哈,$ 200.00 BB(双手)
SB($ 14729)
BB($ 28306)
翻牌前:
SB下注600美元,BB称400美元
翻牌 :( $ 1200)6 ,10 ,3 (2名玩家)
BB检查,SB检查
转 :( $ 1200)K (2名玩家)
BB检查,SB检查
河 :( $ 1200)7 (2名玩家)
BB下注600美元, 1折
总锅数: $ 1200 |耙子: $ 2
我想删除用户必须访问第三方网站的步骤,粘贴他们的手,选择HTML输出,然后将结果复制并粘贴到问题中。相反,我希望他们能够用[hand] [/ hand]标签包装原始手测试,转换将自动处理。
编辑2:
进一步调查看起来这是不可能的(没有很多hacky JS)。 首先需要解决Ajax跨域问题,以便使用任何外部服务进行转换。
然后,如果您设法覆盖WMD预览 - 您仍然需要确定在正常呈现实际答案时要执行的操作。一种方法是让JS在呈现任何问题或答案时查找标记,并使用转换后的版本更新DOM - 这会从性能POV中吮吸。
我想我必须等待并希望SE允许我们采用其他方式来覆盖它。
答案 0 :(得分:0)
WMD会在您键入时自动填充预览元素,对吗?好吧,它需要在某个地方有一个转换器才能做到这一点。该转换器是Showdown(你可以obtain here)。这是它的用法(从源文件中提取):
// Showdown usage:
var text = "Markdown *rocks*.";
var converter = new Showdown.converter();
var html = converter.makeHtml(text);
这意味着你不能使用所提供的预览元素,而是自己填充自己的预览元素。此外,您需要自己收听textarea上的keypress
事件并解析文本,然后调用Showdown。当输出是您喜欢的时候,将它扔到您自己的预览元素中。