ArticleSync - Multi-platform article synchronization plug-in
ArticleSync is a browser extension that helps users easily publish articles to multiple social platforms simultaneously. Supports publishing articles from local drafts to major platforms, such as Zhihu, Bilibili, etc. It provides a one-stop solution that makes synchronizing your articles on different social media platforms simple and efficient.
Based on the browser plug-in mode, it automatically detects local login accounts and eliminates risks such as account leaks and environmental abnormalities.
Developed based on chrome Manifest v3 browser extension standard, please pay attention to the kernel version requirements
background
You also know that I suddenly have several blogging platforms and a lot of social networking sites. What if I want to keep active updates among them? (Proof that I am still alive) I can also steal articles with one click.
The one I update most often is my own little broken website, but for other platforms, I may only update it occasionally, but I don’t want to publish it manually every time, so I thought if I could write a plug-in that could automatically detect my local login account and then publish it automatically.
As the saying goes, make enough food and clothing by yourself. After tinkering for several days, it is barely usable, and the rest will be updated. Unless you give me money.
There are still many imperfections in the plug-in, and I have not officially tested it on multiple platforms in the production environment. If an error is reported, it is normal, then submit an issue, or make the changes yourself, and then submit a PR after the changes are made. Hehe~
In order not to affect my speech, I put the screenshot at the end.
Also, open source is not easy, come and be a star, hehehe~
I originally wanted to add some private goods, so I automatically followed my community platform.
Features
- Multi-platform support: Supports major mainstream platforms such as Zhihu and Bilibili, and supports self-built open source CMS systems.
- Status Tracking: View the synchronization status of articles in the plug-in interface.
- Account Management: You can view the account information of each platform bound to the plug-in.
- Strong scalability: Support developers to easily expand to more platforms through the adapter mode.
- Safe and Reliable: The plug-in is based on browser extension mode to ensure account security and avoid risks such as account leakage.
Todo List
- [ ] Independent article editor
- [ ] One-click synchronization of pictures
- [x] markdown and HTML conversion
- [ ] Third-party image bed system
- [ ] Multiple account management
- [ ] Multi-system client version
- [ ] One-click ai summary
- [ ] Video synchronization
- [ ] tag, classification support
- [ ] More friendly error handling
- [ ] Access to more platforms
Support channels
media
media industry
state
URL
Support type
Update time
Bilibili
Mainstream self-media
Already supported
HTML
2024/10/13
Zhihu
Mainstream self-media
Already supported
HTML
2024/10/13
Blog Garden
blog
Already supported
HTML
2024/10/14
Sina headlines
Mainstream self-media
Already supported
HTML
2024/10/14
emlog
Open source CMS
Already supported
HTML
2024/10/14
WordPress
Open source CMS
Already supported
HTML, Markdown
2024/10/14
Discuz
Open source CMS
Already supported
Markdown,Text
2024/10/15
Installation instructions
-
Clone the repository locally:
git clone https://github.com/iAJue/Articlesync.git -
Enter the project directory:
cd articlesync -
Install dependencies:
npm install -
Package project
npm run build -
Load the plug-in:
- Open the Chrome browser and go to chrome://extensions/.
- Enable developer mode.
- Click to load the unzipped extension and select the dist/ folder.
-
Development
-
Start the development environment
npm run watch-reload -
With hot update configured, every time the code is modified, the plug-in will be automatically packaged and Chrome will automatically reload the plug-in.
-
How to add an adapter
-
Create a new adapter file in the
src/adaptersdirectory, such asPlatformAdapter.js. -
Inherit the
BaseAdapterclass and implement the following methods:getMetaData(): Get the metadata of the current page.addPost(post): Add a new post.editPost(post, post_id): Edit post.uploadFile(file): Upload file.- Define the
constructorconstructor to set the version, type and name of the adapter or other initialization data.constructor() { super(); this.version = '1.0'; this.type = 'Twitter'; this.name = 'Twitter'; }
-
Import and register the new adapter in
src/adapters/adapters.js.
Project structure
├── src
│ ├── adapters # Adapters for each platform
│ │ ├── ZhiHuAdapter.js
│ │ ├── BilibiliAdapter.js
│ ├── contents # Content script
│ ├── background.js # Background script
│ ├── popup # Plug-in pop-up interface
│ │ ├── popup.js
│ │ ├── popup.html
│ ├── options # Extended options page
│ │ ├── options.js
│ │ ├── options.html
│ ├── dist # Packaged file
│ ├── manifest.json # Chrome plug-in manifest file
├── webpack.config.js # Webpack configuration file
├── package.json # Project configuration file
├── README.md # Project description file
├── .gitignore # Git ignores files
Contribution Guidelines
Contributions to the project are welcome! If you have any suggestions for improvements or want to add new platform support, please follow these steps:
- Fork warehouse.
- Create a new branch.
- Submit your changes.
- Initiate a Pull Request.
feedback
If you encounter any problems or suggestions during use, please let us know in the following ways:
- Submit Issue
- BUG
- Browser version: Chrome 129.0.6668.90
- Kernel version: 129.0.6668.90
- Operating system: Windows 10
- Plugin version: 1.0.0
- Steps to reproduce:
- Error description:
- suggestion
- describe:
- Expected results:
- support
- platform:
- URL: -Account: (Best)
- Blog: Visit Ajue Jiang’s Blog to leave a message
Feeding ☕
I'm cute, please give me money!
I am cute, please give me money!

License
Copyright (c) 2024-present, iAJue
This project follows the GPL-3.0 license.
screenshot
