Como posso interceptar e modificar o Markdown do WMD Markdown Editor antes de postar?

StackOverflow https://stackoverflow.com/questions/1561012

  •  21-09-2019
  •  | 
  •  

Pergunta

Estou iniciando um site de troca de pilhas e quero poder interceptar o texto da pergunta antes e depois que o script de remarkdown chega a ele.

Eu quero ser capaz de entrar [custom-tag]stuff to be altered[/custom-tag] na janela das perguntas e depois ter as coisas a serem alteradas (como o mecanismo de marcação padrão não poderá interpretá -lo) e substitua as tags na saída pelo material a ser alterado depois de ter sido processado pelo meu próprio mecanismo (do lado do servidor).

Estou falhando na primeira etapa; Não consigo encontrar o JavaScript de Markdown. Está em algum lugar escondido em /content/js/master.js?

Editar: Vou tentar deixar isso um pouco mais claro com um exemplo do que estou tentando alcançar.

Estou executando um site SE orientado para o poker. Os jogadores discutem as mãos do poker, mas, em vez de entrar na transcrição de texto simples do que aconteceu em uma mão, eles usarão um conversor para torná -lo mais legível.

Então, em vez de postar isso em um fórum:

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)

Eles primeiro irão para um site de terceiros e o converterão para isso:

PokerStars Pot-Limit Omaha, US $ 200,00 BB (2 mãos)
SB (US $ 14729)
BB (US $ 28306)

Pré -flop:
SB apostas $ 600, BB liga para $ 400

Flop: ($1200) 6, 10, 3 (2 jogadores)
Verificações de BB, verificações SB

Virar: (US $ 1200) K (2 jogadores)
Verificações de BB, verificações SB

Rio: ($1200) 7 (2 jogadores)
BB Aposto $ 600, 1 dobra

Pote total: $1200 | Ancinho: $2

Quero cortar a etapa em que o usuário precisa ir para um site de terceiros, colar em suas mãos, selecionar Saída HTML e copiar e colar o resultado na pergunta. Em vez disso, quero que eles possam enrolar o teste de mão bruto com as tags [da mão] [/mão] e a conversão será tratada automaticamente.

Editar 2:

Em uma investigação mais aprofundada, parece que isso não é possível (sem muitos JS hacky). É necessário contornar os problemas de domínio cruzado do Ajax primeiro para usar qualquer serviço externo para fazer a conversão.

Então, se você conseguir substituir a visualização do WMD - você ainda precisará descobrir o que fazer quando a resposta real for renderizada normalmente. Uma maneira de fazer isso seria fazer com que o JS procure a tag sempre que qualquer pergunta ou resposta for renderizada e atualizar o DOM com uma versão convertida -que sugaria um POV de desempenho.

Acho que vou ter que esperar e espero que se permitir uma outra maneira de substituirmos isso.

Foi útil?

Solução

O WMD preenche automaticamente o elemento de visualização conforme você digita, certo? Bem, ele precisa ter um conversor em algum lugar para fazer isso. Esse conversor é confronto (que você poderia obter aqui). Aqui está o seu uso (retirado do arquivo de origem):

// Showdown usage:

var text = "Markdown *rocks*.";

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

Isso significa que você simplesmente não pode usar o elemento de visualização que é fornecido, a favor do seu, que você se preencha. Além disso, você precisará ouvir o keypress Evento na textarea e faça a sua análise do texto, seguida de chamadas de confronto. Quando a saída for como você quiser, jogue -o no seu próprio elemento de visualização.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top