Zoek programma / manier voor browsen 100+ html files

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • segil
  • Registratie: Januari 2003
  • Laatst online: 02-10 13:21
Mijn vraag

Ik zoek een programma / utility / methode waarmee ik eenvoudig 100+ offline html pagina's kan inzien. Liefst een soort van index.html waar ik door alle files kan bladeren en in het midden de inhoud van de html pagina zie. In een iframe ofzo. De html pagina's staan allemaal in 1 directory en zijn single page. Elke html bestand bevat een artikel van een bepaalde lengte. Ik wil graag deze artikelen lezen, en heen/weer bladeren. Liefst met een kolom aan de zijkant met alle titels, waar ik op kan klikken om snel naar die pagina te springen.
Optioneel: zoektermen gebruiken om een pagina te vinden.

Ik kan me van vroeger enkele programma's herinneren, met trainingsmateriaal. Dat was niet meer dan een index / start pagina, en in sub directories stonden (per hoofdstuk) diverse html pagina's, die dan geladen werden als je klikte op dat onderwerp.

Het mag een tool zijn die een index.html genereert. Of een browser add-on die dit kan.

Relevante software en hardware die ik gebruik

Windows / Firefox / Edge

Wat ik al gevonden of geprobeerd heb

10tallen zoekopdrachten. Chatgpt / co pilot. Ik krijg allemaal resultaat om zelf iets te bouwen in python. 1x een veelbelovende tip voor een tooltje genaamd "mass html viewer", maar die tool is offline gehaald.

Beste antwoord (via segil op 14-06-2024 10:40)


  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 22:25
Ik dacht zelf snel wat in elkaar te draaien, maar heb eerst eens gekeken wat ChatGPT ervan wist te maken. Dat ging wonderbaarlijk genoeg in een keer vrijwel helemaal goed. Hier een PowerShell-scriptje om een index.html te genereren. Open bijvoorbeeld PowerShell ISE, navigeer onder in de console naar de map met je bestanden, plak bovenin het script (eerst Nieuw kiezen) en draai het.

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Add-Type -AssemblyName System.Web

# Define the directory to search for HTML files
$directory = Get-Location

# Define where to write the output
$indexFilePath = Join-Path -Path $directory -ChildPath "index.html"

# Delete previous output if it exists, so it won't be indexed
if (Test-Path $indexFilePath) {
    Remove-Item $indexFilePath
}

# Get all HTML files in the directory
$htmlFiles = Get-ChildItem -Path $directory -Filter *.htm* -File

# Initialize an array to hold the title and filename
$pages = @()

# Loop through each file and extract the title
foreach ($file in $htmlFiles) {
    $content = Get-Content -Path $file.FullName -Raw
    if ($content -match "<title>(.*?)</title>") {
        $title = $matches[1]
    } else {
        $title = "No Title"
    }
    # Encode the file name for URLs
    $encodedFileName = [System.Web.HttpUtility]::UrlPathEncode($file.Name)
    $pages += [PSCustomObject]@{
        Title = $title
        FileName = $encodedFileName
    }
}

# Create the index.html content
$indexContent = @"
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
    <style>
        body { display: flex; }
        #titles { width: 30%; padding: 10px; border-right: 1px solid #ccc; }
        #iframe-container { flex-grow: 1; }
        a { display: block; margin: 5px 0; }
    </style>
</head>
<body>
    <div id="titles">
        <h2>Pages</h2>
"@

# Add each title to the index.html content
foreach ($page in $pages) {
    $indexContent += "        <a href='$($page.FileName)' target='contentFrame'>$($page.Title)</a>`n"
}

# Complete the index.html content
$indexContent += @"
    </div>
    <div id="iframe-container">
        <iframe name="contentFrame" style="width: 100%; height: 100vh; border: none;"></iframe>
    </div>
</body>
</html>
"@

# Write the index.html file
Set-Content -Path $indexFilePath -Value $indexContent

Voor geïnteresseerden, dit was de prompt: 'Write a PowerShell script that looks for HTM(L) files in the same directory, determines the title of each page, then produces an index.html that has a list of titles on the left and an iframe on the right where clicking a title loads the given file into the iframe. Make sure it works with filenames that contain special characters.' Vervolgens nog minimale handmatige aanpassingen, zoals het importeren van de benodigde module en het verwijderen van eerdere output.

