Skip to main content

save parsed markdown into sqlite db

Project description

NoteVault

Define a schema over markdown documents and store certain sections as columsn in sqlite database.

Every list item must have a name as unique key. For non-list items the key is the heading.

Every save creates new version of the documents's child items, no update/overwrite, i.e. created == updated. Reason: PK is auto-incremented, so it's not possible to update existing items. Existing items are just de-connected, i.e. foreign keys are set to null. This also implies that deletion of detached items make sense.

Data will be extracted either as:

1. Key-Value pairs

Model:
  KV_List:
    name:
      type: string
    start:
      type: time
      nullable: true
    duration:
      type: int
      nullable: false
    breaks:
      type: timedelta
      nullable: true
    data:
      type: string
      nullable: true

This works for lists and headings. The heading would be the key and the following paragraph the value.

Lists can be narrow or wide:

Narrow list (often used with headings as lists):

  • start: 07:30
  • duration: 2:30
  • participants: @user1, @user2

Wide list:

  • name: item2, start: 17:30, duration: 2, breaks:, data: "adsfadfasdf, asdfasdf"
  • name: item1, start: 07:30, duration: 1, breaks: 0:30

2. Lists:

Model:
  List:
    - field:
        name: item
        type: string
        nullable: false
    - field:
        name: time
        type: time
        nullable: true
    - field:
        name: break
        type: timedelta
        nullable: true
    - field:
        name: detail
        type: string
        nullable: true

List:

  • item2, 17:30,, "adsfadfasdf, asdfasdf"
  • item1, 07:30, 0:30

Format

  • Sections are defined by headings.
  • key-value pairs are extracted into fields, e.g. key: value
  • Fields (extraction units) correspond to "Tags", e.g. li, h2 because it can contain other tags and newlines.
  • field values with commas must be quoted: participants: '@user1, @user2'

Single Item:

  • spec: is_list: false
  • markdown lists as fields: - key: value

Multiple Items:

markdown lists

  • spec: is_list: true + list_specifier: kv_list
  • substructure: format: - key: value, key: value, key: "complex, value"

sub-headings

  • spec: is_list: true + heading_field: name + list_specifier: heading (must specify the field which will hold the sub-heading in the schema)
  • substructure: format: ## Title x can contain:
  • markdown lists as fields: - key: value
  • sub-headings as simple content fields

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notevault-2.0.0.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notevault-2.0.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file notevault-2.0.0.tar.gz.

File metadata

  • Download URL: notevault-2.0.0.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.10.4 CPython/3.11.5

File hashes

Hashes for notevault-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e1b486aae0b6389ecd031ea1a9f0257e438530756766eefadf68955cba03ee80
MD5 6c903952f625a5ed12625d33119c9e91
BLAKE2b-256 fdd4ea69bec4d02e0466e56c7d4bf58922c261913eb6316b4a3ee9f8b34bc9d1

See more details on using hashes here.

File details

Details for the file notevault-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: notevault-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.10.4 CPython/3.11.5

File hashes

Hashes for notevault-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 23d3c7260002f7f64dce959c62400e622d5a0243b1ecf2f39bc5fac737fb3856
MD5 4ca79c7708c99f222d39e44c4bd3f74c
BLAKE2b-256 9492e2fa22eb67d2afa9ec169482134b77c8176134d6b23db9aa1f9cd3772f5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page