Welcome to Orgro

Orgro is an [[https://orgmode.org/][org-mode]] file viewer.

Files open in "overview" visibility mode, with top sections folded.

Tap a section header to expand it ↓

* Supported features

Orgro can understand the following org-mode features:

** Sections

Sections can be opened and closed by touching the section headline.

TODO keywords, priority markers, and tags are highlighted and laid out nicely.

** Blocks

Blocks are laid out with horizontal scroll to keep code readable. They can also
be opened and closed just like sections by touching the block header.

   #+begin_src elisp
     (+ 1 2)
   #+end_src

   #+RESULTS:
   : 3

The example above also illustrates affiliated keywords (the =#+RESULTS:= line)
and fixed-width areas (the =: 3= line). Fixed width areas also have horizontal
scroll to ensure proper display.

Diminish meta lines like =#+RESULTS:= with [[*Reader Mode][Reader Mode]].

** Syntax highlighting

Syntax highlighting is applied for [[https://github.com/git-touch/highlight/tree/master/highlight/lib/languages][many languages]] in =src= blocks.

#+begin_src bash
  #!/bin/bash

  ###### CONFIG
  ACCEPTED_HOSTS="/root/.hag_accepted.conf"
  BE_VERBOSE=false

  if [ "$UID" -ne 0 ]
  then
   echo "Superuser rights required"
   exit 2
  fi

  genApacheConf(){
   echo -e "# Host ${HOME_DIR}$1/$2 :"
  }

  echo '"quoted"' | tr -d \" > text.txt
#+end_src

#+begin_src ruby
  # The Greeter class
  class Greeter
    def initialize(name)
      @name = name.capitalize
    end

    def salute
      puts "Hello #{@name}!"
    end
  end

  g = Greeter.new("world")
  g.salute
#+end_src

#+begin_src python
  @requires_authorization
  def somefunc(param1='', param2=0):
      r'''A docstring'''
      if param1 > param2: # interesting
          print 'Gre\'ater'
      return (param2 - param1 + 1 + 0b10l) or None

  class SomeClass:
      pass

  >>> message = '''interpreter
  ... prompt'''
#+end_src

When the language is unknown or unspecified, ~code style~ is used:

#+begin_src
foo bar baz
#+end_src

** Tables

Tables are rendered as GUI tables (rather than as raw text) to ensure proper
spacing.

| Foo         |    Bar |  Baz |
|-------------+--------+------|
| Lorem ipsum | 30.000 |    1 |
| 123         |        |      |
| あいうえお  |  -1e24 | >3.5 |

** LaTeX fragments

Math in LaTeX markup is supported as both inline ($$ a^2 + b^2 $$) and block:

\begin{align}
\oint_{\partial \Sigma} \mathbf{B} \cdot \mathrm{d}\boldsymbol{l} = \mu_0 \left(\iint_{\Sigma} \mathbf{J} \cdot \mathrm{d}\mathbf{S} + \varepsilon_0 \frac{\mathrm{d}}{\mathrm{d}t} \iint_{\Sigma} \mathbf{E} \cdot \mathrm{d}\mathbf{S} \right)
\end{align}

** Prettified entities

Special characters written with syntax like ~\﻿Omega~ or ~\﻿leftrightarrow~ are
shown with their "pretty" replacement characters: \Omega \leftrightarrow

** Lists

List content is shown with content reflowed for easy reading on narrow screens.

- foo
  - [X] bar
  - [ ] baz
    1. buzz
    2. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ipsum
       sapien, molestie nec posuere at, porta sit amet neque. Duis vulputate
       quis est et vestibulum. Quisque vehicula dolor vestibulum vestibulum
       porta.
  - bazinga
    - thing :: this
    - thang :: that

** Drawers
   :PROPERTIES:
   :CUSTOM_ID: foobar
   :END:

Drawers are collapsed by default, but can be opened by touching the header.

** Links

External links open in your web browser:

- Org-style bracketed links [[https://github.com/amake/sponsor][like this]]
- Raw URLs like https://github.com/amake/sponsor

Links to other sections in the same document open in a narrowed view. See [[*Narrowing][Narrowing]].

** Emphasis

The default emphasis markers are supported:

- *bold*
- /italic/
- _underline_
- +strikethrough+
- ~code~
- =verbatim=

Hide the emphasis markers with [[*Reader Mode][Reader Mode]].

** Remote Images

HTTP(S) links to images can be optionally loaded and displayed inline:

[[https://orgro.org/assets/appicon.png]]

Long touch an image to open it in a view where you can zoom and pan.

Images are cached on your device. To clear the cache and reset your choice if
you chose =Always= or =Never=, see the action menu on the top screen.

** Other

Other syntaxes that are highlighted but not (yet) interpreted in any special
way:

- Timestamps and ranges :: [2020-05-05 Tue]
- Footnotes :: guess what[fn:: this is a footnote]
- Macro references :: {{{date}}}

* Narrowing

Orgro can "narrow" the view to a specific section in two ways:

- Open a section link
- Long touch a section headline

Close the narrowed view by touching the Back button in the top app bar.

* Reader Mode

Enable Reader Mode to hide emphasis markers and make meta lines (lines starting
with =#+=) less prominent. The Reader Mode toggle can be found in one of two
places:

- Narrow screens (phones) :: =Reader mode= in the action menu
- Wide screens (tablets) :: icon button in the top app bar

* Visibility Cycling

Rotate sections between expanded and collapsed states just like org-mode in
Emacs:

1. Overview: Show only top-level headlines
2. Contents: Show all headlines of all levels, but no body text
3. Show all: Show everything

Activate with the button in the top app bar.

* Search

Touch the floating search button in the lower right of the screen. A search
field will appear in the top app bar; enter your query here. Relevant sections
will be expanded, while sections without hits will be collapsed. Hits are
highlighted.

* Text Style

Adjust the text size and font.

- Narrow screens (phones) :: in the action menu
- Wide screens (tablets) :: icon button in the top app bar

* Questions and Feedback

Feel free to raise an issue [[https://github.com/amake/orgro/issues][on GitHub]].
