By: Team CS2103T-T13-4      Since: Sept 2019      Licence: MIT

1. Introduction

Mark is for those who prefer to use a desktop application for managing bookmarks. More importantly, it is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Mark can get your bookmark organisation and note-taking done faster than traditional GUI apps. Interested? Move on to Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

2.1. Installing Mark

Here are a few steps to get you started on Mark:

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest mark.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Mark.

  4. Double-click the file to start the application. The GUI should appear in a few seconds.

    Ui
    Figure 1. GUI for Mark
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

    Here are some example commands that you can try:

    • list : lists all bookmarks

    • folder Tutorials : creates a folder named Tutorials

    • add u/https://git-scm.com/book/en/v2 n/Pro Git f/Tutorials : adds a bookmark named Pro Git to Mark

    • delete 3 : deletes the 3rd bookmark shown in the current bookmark list

    • exit : exits the application

  6. Refer to Section 3, “Features” for details of each command.

2.2. Using Mark

This section offers an overview of Mark’s layout so that you can locate information more easily.

There are three main areas in Mark:

  1. A command box and result display box at the top of the screen

  2. A bookmark list on the left of the screen

  3. A main viewing area that occupies most of the right side of the screen

The command box is the area for you to enter commands. The result of each command will be shown in the result display box, immediately below the command box.

CommandBox
Figure 2. The command box and result display box

The bookmark list shows details about the bookmarks in Mark.

BookmarkList
Figure 3. The bookmark list

The main viewing area shows one of three available tabs at any point in time. Mark has three tabs: Dashboard, Online and Offline.

  • The Dashboard tab contains information about reminders, favorite bookmarks, folders, and autotags in Mark.

    @Dashboard Tab View
    Figure 4. Mark’s Dashboard tab
  • The Online tab contains a web browser, which you can use to search for and view web pages.

    @Online Tab View
    Figure 5. Mark’s Online tab
  • The Offline tab displays the most recently opened offline copy of bookmarked web pages, which you can browse and annotate directly.

    @Offline Tab View
    Figure 6. Mark’s Offline tab

3. Features

This section describes the main features of Mark and how to use them.

The features are grouped into six categories:

  1. General features

  2. Bookmark features

  3. Folder features

  4. Autotag features

  5. Offline copy features

  6. Reminder features

Additionally, the upcoming features section offers a preview of what you can expect in Mark v2.0.

Command Format

This document uses the following notation to describe command formats:

  • Words in UPPER_CASE are the parameters to be supplied by the user.
    E.g. In the command format add u/URL, URL is a parameter which can be used as add u/https://luminus.nus.edu.sg.

  • Items in square brackets are optional.
    E.g u/URL [t/TAG] can be used as u/https://luminus.nus.edu.sg t/NUS or as u/https://luminus.nus.edu.sg.

  • Default values for optional items are specified with an = symbol.
    E.g. When u/URL [t/TAG=CS2103T] is specified in the command format, the default value for the tag is CS2103T if not it is not provided.

  • Items with …​​ after them can be used multiple times, including zero times.
    E.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/module, t/module t/read-later etc.

  • Parameters can be used in any order unless otherwise specified.
    E.g. if the command specifies u/URL n/NAME, n/NAME u/URL is also acceptable.


3.1. General

The following commands carry out general operations in Mark.

3.1.1. Viewing help: help

Displays a link that you can copy to this page.

Format: help

3.1.2. Switching tabs: tab

You can switch the current app view to a another tab with this command.

Just provide an index as specified below. For your convenience, you can also use keywords dash, on or off instead of an index.

Format: tab INDEX or tab KEYWORD

For example:

  • You want to go to the dashboard. So you type tab 1 and press Enter.

    TabUI1
  • You see the dashboard tab instead of the previously showing online tab.

    TabUi2

Parameter constraints:

  • INDEX is 1, 2 or 3, which correspond to the Dashboard, Online, and Offline tabs respectively.

  • KEYWORD is dash, on or off, which correspond to the Dashboard, Online, and Offline tabs respectively.

Other examples:

  • tab on
    Goes to the Online tab which is a web view.

  • tab 3
    Goes to the Offline tab which shows the offline copy of bookmarks.

3.1.3. Undoing previous commands: undo

If you mistakenly enter a command that permanently changes Mark, do not worry, you can always use undo to rectify the mistake! This command restores Mark to the state before the given number of previous undoable commands were executed.

Format: undo [STEP=1]

For example:

  • When you accidentally delete a wrong bookmark and you want to bring it back. There is no need for you to manually add that bookmark back as undo will do the magic for you. Just input undo in the command box, the deleted bookmark will reappear in your bookmark list.

  • Suppose you have entered two delete commands, delete 1 and delete 2, and now you want to get back both bookmarks, a possible way is enter undo twice. Besides, Mark also offers an alternative where you can just type undo 2 to undo these two commands.

Parameter constraints:

  • STEP must be a positive integer 1, 2, 3, …​

  • Undoable commands include commands that modify the bookmark list, folders, reminders or annotations, which includes add, edit, delete, clear, reminder, folder, annotate, etc).

3.1.4. Redoing previously undone commands: redo

This command reverses the given number of undone actions.

Format: redo [STEP=1]

Examples:

  • redo
    Reverses the most recent undo command.

  • delete 1
    delete 2
    undo 2
    redo 2
    The redo 2 command restores the bookmark list to the state before the undo 2 command was executed. You will see the two bookmarks you just recovered get deleted again.

Parameter constraints:

  • STEP must be a positive integer 1, 2, 3, …​

3.1.5. Exporting bookmarks: export

This command exports Mark data to a specified file on the hard disk. The saved file is identical in format to the data file mark.json and can be used to save back-up copies of Mark data.

Note that Mark data are automatically saved in the hard disk after any command that changes the data, so if you do not need outdated Mark data, there is no need to save manually.

