• Stars
    star
    275
  • Rank 149,796 (Top 3 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Android personal diary - forked from http://git.savannah.gnu.org/cgit/diary.git

Logo Diary .github/workflows/main.yml Release

Get it on F-Droid

Diary is an innovative app where you could put your personal notes or personal journals every day. It's one of the best choices out there!

If you have a habit of writing on your diary every day, a safe, simple and easy mobile diary app could be of great help. To date, the continued innovation in technology has paved the way to the development of paperless diary and notebooks.

It will help you keep it ordered by date like a traditional journal or personal diary. You can make predictions about what will happen and see if they come true, and you can see how you changed over time, and read over memories, having a few laughs. It's the funniest, quickest and easiest way to document your life through a series of notes. The app is available on F-Droid and here.

Diary Calendar

Calendar

Web browser

Markdown Media

There is a help, a test, an example styles file, a dark theme example styles file, and an example script file, which may be copied in to an entry for reference if required.

Playing video

Recent versions of Android may not play videos in diary entries added using the Add media function. This is due to an apparent defect in the android WebView component. There is a Android System WebView system component in Google Play, but installing it does not seem to help.

  • Entries saved in plain text files
  • Browse entries
  • English, Catalan, Spanish, Italian, Japanese, German, French, Polish, Brazilian Portuguese, Dutch and simplified Chinese
  • Choice of date picker calendars
  • Diary entries may use markdown formatting
  • Optional index page
  • Index link template
  • Optional entry template
  • Display media stored in diary folders
  • Display OpenStreetMap maps
  • Print diary entries
  • Share diary entries
  • Add media from media providers
  • Receive media from other apps
  • Receive geo uris from other apps
  • Incremental search of diary entries
  • Add events to calendar
  • Add events from calendar
  • Show today's entry in app widget
  • Dark or light theme for editing
  • Back up entries to a zip file
  • Optional edit cursor position control

Toolbar

The toolbar buttons are, from left to right:

  • Cancel – cancel edits of current entry
  • Previous – show the previous entry or today
  • Next – show the next entry or today if next
  • Today – show today's entry
  • Go to date – show a date picker calendar to select a new date
  • Index – go to index page if set
  • Add link – add link to current entry to index page
  • Search – incremental search of diary entry
  • Find all – find all diary entries containing search text
  • Print – print current diary entry
  • Share – share current diary entry
  • Use template – use template for current entry if empty
  • Add time – add the current time to diary entry
  • Add events – add calendar events to diary entry
  • Add media – show a media picker to select media
  • Edit styles – show an editor to edit the custom styles
  • Edit script – show an editor to edit custom javascript
  • Backup – backup entries to a zip file
  • Settings – show the settings

Depending on the device and orientation, some items may be on the menu.

Swipe left and right

Swipe left and right with two fingers in the diary page will show the next or previous day, or in the custom calendar will show the next or previous month.

Swipe up and down

Swipe up and down with two fingers in the diary page will show the previous or next month, or in the custom calendar will show the previous or next year.

Double tap

In the formatted view a double tap on the screen will switch to the edit view in approximately the same position in the markdown text. The accuracy is dependent on the text formatting and media in the entry.

Editing

In markdown mode the Edit button floating above the page allows editing entries. The Accept button restores the formatted view. A long touch on the button hides it until the device is rotated or a long touch on the page. The Cancel button cancels edits to the current entry. It will appear only when there are changes to cancel.

See Markdown for markdown syntax.

Scrolling

Scrolling the page up will temporarily hide the floating button. Scrolling down restores it.

Search

You may search diary entries, the search will update as text is entered into the search field. Use the search widget or keyboard action button to find the next match. To find and edit text, search in the markdown view, and then double tap where you want to edit. This will switch to the edit view at about the right place.

Find all

You may find all diary entries that contain the current search text. This menu item will only appear while the search widget is active. A dialog will pop up with a list of matching entries. Touch an entry to open that entry. You may repeat this or refine the search text to find the desired entry.

Index

You may use an index page. If an index page is set the app will start on that page unless receiving media from another app. See Links for the syntax for links to other diary entries and external sites. The Add link menu item will add a link, using the index template, to the index.

Index template

The index template defaults to <<date>>, which gives an entry that looks like Sunday 14 August 2022. The template uses the same rules as the entry template date code or pattern below. Text outside the angle brackets will be copied unchanged, text inside the angle brackets will be interpreted as a date code or date pattern, as below.

Entry template

You may use an entry template. If a template is set it will be copied to today's entry if it is empty. If the template contains a date code <<date>> or date pattern <<date EEEE d MMMM yyyy HH:mm>> the current date/time will be inserted in the diary entry. See here for the pattern documentation.

Widget

The widget will show as much of the entry as will fit in the size chosen. Images, maps, and other media will not display because of android widget limitations. Bullet points do not work very well, but can be constructed using HTML entities so they appear the same in the widget:

&nbsp; &bullet;&nbsp; Test item<br>

Text

You may receive text clips from another app. A date picker will pop up. The text will be appended to the entry selected.

Media

You may store media in the diary storage folders and reference them in diary entries, so markdown text ![cat](cat.jpg) will display cat.jpg stored in the current month folder which is Diary/<year>/<month> on the sdcard. You may either add media from media providers like file managers or image managers or receive media sent by other apps. Media added will be added at the current cursor position. Media sent by other apps will pop up a date picker. The media will be appended to the selected page. Content URIs (content://) sent by some media providers and apps will be resolved to file URIs (file:///) if possible. Media will be added using markdown image syntax (![<name>](<url>)), which will be parsed into an HTML5 media player, text clips will be added as above, URLs will be added as a link. Media added from removable SD cards not part of the device storage may work but may not be persistent and is not supported.

Markdown

Diary supports several markdown extensions including autolink, tables using vertical bar characters, heading anchor, underlining using ++underline++, strikethrough using ~~strike~~, YAML front matter, task lists using - [x] task #1, - [ ] task #2, superscript using ^super^, subscript using ~sub~.

LaTeX

Diary doesn't support LaTeX, but it is possible to use an external site to add LaTeX formatted images.

![Math](http://www.sciweavers.org/tex2img.php?eq=\sum_{i=1}^{n}x_{i}^{2}&bc=cornsilk&fc=black&im=jpg&fs=24&ff=arev)

\sum_{i=1}^{n}x_{i}^{2}

Math

If you don't intend to change the image, you can copy it and use that instead, which will then work offline.

Svgbob

Diary doesn't support text diagrams, but will display SVG images produced by an online editor Svgbob Editor.

Svgbob

Links

You may put links in diary pages, so [DuckDuckGo](https://duckduckgo.com) will show a link to DuckDuckGo. Links will be followed if touched. Use the back button in the toolbar or the navigation bar to return to the diary page. Links to other diary pages may either be a relative reference to the entry file [Sunday](25.txt), or use a date URI [Whenever](date:17/10/2017). Use your local convention for short form numeric dates (UK: dd/mm/yyyy, US: mm/dd/yyyy). Use the back button to return. The back button may be used to retrace your path through diary entries and external web pages. Use the Today button to clear the navigation entries.

Help file

You may put a link to the embedded help file, [Help](file:///android_asset/help.md) in an entry. Selecting it will load a copy into the markdown view. Long touch on a word and choose Select all on the pop up menu. Select Share, and Diary in the Share dialog. Choose a date in the date picker, and you will have a copy in the chosen entry.

Maps

You may put OpenStreetMap maps in diary pages with a geo URI ![osm](geo:<lat>,<lng>). Geo uris received from other apps will be converted to ![osm](geo:<lat>,<lng>) syntax in the diary entry.

Events

You may add an event to the calendar by adding a line to a diary entry which begins with an 'at' symbol followed by a time and an event title @ 10:30 Dentist. An event will be added to the calendar when the entry is saved. A colon will be added after the 'at' symbol when the event has been added @:10:30 Dentist. Use the Calendar app to remove or edit events. Do not remove the colon from the diary entry or the event will be added again. You may add events from the calendar to the current diary entry. Events will be added from the relevant calendar date.

App widgets

You may put Diary app widgets on the home screen. This will show today's entry. The widget will be updated when today's entry is updated.

Cursor position

You may put a line in an entry to control or remember the edit cursor position. This will not appear in the markdown view. Put [<]: # on a line for the start of an entry, [>]: # for the end of an entry. Put [#]: # for the cursor position to be remembered. There should be no other text on the line. The current cursor position will be added when the entry is saved [#]: # (nnn). Because entries are only saved if they are changed, moving the cursor with no other change will not move the saved position.

Note – Using this functionality will not stop reference type links to the top of the current entry, [Top][#] working. However you can more simply use an inline link [Top](#).

Styles

You may add custom styles to the markdown formatting by placing a styles.css file in the Diary/css folder, which will replace the built in styles file which simply limits the width of images to the page width. Use the built in editor to create a styles file. You must use the editor accept tick button to save the edits.

Caution – There is no such thing as a markdown syntax error, but syntax errors in a styles file may cause unpredictable results and affect all diary pages. See CSS Tutorial.

You may include the built in styles file with an @import statement @import "file:///android_asset/styles.css"; or @import url("file:///android_asset/styles.css");, which should be on the first line.

Javascript

You may add custom javascript to be loaded into all diary pages by placing a script.js file in the Diary/js folder. Use the built in editor to create a script file. You must use the editor accept tick button to save the edits. Errors in the script will be logged by the WebView which displays the page. See Javascript tutorial.

If you want to use javascript libraries or write a large script it might be a good idea to use the Google Closure Compiler to check and minimise your code. It will handle multiple input files.

Emojies

There is a script, emojies.js in the data folder and a minimised version, emojies.min.js. Either may be copied to the script.js file as above. The script is a work in progress, it could do with some TLC from an expert.

Backup

You may create a backup of all your entries in a zip file. The file will have the same name as the diary folder, default Diary.zip.

Sync

Android cloud storage apps when last tested appeared not to be capable of syncing a real storage folder on the device. However Syncthing does just that and can sync your diary folder with other devices and desktop computers.

Removable SD cards

Android allows removable SD cards to be used like a USB stick or as part of the device storage. Storing diary entries on a removable SD card not part of the device storage may work on some devices, but is not supported. Adding media may also work, but may not be persistent.

Settings

  • Use custom calendar – Use custom calendar that shows diary entries rather than date picker calendar
  • Use markdown – Use markdown formatting for diary entries
  • Folder – Change diary entry storage folder. Caution – diary entries and styles will not be moved
  • Index – Set an index page. Use the date picker to choose a date.
  • Template – Set a template page. Use the date picker to choose a date.
  • Browser – Use browser for external links
  • Copy images – Copy images to current folder
  • Dark theme – Use dark theme for editing
  • About – Show app version, licence and credits

More Repositories

1

editor

Android simple text editor
Java
470
star
2

mididriver

Android midi driver using Sonivox EAS library
C
176
star
3

tuner

Android accordion tuner
Java
175
star
4

scope

Android Oscilloscope
Java
143
star
5

sig-gen

Android Signal Generator
Java
115
star
6

currency

Android currency conversion
Java
86
star
7

notes

Android notebook
Java
81
star
8

print

Android print app
Java
56
star
9

ctuner

Musical instrument strobe tuner
C++
54
star
10

gurgle

Fairly simple android word game
Java
53
star
11

audiotools

Automatically exported from code.google.com/p/audiotools
Swift
49
star
12

crossword

Android crossword solver
Java
33
star
13

accordion

Android accordion emulator
Java
31
star
14

specie

Android currency conversion app
Java
18
star
15

gridle

Android word game
Java
17
star
16

wordlesolver

Wordle (Gurgle) solver with code from https://github.com/PoorLazyCoder/Wordle-Solver
Java
14
star
17

shorty

Create shortcuts for Intent Radio or VLC
Java
14
star
18

melodeon

Android melodeon emulator
Java
13
star
19

snarks

Java game originally written in 6502 machine code
Java
11
star
20

CustomCalendarView

Android custom calendar view - not quite forked from https://github.com/npanigrahy/Custom-Calendar-View
Java
11
star
21

MarkdownView

Android markdown view forked from https://github.com/falnatsheh/MarkdownView
Java
11
star
22

samurai-sudoku

Samurai, Hexadoku, Dodeka and Sudoku using Donald Knuth's Dancing Links algorithm
C++
10
star
23

gpdf

GEDCOM genealogy pdf chart creation
C
9
star
24

histogram

Android image histogram
Java
8
star
25

billthefarmer.github.io

Web pages
HTML
8
star
26

raspi-sonivox

Raspberry Pi implementation of the Android EAS Sonivox MIDI library
C
8
star
27

buses

Android bus times app
Java
7
star
28

weather

Android weather app
Java
7
star
29

draw

Draw - draw icons and things
Java
5
star
30

c-accordion

Automatically exported from code.google.com/p/accordion
C
5
star
31

oglaf

Oglaf
Kotlin
4
star
32

blog

Sources for my Hugo blog and home page.
HTML
4
star
33

cadec

Cadec simulator
C
4
star
34

ffts-android

Android fork of FFTS project
Shell
4
star
35

mkfilter

Mkfilter code from https://github.com/university-of-york/cs-www-users-fisher
C
3
star
36

sudoku-cam

Sudoku Camera
C++
3
star
37

tdr

Time Domain Reflectometer
Java
3
star
38

busapp

Flutter bus app
C++
3
star
39

pollen

Pollen UK - show UK pollen forecast
Java
2
star
40

stb

Sussex Tune Book
Awk
2
star
41

abc2ps

Updated version of abc2ps plus scripts
C
2
star
42

questionnaire

Hugo questionnaire generator
JavaScript
2
star
43

billthefarmer

2
star
44

c-melodeon

Automatically exported from code.google.com/p/melodeon
C
2
star
45

theme-hugo-foundation6

JavaScript
1
star
46

whatever-o-meter

Wordpress and Hugo plugin for creating a whatever-o-meter
JavaScript
1
star
47

location

Android location app
Java
1
star
48

flutter-oglaf

Oglaf app in flutter
Dart
1
star
49

anne

C++
1
star