[ Voor 9% gewijzigd door Z-Dragon op 13-06-2024 11:46 ]

^ Wat hij zegt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Als je via de command-prompt gewoon alle htlm's samenvoegd naar 1 bestand, ben je er toch ook?

type *.html > a.b
ren a.b grootbestand.html

Hoe dat er dan in je browser uitziet geen idee :P

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • segil
  • Registratie: Januari 2003
  • Laatst online: 02-10 13:21
RaZ schreef op woensdag 12 juni 2024 @ 15:27:
Als je via de command-prompt gewoon alle htlm's samenvoegd naar 1 bestand, ben je er toch ook?

type *.html > a.b
ren a.b grootbestand.html

Hoe dat er dan in je browser uitziet geen idee :P
Ik betwijl zeer dat dat iets nuttigs, bruikbaars gaat opleveren ;)
De html files bevatten wel CSS / plaatjes / opmaak /etc

Acties:
  • +1 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Als je een beetje kan programmeren is dit super eenvoudig zelf in elkaar te zetten.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • segil
  • Registratie: Januari 2003
  • Laatst online: 02-10 13:21
Juup schreef op woensdag 12 juni 2024 @ 15:51:
Als je een beetje kan programmeren is dit super eenvoudig zelf in elkaar te zetten.
Ja dat kan ik alleen niet en ook geen tijd of interesse om me aan te leren.

Acties:
  • +2 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 02:47

g0tanks

Moderator CSA
Misschien dat je naar file managers kunt kijken met een preview pane. Bijvoorbeeld: https://www.xyplorer.com/

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • +1 Henk 'm!

  • SVMartin
  • Registratie: November 2005
  • Niet online
Niet getest, maar je kunt in elke browser toch file://<pad> doen? Krijg je dan niet een lijst van de html files, en dan kun je die stuk voor stuk openen in een nieuwe tab?

Acties:
  • 0 Henk 'm!

  • JukeboxBill
  • Registratie: Juni 2003
  • Laatst online: 22:35
Ik denk dat je het moet zoeken bij een wysiwyg webeditor.
Lang geleden gebruikte ik Namo Web Editor en voor zo ver ik mij kan herinneren zaten daar wel wat slimme dingen in om bestaande pagina's te importeren in je eigen project.
Ook diverse basis dingen, zoals zoekvensters, waren eenvoudig te maken.

Een slimme vos is nooit te oud om een nieuwe streek te leren


Acties:
  • 0 Henk 'm!

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 22:22

DukeBox

loves wheat smoothies

Anders alles 'printen' maar PDF en dan in PDF een page index maken?

Duct tape can't fix stupid, but it can muffle the sound.


Acties:
  • +1 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 21:04

Acties:
  • 0 Henk 'm!

  • segil
  • Registratie: Januari 2003
  • Laatst online: 02-10 13:21
g0tanks schreef op woensdag 12 juni 2024 @ 16:18:
Misschien dat je naar file managers kunt kijken met een preview pane. Bijvoorbeeld: https://www.xyplorer.com/
Bedankt voor de tip. Ik heb die gauw bekeken. Kan inderdaad in een preview window, al wordt de pagina raar genoeg in het zwart weergegeven. En het laden duurt meerdere seconden. Maar daar valt wellicht wel mee te leven, als ik die zwarte kleur weg kan krijgen.
SVMartin schreef op woensdag 12 juni 2024 @ 17:02:
Niet getest, maar je kunt in elke browser toch file://<pad> doen? Krijg je dan niet een lijst van de html files, en dan kun je die stuk voor stuk openen in een nieuwe tab?
Ja, misschien is het wel zoiets simpels als dit. Niet helemaal wat ik voor ogen had, maar door enkele pagina's tegelijk te openen en die te sluiten als ik het gelezen heb, kan het misschien wel werken.
JukeboxBill schreef op woensdag 12 juni 2024 @ 17:30:
Ik denk dat je het moet zoeken bij een wysiwyg webeditor.
Lang geleden gebruikte ik Namo Web Editor en voor zo ver ik mij kan herinneren zaten daar wel wat slimme dingen in om bestaande pagina's te importeren in je eigen project.
Ook diverse basis dingen, zoals zoekvensters, waren eenvoudig te maken.
Bedankt voor de tip.... Dit zijn 100+ html pagina's van elke zo'n 100 KB in grootte. Ik vraag me af hoe makkelijk dat importeren gaat.
DukeBox schreef op woensdag 12 juni 2024 @ 17:37:
Anders alles 'printen' maar PDF en dan in PDF een page index maken?
Nee, de opmaak van de html pagine is echt niet print friendly. Bedankt voor de tip.
Die ken ik nog niet, zal eens kijken. Bedankt.

Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 02:47

