Skip to content

Config

Once you've initialized your archivy install, an archivy config is automatically generated. You can edit it through the archivy interface by clicking on the gear icon on the top right of the navbar, or by running archivy config in your terminal.

Here's an overview of the different values you can set and modify.

General

Variable Default Description
USER_DIR System-dependent, see below. It is recommended to set this through archivy init Directory in which markdown data will be saved
INTERNAL_DIR System-dependent, see below Directory where archivy internals will be stored (config, db...)
PORT 5000 Port on which archivy will run
HOST 127.0.0.1 Host on which the app will run.
DEFAULT_BOOKMARKS_DIR empty string (represents the root directory) any subdirectory of the data/ directory with your notes.
SITE_TITLE Archivy String value to be displayed in page title and headings.

Scraping

An in-progress configuration object to customize how you'd like bookmarking / scraping to work. The options are children of the SCRAPING_CONF object, like so:

SCRAPING_CONF:
  save_images:
  ...
Variable Default Description
save_images False If true, whenever you save a bookmark, every linked image will also be downloaded locally.

If you want to configure the scraping progress more, you can also create a scraping.py file in the root of your user directory. This file allows you to override the default bookmarking behavior for certain websites / links, which you can match with regex.

Once it matches a link, you can either pass your own custom function for parsing, or simply pass a string, which corresponds to the CSS selector for the part of the page you want archivy to scrape. If there are several matches, only the first will be treated.

Example that processes youtube videos:

def process_videos(data):
    url = data.url
    # modify whatever you want / set the metadata
    data.title = "Video - " + url
    data.tags = ["video"]
    data.content = "..."

# declare your patterns in this PATTERNS variable
PATTERNS = {
    "*youtube.com/*": process_videos
}

With this example, whenever you create a bookmark of a youtube video, instead of going through the default archival, your function will be called on the data.

Example that tells archivy only to scrape the main body of Wikipedia pages:

PATTERNS = {
    "https://*.wikipedia.org/wiki/*": "#bodyContent"
}

Example patterns:

  • *wikipedia* (* matches everything)
  • https://duckduckg?.com* (? matches a single character)
  • https://www.[nl][ya]times.com ([] matches any character inside the brackets. Here it'll match nytimes or latimes, for example. Use ![] to match any character not inside the brackets)

Theming

Configure the way your Archivy install looks.

These configuration options are children of the THEME_CONF object, like this:

THEME_CONF:
  use_theme_dark:
  use_custom_css:
  custom_css_file:
Variable Default Description
use_theme_dark false Whether or not to load the dark version of the default theme CSS.
use_custom_css false Whether or not to load custom css from custom_css_file
custom_css_file "" Name of file to load in the css/ subdirectory of your user directory (the one with your data or hooks). Create css/ if it doesn't exist.

See Setup Search for more information.

All of these options are children of the SEARCH_CONF object, like this in the config.yml:

SEARCH_CONF:
  enabled:
  url:
  # ...
To use search, you first have to enable it either through the archivy init setup script or by modifying the enabled variable (see below).

Variables marked ES only in their description are only relevant when using the Elasticsearch engine.

Variable Default Description
enabled 1
engine empty string search engine you'd like to use. One of ["ripgrep", ["elasticsearch"]
url http://localhost:9200 [ES only] Url to the elasticsearch server
es_user and es_password None If you're using authentication, for example with a cloud-hosted ES install, you can specify a user and password
es_processing_conf Long dict of ES config options [ES only] Configuration of Elasticsearch analyzer, mappings and general settings.

INTERNAL_DIR and USER_DIR by default will be set by the appdirs python library:

On Linux systems, it follows the XDG specification: ~/.local/share/archivy

Editor configuration

To enable auto save in the editor, set EDITOR_CONF -> autosave to True.

Archivy uses the markdown-it parser for its editor. This parser can be configured to change the output according to your needs. The default values of EDITOR_CONF are given below. Refer to the markdown-it docs for a full list of possible options.

EDITOR_CONF:
  autosave: False
  settings:
    linkify: true
    html: false
    xhtmlOut: false
    breaks: true
    typographer: false
  plugins: ...
  toolbar_icons: ["bold", "italic", "link", "upload-image", "heading", "code", "strikethrough", "quote", "table"] # see https://github.com/Ionaru/easy-markdown-editor#toolbar-icons for more options

Archivy uses several markdown plugins to enhance its functionality:

Some of these plugins (see below) can be configured and modified. Refer to their homepages above to see what you can change. They are set up with the following configuration by default:

EDITOR_CONF:
  plugins:
    markdownitFootnote: {}
    markdownitMark: {}
    markdownItAnchor:
      permalink: True
      permalinkSymbol: 'ΒΆ'
    markdownItTocDoneRight: {}