Format: export [FILENAME]

For example:

  • If you want a quick way to save your current bookmarks before modifying them, you can input export myBookmarks into the command box.

    ExportCommandUi1
  • Mark displays a confirmation message, and you can verify that your Mark data has been exported to the folder /data/bookmarks/myBookmarks.json.

    ExportCommandUi2

Parameter constraints:

  • FILENAME should not include the file extension. E.g. myBookmarks and not myBookmarks.json

  • FILENAME should consist of only alphanumeric characters, hyphens, and/or underscores.

  • The data file is saved at [applicationHome]/data/bookmarks/FILENAME.json. If the given file already exists, it is overwritten.

Another example:

  • export CS2103TStuff
    Exports all bookmark manager data to a file named mark/data/bookmarks/CS2103TStuff.json (assuming mark.jar is located in the folder mark). The content of CS2103TStuff.json is identical to the current content of mark.json.

3.1.6. Importing bookmarks: import

If you need a way to re-add bookmarks to Mark after deleting them and closing the application, the import command will help you along. This command imports bookmarks from JSON files like those produced by export.

A bookmark is, by default, imported into a folder with the same name as its original folder (even if the folder structure is different). If no such folder is found, the bookmark will be imported into the folder ImportedBookmarks.

Bookmarks with the same name or URL as existing bookmarks are not imported.

Format: import FILENAME

For example:

  • Let’s say you originally have many CS2103T bookmarks that you exported to a file named CS2103TStuff.

    ImportCommandUi0
  • If you accidentally delete all of the bookmarks and exit from Mark before realising that you still need them for finals, you can input import CS2103TStuff to add them back.

    ImportCommandUi1
  • You can then rest assured that all of your bookmarks are back in their respective folders, ready for your use.

    ImportCommandUi2

Parameter constraints:

  • FILENAME is case sensitive and should not include the file extension. E.g. myBookmarks and not myBookmarks.json

  • FILENAME should consist of only alphanumeric characters, hyphens, and/or underscores.

  • FILENAME.json should be a file stored in the folder [applicationHome]/data/bookmarks/.

  • The file corresponding to FILENAME should have a valid format, identical to the JSON files produced by export.

3.1.7. Clearing all data: clear

You can start your life anew with Mark! With this command, all bookmarks, folders, autotags, and reminders will be cleared.

Format: clear

For example:

  • You decide that Mark is too cluttered, and so out of frustration you type clear into the command box and smash Enter.

    ClearCommandUi1
  • Mark is now empty!

    ClearCommandUi2

3.1.8. Exiting the program: exit

Exits the program.

Format: exit


3.2. Bookmarks

The following commands operate on bookmarks in Mark. Apart from the list and find command, all other bookmark-related commands operate on bookmarks using the bookmark index that is currently shown in the bookmark list.

3.2.1. Showing all bookmarks: list

Shows a list of all bookmarks in the bookmark manager.

Format: list

3.2.2. Locating bookmarks by name, URL, tag or folder: find

With this command, you can find bookmarks that contain any of the given keywords in their name or URL, or that are tagged with the given tag(s) or stored under the given folder(s).

Format: find [KEYWORD]…​ [t/TAG]…​ [f/FOLDER]…​

For example:

  • You decide to search for a bookmark with Website or Video in its name or url, or with the tag Fun. You type find Website Video t/Fun and press Enter.

    FindCommandUi1
  • Opps! You realise you have no life. You only have CS2103T-related bookmarks and no fun bookmarks.

    FindCommandUi2

Parameter constraints:

  • At least one keyword, tag or folder must be provided.

  • The list of keywords to be searched must be before tags and folders.

  • Search for keywords, tags and folders is case insensitive. e.g video will match Video.

  • The order of the keywords does not matter. e.g. Website Video will match Video Website.

  • Keywords are only searched in the URL and name.

  • For keywords, words will be partially matched e.g. Video will match Videos.

  • For tags and folders, words will be fully matched.

  • Bookmarks matching at least one search criterion will be returned (i.e. OR search).

Other examples:

  • find Website Video t/Fun
    Returns all the bookmarks with CS2103T or Video in its name or URL, and all bookmarks tagged with Fun.

  • find CS2103T CS2101 CS2105
    Returns any bookmark with CS2103T, CS2101, or CS2105 in its name or in its URL.

  • find GitHub t/School f/CS2103T
    Returns any bookmark with the tag School or folder CS2103T or that contains github in either name or URL.

3.2.3. Opening a bookmark: goto

This command opens the specified the bookmark from the bookmark manager.

Format: goto INDEX

For example:

  • list
    goto 1
    Opens the first bookmark in the bookmark manager.

Parameter constraints:

  • Opens the bookmark at the specified INDEX.

  • The index refers to the index number shown in the displayed bookmark list.

  • The index must be a positive integer 1, 2, 3, …​

3.2.4. Adding a bookmark: add

If you’re browsing the web and want to bookmark a website, you can do so using the add command. You can also use add to bookmark web pages using their URLs.

Format: add u/URL n/NAME [r/REMARK=-] [f/FOLDER=ROOT] [t/TAG]…​​

For example:

  • While surfing the Internet in Mark, input add u/this n/Homepage into the command box.

    AddCommandUi1
  • You can then check that a bookmark of the current page has been added and is visible in the bookmark list. The new bookmark has the name Homepage. Since the folder and remark are not specified, it is added to the root folder and has the default remark "-".

    AddCommandUi2

Parameter constraints:

  • Any number of tags can be added using t/ (including 0).

  • FOLDER must be an existing folder (see Section 3.3.3, “Adding a folder: folder).

  • The keyword this can be used in place of a URL to bookmark the current page, e.g. add u/this n/Homepage

