diff options
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | doc/man/smolbote.1.scd | 88 | ||||
-rw-r--r-- | doc/man/smolbote.5.scd (renamed from doc/smolbote.5.asciidoc) | 25 | ||||
-rw-r--r-- | doc/meson.build | 56 | ||||
-rw-r--r-- | doc/smolbote.7.asciidoc | 39 | ||||
-rw-r--r-- | linux/makepkg/PKGBUILD | 3 |
6 files changed, 125 insertions, 92 deletions
@@ -12,9 +12,7 @@ test/plugins.d .config .config.old -smolbote.* - # manpages -doc/smolbote.5 -doc/smolbote.7 +smolbote.1 +smolbote.5 diff --git a/doc/man/smolbote.1.scd b/doc/man/smolbote.1.scd new file mode 100644 index 0000000..4ca55b7 --- /dev/null +++ b/doc/man/smolbote.1.scd @@ -0,0 +1,88 @@ +smolbote(1) + +# NAME + +smolbote - yet another no-frills web browser + +# SYNOPSIS + +*poi* [options] [command/URL(s)] + +# DESCRIPTION + +smolbote is a cross-platform keep-it-simple free software web browser that +uses Qt and QtWebEngine. + +# USAGE + +## Command-line options +- `-h`, `--help`: Display command-line options list. +- `-v`, `--version`: Display version information. +- `--build`: Display build commit. +- `-c`, `--config`: Set configuration file. +- `--no-remote`: Don't check for other instances when starting. +- `-s, --session`: Open the selected session. +- `--pick-session`: Open all available sessions and select which one to open. + +## Profiles +A Profile is a collection of settings, policies, scripts, cookies, cache and +history. Profiles can be used to isolate pages from each other. + +Off-the-record profiles only use in-memory cache and save no files to disk. + +Profiles can be either temporary or permanent. Temporary profiles expire when +the application is closed, whereas permanent profiles are kept between runs. + +Each window has a default profile it uses when opening new tabs. This can be +changed from the window's menu. Additionally, tabs can have their profiles +individually changed from their context menu. + +Because profiles store all their data separately, you can log in into the same +site with a different account from each profile. However, links opened into new +tabs will still use the subwindow's default profile. For example, you can set a +profile to hold login information for a site, but all new tabs opened from that +site would still be using the default off-the-record profile. + +## Plugins +Plugins a way of extending smolbote's functionality using the Qt plugin system. +They are not to be confused with NPAPI/PPAPI or WebExtension plugins. + +To enable a plugin either copy it or symlink it in the plugins.path location, +or set its absolute path as the plugins.path. + +## Filters +smolbote has a singular URL request filter that is installed onto all profiles. +Any setting applied to it will be applied to all profiles. + +filter.header: A list of header-value pairs, separated by a colon (':'). + +You can specify multiple headers by using --filter.header multiple times: +``` +poi --filter.header "Dnt:1" --filter.header "Accept:text/html" +``` + +# SEE ALSO + +*smolbote*(5) - configuration file and options + +# AUTHORS + +Maintained by <aqua@iserlohn-fortress.net>. + +Up-to-date sources can be found at https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote + +Bug reports and patches can be submitted by email to <aqua@iserlohn-fortress.net>. + +# COPYRIGHT + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License version 3 as +published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. diff --git a/doc/smolbote.5.asciidoc b/doc/man/smolbote.5.scd index 5b17a36..063a050 100644 --- a/doc/smolbote.5.asciidoc +++ b/doc/man/smolbote.5.scd @@ -1,14 +1,11 @@ -= smolbote(5) -:doctype: manpage -:man source: smolbote configuration -:man manual: smolbote configuration manpage -:toc: -:homepage: https://neueland.iserlohn-fortress.net/smolbote/ - -== Name +smolbote(5) "smolbote configuration" + +# NAME + smolbote - configuration file and options description -== Description +# DESCRIPTION + The smolbote configuration is loaded at startup, and is not reloaded when changed. By default (without any plugins), the browser does not change its configuration or overwrite this file. Thus, it can be made read-only. @@ -20,9 +17,9 @@ Lines starting with *#* are considered comments and ignored. Options taking multiple values (list options) can have multiple values set by using the same option name multiple times. -== Sections +# SECTIONS -=== Browser Options +## Browser Options *browser.stylesheet* (arg):: TODO @@ -53,7 +50,7 @@ Default downloads location. *downloads.shortcut* (arg=Ctrl+D):: Show/Hide downloads widget shortcut. -=== UI Options +## UI Options *mainwindow.height* (arg=720) *mainwindow.width* (arg=1280) @@ -93,8 +90,8 @@ Show/Hide downloads widget shortcut. *subwindow.shortcuts.moveRight* (arg=Ctrl+Shift+P):: Move tab to the right *subwindow.shortcuts.fullscreen* (arg=F11):: Show page fullscreen -=== Security Options - +## Security Options + *filter.hosts* (arg=~/.config/smolbote/hosts.d):: Hostlist *filter.adblock* arg:: TODO *filter.header* (list):: diff --git a/doc/meson.build b/doc/meson.build index 26175ce..95ca486 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -1,42 +1,30 @@ -asciidoctor = find_program('asciidoctor', required: get_option('manpage'), disabler: true) +scdoc = find_program('scdoc', required: get_option('manpage'), disabler: true) +sh = find_program('sh', required: get_option('manpage'), native: true, disabler: true) -custom_target('manpage.7', - # list depend_files so the output can be updated if any of them are changed - depend_files: ['smolbote.7.asciidoc', 'Usage/CommandLine.asciidoc', 'Usage/Configuration.asciidoc', 'Usage/Profile.asciidoc', 'Usage/Plugins.asciidoc', 'Usage/Filter.asciidoc'], - - input: 'smolbote.7.asciidoc', - output: 'smolbote.7', +man_files = ['man/smolbote.1.scd', 'man/smolbote.5.scd'] - command: [asciidoctor, '--backend=manpage', '--out-file=@OUTPUT@', '@INPUT@'], +foreach input : man_files + topic = input.split('/')[-1].split('.')[-3] + section = input.split('.')[-2] + output = '@0@.@1@'.format(topic, section) - build_by_default: get_option('manpage').enabled(), - install: get_option('manpage').enabled(), - install_dir: join_paths(get_option('mandir'), 'man7') -) + message('creating manpage target ' + output) + custom_target(output, + build_by_default: true, -custom_target('manpage.5', - # list of files this target depends on - depend_files: ['smolbote.5.asciidoc'], + input: input, + output: output, - input: 'smolbote.5.asciidoc', - output: 'smolbote.5', + # scdoc takes input from stdin, and prints its output to stdout + # meson uses 'capture' to store stdout to output, but there is no stdin toggle + #command: [scdoc], + #capture: true, - command: [asciidoctor, '--backend=manpage', '--out-file=@OUTPUT@', '@INPUT@'], + # workaround using sh + command: [sh, '-c', '@0@ < @INPUT0@ > @OUTPUT0@'.format(scdoc.path())], - build_by_default: get_option('manpage').enabled(), - install: get_option('manpage').enabled(), - install_dir: get_option('mandir') / 'man5' -) - -custom_target('manual', - depend_files: ['smolbote.asciidoc'], - - input: 'smolbote.asciidoc', - output: 'manual.html', - - command: [asciidoctor, '-a', 'imagesdir=images', '--out-file=@OUTPUT@', '@INPUT@'], - - build_by_default: false, - install: false -) + install: true, + install_dir: '@0@/man@1@'.format(get_option('mandir'), section) + ) +endforeach diff --git a/doc/smolbote.7.asciidoc b/doc/smolbote.7.asciidoc deleted file mode 100644 index a950816..0000000 --- a/doc/smolbote.7.asciidoc +++ /dev/null @@ -1,39 +0,0 @@ -= smolbote(7) -:doctype: manpage -:man source: smolbote -:man manual: smolbote manpage -:toc: -:homepage: https://neueland.iserlohn-fortress.net/smolbote/ - -== Name -smolbote - yet another no-frills web browser - -== Synopsis -*poi* ['-OPTION' ['...']] ['COMMAND'] ['URL' ['...']] - -== Description -smolbote is a cross-platform keep-it-simple free software web browser based on -Qt and QtWebEngine. - -include::Usage/CommandLine.asciidoc[] - -include::Usage/Configuration.asciidoc[] - -include::Usage/Profile.asciidoc[] - -include::Usage/Plugins.asciidoc[] - -include::Usage/Filter.asciidoc[] - -== Copyright -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License version 3 as -published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. diff --git a/linux/makepkg/PKGBUILD b/linux/makepkg/PKGBUILD index 105d6f3..179dab3 100644 --- a/linux/makepkg/PKGBUILD +++ b/linux/makepkg/PKGBUILD @@ -14,7 +14,7 @@ license=('GPL3') depends=('qt5-webengine>=5.11.0' 'boost-libs>=1.66.0') optdepends=('firejail: launch a sandboxed instance') -makedepends=('git' 'meson' 'boost' 'python-kconfiglib' 'openssl') +makedepends=('git' 'meson' 'boost' 'python-kconfiglib' 'openssl' 'scdoc') # this is the central repository source=("git+https://neueland.iserlohn-fortress.net/gitea/aeon/smolbote.git" @@ -85,6 +85,7 @@ build() { # b_lto: Use link time optimization meson --buildtype=plain --prefix=/usr/local --auto-features=disabled \ -Db_pie=true -Db_lto=true -Dcpp_link_args="-fuse-ld=gold" \ + -Dmanpage=enabled \ $srcdir/build # Run menuconfig |