Browse Source

Use scdoc to generate manpages

master
Aqua-sama 6 months ago
parent
commit
72575ccadb
Signed by: Aqua-sama <aqua@iserlohn-fortress.net> GPG Key ID: 5378B8349C1D5ADA
6 changed files with 125 additions and 92 deletions
  1. 2
    4
      .gitignore
  2. 88
    0
      doc/man/smolbote.1.scd
  3. 11
    14
      doc/man/smolbote.5.scd
  4. 22
    34
      doc/meson.build
  5. 0
    39
      doc/smolbote.7.asciidoc
  6. 2
    1
      linux/makepkg/PKGBUILD

+ 2
- 4
.gitignore View File

@@ -12,9 +12,7 @@ test/plugins.d
.config
.config.old

smolbote.*

# manpages
doc/smolbote.5
doc/smolbote.7
smolbote.1
smolbote.5


+ 88
- 0
doc/man/smolbote.1.scd View File

@@ -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/>.

doc/smolbote.5.asciidoc → doc/man/smolbote.5.scd View File

@@ -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)::

+ 22
- 34
doc/meson.build View File

@@ -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


+ 0
- 39
doc/smolbote.7.asciidoc View File

@@ -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/>.

+ 2
- 1
linux/makepkg/PKGBUILD View File

@@ -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

Loading…
Cancel
Save