Jak uruchomić plik HTML z Notepad ++?

7

Chciałbym uruchomić stronę HTML, więc skonfigurowałem Execute / F5polecenie w następujący sposób:

chrome.exe http://localhost:8080/$(FILE_NAME)

Działa, gdy plik HTML znajduje się w katalogu głównym mojego Workspace (ponieważ mój serwer HTTP HTTP jest skonfigurowany do tego). Ale to nie działa, gdy plik znajduje się w podfolderze.

Czy istnieje predefiniowana zmienna (tj. $(RELATIVE_PATH)), Której można użyć do uzyskania ścieżki do pliku względem katalogu Workspace?

Z góry dziękuję za pomoc.

Supersharp
źródło
3
Czy Run-> ci Launch in Chromenie pomaga?
Burgi
4
Jeśli używasz PHP, możesz użyć http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)gdzie redirect.phpzdejmuje nadmierną część. Zobacz artykuł Konfigurowanie Notepad ++ do uruchamiania php na localhost .
harrymc
1
Podobną odpowiedzią byłoby użycie pliku .bat do manipulacji ciągiem i wywołania Chrome. Proste, jeśli jesteś zainteresowany.
harrymc
@Supersharp Ctrl + Shift + Alt + R
rahuldottech

Odpowiedzi:

1

Od obecnej wersji Notepad ++ 6.9.1 problem z plikami w ścieżce podfolderów na serwerze WWW nie został jeszcze rozwiązany. Jedyną zmienną dla ścieżki plików jest $(FULL_CURRENT_PATH).

Sprawdź: Konfigurowanie Notepad ++ do uruchamiania php na localhost .

Być może ten problem zostanie rozwiązany w przyszłych wydaniach Notepad ++.

iSR5
źródło
@Supersharp nie przeczytał sekcji komentarzy, sprawdź zmienne środowiskowe tutaj: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5
1
@Supersharp również to jest pomocne: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5
5

Zamiast bezpośrednio używać Chrome, możesz użyć pliku .bat.

Poniżej znajduje się jedna wersja takiego pliku .bat, który należy wykonać w Notepadd ++ w następujący sposób:

"path\to\file.bat" "$(FULL_CURRENT_PATH)"

W systemie Windows, w którym znajduje się katalog główny C:\inetpub\wwwroot, plik .bat to:

@echo off
set "param=%~1"
set "url=http://localhost/%param:C:\inetpub\wwwroot\=%"
start "" chrome.exe "%url%"

Ogólna składnia DOS zastosowana powyżej do zamiany napisów w zmiennej to:

"%variable-name:search-string=replacement-string%"

gdzie w naszym przypadku replacement-stringjest pusty.

Ten prosty plik .bat można łatwo ulepszyć, aby zaakceptować ciąg C:\inetpub\wwwroot\jako drugi parametr i nie tylko.

Plik wsadowy może spowodować chwilowe pojawienie się czarnego okna DOS, które zniknie natychmiast po uruchomieniu Chrome. Jeśli nadal jest to zbyt denerwujące, zobacz tę odpowiedź .

harrymc
źródło
1

Rozwiązanie Python

Dzięki wtyczkom Np ++ można osiągnąć nawet cuda. Napisałem prosty skrypt Python Np ++, który osiąga dokładnie tę funkcjonalność. To rozwiązanie wymaga tylko Notepad ++ i wtyczki PythonScript.

  1. Zainstaluj skrypt Python z Plugins> Plugin Manager
  2. Wtyczki> Python Script> Nowy skrypt
  3. Nazwij go „OpenInBrowser.py” (na przykład) i wklej skrypt: http://pastebin.com/wS4jThcp
  4. W skrypcie, należy pamiętać, aby skonfigurować browserExeFullPath , browserUrl i Twojej strony rootDir (pod którą index.html toplevel będzie zlokalizowany).
  5. Wtyczki> Python Script> Konfiguracja i dodaj swój skrypt użytkownika do menu (lista po lewej stronie)
  6. Uruchom ponownie Notepad ++, Ustawienia> Mapowanie skrótów> Polecenia wtyczek i zamapuj skrypt na klucz, na przykład F9. Teraz naciśnięcie tego klawisza otworzy twój aktywny dokument w przeglądarce. Nie są wymagane żadne zewnętrzne rozwiązania.
pKami
źródło
Nie mogłem zainstalować wtyczki „Python Script” w NPP 6.9.1.
Supersharp,
Na czym dokładnie polegał problem? Nie miałem problemu z zainstalowaniem go w wersji 6.9.1 z Plugin Managerem - właśnie sprawdziłem. Możesz też spróbować zainstalować go ręcznie z npppythonscript.sourceforge.net/download.shtml
pKami
1
Nie udało mi się 4 razy podczas pobierania. Nie podążę za tym rozwiązaniem, ponieważ nie chcę instalować kolejnego interpretera (już trzymam JVM, CLR, węzeł, powłokę systemu Windows ...), ale głosowałem za tym, ponieważ może to być preferowane rozwiązanie dla użytkowników Pyhton.
Supersharp,
0

Rozwiązanie Node.js

Na podstawie pierwszego komentarza @ harrymc przeniosłem obejście PHP na mój serwer Node .

1 ° W Notepad ++ :

Zmień <Command>zawartość pliku shortcuts.xml(znajdziesz go w folderze %appdata%/Notepad++), na przykład:

chrome http://localhost:8080/npp?path=$(FULL_CURRENT_PATH) 

2 ° W Node.js :

Dodaj trasę w skrypcie serwera ( server.js), aby obsłużyć żądanie HTTP GET:

//redirection for Notepad++
app.get( '/npp', function ( req, res ) 
{
    res.redirect( req.query.path.substr( __dirname.length + 8 ) )
} )

gdzie:

  • appjest moim składnikiem Express ( app = express()),
  • +8jest potrzebne, ponieważ moje strony internetowe znajdują się w podfolderze /public/.
Supersharp
źródło