Come eseguire un file HTML da Notepad ++?


7

Vorrei eseguire una pagina HTML, quindi ho configurato il Execute / F5comando come segue:

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

Funziona quando il file HTML si trova nella radice del mio spazio di lavoro (perché il mio server Web HTTP è impostato per farlo). Ma non funziona quando il file si trova in una sottocartella.

Esiste una variabile predefinita (ovvero $(RELATIVE_PATH)) che può essere utilizzata per ottenere il percorso del file relativo alla directory dell'area di lavoro?

Grazie in anticipo per il tuo aiuto.


3
Does Run-> Launch in Chromenon aiuterà?
Burgi,

4
Se stai usando PHP, puoi usare http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)dove redirect.phptoglie la parte eccessiva. Vedi l'articolo Configurazione di Notepad ++ per eseguire php su localhost .
harrymc,

1
Una risposta simile sarebbe quella di utilizzare un file .bat per eseguire la manipolazione di stringhe e chiamare Chrome. Semplice da fare se sei interessato.
harrymc,

@Supersharp Ctrl + Maiusc + Alt + R
annulla

Risposte:


1

A partire dalla versione corrente di Notepad ++ 6.9.1, il problema con i file nel percorso delle sottocartelle in un web server non è stato ancora risolto. L'unica variabile per il percorso dei file è $(FULL_CURRENT_PATH).

Verifica: Configurazione di Notepad ++ per eseguire php su localhost .

Forse questo problema verrà risolto nelle versioni future di Notepad ++.


@Supersharp non ha letto la sezione dei commenti, per le variabili di ambiente controlla qui: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5

1
@Supersharp anche questo è utile: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5

5

Invece di utilizzare Chrome direttamente, è possibile utilizzare un file .bat.

Di seguito è riportata una versione di tale file .bat che dovrebbe essere eseguita in Notepadd ++ in questo modo:

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

Per Windows, dove si trova la radice del documento C:\inetpub\wwwroot, il file .bat è:

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

La sintassi generale DOS utilizzata sopra per sostituire le stringhe in una variabile è:

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

dove nel nostro caso replacement-stringè vuoto.

Questo semplice file .bat può essere facilmente migliorato per accettare la stringa C:\inetpub\wwwroot\come secondo parametro e altro.

Il file batch può far apparire momentaneamente una finestra DOS nera, che scompare immediatamente dopo l'avvio di Chrome. Se è ancora troppo fastidioso, vedi questa risposta .


1

Soluzione Python

Con i plugin Np ++ è possibile raggiungere anche i miracoli. Ho scritto un semplice script Python Np ++ che raggiunge esattamente questa funzionalità. Questa soluzione richiede solo Notepad ++ e il plug-in PythonScript.

  1. Installa Python Script da Plugin> Gestione plugin
  2. Plugin> Python Script> Nuovo script
  3. Denominalo "OpenInBrowser.py" (ad esempio) e incolla lo script: http://pastebin.com/wS4jThcp
  4. Nello script, ricorda di configurare browserExeFullPath , browserUrl e rootDir della tua pagina web (sotto il quale si trova l' indice.html di livello superiore ).
  5. Plugin> Python Script> Configurazione e aggiungi il tuo script utente al Menu (elenco a sinistra)
  6. Riavvia Notepad ++, Impostazioni> Mappatura scorciatoie> Comandi plug-in e mappa lo script su un tasto, ad esempio F9. Ora premendo quel tasto si aprirà il documento attivo nel browser. Nessuna soluzione esterna richiesta.

Non sono stato in grado di installare il plug-in "Python Script" su NPP 6.9.1.
Supersharp,

Qual era esattamente il problema? Non ho avuto problemi a installarlo su 6.9.1 con Plugin Manager - appena verificato. In alternativa, puoi provare a installarlo manualmente da npppythonscript.sourceforge.net/download.shtml
pKami

1
Ho fallito 4 volte durante il download. Non seguirò questa soluzione perché non voglio installare ancora un altro interprete (già detengo JVM, CLR, Node, shell di Windows ...) ma ho votato perché potrebbe essere una soluzione preferita per gli utenti di Pyhton.
Supersharp,

0

Soluzione Node.js

Sulla base del primo commento di @ harrymc, ho trasferito la soluzione alternativa PHP sul mio server Node .

1 ° in Blocco note ++ :

Modifica il <Command>contenuto nel file shortcuts.xml(puoi trovarlo nella cartella %appdata%/Notepad++), ad esempio:

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

2 ° In Node.js :

Aggiungi una route nello script del server ( server.js) per gestire la richiesta HTTP GET:

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

dove:

  • appè il mio componente Express ( app = express()),
  • +8è necessario perché le mie pagine Web si trovano in una sottocartella /public/.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.