¿Cómo ejecutar un archivo HTML desde Notepad ++?

7

Me gustaría ejecutar una página HTML, así que configuré el Execute / F5comando de la siguiente manera:

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

Funciona cuando el archivo HTML se encuentra en la raíz de mi área de trabajo (porque mi servidor web HTTP está configurado para hacerlo). Pero no funciona cuando el archivo está en una subcarpeta.

¿Existe una variable predefinida (es decir $(RELATIVE_PATH)) que se pueda usar para obtener la ruta del archivo en relación con el directorio del área de trabajo?

Gracias de antemano por su ayuda.

Supersharp
fuente
3
¿ Run-> Launch in Chromeno te ayuda?
Burgi
44
Si está usando PHP, podría usar http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)where redirect.phpquita la parte excesiva. Consulte el artículo Configuración de Notepad ++ para ejecutar php en localhost .
harrymc
1
Una respuesta similar sería usar un archivo .bat para hacer la manipulación de la cadena y llamar a Chrome. Simple de hacer si estás interesado.
harrymc
@Supersharp Ctrl + Shift + Alt + R
deshacer

Respuestas:

1

A partir de la versión actual de Notepad ++ 6.9.1, el problema con los archivos en la ruta de las subcarpetas en un servidor web aún no se ha solucionado. La única variable para la ruta de los archivos es $(FULL_CURRENT_PATH).

Verificación: Configuración de Notepad ++ para ejecutar php en localhost .

Tal vez este problema se solucionará en las futuras versiones de Notepad ++.

iSR5
fuente
@Supersharp no leyó la sección de comentarios, para las variables de entorno verifique aquí: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5
1
@Supersharp también es útil: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5
5

En lugar de usar Chrome directamente, puede usar un archivo .bat.

A continuación se muestra una versión de dicho archivo .bat que debería ejecutarse en Notepadd ++ de esta manera:

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

Para Windows, donde está la raíz del documento C:\inetpub\wwwroot, el archivo .bat es:

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

La sintaxis general de DOS utilizada anteriormente para reemplazar cadenas en una variable es:

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

donde en nuestro caso replacement-stringestá vacío.

Este simple archivo .bat se puede mejorar fácilmente para aceptar la cadena C:\inetpub\wwwroot\como segundo parámetro, y más.

El archivo por lotes puede hacer que aparezca momentáneamente una ventana negra de DOS, que desaparezca inmediatamente una vez que se inicie Chrome. Si todavía es demasiado molesto, mira esta respuesta .

harrymc
fuente
1

Solución Python

Con los complementos de Np ++ incluso se pueden lograr milagros. Escribí un simple script Python Np ++ que logra exactamente esta funcionalidad. Esta solución solo requiere Notepad ++ y el complemento PythonScript.

  1. Instalar Python Script desde complementos> Administrador de complementos
  2. Complementos> Python Script> Nuevo script
  3. Póngale el nombre "OpenInBrowser.py" (por ejemplo) y pegue el script: http://pastebin.com/wS4jThcp
  4. En el guión, no olvide configurar su browserExeFullPath , browserUrl y de su página web RootDir (en virtud del cual se encuentra el index.html de nivel superior).
  5. Complementos> Python Script> Configuración y agregue su script de usuario al Menú (lista de la izquierda)
  6. Reinicie Notepad ++, Configuración> Mapeador de accesos directos> Comandos de complementos y asigne su script a una tecla, por ejemplo F9. Ahora presionando esa tecla se abrirá su documento activo en el navegador. No se requieren soluciones externas.
pKami
fuente
No pude instalar el complemento "Python Script" en NPP 6.9.1.
Supersharp
¿Cuál fue exactamente el problema? No tuve problemas para instalarlo en 6.9.1 con el Administrador de complementos, solo lo verifiqué. Alternativamente, puede intentar instalarlo manualmente desde npppythonscript.sourceforge.net/download.shtml
pKami
1
Fallé 4 veces durante la descarga. No seguiré esta solución porque no quiero instalar otro intérprete (ya tengo JVM, CLR, Node, Windows 'shell ...) pero voté porque podría ser una solución preferida para los usuarios de Pyhton.
Supersharp
0

Solución Node.js

Basado en el primer comentario de @ harrymc, porté la solución de PHP a mi servidor Node .

1 ° en Notepad ++ :

Cambie el <Command>contenido del archivo shortcuts.xml(puede encontrarlo en la carpeta %appdata%/Notepad++), por ejemplo:

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

2 ° en Node.js :

Agregue una ruta en el script del servidor ( server.js) para manejar la solicitud HTTP GET:

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

dónde:

  • appes mi componente Express ( app = express()),
  • +8es necesario porque mis páginas web están ubicadas en una subcarpeta /public/.
Supersharp
fuente