Skip to content

Commit 28de453

Browse files
committed
documentation update using markdownlint
1 parent 9af1ab1 commit 28de453

File tree

7 files changed

+61
-31
lines changed

7 files changed

+61
-31
lines changed

CREDITS.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
Perl Executing Browser - Thanks and Credits
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser - Thanks and Credits
2+
33
Amata mea Argeia - gratiam magnam tibi ago!
44
Patientia tua in studiis meis computatoriis auxilium meum maximum!
55

@@ -33,6 +33,7 @@ Thanks to Daniel Muey and all contributors of the File::Copy::Recursive CPAN mod
3333
https://metacpan.org/pod/File::Copy::Recursive
3434

3535
## Qt
36+
3637
https://github.com/richmoore/qt-examples/tree/master/sitespecificbrowser
3738
https://github.com/OtterBrowser/otter-browser/blob/master/src/modules/backends/web/qtwebengine/QtWebEnginePage.cpp
3839
https://github.com/OtterBrowser/otter-browser/blob/master/src/modules/backends/web/qtwebengine/QtWebEnginePage.h
@@ -150,6 +151,7 @@ https://unix.stackexchange.com/questions/116254/how-do-i-change-which-version-of
150151
https://www.developpez.net/forums/d1549582/c-cpp/bibliotheques/qt/moteurs-web/runjavascript-fonction-lambda-plante/
151152

152153
## Perl 5
154+
153155
https://perlbrew.pl/
154156
https://github.com/skaji/relocatable-perl
155157
http://strawberryperl.com/
@@ -181,6 +183,7 @@ https://perlmaven.com/recursive-subroutines
181183
http://lauraliparulo.altervista.org/first-steps-in-sqlite-and-perl/
182184

183185
## HTML, CSS & JavaScript
186+
184187
https://www.w3schools.com/js/js_loop_for.asp
185188
https://www.w3schools.com/jsref/prop_html_innerhtml.asp
186189
https://www.w3schools.com/jsref/met_form_submit.asp
@@ -205,6 +208,10 @@ https://jquery.com/
205208
http://youmightnotneedjquery.com/
206209

207210
## Markdown
211+
212+
https://github.com/DavidAnson/markdownlint
213+
https://dlaa.me/markdownlint/
214+
208215
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
209216
https://github.com/IQAndreas/markdown-licenses
210217

@@ -214,6 +221,7 @@ https://stackoverflow.com/questions/23989232/is-there-a-way-to-represent-a-direc
214221
https://meta.stackexchange.com/questions/70356/key-stroke-combination-markdown
215222

216223
## Bash
224+
217225
http://tldp.org/LDP/abs/html/fto.html
218226
http://tldp.org/LDP/abs/html/functions.html
219227

@@ -233,20 +241,25 @@ https://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-comma
233241
https://www.tutorialspoint.com/unix/unix-regular-expressions.htm
234242
https://ryanstutorials.net/bash-scripting-tutorial/bash-functions.php
235243

236-
## Mac
244+
## AppImage
245+
246+
https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html
247+
https://specifications.freedesktop.org/desktop-entry-spec/1.1/apa.html
248+
249+
## Macintosh
250+
237251
http://leonid.shevtsov.me/en/how-to-create-icns-icons-for-os-x
238252
https://iconverticons.com/online/
239253

240254
## Google Chrome Unsafe Ports
255+
241256
https://superuser.com/questions/188058/which-ports-are-considered-unsafe-on-chrome
242257

243258
## GitHub
259+
244260
https://github.com/github/linguist#overrides
245261

246262
## Travis CI
263+
247264
https://docs.travis-ci.com/user/reference/xenial/
248265
https://stackoverflow.com/questions/25737062/travis-ci-for-a-qt5-project
249-
250-
## AppImage
251-
https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html
252-
https://specifications.freedesktop.org/desktop-entry-spec/1.1/apa.html

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
Perl Executing Browser
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser
32