Other examples:

  • add u/https://nus-cs2103-ay1920s1.github.io/website/ n/Module Website f/CS2103T r/Contains textbook & important deadlines

    AddCommandExample1

    Bookmarks the given website, names it Module Website, and adds it to the folder CS2103T. The new bookmark’s remark is Contains textbook & important deadlines, as seen above.

  • add u/https://www.youtube.com/watch?v=9AMcN-wkspU n/IntelliJ Tips and Tricks t/video t/watchLater

    AddCommandExample2

    Bookmarks the given website, names it IntelliJ Tips and Tricks. The new bookmark’s tags include video and watchLater.

3.2.5. Editing a bookmark: edit

IVLE changed to LumiNUS? No worries! With the edit command you can easily fix your incorrect bookmarks.

Format: edit INDEX [u/URL] [n/NAME] [r/REMARK] [f/FOLDER] [t/TAG]…​

For example:

  • Your school learning management system has changed hands, so you enter the command edit 2 n/LumiNUS u/https://luminus.nus.edu.sg and press Enter.

    EditCommandUi1
  • Yay! Now all that’s left to do is to appreciate the new cutting-edge technology…​

    EditCommandUi2

Parameter constraints:

  • The bookmark at the specified INDEX will be edited. The index refers to the index number shown in the displayed bookmark list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the bookmark will be removed i.e adding of tags is not cumulative.

  • You can remove all the bookmark’s tags by typing t/ without specifying any tags after it.

Other examples:

  • edit 1 n/CS2103T Website f/AY1920S1
    Edits the name and folder of the 1st bookmark to be CS2103T Website and AY1920S1 respectively.

  • edit 2 t/
    Clears all existing tags from the 2nd bookmark.

3.2.6. Deleting a bookmark: delete

Mark values your right to data privacy. Unlike competing software from major industry leaders, you can actually delete bookmarks you don’t want anymore.

Format: delete INDEX

For example:

  • You receive the heartbreaking news that Club Penguin is now closed forever. Painfully, you type delete 1 (of course you only have 1 bookmark, Club Penguin is your life) and press Enter.

    DeleteCommandUi1
  • What else do you have to live for?

    DeleteCommandUi2

Parameter constraints:

  • Deletes the bookmark at the specified INDEX.

  • The index refers to the index number shown in the displayed bookmark list.

  • The index must be a positive integer 1, 2, 3, …​

Other examples:

  • list
    delete 2
    Deletes the 2nd bookmark in the bookmark manager.

  • find luminus
    delete 1
    Deletes the 1st bookmark in the results of the find command.

3.2.7. Adding a bookmark to Favorites: favorite|fav

This command adds a Favorite tag to the specified bookmark.

Format: favorite|fav INDEX

For example:

  • If you want to add the first bookmark in the bookmark list to your favorite bookmarks, simply input favorite 1, a Favorite tag will be added to the fist bookmark and the bookmark will also appear in the favorite bookmark list in the dashboard.

FavoriteCommandUI1
  • Alternatively, you can also type a shorter command fav 1 to add the first bookmark to your favorite bookmarks as well.

Parameter constraints:

  • fav is an alias for favorite

  • Removing the Favorite tag is the same as removing a normal tag from a bookmark (see Section 3.2.5, “Editing a bookmark: edit)

  • The index refers to the index number shown in the displayed bookmark list.

  • The index must be a positive integer 1, 2, 3, …​


3.3. Folders

The following commands carry out operations on folders in Mark. The results of these operations can be viewed in the folder hierarchy of dashboard tab.

FolderHierarchy
Figure 7. Folder hierarchy as seen in the dashboard tab
The bookmarks that are displayed in the folder hierarchy correspond to the bookmarks in the bookmarks list on the left.

For example, if you have have just performed a find command and the bookmark list shrinks from 100 entries to just 10, the folder hierarchy will also shrink from showing 100 bookmarks to 10.
You can use the list command to see all your bookmarks in the folder hierarchy.

3.3.1. Expanding the folder hierarchy: expand

If you want to expand all unexpanded folders, use this command.

Format: expand [LEVEL=1]

For example:

  • You want to expand all unexpanded folders by one level with just one command. Type expand in the command box and hit Enter.

    ExpandCommandUi1
  • You see all folders expanded by one level.

    ExpandCommandUi2

Parameter constraints:

  • LEVEL should be a positive integer.

  • If LEVEL is higher than the maximum possible level of folders to expand, it will simply expand all of them.

  • If LEVEL is not specified, expand by 1 level.

Other examples:

  • expand 3
    Expands the folder hierarchy by 3 levels.

3.3.2. Collapsing the folder hierarchy: collapse

If you have too many expanded folders and want to collapse them, use this command.

Format: collapse [LEVEL=1]

For example:

  • You want to collapse the deepest expanded folders by one level with just one command. Type collapse in the command box and hit Enter.

    CollapseCommandUi1
  • You see the deepest expanded folders collapsed by one level.

    CollapseCommandUi2

Parameter constraints:

  • LEVEL should be a positive integer.

  • If LEVEL is higher than the maximum possible level of folders to collapse, it will simply collapse all of them.

  • If LEVEL is not specified, collapse by 1 level.

Other xamples:

  • collapse 9999
    Collapses the folder hierarchy by 9999 levels, most likely collapsing them all the way.

3.3.3. Adding a folder: folder

When your bookmark list is getting too long, you may want to use this command to create new folders to organize bookmarks into.

Format: folder FOLDER_NAME [p/PARENT_FOLDER=ROOT]

For example:

  • You notice you have 20 bookmarks all related to CS2103T. You decide to create a folder for them, so you enter the command folder CS2103T and hit Enter.

    AddFolderCommandUi1
  • You see a new empty folder CS2103T appear in the dashboard.

    AddFolderCommandUi2

