asocial-bookmark
v1.7.1
Published
personal bookmark system.
Downloads
19
Readme
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.
- Create your repository.
- Example:
https://github.com/{your}/mybookmarks
- Example:
- Convert existing bookmark like "はてなブックマーク" to asocial-bookmark
- Run
$ migrate-hatenabookmark-to-asocial-bookmark --hatena <user-name>
- For more details, see src/cli/migrate-hatenabookmark-to-asocial-bookmark.ts
- Run
- Setup CI/CD - Netlify is useful in this case
- Run
$ asocial-bookmark-create-index
that createindex.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
- Run
.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 = "*"
- 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")
}
];
- Search Bookmark on はてなブックマーク検索PWA
- Input
https://<your-bookmark>/index.json
to "hatena user name" - Very Very Hack But Work!
- Do incremental search!
- Input
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.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
License
MIT © azu