Comment exécuter un fichier HTML à partir de Notepad ++?

7

Je voudrais exécuter une page HTML, j'ai donc configuré la Execute / F5commande comme suit:

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

Cela fonctionne lorsque le fichier HTML se trouve à la racine de mon espace de travail (car mon serveur Web HTTP est configuré pour le faire). Mais cela ne fonctionne pas lorsque le fichier se trouve dans un sous-dossier.

Existe-t-il une variable prédéfinie (c'est-à-dire $(RELATIVE_PATH)) qui peut être utilisée pour obtenir le chemin du fichier par rapport au répertoire Workspace?

Merci d'avance pour votre aide.

Supersharp
la source
3
Est Run- ce que -> Launch in Chromene vous aide pas?
Burgi
4
Si vous utilisez PHP, vous pouvez utiliser http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)redirect.phpdécolle la partie excessive. Voir l'article Configurer Notepad ++ pour exécuter php sur localhost .
harrymc
1
Une réponse similaire consisterait à utiliser un fichier .bat pour effectuer la manipulation de chaîne et appeler Chrome. Simple à faire si vous êtes intéressé.
harrymc
@Supersharp Ctrl + Maj + Alt + R
annuler

Réponses:

1

Depuis la version actuelle de Notepad ++ 6.9.1, le problème avec le chemin des fichiers dans les sous-dossiers d'un serveur Web n'a pas encore été résolu. La seule variable pour le chemin des fichiers est $(FULL_CURRENT_PATH).

Vérifiez: Configurer Notepad ++ pour exécuter php sur localhost .

Peut-être que ce problème sera résolu dans les futures versions de Notepad ++.

iSR5
la source
@Supersharp n'a pas lu la section des commentaires, pour les variables d'environnement, vérifiez ici: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5
1
@Supersharp c'est aussi utile: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5
5

Au lieu d'utiliser Chrome directement, vous pouvez utiliser un fichier .bat.

Voici une version d'un tel fichier .bat qui devrait être exécutée dans Notepadd ++ comme ceci:

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

Pour Windows, où se trouve la racine du document C:\inetpub\wwwroot, le fichier .bat est:

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

La syntaxe DOS générale utilisée ci-dessus pour remplacer des chaînes dans une variable est:

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

où dans notre cas replacement-stringest vide.

Ce simple fichier .bat peut facilement être amélioré pour accepter la chaîne C:\inetpub\wwwroot\comme deuxième paramètre, et plus encore.

Le fichier de commandes peut faire apparaître une fenêtre DOS noire momentanément, disparaître immédiatement une fois Chrome lancé. Si c'est encore trop ennuyeux, voyez cette réponse .

harrymc
la source
1

Solution Python

Avec les plugins Np ++, même des miracles peuvent être réalisés. J'ai écrit un simple script Np ++ Python qui réalise exactement cette fonctionnalité. Cette solution nécessite uniquement Notepad ++ et le plugin PythonScript.

  1. Installer le script Python à partir des plugins> Plugin Manager
  2. Plugins> Script Python> Nouveau script
  3. Nommez-le "OpenInBrowser.py" (par exemple) et collez le script: http://pastebin.com/wS4jThcp
  4. Dans le script, n'oubliez pas de configurer votre browserExeFullPath , browserUrl et de votre page Web rootDir (sous lequel le index.html toplevel est situé).
  5. Plugins> Script Python> Configuration et ajoutez votre script utilisateur au menu (liste de gauche)
  6. Redémarrez Notepad ++, Paramètres> Mappeur de raccourcis> Plugin et mappez votre script à une clé, par exemple F9. Maintenant, appuyez sur cette touche pour ouvrir votre document actif dans le navigateur. Aucune solution externe requise.
pKami
la source
Je n'ai pas pu installer le plugin "Python Script" sur NPP 6.9.1.
Supersharp
Quel était exactement le problème? Je n'ai eu aucun problème à l'installer sur 6.9.1 avec le Plugin Manager - je viens de le vérifier. Alternativement, vous pouvez essayer de l'installer manuellement à partir de npppythonscript.sourceforge.net/download.shtml
pKami
1
J'ai échoué 4 fois lors du téléchargement. Je ne suivrai pas cette solution parce que je ne veux pas installer encore un autre interprète (détenez déjà JVM, CLR, Node, le shell de Windows ...) mais j'ai voté positivement car cela pourrait être une solution préférée pour les utilisateurs de Pyhton.
Supersharp
0

Solution Node.js

Sur la base du premier commentaire de @ harrymc, j'ai porté la solution de contournement PHP sur mon serveur Node .

1 ° Dans le Bloc-notes ++ :

Modifiez le <Command>contenu du fichier shortcuts.xml(vous pouvez le trouver sous le dossier %appdata%/Notepad++), par exemple:

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

2 ° Dans Node.js :

Ajoutez une route dans le script serveur ( server.js) pour gérer la requête HTTP GET:

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

où:

  • appest mon composant Express ( app = express()),
  • +8est nécessaire car mes pages Web se trouvent dans un sous-dossier /public/.
Supersharp
la source