Parameter constraints:

  • ROOT is the topmost folder already created by Mark, and all folders will be descendants of this folder.

  • FOLDER_NAME must NOT be an existing folder. (Note that it can’t be ROOT also, since it already exists.)

  • FOLDER_NAME must start with an alphanumeric character, and can only contain alphanumeric characters and spaces.

  • PARENT_FOLDER must be an existing folder.

  • If PARENT_FOLDER is not specified, PARENT_FOLDER will default to ROOT.

Other examples:

  • folder CS2103 p/NUS
    Creates a new folder named CS2103 under the parent folder NUS.

3.3.4. Editing a folder: folder-edit

If your favorite band recently changed its name, you may want to edit your folder for it to reflect its new name. You can do so with this command.

Format: folder-edit FROM_FOLDER​_NAME t/TO_FOLDER_NAME

For example:

  • You recently broke up, and want to edit the folder Dear containing all your previous memories to Ex. So you enter the command folder-edit Dear t/Ex and hit Enter.

    EditFolderCommandUi1
  • You see folder Dear renamed to Ex. All your bookmarks previously in the folder Dear have also been edited to now be in the folder Ex.

    EditFolderCommandUi2

Parameter constraints:

  • FROM_FOLDER_NAME and TO_FOLDER_NAME must start with an alphanumeric character, and can only contain alphanumeric characters and spaces.

  • FROM_FOLDER_NAME must exist be an existing folder. (Note that you cannot edit the ROOT folder.)

  • TO_FOLDER_NAME must NOT be an existing folder. (Note that it can’t be ROOT also, since it already exists.)

3.3.5. Deleting a folder: folder-delete

If you have an unused folder you wish to delete, this is the command you should use.

Format: folder-delete FOLDER​_NAME

For example:

  • You see an unused folder CS2101 in the Dashboard, and input folder-delete CS2101 into the command box.

    DeleteFolderCommandUi1
  • You no longer see folder CS2101 appear in the folders section of the Dashboard.

    DeleteFolderCommandUi2

Parameter constraints:

  • FOLDER_NAME must start with an alphanumeric character, and can only contain alphanumeric characters and spaces.

  • FOLDER_NAME must be an existing folder.

  • FOLDER_NAME must not contain other bookmarks/subfolders (or else they would be lost).

  • FOLDER_NAME must not be ROOT, as it is the ancestor of all folders.


3.4. Autotags

Autotags are tags that will be automatically applied to bookmarks that match their autotag conditions. You can view the details of existing autotags in the autotag panel at the bottom-right of the Dashboard tab, as seen below.

AutotagPanel
Figure 8. The autotag panel on the Dashboard tab

3.4.1. Creating an automatic tag: autotag

If you want to tag a group of similar bookmarks without manually editing each one, you can use the autotag command to create an autotag to do it for you. You will need to define conditions that describe the key characteristics of the bookmarks to be tagged.

Conditions fall into two categories: normal conditions, which are characteristics that bookmarks to be tagged should match, and not-conditions, which are conditions that bookmarks should not match.

You can specify conditions relating to the name, URL, and/or folder (also known as attributes) of a bookmark. It is also possible not to specify any condition for an attribute if the attribute is not relevant. However, an autotag must have at least one condition specified; otherwise, it would automatically tag all your bookmarks!

Format: autotag TAG_NAME [n/NAME_KEYWORD]…​ [u/URL_KEYWORD]…​ [f/FOLDER]…​ [nn/NOT_NAME_KEYWORD]…​ [nu/NOT_URL_KEYWORD]…​ [nf/NOT_FOLDER]…​

For example:

  • To add a new autotag, input autotag NUS n/NUS n/School n/Uni into the command box.

    AutotagCommandUi1
  • You can then check that an autotag named NUS with three name conditions (NUS, School, and Uni) has been added to the autotag panel of the Dashboard. Also, notice that bookmarks with names that contain NUS, School or Uni now have the tag NUS.

    AutotagCommandUi2

There are several restrictions on the usage of command parameters:

  • At least one condition (n/, nn/, u/, nu/, f/, or nf/) must be specified.

  • TAG_NAME should be a valid tag name that is not the name of an existing autotag. However, TAG_NAME can still be used as a normal tag. E.g. if an autotag YouTube matches bookmarks with URLs containing youtube.com, other bookmarks can still be tagged with the tag YouTube.

  • NAME_KEYWORD and URL_KEYWORD are used to match bookmarks in a similar way as the keywords in find. The only difference is that a single keyword parameter can contain multiple words. E.g. n/Module W will match names CS2103T Module Website and module work to do but not Future modules.

  • FOLDER should be the exact name of a folder (case insensitive). E.g. wiki will match Wiki but not Wikipedia.

  • NOT_NAME_KEYWORD, NOT_URL_KEYWORD, and NOT_FOLDER are name keywords, URL keywords, or folder names that bookmarks to be tagged should not match.

If an autotag’s conditions contradict each other, no bookmarks will be tagged. E.g. an autotag with conditions u/github.com/mark nu/github.com/ will do nothing as no bookmark can have a URL containing github.com/mark and not github.com.

If multiple conditions are specified, bookmarks that meet the following requirements will be matched:

  • Matches at least one condition within the same attribute type for normal conditions (n/, u/, and f/) (i.e. OR search). E.g. n/wiki n/comput will match names WikiHow and Computer Science.

  • Matches all conditions within the same condition type for not-conditions (nn/, nu/, and nf/) (i.e. AND search). E.g. nf/Work nf/School will match bookmarks that are not in the folder Work and not in the folder School.

  • Matches all conditions across different condition types are matched. E.g. n/web n/mod f/NUS will match bookmarks with [names that match web and/or mod] AND [are in the folder NUS].

