2015-08-09 10 views
12

W szczególności mam bloki kodu do instalacji, które chcę, aby użytkownik mógł szybko skopiować i wkleić do terminala. Chciałbym przycisk "skopiować do schowka" dla bloku kodu. Ponieważ istnieje przycisk "Kopiuj do schowka" dla adresów URL klonów git, zastanawiałem się, czy mógłbym odstąpić od tego, czy nie, czy było coś stosunkowo prostego, co mógłbym dodać do MD, żeby to się stało. Czy jest to po prostu niemożliwe przy przetwarzaniu i "zabezpieczaniu" tekstu MD?Łatwy sposób dodawania "kopiowania do schowka" do obniżki GitHub?

+2

to po prostu niemożliwe. – bitoiu

+0

Przynajmniej, nie bez prośby o nową funkcję, przypuszczam. – zanerock

+0

Wierzę, że przycisk "Kopiuj do schowka" dla adresów URL klonów git używa Flasha pod maską, by pisać do schowka (ponieważ przeglądarka nie zapewnia dostępu do zapisu do schowka przez JavaScript). Spodziewam się, że byłoby to dość trudne, jeśli nie niemożliwe, by na tym polegać, nawet używając jakiejś wtyczki rozszerzenia przeglądarki/skryptu. – Waylan

Odpowiedz

2

Myślę, że nie jest to, co chcesz, ale jeśli chcesz skopiować, możesz to zrobić, uruchamiając skryptozakładkę i dodając przycisk kopiowania.

var copy = function(target) { 
    var textArea = document.createElement('textarea') 
    textArea.setAttribute('style','width:1px;border:0;opacity:0;') 
    document.body.appendChild(textArea) 
    textArea.value = target.innerHTML 
    textArea.select() 
    document.execCommand('copy') 
    document.body.removeChild(textArea) 
} 

var pres = document.querySelectorAll(".comment-body > pre") 
pres.forEach(function(pre){ 
    var button = document.createElement("button") 
    button.className = "btn btn-sm" 
    button.innerHTML = "copy" 
    pre.parentNode.insertBefore(button, pre) 
    button.addEventListener('click', function(e){ 
    e.preventDefault() 
    copy(pre.childNodes[0]) 
    }) 
}) 
+0

Hmm, sprawdzę to. – zanerock

+0

Nie mogłem uruchomić tego w Chrome. Nie robiłem wielu debugowania, ale wydawało mi się, że widziałem coś na temat ograniczenia lub błędu w skryptozakładach Chrome. Podoba mi się ten pomysł. – zanerock

Powiązane problemy