我正在启动一个 Stack Exchange 站点,我希望能够在 Markdown 脚本获取问题文本之前和之后拦截问题文本。

我希望能够进入 [custom-tag]stuff to be altered[/custom-tag] 在问题窗口中,然后删除要更改的内容(因为标准 Markdown 引擎无法解释它)存储它,然后用要更改的内容替换输出中的标签由我自己的(服务器端)引擎处理。

我第一步就失败了;我找不到 markdown 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)

他们将首先访问第 3 方网站并将其转换为:

PokerStars 底池限注奥马哈,$200.00 BB(2 人牌)
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

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

编辑2:

经过进一步调查,这似乎是不可能的(没有大量 hacky JS)。首先需要解决 Ajax 跨域问题,才能使用任何外部服务进行转换。

然后,如果您设法覆盖 WMD 预览 - 您仍然需要弄清楚当实际答案正常呈现时该怎么做。一种方法是让 JS 在呈现任何问题或答案时查找标签,并使用转换后的版本更新 DOM - 这会降低性能 POV。

我想我必须等待并希望 SE 允许我们通过其他方式来覆盖这个问题。

有帮助吗?

解决方案

当您键入时,WMD 会自动填充预览元素,对吗?嗯,它需要有一个转换器来做到这一点。该转换器是 Showdown(你可以 在这里获取)。这是它的用法(从源文件中提取):

// Showdown usage:

var text = "Markdown *rocks*.";

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

这意味着您可以不使用提供的预览元素,而是使用您自己填充的预览元素。此外,您还需要聆听 keypress 自己在文本区域上事件并解析文本,然后调用 Showdown。当输出符合您的要求时,将其放入您自己的预览元素中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top