Skip to main content

A web-based short note manager with search and tagging capabilities

Project description

LinkNote

A web-based bookmark manager that allows you to save and organize links with tags and markdown descriptions.

Features

  • Save links with titles, tags, and markdown descriptions
  • Advanced search with support for quoted phrases
  • Filter notes by title, tags, description, or author
  • Sort notes by title (default), creation time, or link
  • Support for both web server and static file modes
  • Flexible data storage (JSON or JS files)
  • Custom save locations
  • Command-line interface

Installation

pip install .

Usage

Command Line Interface

  1. Start the web server:
linknote start  # Starts server at http://127.0.0.1:5000

Optional parameters:

  • --host or -h: Set host address (default: 127.0.0.1)
  • --port or -p: Set port number (default: 5000)
  1. Open data directory:
linknote data  # Opens the default data directory

Web Interface

  1. Adding Notes:

    • Enter author name (saved for future use)
    • Use template URLs with parameters (e.g., https://example.com/{param})
    • Click "New Note" button
    • Fill in title (required) and link (required)
    • Add optional tags (comma-separated)
    • Add optional description (supports markdown)
  2. Searching/Filtering:

    • Type in the search box to filter notes
    • Use quotes for exact phrases (e.g., "example phrase")
    • Space-separated terms are treated as separate keywords
    • Searches through titles, tags, descriptions, and authors
    • Results update in real-time
  3. Managing Notes:

    • Duplicate existing notes
    • Sort notes by title, creation time, or link
    • Template URLs: Create parameterized links
      • Use {paramName} in URLs (e.g., https://api.example.com/{version}/{endpoint})
      • Input fields automatically created for each parameter
      • Real-time URL preview as you type
  4. Saving Notes:

    • Click "Save All" to save changes
    • Choose between default location or custom path
    • Supports both .js and .json file formats

Note Fields

  • Title (required): Display name, used for search and sorting
  • Link (required): URL or template URL
  • Author: Automatically saved and used as default for new notes
  • Tags: Comma-separated labels for organization
  • Description: Supports markdown formatting
  • Timestamps:
    • Creation time: Set when note is first created
    • Modification time: Updated on each edit

Data Storage

  • Windows: %APPDATA%/linknote/data.js
  • Linux: ~/.local/share/linknote/data.js
  • Custom: Choose any location and format (.js or .json)

Static Mode

You can use LinkNote without a server by:

  1. Copy the static files (index.html, style.css, script.js, data.js)
  2. Open index.html in a browser
  3. Data will be loaded from data.js

Note: In static mode, saving changes is disabled

Markdown Support

Description field supports basic markdown:

  • Links: [text](url)
  • Bold: **text**
  • Italic: *text*
  • Code: `code`

Deployment in Public Networks

Warning: This application has an experimental authentication feature that is not recommended for production use. For public-facing deployments, it is strongly recommended to use a reverse proxy with a robust authentication mechanism, such as HTTP Basic Authentication provided by servers like Nginx. This ensures that your LinkNote instance is secure.

Development

Project Structure

linknote/
├── linknote/
│   ├── __init__.py
│   ├── cli.py         # Command-line interface
│   ├── server.py      # Flask backend
│   └── static/        # Frontend files
│       ├── index.html
│       ├── style.css
│       ├── script.js
│       └── data.js
└── setup.py

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

MIT License

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

linknote-0.1.1.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

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

linknote-0.1.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file linknote-0.1.1.tar.gz.

File metadata

  • Download URL: linknote-0.1.1.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for linknote-0.1.1.tar.gz
Algorithm Hash digest
SHA256 89cdf798638c08d4829d32754905ee90a6f013660faf187082707e9bec8daac4
MD5 f9a65ef73834bfaa79783a34739b9e03
BLAKE2b-256 cd764a377fe075dbdc7a14db53563f5f47d548feade4068afef1ab2cd7189a3b

See more details on using hashes here.

File details

Details for the file linknote-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: linknote-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for linknote-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 629d2216dc541de9a45cf124b54c4f048bbb96cf458fae1532b4bfbe731d5f17
MD5 c8b515cd124050eab8e74be4c96a21ff
BLAKE2b-256 90bb27188916b0b45b6984c23df2cdf35f4af82028c3b41c835665e7350284ca

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