g0tanks

Moderator CSA
Met die tool kan je een online website omzet in een verzameling html-bestanden voor offline gebruik. Dat lijkt mij hier niet aan de orde.

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • +1 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 22:25
Mass HTML Viewer is hier nog te downloaden.

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • segil
  • Registratie: Januari 2003
  • Laatst online: 02-10 13:21
Z-Dragon schreef op woensdag 12 juni 2024 @ 22:21:
Mass HTML Viewer is hier nog te downloaden.
Tof, dat je die hebt kunnen vinden! Super!
Gelijk geprobeerd, maar het lijkt erop dat een oudere engine wordt gebruikt, want de pagina's zijn onleesbaar :/
Toch kudo's voor het vinden!

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 22:25
Dat klopt; is van binnen gewoon IE11.

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • Falcon
  • Registratie: Februari 2000
  • Laatst online: 29-09 08:39

Falcon

DevOps/Q.A. Engineer

VSCode met "HTML Preview" extensie kan het denk ik wel. Ik weet alleen even niet hoe je het zo kan zetten dat hij automatisch de preview weergeeft ipv de HTML code.

"We never grow up. We just learn how to act in public" - "Dyslexie is a bitch"


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

segil schreef op woensdag 12 juni 2024 @ 15:34:
[...]


Ik betwijl zeer dat dat iets nuttigs, bruikbaars gaat opleveren ;)
De html files bevatten wel CSS / plaatjes / opmaak /etc
CSS, plaatjes etc worden daar toch gewoon weggelaten uit de lijst? Ik neem aan dat je het even hebt geprobeerd, wat mis je?

Juist bij file://<pad> zie je ook de onderliggende bestanden die je niet wilt zien.

[ Voor 10% gewijzigd door F_J_K op 13-06-2024 11:03 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 22:25
Ik dacht zelf snel wat in elkaar te draaien, maar heb eerst eens gekeken wat ChatGPT ervan wist te maken. Dat ging wonderbaarlijk genoeg in een keer vrijwel helemaal goed. Hier een PowerShell-scriptje om een index.html te genereren. Open bijvoorbeeld PowerShell ISE, navigeer onder in de console naar de map met je bestanden, plak bovenin het script (eerst Nieuw kiezen) en draai het.

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Add-Type -AssemblyName System.Web

# Define the directory to search for HTML files
$directory = Get-Location

# Define where to write the output
$indexFilePath = Join-Path -Path $directory -ChildPath "index.html"

# Delete previous output if it exists, so it won't be indexed
if (Test-Path $indexFilePath) {
    Remove-Item $indexFilePath
}

# Get all HTML files in the directory
$htmlFiles = Get-ChildItem -Path $directory -Filter *.htm* -File

# Initialize an array to hold the title and filename
$pages = @()

# Loop through each file and extract the title
foreach ($file in $htmlFiles) {
    $content = Get-Content -Path $file.FullName -Raw
    if ($content -match "<title>(.*?)</title>") {
        $title = $matches[1]
    } else {
        $title = "No Title"
    }
    # Encode the file name for URLs
    $encodedFileName = [System.Web.HttpUtility]::UrlPathEncode($file.Name)
    $pages += [PSCustomObject]@{
        Title = $title
        FileName = $encodedFileName
    }
}

# Create the index.html content
$indexContent = @"
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
    <style>
        body { display: flex; }
        #titles { width: 30%; padding: 10px; border-right: 1px solid #ccc; }
        #iframe-container { flex-grow: 1; }
        a { display: block; margin: 5px 0; }
    </style>
</head>
<body>
    <div id="titles">
        <h2>Pages</h2>
"@

# Add each title to the index.html content
foreach ($page in $pages) {
    $indexContent += "        <a href='$($page.FileName)' target='contentFrame'>$($page.Title)</a>`n"
}

# Complete the index.html content
$indexContent += @"
    </div>
    <div id="iframe-container">
        <iframe name="contentFrame" style="width: 100%; height: 100vh; border: none;"></iframe>
    </div>
</body>
</html>
"@

# Write the index.html file
Set-Content -Path $indexFilePath -Value $indexContent

Voor geïnteresseerden, dit was de prompt: 'Write a PowerShell script that looks for HTM(L) files in the same directory, determines the title of each page, then produces an index.html that has a list of titles on the left and an iframe on the right where clicking a title loads the given file into the iframe. Make sure it works with filenames that contain special characters.' Vervolgens nog minimale handmatige aanpassingen, zoals het importeren van de benodigde module en het verwijderen van eerdere output.

[ Voor 9% gewijzigd door Z-Dragon op 13-06-2024 11:46 ]

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • segil
  • Registratie: Januari 2003
  • Laatst online: 02-10 13:21
Z-Dragon schreef op donderdag 13 juni 2024 @ 11:34:
Ik dacht zelf snel wat in elkaar te draaien, maar heb eerst eens gekeken wat ChatGPT ervan wist te maken. Dat ging wonderbaarlijk genoeg in een keer vrijwel helemaal goed. Hier een PowerShell-scriptje om een index.html te genereren. Open bijvoorbeeld PowerShell ISE, navigeer onder in de console naar de map met je bestanden, plak bovenin het script (eerst Nieuw kiezen) en draai het.

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Add-Type -AssemblyName System.Web

# Define the directory to search for HTML files
$directory = Get-Location

# Define where to write the output
$indexFilePath = Join-Path -Path $directory -ChildPath "index.html"

# Delete previous output if it exists, so it won't be indexed
if (Test-Path $indexFilePath) {
    Remove-Item $indexFilePath
}

# Get all HTML files in the directory
$htmlFiles = Get-ChildItem -Path $directory -Filter *.htm* -File

# Initialize an array to hold the title and filename
$pages = @()

# Loop through each file and extract the title
foreach ($file in $htmlFiles) {
    $content = Get-Content -Path $file.FullName -Raw
    if ($content -match "<title>(.*?)</title>") {
        $title = $matches[1]
    } else {
        $title = "No Title"
    }
    # Encode the file name for URLs
    $encodedFileName = [System.Web.HttpUtility]::UrlPathEncode($file.Name)
    $pages += [PSCustomObject]@{
        Title = $title
        FileName = $encodedFileName
    }
}

# Create the index.html content
$indexContent = @"
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
    <style>
        body { display: flex; }
        #titles { width: 30%; padding: 10px; border-right: 1px solid #ccc; }
        #iframe-container { flex-grow: 1; }
        a { display: block; margin: 5px 0; }
    </style>
</head>
<body>
    <div id="titles">
        <h2>Pages</h2>
"@

# Add each title to the index.html content
foreach ($page in $pages) {
    $indexContent += "        <a href='$($page.FileName)' target='contentFrame'>$($page.Title)</a>`n"
}

# Complete the index.html content
$indexContent += @"
    </div>
    <div id="iframe-container">
        <iframe name="contentFrame" style="width: 100%; height: 100vh; border: none;"></iframe>
    </div>
</body>
</html>
"@

# Write the index.html file
Set-Content -Path $indexFilePath -Value $indexContent

Voor geïnteresseerden, dit was de prompt: 'Write a PowerShell script that looks for HTM(L) files in the same directory, determines the title of each page, then produces an index.html that has a list of titles on the left and an iframe on the right where clicking a title loads the given file into the iframe. Make sure it works with filenames that contain special characters.' Vervolgens nog minimale handmatige aanpassingen, zoals het importeren van de benodigde module en het verwijderen van eerdere output.
Ow dat is helemaal gaaf! Ik had ook lopen spelen met chat, maar kreeg (blijkbaar) niet de juiste prompt voor elkaar. Bedankt, dit is helemaal wat ik zocht!

Update: ik was benieuwd of dezelfde prompt ook leidt tot dezelfde output. Ik krijg nu wel een ander script, die ongeveer hetzelfde doet, alleen is de iframe slechts half hoog, waarin de html wordt getoond. Minder handig dan de versie die jij had gegenereerd.

[ Voor 3% gewijzigd door segil op 14-06-2024 10:47 ]

Pagina: 1