File size: 2,141 Bytes
a4bf183
 
 
 
 
 
 
d86b3b9
63912b1
5014f7c
63912b1
d86b3b9
63912b1
d86b3b9
63912b1
 
 
 
 
 
 
 
 
 
 
 
 
d86b3b9
63912b1
 
 
d86b3b9
a4bf183
 
63912b1
a4bf183
63912b1
a4bf183
63912b1
a4bf183
 
 
 
 
 
 
d86b3b9
63912b1
a4bf183
 
63912b1
 
 
 
 
 
a4bf183
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<div style="padding-bottom: 10px; display: flex; gap: 10px; align-items: center;">
  <input id="original_url" type="text" placeholder="Original file URL" style="flex: 1; padding: 6px; font-size: 13px;"
    value="https://raw.githubusercontent.com/huggingface/trl/main/trl/trainer/grpo_trainer.py" />
  <input id="modified_url" type="text" placeholder="Modified file URL" style="flex: 1; padding: 6px; font-size: 13px;"
    value="https://raw.githubusercontent.com/huggingface/trl/main/trl/trainer/rloo_trainer.py" />
  <button onclick="loadDiff()" style="padding: 6px 14px; font-size: 13px;">Load</button>
</div>

<div style="padding-bottom: 20px;">
  <div id="trl_diff" style="width: 100%; border: 1px solid grey;"></div>
</div>

<script src="https://unpkg.com/monaco-editor@latest/min/vs/loader.js"></script>
<script>
  const proxy = URL.createObjectURL(
    new Blob(
      [`
          self.MonacoEnvironment = {
            baseUrl: 'https://unpkg.com/monaco-editor@latest/min/'
          };
          importScripts('https://unpkg.com/monaco-editor@latest/min/vs/base/worker/workerMain.js');
        `],
      { type: "text/javascript" }
    )
  );

  window.MonacoEnvironment = { getWorkerUrl: () => proxy };

  require.config({
    paths: { vs: "https://unpkg.com/monaco-editor@latest/min/vs" }
  });

  let diffEditor;

  require(["vs/editor/editor.main"], function () {
    diffEditor = monaco.editor.createDiffEditor(
      document.getElementById("trl_diff"),
      { readOnly: true, automaticLayout: true }
    );
    loadDiff();
  });

  function loadDiff() {
    const originalUrl = document.getElementById("original_url").value.trim();
    const modifiedUrl = document.getElementById("modified_url").value.trim();
    if (!diffEditor || !originalUrl || !modifiedUrl) return;

    Promise.all([
      fetch(originalUrl).then(r => r.text()),
      fetch(modifiedUrl).then(r => r.text())
    ]).then(([originalTxt, modifiedTxt]) => {
      diffEditor.setModel({
        original: monaco.editor.createModel(originalTxt, "python"),
        modified: monaco.editor.createModel(modifiedTxt, "python")
      });
    });
  }
</script>