43
[![GitHub Version](https://img.shields.io/github/release/ddmitov/perl-executing-browser.svg)](https://github.com/ddmitov/perl-executing-browser/releases)
54
[![GitHub License](http://img.shields.io/badge/License-LGPL%20v3-blue.svg)](./LICENSE.md)
@@ -11,6 +10,7 @@ Perl Executing Browser (PEB) is an HTML5 user interface for [Perl 5](https://www
1110
![PEB Screenshot](https://github.com/ddmitov/perl-executing-browser/raw/master/doc/screenshot.png "PEB Screenshot")
1211

1312
## Contents
13+
1414
* [Quick Start](#quick-start)
1515
* [Design Objectives](#design-objectives)
1616
* [Features](#features)
@@ -46,6 +46,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
4646
in the documentation of this project are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
4747

4848
## Quick Start
49+
4950
* Common Steps:
5051
* **1.** Download PEB.
5152
* **2.** Select your Perl distribution.
@@ -68,13 +69,15 @@ in the documentation of this project are to be interpreted as described in [RFC
6869
* **5.** Write an appropriate HTML interface and connect it to your server application by traditional web communication protocols.
6970

7071
## Design Objectives
72+
7173
* **1. Easy and beautiful graphical user interface for Perl 5 desktop applications**
7274
* **2. Fast, zero-installation software**
7375
* **3. Cross-platform availability**
7476
* **4. Secure solution, serverless by default**
7577
* **5. Maximal reuse of existing web technologies and standards**
7678

7779
## Features
80+
7881
* PEB can be started from any folder without installation procedure.
7982
* [Perl script output is seamlessly inserted in any local page.](./doc/SETTINGS.md#perl-scripts-api)
8083
* [Perl scripts with STDIN event loops can be repeatedly fed with data (Linux and Macintosh builds only).](./doc/SETTINGS.md#interactive-perl-scripts)
@@ -87,6 +90,7 @@ in the documentation of this project are to be interpreted as described in [RFC
8790
* [Optional warning for unsaved data in HTML forms](./doc/SETTINGS.md#html-page-api)
8891

8992
## Security
93+
9094
* PEB does not need administrative privileges, but will not refuse to use them if needed.
9195
* PEB does not need and does not implement any server, but will start one if so configured.
9296
* Local Perl 5 scripts are executed with no sandbox and they have direct access to local files.
@@ -96,21 +100,25 @@ in the documentation of this project are to be interpreted as described in [RFC
96100
* Files or folders can not be selected with their full paths from web pages.
97101

98102
## What PEB Is Not
103+
99104
* PEB is not a general-purpose web browser and does not have all traditional features of general-purpose web browsers.
100105
* PEB does not embed any Perl interpreter in itself and depends on an external, supposedly relocatable, Perl distribution.
101106

102107
## Limitations
108+
103109
* Only single-page applications are supported with no pop-up windows and no Perl scripting inside frames.
104110
* No files can be downloaded.
105111
* ``QtWebEngine`` builds do not support printing and ``window.print()`` is not supported.
106112
* Windows builds of PEB do no support [interactive Perl Scripts](./doc/SETTINGS.md#interactive-perl-scripts).
107113

108114
## History
115+
109116
PEB was started in 2013 by Dimitar D. Mitov as a simple GUI for personal database applications.
110117

111118
## [Thanks and Credits](CREDITS.md)
112119

113120
## [License](./LICENSE.md)
121+
114122
This program is free software;
115123
you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License,
116124
as published by the Free Software Foundation;
@@ -119,5 +127,6 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY
119127
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
120128

121129
## Authors
130+
122131
Dimitar D. Mitov, 2013 - 2018
123132
Valcho Nedelchev, 2014 - 2016

doc/CONSTANTS.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
Perl Executing Browser - Constants
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser - Constants
32

43
## Files and Folders
54

@@ -80,12 +79,14 @@ A typical ``{PEB_executable_directory}`` looks like this:
8079
If this file is not found, the default icon embedded in the resources of the browser binary is used.
8180

8281
## Functional Pseudo Filenames
83-
* **About PEB dialog:** ``about-browser.function``
8482

83+
* **About PEB dialog:** ``about-browser.function``
8584
* **About Qt dialog:** ``about-qt.function``
8685

8786
## Specific Keyboard Shortcuts
87+
8888
All specific keyboard shortcuts are available only in the QtWebKit builds of PEB.
89+
8990
* <kbd>Ctrl</kbd> + <kbd>I</kbd> - start QWebInspector
9091
* <kbd>Ctrl</kbd> + <kbd>P</kbd> - get printer selection dialog. If no printer is configured, no dialog is displayed.
9192
* <kbd>Ctrl</kbd> + <kbd>R</kbd> - get print preview

doc/LOGGING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
Perl Executing Browser - Logging
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser - Logging
32

43
PEB supports unified logging of Perl and JavaScript errors in the JavaScript console.
54
All you need to read error logs is to open the JavaScript console.
65

76
## Opening the JavaScript Console on QtWebkit Builds
7+
88
Start the QWebInspector using the keyboard shortcut <kbd>Ctrl</kbd> + <kbd>I</kbd> and go to the ``Console`` tab.
99

1010
## Opening the JavaScript Console on QtWebEngine Builds
11+
1112
Start PEB with the following command-line argument supplying an arbitrary private port:
1213

1314
```bash

doc/PACKAGING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
Perl Executing Browser - Packaging
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser - Packaging
32

43
## Minimal Relocatable Perl Distribution for PEB
4+
55
Minimizing the size of a relocatable (or portable) Perl distribution used by a PEB-based application is vital for reducing the size of its distribution package. [Perl Distribution Compactor](https://github.com/ddmitov/perl-executing-browser/blob/master/sdk/compactor.pl) is one solution for this problem. It finds all dependencies of all Perl scripts run by PEB and copies them in a new ``{PEB_executable_directory}/resources/app/perl/lib`` folder. Any unnecessary modules are left behind and the original ``bin`` and ``lib`` folders are saved as ``bin-original`` and ``lib-original``.
66

77
Perl Distribution Compactor must be started from the ``{PEB_executable_directory}/sdk/lib`` folder using [compactor.sh](https://github.com/ddmitov/perl-executing-browser/blob/master/sdk/compactor.sh) on a Linux machine or [compactor.cmd](https://github.com/ddmitov/perl-executing-browser/blob/master/sdk/compactor.cmd) on a Windows machine to make sure that only a relocatable Perl distribution is used.
88

99
Perl Distribution Compactor depends on [Module::ScanDeps](https://metacpan.org/pod/Module::ScanDeps) and [File::Copy::Recursive](https://metacpan.org/pod/File::Copy::Recursive) CPAN modules, which are included in the ``{PEB_executable_directory}/sdk/lib`` directory.
1010

1111
## AppImage Support
12+
1213
PEB or any PEB-based application can be easily packed as a 64-bit single-file Linux [AppImage](https://appimage.org/) executable by the [AppImage Maker](https://github.com/ddmitov/perl-executing-browser/blob/master/sdk/appimage-maker.sh) script, which has two modes of operation:
1314

1415
* packing a Perl application together with a PEB executable, its Qt libraries and a relocatable Perl distribution:

doc/REQUIREMENTS.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Perl Executing Browser - Requirements
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser - Requirements
32

43
## Compile-Time Requirements
4+
55
The only Linux and Macintosh compile-time requirement of PEB is a Qt development bundle version 5.2 or any later version.
66

77
Compiling Windows binaries of PEB is subject to the following restrictions:
@@ -13,6 +13,7 @@ Compiling Windows binaries of PEB is subject to the following restrictions:
1313
* Windows builds of PEB do no support [interactive Perl Scripts](SETTINGS.md#interactive-perl-scripts) with STDIN event loops.
1414

1515
Compiled and tested successfully using:
16+
1617
* [Qt 5.2.0](http://download.qt.io/archive/qt/5.2/5.2.0/) on 32-bit Debian 7 and 32-bit Windows XP
1718
* [Qt 5.2.1](http://download.qt.io/archive/qt/5.2/5.2.1/) on 64-bit Ubuntu 14.04 and 64-bit OS X 10.9.1, i5
1819
* [Qt 5.3.0](http://download.qt.io/archive/qt/5.3/5.3.0/) on 64-bit Lubuntu 14.10
@@ -31,6 +32,7 @@ make
3132
Please note that PEB builds using the ``QtWebKit`` web engine are single-process applications consuming less memory than PEB builds using the ``QtWebEngine`` which are multiprocess applications.
3233

3334
## Compile-Time Settings
35+
3436
All compile-time settings require editing the ``src/peb.pro`` project file according to the following instructions.
3537

3638
* Updated QtWebKit
@@ -69,6 +71,7 @@ All compile-time settings require editing the ``src/peb.pro`` project file accor
6971
To make automatically a bundled binary (peb.app) use the [dmg-maker.sh](sdk/dmg-maker.sh) script by Valcho Nedelchev.
7072

7173
## Runtime Requirements
74+
7275
* Qt 5 libraries.
7376

7477
The ``ldd`` Linux command can show all dependencies of a PEB executable.

doc/SETTINGS.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Perl Executing Browser - Settings
2-
--------------------------------------------------------------------------------
1+
# Perl Executing Browser - Settings
32

43
## Application Filename
4+
55
The executable binary file of the browser, ``peb``, ``peb.app``, ``peb.dmg`` or ``peb.exe`` by default, can be renamed with no restrictions or additional adjustments. It can take the name of the PEB-based application it is going to run. If log files are wanted, they will take the name of the executable file without the filename extension, whatever the name may be.
66

77
## HTML Page API
@@ -57,6 +57,7 @@ The ``pebSettings`` JavaScript object may have the following properties:
5757
``String`` displayed in a JavaScript Confirm popup box when the close button is pressed, but unsaved data in local HTML forms is detected. If no ``closeConfirmation`` object property is found, PEB exits immediately.
5858

5959
## Perl Scripts API
60+
6061
Every Perl script run by PEB has a JavaScript settings object with an arbitrary name and fixed object properties. The name of the JavaScript settings object with a ``.script`` extension forms settings pseudo filename used to start the Perl script.
6162

6263
There are three methods to start a local Perl script:
@@ -132,6 +133,7 @@ A JavaScript settings object for a Perl script run by PEB has the following prop
132133
```
133134

134135
## Interactive Perl Scripts
136+
135137
Each PEB interactive Perl script must have its own event loop waiting constantly for new data on STDIN for a bidirectional connection with PEB. Many interactive scripts can be started simultaneously in one browser window. One script may be started in many instances, provided that it has a JavaScript settings object with an unique name.
136138

137139
Please note that interactive Perl scripts are not supported by the Windows builds of PEB.
@@ -200,6 +202,7 @@ The [index.htm](https://github.com/ddmitov/perl-executing-browser/blob/master/re
200202
The [interactive.pl](https://github.com/ddmitov/perl-executing-browser/blob/master/resources/app/perl/interactive.pl) script of the demo package is an example of a Perl interactive script for PEB.
201203

202204
## Starting Local Server
205+
203206
A [Mojolicious](http://mojolicious.org/) application or other local Perl server can be started by PEB provided that
204207
a ``{PEB_app_directory}/local-server.json`` file is found instead of ``{PEB_app_directory}/index.html``
205208
with the following structure:
@@ -234,17 +237,15 @@ with the following structure:
234237
Privileged ports below or equal to port 1024 are not allowed.
235238
The following Google Chrome unsafe ports used by various services are also not allowed:
236239

237-
```
238-
2049 - nfs
239-
3659 - apple-sasl / PasswordServer
240-
4045 - lockd
241-
6000 - X11
242-
6665 - Alternate IRC [Apple addition]
243-
6666 - Alternate IRC [Apple addition]
244-
6667 - Standard IRC [Apple addition]
245-
6668 - Alternate IRC [Apple addition]
246-
6669 - Alternate IRC [Apple addition]
247-
```
240+
2049 - nfs
241+
3659 - apple-sasl / PasswordServer
242+
4045 - lockd
243+
6000 - X11
244+
6665 - Alternate IRC [Apple addition]
245+
6666 - Alternate IRC [Apple addition]
246+
6667 - Standard IRC [Apple addition]
247+
6668 - Alternate IRC [Apple addition]
248+
6669 - Alternate IRC [Apple addition]
248249

249250
* **command-line-arguments**
250251
``Array`` holding all command-line arguments that have to be passed to a local Perl server
@@ -255,6 +256,7 @@ The ``#PORT#`` keyword within the command-line arguments is substituted with the
255256
``shutdown_command`` is not needed if the local server uses a WebSocket connection to detect when PEB is disconnected and shut down on its own - see the [Tabula](https://github.com/ddmitov/tabula) application for an example.
256257

257258
## Selecting Files and Folders
259+
258260
Selecting files or folders with their full paths is performed by clicking a link to a pseudo filename composed of the name of a JavaScript settings object for the wanted dialog and a ``.dialog`` extension.
259261

260262
A JavaScript settings object for a filesystem dialog has only two object properties:

0 commit comments

Comments
 (0)