Placeholders of document information and conditional strings provide the flexibility to customize your format of custom path for downloaded documents.
### Features
| Format | Usage |
|--------|--------|
| `{`...`}` | The pair of braces creates a placeholder of the property enclosed. If the property does not exist for the downloaded document, the placeholder is simply omitted. |
| `[`...`]` | The pair of brackets creates a conditional string, where the enclosed string will be omitted if no enclosed placeholders exist for the downloaded document. If no placeholders are enclosed, the enclosed string always exists. Brackets are omitted when determining the file path of a document. |
| `/` | This a file separator. It separates different levels of folders in a file path. |
| `\{`, `\}` | Represents the literal characters `{` and `}` respectively |
| `\[`, `\]` | Represents the literal characters `[` and `]` respectively |
### Properties
We first define the relevant objects. You can only use the properties of these objects inside braces, but not the objects themselves.
| Object | Definition | When Does It Exist |
|--------|--------|---------------|
| `doc` | The downloaded document | Always |
| `note` | The note which the document belongs to | Always |
| `author` | The author of the note | Always |
| `image` | The downloaded image | When downloading images or live photos |
| `engager` | The user who engaged with the note, i.e. added the note to favorites, boards, or liked the note. | When downloading favorite notes, boards, or liked notes |
| `board` | The board where the note was added to | When downloading boards |
Below lists all the properties you can use in a pair of brace.
All date/time strings are in the format of your browser's language, except all slashes `/` and colons `:` are replaced by dashes `-`, and all commas `,` are omitted.
| Property | Definition | When Does It Exist |
|--------|--------|---------------|
| `doc.extension` | File extension of the downloaded document in lowercase. The dot `.` that separates the file extension is not included. | Always |
| `doc.downloadTime` | Time when the document was downloaded | Always |
| `note.id` | Permanent ID of the note | Always |
| `note.title` | Title of the note | Always |
| `note.location` | Location where the note was created | Always |
| `note.lastUpdateTime` | Last time the note was updated | Always |
| `note.creationTime` | Time when the note was created | Always |
| `author.id` | Permanent ID of the author | Always |
| `author.redId` | Red ID of the author | Always |
| `author.name` | Name of the author | Always |
| `author.gender` | Gender of the author:
`Male`
`Female`
`Unspecified` | Always |
| `author.location` | Location of the author | Always |
| `image.index` | Index of the image/live photo within the note | When downloading images or live photos |
| `engager.id` | Permanent ID of the engager | When downloading favorite notes, boards, or liked notes |
| `engager.redId` | Red ID of the engager | When downloading favorite notes, boards, or liked notes |
| `engager.name` | Name of the engager | When downloading favorite notes, boards, or liked notes |
| `engager.gender` | Gender of the engager:
`Male`
`Female`
`Unspecified` | When downloading favorite notes, boards, or liked notes |
| `engager.location` | Location of the engager | When downloading favorite notes, boards, or liked notes |
| `engager.engageMode` | Types of engagement:
`Favorite` (added the note to favorites)
`Board` (added the note to boards)
`Liked` (liked the note) | When downloading favorite notes, boards, or liked notes |
| `board.id` | Permanent ID of the board | When downloading boards |
| `board.name` | Name of the board | When downloading boards |
| `board.lastUpdateTime` | Last time the board was updated | When downloading boards |
### Examples
#### Directory per author
```
{author.name} {author.id}/{note.name} {note.creationTime}[ {image.index}].{doc.extension}
```
#### Directory per engager, board and author
```
[{engager.engageMode} {engager.name} {engager.id}/][{board.name} {board.id}/]{author.name} {author.id}/{note.name} {note.creationTime}[ {image.index}].{doc.extension}
```
### Note
Despite no errors when saving the custom path format, the final file path will be sanitized, where invalid characters will be replaced by `_`. This is because placeholders may be replaced by strings that cause the file path to be invalid. Below are some commonly seen cases:
- Some emojis are rendered from a sequence of emojis joined by the zero width joiner `U+200D`, which is an invalid character. For example, 😶🌫️ is equivalent to the sequence `U+1F636` `U+200D` `U+1F32B` `U+FE0F`.
- Some text emojis contain invalid characters. For example, `¯\_(ツ)_/¯` contains invalid characters `\` and `/`.
Due to Google's security concerns, the downloader can only create directories inside the download folder which you specified in Chrome settings. You can change the downloads folder by clicking `Your downloads folder` left to the custom path editor.