Bagaimana cara menjalankan file HTML dari Notepad ++?

7

Saya ingin menjalankan halaman HTML jadi saya mengkonfigurasi Execute / F5perintah sebagai berikut:

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

Ini berfungsi ketika file HTML terletak di root dari Workspace saya (karena server Web HTTP saya diatur untuk melakukannya). Tapi itu tidak berfungsi ketika file dalam subfolder.

Apakah ada variabel standar (yaitu $(RELATIVE_PATH)) yang dapat digunakan untuk mendapatkan path file relatif ke direktori Workspace?

Terima kasih sebelumnya atas bantuan Anda.

Supersharp
sumber
3
Apakah Run-> Launch in Chrometidak membantu Anda?
Burgi
4
Jika Anda menggunakan PHP, Anda bisa menggunakan http://localhost:8080/redirect.php?file=/$(FULL_CURRENT_PATH)mana redirect.phpmelepas bagian yang berlebihan. Lihat artikel Mengkonfigurasi Notepad ++ untuk menjalankan php di localhost .
harrymc
1
Jawaban serupa akan menggunakan file .bat untuk melakukan manipulasi string dan memanggil Chrome. Mudah dilakukan jika Anda tertarik.
harrymc
@Supersharp Ctrl + Shift + Alt + R
batalkan

Jawaban:

1

Pada versi Notepad ++ 6.9.1 saat ini, masalah dengan file di jalur sub-folder di server-web belum diperbaiki. Satu-satunya variabel untuk path file adalah $(FULL_CURRENT_PATH).

Periksa: Mengkonfigurasi Notepad ++ untuk menjalankan php di localhost .

Mungkin masalah ini akan diperbaiki pada rilis Notepad ++ mendatang.

iSR5
sumber
@Supersharp tidak membaca bagian komentar, untuk variabel lingkungan periksa di sini: docs.notepad-plus-plus.org/index.php/Defining_User_Commands
iSR5
1
@Supersharp juga ini membantu: docs.notepad-plus-plus.org/index.php/External_Programs
iSR5
5

Alih-alih menggunakan Chrome secara langsung, Anda dapat menggunakan file .bat.

Di bawah ini adalah salah satu versi file .bat yang harus dijalankan di Notepadd ++ seperti ini:

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

Untuk Windows, tempat root dokumen berada C:\inetpub\wwwroot, file .bat adalah:

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

Sintaks DOS umum yang digunakan di atas untuk mengganti string dalam variabel adalah:

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

di mana dalam kasus kami replacement-stringkosong.

File .bat sederhana ini dapat dengan mudah ditingkatkan untuk menerima string C:\inetpub\wwwroot\sebagai parameter kedua, dan banyak lagi.

File batch dapat menyebabkan jendela DOS hitam muncul sebentar, menghilang segera setelah Chrome diluncurkan. Jika masih terlalu mengganggu, lihat jawaban ini .

harrymc
sumber
1

Solusi Python

Dengan Np ++ plugins, bahkan mukjizat dapat dicapai. Saya menulis Np ++ Python Script sederhana yang mencapai fungsi ini dengan tepat. Solusi ini hanya membutuhkan Notepad ++ dan plugin PythonScript.

  1. Instal Python Script dari Plugins> Plugin Manager
  2. Plugin> Python Script> Script Baru
  3. Beri nama "OpenInBrowser.py" (misalnya) dan rekatkan skrip: http://pastebin.com/wS4jThcp
  4. Dalam script, ingatlah untuk mengkonfigurasi browserExeFullPath , browserUrl dan halaman Web Anda rootDir (di mana index.html toplevel akan berada).
  5. Plugin> Skrip Python> Konfigurasi dan tambahkan skrip pengguna Anda ke Menu (daftar sebelah kiri)
  6. Mulai ulang Notepad ++, Pengaturan> Shortcut Mapper> Perintah plugin dan petakan skrip Anda ke tombol, misalnya F9. Sekarang menekan tombol itu akan membuka dokumen aktif Anda di browser. Tidak diperlukan solusi eksternal.
pami
sumber
Saya tidak dapat menginstal plugin "Python Script" di NPP 6.9.1.
Supersharp
Apa sebenarnya masalahnya? Saya tidak punya masalah menginstalnya pada 6.9.1 dengan Plugin Manager - baru saja diperiksa. Atau, Anda dapat mencoba menginstalnya secara manual dari npppythonscript.sourceforge.net/download.shtml
pKami
1
Saya gagal 4 kali saat mengunduh. Saya tidak akan mengikuti solusi ini karena saya tidak ingin menginstal juru bahasa lain (sudah memegang JVM, CLR, Node, Windows shell ...) tapi saya terbalik karena itu bisa menjadi solusi yang dipilih untuk pengguna Pyhton.
Supersharp
0

Solusi Node.js

Berdasarkan komentar pertama @ harrymc, saya porting solusi PHP ke server Node saya .

1 ° Dalam Notepad ++ :

Ubah <Command>konten dalam file shortcuts.xml(Anda dapat menemukannya di bawah folder %appdata%/Notepad++), misalnya:

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

2 ° Di Node.js :

Tambahkan rute di skrip server ( server.js) untuk menangani permintaan HTTP GET:

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

dimana:

  • appadalah komponen Express saya ( app = express()),
  • +8diperlukan karena halaman web saya terletak di subfolder /public/.
Supersharp
sumber