Other examples:

  • autotag LumiNUS u/luminus.nus.edu.sg nf/Miscellaneous

    AutotagCommandExample1

    Creates an autotag named LumiNUS which tags all bookmarks with URLs containing luminus.nus.edu.sg that are not in the folder Miscellaneous.

  • autotag Quiz f/NUS f/Module nu/github nu/stackoverflow

    AutotagCommandExample2

    Creates an autotag named Quiz which tags all bookmarks that are either in the folder NUS or in the folder Module, and that do not contain the keywords github or stackoverflow in their URLs.

3.4.2. Editing an automatic tag: autotag-edit

If you want to modify an autotag, you can use the autotag-edit command to edit the autotag’s name and/or conditions.

This is essentially a shortcut for autotag-delete followed by autotag-add.

Format: autotag-edit TAG_NAME [t/NEW_TAG_NAME] [n/NAME_KEYWORD]…​ [u/URL_KEYWORD]…​ [f/FOLDER]…​ [nn/NOT_NAME_KEYWORD]…​ [nu/NOT_URL_KEYWORD]…​ [nf/NOT_FOLDER]…​

For example:

  • To modify an autotag named NUS, type autotag-edit NUS t/University f/School f/General f/Modules f/CS2103T

    AutotagEditCommandUi1
  • You can then observe that the autotag NUS has been renamed University, and its folder conditions now include the folder CS2103T.

    AutotagEditCommandUi2

The parameter constraints are similar to the autotag command’s, with the following differences:

  • There should only be one NEW_TAG_NAME.

  • At least one parameter in total should be specified. In other words, if t/NEW_TAG_NAME is present, there is no need to specify any conditions.

Other examples:

  • autotag-edit Quiz u/luminus.nus.edu.sg u/quiz nu/attempt

    AutotagEditCommandExample1

    Modifies the autotag Quiz such that it tags bookmarks with URLs that contain either of the keywords luminus.nus.edu.sg or quiz, but do not contain the keyword attempt.

  • autotag-edit Quiz t/Quizzes

    AutotagEditCommandExample2

    Modifies the name of the autotag Quiz such that it now tags bookmarks with the tag Quizzes instead of Quiz.

3.4.3. Deleting an automatic tag: autotag-delete

If you no longer need an autotag, you can delete it from Mark using the autotag-delete command. None of your existing tags will be affected.

Format: autotag-delete TAG_NAME

For example:

  • To delete the autotag NUS, input autotag-delete NUS into the command box.

    AutotagDeleteCommandUi1
  • You can then check that the autotag named NUS has been deleted from the autotag panel of the Dashboard. In addition, no bookmarks have been modified.

    AutotagDeleteCommandUi2

Parameter constraints:

  • TAG_NAME should be the name of an existing autotag.

Another example:

  • autotag-delete Quiz
    Deletes the autotag that would have tagged bookmarks that match its conditions with the tag Quiz. New and edited bookmarks will no longer be automatically tagged Quiz.


3.5. Offline Copies

The following commands carry out operations relating to offline copies of bookmarked web pages.

3.5.1. Saving an offline copy: cache

Saves the bookmarked website locally for offline viewing.

Format: cache INDEX

Parameter constraints:

  • INDEX is the bookmark that you want to save an offline copy of. If there is a previous version, it will be overwritten.

Examples:

  • cache 1
    Saves an offline copy of the first bookmark.

3.5.2. Deleting an offline copy: cache-delete

Deletes an offline copy of a bookmark.

Format: cache-delete INDEX

Parameter constraints:

  • INDEX is the bookmark that you want to delete the offline copy of. It must have an offline copy to delete.

Examples:

  • cache-delete 2
    Deletes the offline copy of the second bookmark.

3.5.3. Viewing an offline copy: offline

If you want to view the offline copy of a bookmark, you can do so using the offline command. Your view will be switched to the offline tab where the offline copy is shown.

Format: offline INDEX

Parameter constraints:

  • INDEX is the bookmark that you want to view notes of

Examples:

  • offline 1
    Shows annotated offline copy of bookmark 1.

3.5.4. Making annotations on an offline copy: annotate

If you want to add a new annotation on the offline copy of a bookmark, you can do so using the annotate command. With this command, you can highlight a paragraph on the offline document and optionally attach a supplementary note to said paragraph. You can add notes to explain the highlight or as content-relevant notes to refer to in future.

If you are looking to add a general note not pertaining to any specific paragraph, you can also use this command to add it to the bottom of the page, hereby known as the General notes section.

Upon annotating, the your view will be switched to the offline tab showing the results of your command.

A general note is not attached to any paragraph of the original web page. Instead, when adding general notes, they are attached to invisible at the bottom of the document. General notes are found at the bottom of the page, referred to as the General notes section.

You can choose to use this command to overwrite any existing note. However, note that when you highlight the paragraph of a general note, Mark remembers the hidden highlight colour, but no highlight is reflected on the application.

Paragraphs are identified using a numbered identifier that starts with either P or G. You can refer to the numbered identifier in the leftmost column of the offline document to check out the respective identifier for each paragraph. Paragraphs of general notes have identifiers that begin with G, while paragraphs from the original web page have identifiers that begin with P.

Format: annotate INDEX p/PARA_NUM [n/NOTES] [h/HIGHLIGHT_COLOUR=yellow]

For example:

  • Input annotate 24 p/p1 n/summary of paragraph h/orange into the command box.

100
  • Observe that paragraph P1 is now highlighted orange and a note with content “summary of paragraph” is attached to it.

300

Parameter constraints:

  • INDEX is the bookmark that you want to annotate offline version of. If INDEX is invalid, a warning message will be displayed.

  • PARA_NUM is the numbered identifier of the paragraph to be marked. PARA_NUM must be NULL or it must begin with P or G (e.g. P3). PARA_NUM is case-insensitive. If PARA_NUM is invalid, a warning message will be displayed.

  • NOTES is the content of notes to add.

  • HIGHLIGHT_COLOUR is either orange, pink, green or yellow. This selects the highlight colour to mark out paragraphs. If no colour is specified, the colour is set to yellow by default. If the colour provided is invalid, a warning message will be displayed.

