1.7.1 • Published 3 years ago

asocial-bookmark v1.7.1

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

asocial-bookmark

Personal bookmark system on GitHub repository.

Features

  • Manage your bookmark on GitHub
  • Update bookmark data via GitHub API
  • Postem integration

Install

Install with npm:

npm install asocial-bookmark

Requirements:

  • ECMAScript 2017+

Usage

GitHub mode.

import { AsocialBookmark } from "asocial-bookmark";

(async () => {
    if (!process.env.GH_TOKEN) {
        throw new Error("Set env GH_TOKEN=xxx");
    }
    const asocialBookmark = new AsocialBookmark({
        github: {
            owner: "azu",
            repo: "mybookmarks",
            ref: "heads/master",
            token: process.env.GH_TOKEN
        }
    });
    const date = new Date();
    const isoDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString();
    await asocialBookmark.updateBookmark({
        title: "example",
        url: "https://example.com",
        content: "description for example",
        date: isoDate,
        tags: ["example"]
    });

    const bookmark = await asocialBookmark.getBookmark({
        url: "https://example.com",
        date: new Date().toUTCString()
    });
    console.log("bookmark", bookmark);
    const tags = await asocialBookmark.getTags();
    console.log("tags", tags);
})();

CLI

RUN following CLI in your bookmark repository.

Migrate はてなブックマーク to asocial-bookmark

$ cd your-bookmarks-repository/
$ migrate-hatenabookmark-to-asocial-bookmark --hatena <user-name>

Create index.json that includes all bookmarks.

$ cd your-bookmarks-repository/
$ asocial-bookmark-create-index

How to create your bookmark repository

WIP: It is complex workflow.

  1. Create your repository.
    • Example: https://github.com/{your}/mybookmarks
  2. Convert existing bookmark like "はてなブックマーク" to asocial-bookmark
  3. Setup CI/CD - Netlify is useful in this case
    • Run $ asocial-bookmark-create-index that create index.json before each deploy
    • Enable CORS for https://<your-bookmark>/index.json
    • All bookmarks: https://<your-bookmark>/index.json
    • All tags: https://<your-bookmark>/tags.json
    • Block bookmarks by month: https://<your-bookmark>/:year/:month/index.json

.netlify.toml in your bookmark repository:

# example netlify.toml
[build]
  command = "asocial-bookmark-create-index"
  functions = "functions"
  publish = "."
  #  status = 200
[[headers]]
  for = "/index.json"
  [headers.values]
    Access-Control-Allow-Origin = "*"
  1. Post bookmark to your repository via postem

src/service.js in postem

const path = require("path");
module.exports = [
    {
        enabled: true,
        name: "twitter",
        indexPath: path.join(__dirname, "services/twitter/index.js")
    },
    {
        enabled: true,
        name: "AsocialBookmark",
        indexPath: path.join(__dirname, "services/asocial-bookmark/index.js")
    }
];
  1. Search Bookmark on はてなブックマーク検索PWA
    • Input https://<your-bookmark>/index.json to "hatena user name"
    • Very Very Hack But Work!
    • Do incremental search!

Related

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu

1.7.1

3 years ago

1.7.0

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.1

4 years ago

1.3.0

4 years ago

1.2.1

4 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago