summaryrefslogtreecommitdiff
path: root/README
blob: b8c1198b9e9edbd581e943a5c88de56eab1a1f67 (plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
                                                  .. -*- mode: rst -*-
Pancake
=======

This is a CLI/Emacs web/gopher/file browser.

It utilizes pandoc and external downloaders such as curl, adding
support for Gopher directories and plain text files, and invoking
external applications (e.g., image and PDF viewers) depending on its
configuration.

User interaction capabilities are rather basic, as it is intended to
be combined with software that provides better user interfaces – such
as emacs, rlwrap, tmux, screen.


Installation
------------

Retrieval
~~~~~~~~~

There is a few ways to get a recent version of pancake:

- source and binary distributions:
  https://defanor.uberspace.net/projects/pancake/
- git repository: https://git.uberspace.net/pancake/
- github: https://github.com/defanor/pancake/


Pancake
~~~~~~~

``cabal install`` would build and install pancake and its
documentation. Alternatively, basic Debian packages and binary
releases are available.


Emacs interface
~~~~~~~~~~~~~~~

``M-x package-install-file RET /path/to/pancake.el RET``. To set it as
your default emacs browser::

  (require 'pancake)
  (setq browse-url-browser-function 'pancake-browse-url)


Commands
--------

:q: quit
:b: back
:f: forward
:r: reload
:re: reload config
:[.]<number>: follow a link (or open the referenced file)
:?: show current URI
:RET (empty): show the next 2/3 of a page, if pagination is enabled
:<URI>: follow an URI, possibly relative to the current one
:<type> <URI>: same as above, but explicitly set a document type
               (html, txt, org, markdown, etc)
:<shortcut> <query>: run a query using a shortcut defined in the
                     configuration (e.g., search)

pancake-mode provides additional aliases and commands, see built-in
emacs documentation (``C-h m``) for those.


Configuration
-------------

Default configuration will be written into XDG configuration
directory, and would look approximately like this::

  externalViewers:
    png: xdg-open "${FILE}"
    hs: emacsclient -n "${FILE}"
  indentDivs: false
  commands:
    gopher: torify curl "${URI}"
    ssh: scp "${URI_REGNAME}:${URI_PATH}" /dev/stdout
  defaultCommand: ! 'curl -4 -L "${URI}" -w "

    -pancake-

    uri: %{url_effective}

    type: %{content_type}

    "'
  referenceDigits: 'stwpxcvazdg'
  shortcuts:
    g: https://m.gutenberg.org/ebooks/search.mobile/?query=
    ddg: https://duckduckgo.com/lite/?q=
    wt: https://en.m.wiktionary.org/w/index.php?search=
    wp: https://en.m.wikipedia.org/wiki/Special:Search?search=
    gp: gopher://gopherpedia.com:70/7/lookup?
    vs: gopher://gopher.floodgap.com/7/v2/vs?
    xiph: http://dir.xiph.org/search?search=
  historyDepth: 100
  paginate: true


Screenshots
-----------

.. image:: https://defanor.uberspace.net/projects/pancake/gopher.png
.. image:: https://defanor.uberspace.net/projects/pancake/web-gnu.png
.. image:: https://defanor.uberspace.net/projects/pancake/emacs.png