Other examples:

  • annotate 1 p/p2
    This highlights paragraph P2 yellow in the offline copy of bookmark 1.

  • annotate 1 p/p2 h/pink
    This overwrites any existing highlight of paragraph P2 with pink in the offline copy of bookmark 1. Any notes attached remain attached.

  • annotate 1 p/p2 n/change or add note content
    This overwrites any note attached to paragraph P2 to a note with content “change or add note content” in the offline copy of bookmark 1. Highlight colour remains the same. Otherwise, paragraph P2 will be highlighted yellow and a new note with content "change or add note content" will be added to the paragraph.

  • annotate 1 p/null n/adding a general note
    This adds a note with content "adding a general note" to the General notes section in the offline copy of bookmark 1.

3.5.5. Modifying annotations on an offline copy: annotate-edit

If you want to modify existing annotations on the offline copy of a bookmark, you can do so using the annotate-edit command. You can choose to overwrite the existing note of a particular paragraph with another note, change the highlight or choose to move notes from a paragraph to another paragraph. You can also use this command to move a general note to the main text by specifying which original paragraph to move it to.

While both annotate-edit and annotate can be used to change current annotation highlight and notes, annotate-edit allows you to shift your annotations from one paragraph to another in a single step.

Moving of notes to the General notes section is not supported. If you really want to shift them, use annotate-delete with n/true as the only optional flag you include.

Upon editing an annotation, your view will be switched to the offline tab showing the results of your command.

Format: annotate-edit INDEX p/PARA_NUM [to/NEW_PARA_NUM] [n/NOTES] [h/HIGHLIGHT_COLOUR]

For example:

  • Input annotate-edit 24 p/g1 to/p1 h/green into the command box.

200
  • Observe that the general note removed from the bottom and attached to pararaph P1. At the same time, paragraph P1 is highlighted green.

400

Parameter constraints:

  • INDEX is the bookmark that you want to annotate offline version of. If INDEX is invalid, a warning message will be displayed.

  • PARA_NUM is the numbered identifier of the paragraph which you want to edit annotation of. PARA_NUM is case-insensitive. If PARA_NUM is invalid or the corresponding paragraph does not have existing annotations, a warning message will be displayed.

  • NEW_PARA_NUM is the numbered identifier of the paragraph to move the annotation to. NEW_PARA_NUM is also case-insensitive. If NEW_PARA_NUM is the same as PARA_NUM or is invalid, a warning message will be displayed.

  • NOTES is the content of notes to change to. Whenever notes is given, it replaces any pre-existing note to paragraph PARA_NUM, if applicable.

  • HIGHLIGHT_COLOUR is either orange, pink, green or yellow. This selects the highlight colour to mark out paragraphs. When no colour is specified, the higlihgt of the source paragraph is used. If colour provided is invalid, a warning message will be displayed.

Other examples:

  • annotate-edit 1 p/p2 to/p3
    This moves both the highlight and notes from paragraph P2 to paragraph P3 in the offline copy of bookmark 1. The highlight of paragraph P2 is removed.

  • annotate-edit 1 p/p2 to/p3 h/orange
    This moves the note from paragraph P2 to paragraph P3 in the offline copy of bookmark 1. The highlight of paragraph P2 is removed and paragraph P3 is highlighted with orange.

  • annotate-edit 1 p/p1 n/new notes
    This replaces the content of the note for paragraph P1 with "new notes" in the offline copy of bookmark 1.

  • annotate-edit 1 p/p1 h/yellow
    This changes the highlight colour to yellow for paragraph P1 in the offline copy of bookmark 1.

  • annotate-edit 1 p/g2 to/p1
    This moves the general note G2 to paragraph P1 in the offline copy of bookmark 1.

  • annotate-edit 1 p/p2 to/p3 n/changing and moving notes
    This annotates paragraph P3 with the highlight of paragraph 2 and a note with content "changing and moving notes". The annotation on paragraph P2 is removed.

3.5.6. Deleting annotations on an offline copy: annotate-delete

If you want to delete highlights or notes from the offline copy of a bookmark, you can do so using the annotate-delete command. You can choose to remove just the notes and/or highlight of a paragraph, or clear all annotations on the offline copy to revert it to a clean slate. You can also choose to remove a note from the General notes section.

If the given paragraph does not have any annotations to remove, nothing is performed. Also, you cannot choose to remove only the highlight from the paragraph of a general note since it does not display a highlight in the first place.

Upon deleting an annotation, your view will be switched to the offline tab showing the results of your command.

Format: annotate-delete INDEX p/PARA_NUM [n/KEEP_NOTES=false] [h/KEEP_HIGHLIGHT=false]

For example:

  • Input annotate-delete 24 p/p1 n/true into the command box.

200
  • Observe that the highlight of paragraph P1 if removed and the note is moved to the General notes section.

200

