linknote


Namelinknote JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/sxwxs/linknote
SummaryA web-based short note manager with search and tagging capabilities
upload_time2025-07-13 14:53:10
maintainerNone
docs_urlNone
authorsxwxs
requires_python>=3.7
licenseMIT
keywords bookmarks notes web application tagging search flask
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```bash
pip install .
```

## Usage

### Command Line Interface

1. Start the web server:
```bash
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)

2. Open data directory:
```bash
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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sxwxs/linknote",
    "name": "linknote",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "bookmarks, notes, web application, tagging, search, flask",
    "author": "sxwxs",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/16/08/9e9996d450b554b0be08a57d91c2529291029a01a2a279bfe2fc2efa6741/linknote-0.1.0.tar.gz",
    "platform": null,
    "description": "# LinkNote\n\nA web-based bookmark manager that allows you to save and organize links with tags and markdown descriptions.\n\n## Features\n\n- Save links with titles, tags, and markdown descriptions\n- Advanced search with support for quoted phrases\n- Filter notes by title, tags, description, or author\n- Sort notes by title (default), creation time, or link\n- Support for both web server and static file modes\n- Flexible data storage (JSON or JS files)\n- Custom save locations\n- Command-line interface\n\n## Installation\n\n```bash\npip install .\n```\n\n## Usage\n\n### Command Line Interface\n\n1. Start the web server:\n```bash\nlinknote start  # Starts server at http://127.0.0.1:5000\n```\n\nOptional parameters:\n- `--host` or `-h`: Set host address (default: 127.0.0.1)\n- `--port` or `-p`: Set port number (default: 5000)\n\n2. Open data directory:\n```bash\nlinknote data  # Opens the default data directory\n```\n\n### Web Interface\n\n1. Adding Notes:\n   - Enter author name (saved for future use)\n   - Use template URLs with parameters (e.g., `https://example.com/{param}`)\n   - Click \"New Note\" button\n   - Fill in title (required) and link (required)\n   - Add optional tags (comma-separated)\n   - Add optional description (supports markdown)\n\n2. Searching/Filtering:\n   - Type in the search box to filter notes\n   - Use quotes for exact phrases (e.g., `\"example phrase\"`)\n   - Space-separated terms are treated as separate keywords\n   - Searches through titles, tags, descriptions, and authors\n   - Results update in real-time\n\n3. Managing Notes:\n   - Duplicate existing notes\n   - Sort notes by title, creation time, or link\n   - Template URLs: Create parameterized links\n     - Use `{paramName}` in URLs (e.g., `https://api.example.com/{version}/{endpoint}`)\n     - Input fields automatically created for each parameter\n     - Real-time URL preview as you type\n\n4. Saving Notes:\n   - Click \"Save All\" to save changes\n   - Choose between default location or custom path\n   - Supports both .js and .json file formats\n\n### Note Fields\n\n- Title (required): Display name, used for search and sorting\n- Link (required): URL or template URL\n- Author: Automatically saved and used as default for new notes\n- Tags: Comma-separated labels for organization\n- Description: Supports markdown formatting\n- Timestamps: \n  - Creation time: Set when note is first created\n  - Modification time: Updated on each edit\n\n### Data Storage\n\n- Windows: `%APPDATA%/linknote/data.js`\n- Linux: `~/.local/share/linknote/data.js`\n- Custom: Choose any location and format (.js or .json)\n\n### Static Mode\n\nYou can use LinkNote without a server by:\n1. Copy the static files (`index.html`, `style.css`, `script.js`, `data.js`)\n2. Open `index.html` in a browser\n3. Data will be loaded from `data.js`\n\nNote: In static mode, saving changes is disabled\n\n### Markdown Support\n\nDescription field supports basic markdown:\n- Links: `[text](url)`\n- Bold: `**text**`\n- Italic: `*text*`\n- Code: `` `code` ``\n\n## Deployment in Public Networks\n\n**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.\n\n## Development\n\n### Project Structure\n\n```\nlinknote/\n\u251c\u2500\u2500 linknote/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 cli.py         # Command-line interface\n\u2502   \u251c\u2500\u2500 server.py      # Flask backend\n\u2502   \u2514\u2500\u2500 static/        # Frontend files\n\u2502       \u251c\u2500\u2500 index.html\n\u2502       \u251c\u2500\u2500 style.css\n\u2502       \u251c\u2500\u2500 script.js\n\u2502       \u2514\u2500\u2500 data.js\n\u2514\u2500\u2500 setup.py\n```\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Submit a pull request\n\n## License\n\nMIT License\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A web-based short note manager with search and tagging capabilities",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/sxwxs/linknote/issues",
        "Homepage": "https://github.com/sxwxs/linknote",
        "Source Code": "https://github.com/sxwxs/linknote"
    },
    "split_keywords": [
        "bookmarks",
        " notes",
        " web application",
        " tagging",
        " search",
        " flask"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1e7e3fec72172a29a4257c1da4a354da3885d6e63adf25074920c8b75de30604",
                "md5": "915a18da7017c335bac3fed9b684406e",
                "sha256": "5656ff92a1bfa5213de4fe945c983bf2351d36b122b26347ca17e449bf547892"
            },
            "downloads": -1,
            "filename": "linknote-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "915a18da7017c335bac3fed9b684406e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 20587,
            "upload_time": "2025-07-13T14:53:08",
            "upload_time_iso_8601": "2025-07-13T14:53:08.782083Z",
            "url": "https://files.pythonhosted.org/packages/1e/7e/3fec72172a29a4257c1da4a354da3885d6e63adf25074920c8b75de30604/linknote-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "16089e9996d450b554b0be08a57d91c2529291029a01a2a279bfe2fc2efa6741",
                "md5": "b6ab426b0912abf4cabb293b9939292d",
                "sha256": "e91f681545aa9514f43482fdb967782a97d0823ac98463a00c551987b3f28056"
            },
            "downloads": -1,
            "filename": "linknote-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b6ab426b0912abf4cabb293b9939292d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 21174,
            "upload_time": "2025-07-13T14:53:10",
            "upload_time_iso_8601": "2025-07-13T14:53:10.229917Z",
            "url": "https://files.pythonhosted.org/packages/16/08/9e9996d450b554b0be08a57d91c2529291029a01a2a279bfe2fc2efa6741/linknote-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 14:53:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sxwxs",
    "github_project": "linknote",
    "github_not_found": true,
    "lcname": "linknote"
}
        
Elapsed time: 1.76475s