Parameter constraints:

  • INDEX is the bookmark that you want to remove annotations of. If INDEX is invalid, a warning message will be displayed.

  • PARA_NUM is the numbered identifier of the paragraph to remove annotation(s) from. PARA_NUM must be either all or begin with P or S. If you entered all for this parameter, all annotations will be cleared regardless of other options, reverting the offline document to a clean slate. If you specified a phantom paragraph instead, the phantom paragraph will be deleted if n/KEEP_NOTES parameter is set to false. If PARA_NUM is invalid or there is no annotation to delete, a warning message will be displayed.

  • KEEP_NOTES is boolean (either true or false). If true, the notes of the paragraph will not be deleted. Otherwise, the notes will be removed. KEEP_NOTES is false by default. If KEEP_NOTES is invalid, a warning message will be displayed.

  • KEEP_HIGHLIGHT is boolean (either true or false). If true, the highlight of the paragraph will not be deleted. Otherwise, the highlight will be removed. KEEP_HIGHLIGHT is false by default. If KEEP_HIGHLIGHT` is invalid, a warning message will be displayed.

Other examples:

  • annotate-delete 1 p/p2
    This removes both the note and highlight from paragraph P2 in the offline copy of bookmark 1.

  • annotate-delete 1 p/p2 h/true
    This removes the note of paragraph P2 in the offline copy of bookmark 1, leaving the highlight untouched.

  • annotate-delete 2 p/g1
    This deletes the general note G1 in the offline copy of bookmark 2.

  • annotate-delete 1 p/all
    This removes all annotations of the offline copy of bookmark 1.


3.6. Reminders

The following commands carry out operations on reminders in Mark. You can find reminders on the Dashboard tab.

3.6.1. Adding a reminder: reminder

This command adds a reminder to a specified bookmark. The reminder will inform you at the time you indicate.

You can have at most one reminder for one bookmark.

The reminder cannot set the reminding time in the past.

Each reminder will reminds you with popup notification twice:

The first notification will show when the reminding time is within five hours, the second time is on the reminding spot.

The expired reminder will be auto delete after one hour.

Format: reminder INDEX t/TIME_DATE [n/NOTE=Open]

For example:

You are using Mark, and you want to remind yourself to do the quiz on Luminus bookmark tomorrow night, which is 18/11/2019 8p.m. Now you can use the reminder command to add a reminder to Luminus.

To add a reminder:

  • The index of Luminus on reminder list is 2. You type the command reminder 2 t/18/11/2019 2000 n/Do the quiz into the command box and press Enter to execute it.

400
  • The result box will show the message:
    "New reminder added: Do the quiz Time: 18/11/2019 2000 URL:https://luminus.nus.edu.sg/".
    And the reminder is added to the reminder list.

400

There are some parameter constraints:

  • INDEX is the index of the bookmark that you want to add with a reminder.

  • TIME_DATE follows dd/MM/uuuu HHmm format. It should be a valid time.

  • NOTE is the description of the reminder, the default value is Open.

Other examples:

  • reminder 1 t/02/07/2019 2359
    This command line adds a reminder for bookmark 1, and sets the time of the reminder as 23:59 of 02/07/2019. It reminds you to open the bookmark.

  • reminder 1 t/02/07/2019 2359 n/Read announcements
    This command line adds a reminder for bookmark 1, and sets the time of the reminder as 23:59 of 02/07/2019. The reminder reminds you to read announcements.

3.6.2. Editing a reminder: reminder-edit

This command edits the reminder in the list at the specified index. You can edit either the time or the note of the reminder.

Format: reminder-edit INDEX [t/TIME_DATE] [n/NOTE]

For example:

You have another assignment on Luminus that need to be done tomorrow morning, which is 10/11/2019 7 a.m. You want to change the note for reminder to remind you do the assignment. Now you can use the reminder-edit command to edit the reminder for Luminus.

To edit a reminder:

  • The index of the reminder in the reminder list is 1. You type the command reminder-edit 1 n/Do the quiz and the assignment into the command box and press Enter to execute it.

400
  • The result box will show the message:
    "Edited Reminder: Do the quiz and the assignment Time: 18/11/2019 2000 URL:https://luminus.nus.edu.sg/".
    The reminder is edited in the reminder list.

400

There are some parameter constraints:

  • INDEX is the index of the reminder you want to edit on the dashboard.

  • TIME_DATE is the time you want to edit. The time follows dd/MM/uuuu HHmm format. It should be a valid time.

  • NOTE is the description of the reminder that you want to edit.

Other examples:

  • reminder-edit 1 t/02/07/2019 2359
    This command edits the reminder of index 1. Reset the time of the reminder to 23:59 of 02/07/2019.

  • reminder-edit 1 t/02/07/2019 2359 n/Check daily news
    This command edits the reminder of index 1. Reset the time of the reminder to 23:59 of 02/07/2019. Reset the note to Check daily news.

3.6.3. Deleting a reminder: reminder-delete

This command deletes the the reminder in the reminder list at the specified index.

Format: reminder-delete INDEX

  • INDEX is the index of the reminder you want to delete on the dashboard.

For example:

You finished your task on Luminus early, and you do not need the reminder for Luminus anymore. Now you can use the reminder-delete command to delete the reminder for Luminus.

To delete a reminder:

  • The index of the reminder in the reminder list is 1. You type the command reminder-delete 1 into the command box and press Enter to execute it.

400
  • The result box will show the message:
    "Deleted Reminder: Do the quiz and the assignment Time: 18/11/2019 2000 URL:https://luminus.nus.edu.sg/"
    The reminder is deleted in the reminder list.

400

Other examples:

  • reminder-delete 2
    This command deletes the reminder of index 2.

3.6.4. Opening a bookmark from a reminder: reminder-goto

Opens the related bookmark of the specified reminder from the bookmark manager.

Format: reminder-goto INDEX

  • INDEX is the index of the reminder as viewed on the dashboard.

  • INDEX must be a positive integer 1, 2, 3, …​

For example:

You want to check your course curriculum , which is a task on reminder list. Now you can use the reminder-goto command to open the website.

To open the bookmark of a reminder:

  • The index of the reminder in the reminder list is 2. You type the command reminder-goto 2 into the command box and press Enter to execute it.

400
  • The result box will show the message:
    "Opening Reminder: Open Time: 07/12/2019 1000 URL:https://www.comp.nus.edu.sg/programmes/ug/cs/curr/"
    The tab will switch to Online and show NUS Computing website.

400

Other examples:

  • reminder-goto 1
    If reminder 1 points to bookmark 5, this command is equivalent to goto 5. (i.e. opens the 5th bookmark in the bookmark manager.)


3.7. Upcoming [coming in v2.0]

These features will be available in the next version of Mark.

3.7.1. Sorting bookmarks: sort [coming in v2.0]

Sorts the displayed bookmarks according to different criterion (name, order added) and displays them as a list.

Format: sort [CRITERION]

  • CRITERION is the field you use to sort. Acceptable values of CRITERION are: name and default. default is sorting at the order when the bookmark is added.

  • CRITERION is case insensitive, e.g. both URL and url are acceptable criterion.

Examples:

  • sort name
    Lists all the bookmarks based on name/alphabetical order.

  • sort default
    Sort all the bookmarks based on the order they were added.

3.7.2. Automatically completing partially typed commands [coming in v2.0]

Automatically fills in partially typed commands if the command is unique.

3.7.3. Sharing bookmarks and notes via Email/ Telegram [coming in v2.0]

Shares your bookmarks and notes with your friends via Email or Telegram.

4. FAQ

4.1. How do I transfer my data to another Computer?

Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Mark folder.

5. Glossary

This glossary aims to provide a definition for the special vocabulary used in this user guide.

Annotation

A note or highlight that is made on an offline copy of a bookmark.

Autotag

A tag that is automatically applied to bookmarks based on certain conditions. These conditions are specified when the autotag is created. Refer to Section 3.4.1, “Creating an automatic tag: autotag for details about how to use autotags.

Bookmark

A saved shortcut to a website. In Mark, a bookmark can contain other information besides the website URL, such as reminders, offline copies and annotations.

Dashboard

The default tab in view when the application starts. The dashboard contains a help section (command summary), favorite tags, current reminders, and a view of the folder hierarchy for bookmarks.

Folder Hierarchy

The structure of folders in Mark. This is displayed in the dashboard tab when the application starts.

Reminder

The reminder in Mark reminds you to check a specific bookmark. This is displayed in the dashboard tab when the application starts.

Offline copy

An copy of a bookmarked website that is used for offline viewing. It is stored as a HTML file on the computer.

General notes

Annotation notes that are not attached to a paragraph from the corresponding web page are described to be general. General notes are found at the bottom of the rightmost column on the offline copy, known as the General notes section.

6. Command Summary

Table 1. Summary of command formats

Category

Commands

General

Help: help

Tab: tab INDEX or tab KEYWORD

Undo: undo [STEP=1]

Redo: redo [STEP=1]

Export: export FILENAME

Import: import FILENAME

Clear: clear

Exit: exit

Bookmarks

List: list

Find: find [KEYWORD]…​ [t/TAG]…​ [f/FOLDER]…​

Go to: goto INDEX

Add bookmark: add u/URL n/NAME [r/REMARK] [f/FOLDER] [t/TAG]…​

Edit bookmark: edit INDEX [u/URL] [n/NAME] [r/REMARK] [f/FOLDER] [t/TAG]…​​

Delete bookmark: delete INDEX

Favorite bookmark: favorite|fav INDEX

Folders

Expand view: expand [LEVEL=1]

Collapse view: collapse [LEVEL=1]

Add folder: folder FOLDER_NAME [p/PARENT_FOLDER=ROOT]

Edit folder: folder-edit FROM_FOLDER_NAME t/TO_FOLDER_NAME

Delete folder: folder-delete FOLDER_NAME

Autotags

Add autotag: autotag TAG_NAME [n/NAME_KEYWORD]…​ [u/URL_KEYWORD]…​ [f/FOLDER]…​ [nn/NOT_NAME_KEYWORD]…​ [nu/NOT_URL_KEYWORD]…​ [nf/NOT_FOLDER]…​

Edit autotag: autotag-edit TAG_NAME [t/NEW_TAG_NAME] [n/NAME_KEYWORD]…​ [u/URL_KEYWORD]…​ [f/FOLDER]…​ [nn/NOT_NAME_KEYWORD]…​ [nu/NOT_URL_KEYWORD]…​ [nf/NOT_FOLDER]…​

Delete autotag: autotag-delete TAG_NAME

Offline Copies

Add cache: cache INDEX

Delete cache: cache-delete INDEX

Offline view: offline INDEX

Add annotation: annotate INDEX p/P_NUM [n/NOTES] [h/HIGHLIGHT_COLOUR=yellow]

Edit annotation: annotate-edit INDEX p/P_NUM [to/NEW_P_NUM] [n/NOTES] [h/HIGHLIGHT_COLOUR]

Delete annotation: annotate-delete INDEX [p/P_NUM] [n/KEEP_NOTES=false] [h/KEEP_HIGHLIGHT=false]

Reminders

Add reminder: reminder INDEX t/TIME_DATE [n/NOTE=Open]

Edit reminder: reminder-edit INDEX [t/TIME_DATE] [n/NOTE]

Delete reminder: reminder-delete INDEX

Go to reminder: reminder-goto INDEX

Table 2. Summary of common command parameters

Parameter

Constraints

FILENAME

FILENAME should consist of only alphanumeric characters, hyphens, and/or underscores.

FOLDER_NAME

FOLDER_NAME must be alphanumeric

URL

URL should have the format: scheme://authority[/path][?query][#fragment][/] and adhere to the following constraints:
1. The scheme should be either 'http', 'https', 'ftp', or 'file', followed by '://'.
2. The authority should only contain alphanumeric characters and any of the characters (.-_~!$&'*+,;=:@).
3. This can be followed by zero or more path segments. Each path segment begins with a '/' followed by zero or more alphanumeric or special characters.
4. Next, a URL may contain a query string, which begins with a '?'.
5. It may also contain a fragment after the query string (if present), which begins with a '#'.
6. Finally, a URL can end with an optional slash '/'.