{ "aeon": { "readmeCleaned": "

\"Aeon\"

\n

\n 📡 Scan the internet for your personal information and modify or remove it\n

\n
\n
\n \n \"License\"\n \"GitHub\n \"Documentation\"\n
\n
\n
\n

What is Aeon?

\n

📡  Ever wondered what personal information is scattered around the internet? Aeon scans popuplar platforms for your personal information and (almost) automatically retrieves it.

\n

👀  Use Aeon to download, archive and visualise your personal information.

\n

  Don't agree with the data Facebook (or another platform) knows about you? Generate a request for modification or deletion with the click of a button!

\n
\n

\n \n

\n
\n

Installing Aeon

\n\n\n\n\n\n\n\n\n

Aeon is available for Windows, macOS, apt and yum! Download the application here and follow the instructions on the download page.

\n

\"Download

\n

Not sure how to start using Aeon? Follow the Getting Started guide for detailed instructions.

\n

How does it work?

\n

All companies worldwide are required to offer you access to all data they retain about you. But most of the time, this process is hard, convoluted, slow or all three at once! Aeon has rules for each platform that make requesting your personal information just a couple of clicks!

\n

\n \n

\n

The resulting data is downloaded on your local computer for safekeeping. Often, data is formatted in machine-readable formats such as JSON and CSV. To make it easier to digest your personal information, Aeon visualises it for you.

\n

\n \n

\n

Companies are not only required to grant access, they must respect your wishes too. This means you can require them to delete or modify the personal information they have. Aeon contains a generator for data subject rights emails, that help you take control of your personal data.

\n

\n \n

\n

Supported Platforms

\n\n\n\n\n\n\n\n\n

Aeon currently has native support for the following platforms:

\n\n

Want to see a particular platform added? Create a GitHub issue with the name of the particular provider.

\n

Want to help out with adding new platforms? Providers are easily defined with a Provider config. Check out the documentation on Providers to find out how they work. You can always create a Pull Request

\n

Contributing

\n

Aeon is being developed out in the open. Have an idea for a feature or a suggestion for a new provider? Create a GitHub issue and tag me (@leinelissen) if you need any help.

\n

Documentation

\n

\"Read

\n

Using Aeon

\n

You can find the latest build of Aeon over at the releases page. There's builds for Windows, macOS and Linux.

\n

If you're feeling more adventurous, clone the repository and compile your own nightly build. The only dependency is NodeJS. Prepare the codebase and start a development build by running the following commands:

\n
npm install\nnpm start\n
\n

The Technical Stuff

\n

Aeon is an Electron-based app, a mature platform for building JavaScript applications on the desktop. It is backed by a locally encrypted Git repository, made available through use of the excellent nodegit package.

\n

A custom and modular back-end allows for tracking and retrieving data from multiple sources. This is done through retrieval from an API, asynchronous data requests or a combination of both. Parser logic then allows for extracting common data types from the resulting JSON or CSV.

\n
", "readmeOriginal": "

\"Aeon\"

\n

\n 📡 Scan the internet for your personal information and modify or remove it\n

\n
\n
\n \n \"License\"\n \"GitHub\n \"Documentation\"\n
\n
\n
\n

What is Aeon?

\n

📡  Ever wondered what personal information is scattered around the internet? Aeon scans popuplar platforms for your personal information and (almost) automatically retrieves it.

\n

👀  Use Aeon to download, archive and visualise your personal information.

\n

  Don't agree with the data Facebook (or another platform) knows about you? Generate a request for modification or deletion with the click of a button!

\n
\n

\n \n

\n
\n

Installing Aeon

\n\n\n\n\n\n\n\n\n

Aeon is available for Windows, macOS, apt and yum! Download the application here and follow the instructions on the download page.

\n

\"Download

\n

Not sure how to start using Aeon? Follow the Getting Started guide for detailed instructions.

\n

How does it work?

\n

All companies worldwide are required to offer you access to all data they retain about you. But most of the time, this process is hard, convoluted, slow or all three at once! Aeon has rules for each platform that make requesting your personal information just a couple of clicks!

\n

\n \n

\n

The resulting data is downloaded on your local computer for safekeeping. Often, data is formatted in machine-readable formats such as JSON and CSV. To make it easier to digest your personal information, Aeon visualises it for you.

\n

\n \n

\n

Companies are not only required to grant access, they must respect your wishes too. This means you can require them to delete or modify the personal information they have. Aeon contains a generator for data subject rights emails, that help you take control of your personal data.

\n

\n \n

\n

Supported Platforms

\n\n\n\n\n\n\n\n\n

Aeon currently has native support for the following platforms:

\n\n

Want to see a particular platform added? Create a GitHub issue with the name of the particular provider.

\n

Want to help out with adding new platforms? Providers are easily defined with a Provider config. Check out the documentation on Providers to find out how they work. You can always create a Pull Request

\n

Contributing

\n

Aeon is being developed out in the open. Have an idea for a feature or a suggestion for a new provider? Create a GitHub issue and tag me (@leinelissen) if you need any help.

\n

Documentation

\n

\"Read

\n

Using Aeon

\n

You can find the latest build of Aeon over at the releases page. There's builds for Windows, macOS and Linux.

\n

If you're feeling more adventurous, clone the repository and compile your own nightly build. The only dependency is NodeJS. Prepare the codebase and start a development build by running the following commands:

\n
npm install\nnpm start\n
\n

The Technical Stuff

\n

Aeon is an Electron-based app, a mature platform for building JavaScript applications on the desktop. It is backed by a locally encrypted Git repository, made available through use of the excellent nodegit package.

\n

A custom and modular back-end allows for tracking and retrieving data from multiple sources. This is done through retrieval from an API, asynchronous data requests or a combination of both. Parser logic then allows for extracting common data types from the resulting JSON or CSV.

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.408Z" }, "1clipboard": { "readmeCleaned": "

\n \"1Clipboard\"\n

1Clipboard

\n

A universal clipboard managing app that makes it easy to access your clipboard from anywhere on any device.

\n

\n

\n

1Clipboard

\n

1Clipboard is Electron based modern web application written by Typescript using Angular4 (angular-cli) + ngrx (redux for Angular) + PouchDB. I can't say this project is the best example, but anyway it is worth to look for those who are going to use Angular framework as their native application. This project is still a work in progress and not yet ready for production.

\n

Note

\n

I am currently working on this project from scratch with the newer web technology, so the source code is different from the released version.\nI am going to open this project as a public repository in the future when it is ready.\nIf you want to access to the current private repo, please contact me with your github account.

\n

Download

\n

You can download current released version of 1Clipboard for Windows, macOS from http://1clipboard.io.

\n

Tech Stack

\n\n

Support

\n

If you like this project, you can support me by starring this repository, or getting in touch at contact@1clipboard.io

\n

License

\n

MIT © wiziple

\n
", "readmeOriginal": "

\n \"1Clipboard\"\n

1Clipboard

\n

A universal clipboard managing app that makes it easy to access your clipboard from anywhere on any device.

\n

\n

\n

1Clipboard

\n

1Clipboard is Electron based modern web application written by Typescript using Angular4 (angular-cli) + ngrx (redux for Angular) + PouchDB. I can't say this project is the best example, but anyway it is worth to look for those who are going to use Angular framework as their native application. This project is still a work in progress and not yet ready for production.

\n

Note

\n

I am currently working on this project from scratch with the newer web technology, so the source code is different from the released version.\nI am going to open this project as a public repository in the future when it is ready.\nIf you want to access to the current private repo, please contact me with your github account.

\n

Download

\n

You can download current released version of 1Clipboard for Windows, macOS from http://1clipboard.io.

\n

Tech Stack

\n\n

Support

\n

If you like this project, you can support me by starring this repository, or getting in touch at contact@1clipboard.io

\n

License

\n

MIT © wiziple

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.438Z" }, "aether": { "readmeCleaned": "

\n\n \n\n

\n

\nAether is a peer-to-peer network of independent, self-moderated communities. \n

\n

\nHacker News\n

\n

\nThe Verge\n

\n

Heads up

\n

The current version is a developer preview. It collects usage metrics to help debugging.

\n

This is a developer preview, a pre-alpha. It is unstable and untested. It is not production-ready.

\n

Legalese

\n

This software is provided for free, on an as-is basis, with no warranty, and without any expressed or implied offer of support.

\n

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.

\n

Full license text: GNU Affero General Public License 3.0 only

\n

Download

\n

Download Aether

\n

Aether is available for Mac OS, Windows and Linux. Our community supports Windows, Mac OS and Linux versions at meta.geteather.net.

\n

Compiling

\n

Aether is a relatively large app with an Electron and Go toolchain, at 100,000+ lines of code. Getting it to compile requires setting up a correct build runtime with the latest versions of Go, Node (for Electron) and C dependencies and development environments. Expect the initial set-up to take a few hours. Be patient! 🙂

\n

Instructions

\n

Compile instructions can be found here on this gist, and at getaether.net/docs/developers.

\n

Filing a bug

\n

Please create a topic in the appropriate section of meta.getaether.net. This allows the non-Github-using majority of Aether users to help with your issue, and point you in the right direction.

\n

Backers

\n

Aether exists thanks to the generous fellows below. Funding Aether comes with some perks, such as registering your unique name before anyone else. See here for full benefits.

\n\n \n\n

Gold Sponsors

\n

[your name here]

\n

Sponsors

\n

Peter Wang

\n

Generous backers

\n

Alex

\n

Alex Tibbles

\n

Andrew

\n

Asher Gottlieb

\n

Bart Grantham

\n

Cerxi

\n

Chip Wasson

\n

Daniel Fischer

\n

Duane Bailey

\n

Jackson Solway

\n

James Bekkema

\n

John Alexander

\n

John Moore

\n

John Travise

\n

Lewis Liu

\n

mindricity

\n

Pavel Minaev

\n

Ryan Hill

\n

Sebastian Jug

\n

srdis

\n

Steamy McMemerton

\n

Steve

\n

Tom Kapanka

\n

Backers

\n

Andreas Basurto

\n

Forest Friendly

\n

Grischa Boßlar

\n

Whitman Schorn

\n

Crypto supporters

\n

@agalati

\n

@HostFat

\n
", "readmeOriginal": "

\n\n \n\n

\n

\nAether is a peer-to-peer network of independent, self-moderated communities. \n

\n

\nHacker News\n

\n

\nThe Verge\n

\n

Heads up

\n

The current version is a developer preview. It collects usage metrics to help debugging.

\n

This is a developer preview, a pre-alpha. It is unstable and untested. It is not production-ready.

\n

Legalese

\n

This software is provided for free, on an as-is basis, with no warranty, and without any expressed or implied offer of support.

\n

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.

\n

Full license text: GNU Affero General Public License 3.0 only

\n

Download

\n

Download Aether

\n

Aether is available for Mac OS, Windows and Linux. Our community supports Windows, Mac OS and Linux versions at meta.geteather.net.

\n

Compiling

\n

Aether is a relatively large app with an Electron and Go toolchain, at 100,000+ lines of code. Getting it to compile requires setting up a correct build runtime with the latest versions of Go, Node (for Electron) and C dependencies and development environments. Expect the initial set-up to take a few hours. Be patient! 🙂

\n

Instructions

\n

Compile instructions can be found here on this gist, and at getaether.net/docs/developers.

\n

Filing a bug

\n

Please create a topic in the appropriate section of meta.getaether.net. This allows the non-Github-using majority of Aether users to help with your issue, and point you in the right direction.

\n

Backers

\n

Aether exists thanks to the generous fellows below. Funding Aether comes with some perks, such as registering your unique name before anyone else. See here for full benefits.

\n\n \n\n

Gold Sponsors

\n

[your name here]

\n

Sponsors

\n

Peter Wang

\n

Generous backers

\n

Alex

\n

Alex Tibbles

\n

Andrew

\n

Asher Gottlieb

\n

Bart Grantham

\n

Cerxi

\n

Chip Wasson

\n

Daniel Fischer

\n

Duane Bailey

\n

Jackson Solway

\n

James Bekkema

\n

John Alexander

\n

John Moore

\n

John Travise

\n

Lewis Liu

\n

mindricity

\n

Pavel Minaev

\n

Ryan Hill

\n

Sebastian Jug

\n

srdis

\n

Steamy McMemerton

\n

Steve

\n

Tom Kapanka

\n

Backers

\n

Andreas Basurto

\n

Forest Friendly

\n

Grischa Boßlar

\n

Whitman Schorn

\n

Crypto supporters

\n

@agalati

\n

@HostFat

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.587Z" }, "advanced-rest-client": { "readmeCleaned": "

Advanced REST Client application

\n

This is the main repository for the ARC Electron application.

\n

Documentation

\n

If you are looking for the documentation then visit docs.advancedrestclient.com.

\n

Installation

\n

If you are looking to install the application, the go to the releases page and download the installer for your system.

\n
    \n
  1. Find the latest stable release.
  2. \n
  3. Toggle the Assets and find the installer for your system. For Windows it will be arc-setup.exe. macOS users should download arc-x.x.x.dmg, where x.x.x is the version number. Linux users should find the distribution corresponding to the system you are using.
  4. \n
  5. Run the installer by clicking on it.
  6. \n
\n

Note that you may be asked to use an account with upgraded privileges to install the application.

\n

Project planning

\n

We believe in open web and open API tooling. The project is managed in an open way and you can also contribute by requesting features and reporting issues. You can check current planning in the project plan.

\n

Contributing to the project

\n

Get familiar with the application architecture. You may also want to look into the .github/CONTRIBUTING.md document before you jump into the development.

\n

Clone the repository:

\n
git clone https://github.com/advanced-rest-client/arc-electron.git
\n

Checkout this branch

\n
git checkout redesign2020
\n

Next, install dependencies (it may take a moment)

\n
npm install
\n

And run the application

\n
npm start
\n
", "readmeOriginal": "

Advanced REST Client application

\n

This is the main repository for the ARC Electron application.

\n

Documentation

\n

If you are looking for the documentation then visit docs.advancedrestclient.com.

\n

Installation

\n

If you are looking to install the application, the go to the releases page and download the installer for your system.

\n
    \n
  1. Find the latest stable release.
  2. \n
  3. Toggle the Assets and find the installer for your system. For Windows it will be arc-setup.exe. macOS users should download arc-x.x.x.dmg, where x.x.x is the version number. Linux users should find the distribution corresponding to the system you are using.
  4. \n
  5. Run the installer by clicking on it.
  6. \n
\n

Note that you may be asked to use an account with upgraded privileges to install the application.

\n

Project planning

\n

We believe in open web and open API tooling. The project is managed in an open way and you can also contribute by requesting features and reporting issues. You can check current planning in the project plan.

\n

Contributing to the project

\n

Get familiar with the application architecture. You may also want to look into the .github/CONTRIBUTING.md document before you jump into the development.

\n

Clone the repository:

\n
git clone https://github.com/advanced-rest-client/arc-electron.git
\n

Checkout this branch

\n
git checkout redesign2020
\n

Next, install dependencies (it may take a moment)

\n
npm install
\n

And run the application

\n
npm start
\n
", "readmeFetchedAt": "2022-05-10T00:07:38.595Z" }, "akiee": { "readmeCleaned": "

\"Akiee

\n# Welcome to Akiee\n

Akiee is a task manager that allows you to organize your task in a new way. It is build with Node-Webkit, Clojurescript and React. It is available for Linux, Mac and Windows.

\n

\"Akiee

\n

What makes Akiee different from other task managers?

\n\n

Akiee is at 0.0.1, it's the first beta release. I have been using it for some time now and it is working stable on Arch 64 bit. So take it for a test drive, if you feel task management is broken for you.

\n

Akiee is heavily inspired by the great Org-Mode and my work as a product owner in a software company.

\n

Video

\n

\"Akiee

\n

How to install and use Akiee

\n

Download your binarys: http://rockiger.com/en/akiee

\n

Unpack the content and click on the Akiee file.

\n
", "readmeOriginal": "

\"Akiee

\n# Welcome to Akiee\n

Akiee is a task manager that allows you to organize your task in a new way. It is build with Node-Webkit, Clojurescript and React. It is available for Linux, Mac and Windows.

\n

\"Akiee

\n

What makes Akiee different from other task managers?

\n\n

Akiee is at 0.0.1, it's the first beta release. I have been using it for some time now and it is working stable on Arch 64 bit. So take it for a test drive, if you feel task management is broken for you.

\n

Akiee is heavily inspired by the great Org-Mode and my work as a product owner in a software company.

\n

Video

\n

\"Akiee

\n

How to install and use Akiee

\n

Download your binarys: http://rockiger.com/en/akiee

\n

Unpack the content and click on the Akiee file.

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.637Z" }, "alchemy": { "readmeCleaned": "

\n

\"FOSSA

\n

Introduction

\n

Alchemy is an open-source file converter (built on Electron and React). It also supports operations like merging files together into a pdf. We hope to support more operations and file types soon!

\n

Visit dawnlabs.io/alchemy/ or read our post to learn more.

\n

Features

\n\n

Usage

\n

\"demo\"

\n
    \n
  1. Simply open the app by clicking on the menubar icon, or by hitting ⌘-⇧-8.
  2. \n
  3. Then just drag your image files into the application and select any options.
  4. \n
  5. Finally, click the convert/merge to seamlessly convert them into a variety of formats, or merge them into a pdf or gif. You can also hold while dropping to merge the files into a pdf immediately.
  6. \n
\n

Installation

\n

macOS/Windows

\n

Download the latest release from the Alchemy Releases Page

\n

Linux

\n

We haven't tested Alchemy on Linux yet, but if you're feeling adventurous go right ahead and create a build for your platform of choice.

\n

Contribute

\n

If you have discovered a bug or have a feature suggestion, feel free to create an issue on Github.

\n

If you'd like to make some changes yourself, see the following:

\n
    \n
  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. \n
  3. Build the webpack bundle and start the application: yarn build && yarn start
  4. \n
  5. Help us keep our code clean and safe: npm i --package-lock-only && npm audit fix
  6. \n
  7. Run the tests with: yarn test
  8. \n
  9. Finally, submit a pull request with your changes!
  10. \n
\n

Authors

\n

Alchemy is a project by

\n\n

License

\n

\"FOSSA

\n
", "readmeOriginal": "

\n

\"FOSSA

\n

Introduction

\n

Alchemy is an open-source file converter (built on Electron and React). It also supports operations like merging files together into a pdf. We hope to support more operations and file types soon!

\n

Visit dawnlabs.io/alchemy/ or read our post to learn more.

\n

Features

\n\n

Usage

\n

\"demo\"

\n
    \n
  1. Simply open the app by clicking on the menubar icon, or by hitting ⌘-⇧-8.
  2. \n
  3. Then just drag your image files into the application and select any options.
  4. \n
  5. Finally, click the convert/merge to seamlessly convert them into a variety of formats, or merge them into a pdf or gif. You can also hold while dropping to merge the files into a pdf immediately.
  6. \n
\n

Installation

\n

macOS/Windows

\n

Download the latest release from the Alchemy Releases Page

\n

Linux

\n

We haven't tested Alchemy on Linux yet, but if you're feeling adventurous go right ahead and create a build for your platform of choice.

\n

Contribute

\n

If you have discovered a bug or have a feature suggestion, feel free to create an issue on Github.

\n

If you'd like to make some changes yourself, see the following:

\n
    \n
  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. \n
  3. Build the webpack bundle and start the application: yarn build && yarn start
  4. \n
  5. Help us keep our code clean and safe: npm i --package-lock-only && npm audit fix
  6. \n
  7. Run the tests with: yarn test
  8. \n
  9. Finally, submit a pull request with your changes!
  10. \n
\n

Authors

\n

Alchemy is a project by

\n\n

License

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.671Z" }, "altus": { "readmeCleaned": "

Altus

\n

\"GitHub \"GitHub \"Donate \"ko-fi\"

\n

Altus is an Electron-based WhatsApp client with themes and multiple account support, available for Windows, Mac and Linux!

\n

Features

\n

Altus uses the GitHub-produced Electron framework to wrap around WhatsApp Web and add extra features to it.

\n\n

Feature Requests

\n

In order to submit a feature request, create a new issue with the label enhancement.

\n

Please make sure that you provide a helpful description of your feature request. If possible, try implementing the feature yourself by forking this repository and then creating a pull request.

\n

Screenshots

\n

First Start

\n

\"Altus

\n

Default Theme

\n

\"Altus

\n

\"Dark Plus\" Theme

\n

\"Altus

\n

Support

\n

If you like Altus, consider supporting it by donating using any of the following methods:

\n\n

Acknowledgements

\n

Below is the list of the dependencies that helped me greatly to create this app.

\n

Dark-Whatsapp (vednoc/dark-whatsapp) - used as the base for the dark theme. A really cool project, you should definitely check it out!

\n
\n

Inter rsms/inter - The font used in Altus.

\n
\n

electron-store (sindresorhus/electron-store) - used to store information of settings, tabs and themes

\n

Contributors

\n

Below is the list of contributors who have contributed to Altus by creating a feature or helping fix an issue.

\n

Melvin-Abraham - Helped fix issues #55, #53

\n

Dylan McDougall - PR #10 (Added feature - Confirmation Dialog on close)

\n

Dafnik - PR #5 (Helped fix issue #4)

\n

Marcelo Zapatta - PR #77 (Fixed #23 by adding tray icon support on Linux)

\n

Maicol Battistini - PR #153 (Added Italian translation)

\n

Nicolás González Meneses - PR #163 (Added Spanish translation)

\n

Hugo Rocha de Moura - PR #185 (Added Portuguese(pt) translation)

\n
", "readmeOriginal": "

Altus

\n

\"GitHub \"GitHub \"Donate \"ko-fi\"

\n

Altus is an Electron-based WhatsApp client with themes and multiple account support, available for Windows, Mac and Linux!

\n

Features

\n

Altus uses the GitHub-produced Electron framework to wrap around WhatsApp Web and add extra features to it.

\n\n

Feature Requests

\n

In order to submit a feature request, create a new issue with the label enhancement.

\n

Please make sure that you provide a helpful description of your feature request. If possible, try implementing the feature yourself by forking this repository and then creating a pull request.

\n

Screenshots

\n

First Start

\n

\"Altus

\n

Default Theme

\n

\"Altus

\n

\"Dark Plus\" Theme

\n

\"Altus

\n

Support

\n

If you like Altus, consider supporting it by donating using any of the following methods:

\n\n

Acknowledgements

\n

Below is the list of the dependencies that helped me greatly to create this app.

\n

Dark-Whatsapp (vednoc/dark-whatsapp) - used as the base for the dark theme. A really cool project, you should definitely check it out!

\n
\n

Inter rsms/inter - The font used in Altus.

\n
\n

electron-store (sindresorhus/electron-store) - used to store information of settings, tabs and themes

\n

Contributors

\n

Below is the list of contributors who have contributed to Altus by creating a feature or helping fix an issue.

\n

Melvin-Abraham - Helped fix issues #55, #53

\n

Dylan McDougall - PR #10 (Added feature - Confirmation Dialog on close)

\n

Dafnik - PR #5 (Helped fix issue #4)

\n

Marcelo Zapatta - PR #77 (Fixed #23 by adding tray icon support on Linux)

\n

Maicol Battistini - PR #153 (Added Italian translation)

\n

Nicolás González Meneses - PR #163 (Added Spanish translation)

\n

Hugo Rocha de Moura - PR #185 (Added Portuguese(pt) translation)

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.826Z" }, "aliceandbob-io": { "readmeCleaned": "

aliceandbob.io - Desktop app 🖥️🔐

\n

A free, light and easy to use desktop app to generate PGP key pairs, encrypt and decrypt messages. The desktop app works fully offline to ensure maximum security to the user.

\n

Looking for the online PGP tool from aliceandbob.io instead? Go here or on its GitHub's page.

\n

Download it ⬇️

\n\n

Installation

\n

⚠️ If you install the app on windows, you might get a warning from your anti-virus. It is because Windows builds are not signed. No worries, just add an exception for the app in your anti-virus software.

\n

Features

\n\n

Tech 🔧

\n\n

Library 📚

\n

OpenPGP.js (v4.10.7), a JavaScript implementation of the OpenPGP protocol. Find out more on openpgpjs.org.

\n

Contributing 🍰

\n

Please contribute using GitHub Flow. Refer first to the open issues then create a branch, add commits, and open a pull request!

\n

You can also read the CODE OF CONDUCT.

\n

When forking and cloning the repo, don't forget to do the following:

\n
    \n
  1. Make sure to have node, npm and yarn installed on your machine
  2. \n
  3. run yarn install from the cloned repo.
  4. \n
  5. Then, yarn start to launch aliceandbob.io Desktop App in dev mode.
  6. \n
\n

⚠️ If you get any errors and warnings, install the necessary apps, packages or updates your platform may require.

\n

Find more info regarding the process and the configuration on the electronforge.io page.

\n

Building the desktop app locally 🏗️

\n

If you want to package and build the app on your machine, run yarn make --platform=<target build platform> --arch=<target arch>.\nAs for the platform, you can choose either:

\n\n

As for the arch, you can choose either:

\n\n

See all available options on the electronPackager page.

\n

Note that some specific builds cannot be done from some platforms. Learn more here.

\n

Want to support the app? ❤️

\n

\"Buy

\n

License 📄

\n

Licensed under the MIT License.

\n
", "readmeOriginal": "

aliceandbob.io - Desktop app 🖥️🔐

\n

A free, light and easy to use desktop app to generate PGP key pairs, encrypt and decrypt messages. The desktop app works fully offline to ensure maximum security to the user.

\n

Looking for the online PGP tool from aliceandbob.io instead? Go here or on its GitHub's page.

\n

Download it ⬇️

\n\n

Installation

\n

⚠️ If you install the app on windows, you might get a warning from your anti-virus. It is because Windows builds are not signed. No worries, just add an exception for the app in your anti-virus software.

\n

Features

\n\n

Tech 🔧

\n\n

Library 📚

\n

OpenPGP.js (v4.10.7), a JavaScript implementation of the OpenPGP protocol. Find out more on openpgpjs.org.

\n

Contributing 🍰

\n

Please contribute using GitHub Flow. Refer first to the open issues then create a branch, add commits, and open a pull request!

\n

You can also read the CODE OF CONDUCT.

\n

When forking and cloning the repo, don't forget to do the following:

\n
    \n
  1. Make sure to have node, npm and yarn installed on your machine
  2. \n
  3. run yarn install from the cloned repo.
  4. \n
  5. Then, yarn start to launch aliceandbob.io Desktop App in dev mode.
  6. \n
\n

⚠️ If you get any errors and warnings, install the necessary apps, packages or updates your platform may require.

\n

Find more info regarding the process and the configuration on the electronforge.io page.

\n

Building the desktop app locally 🏗️

\n

If you want to package and build the app on your machine, run yarn make --platform=<target build platform> --arch=<target arch>.\nAs for the platform, you can choose either:

\n\n

As for the arch, you can choose either:

\n\n

See all available options on the electronPackager page.

\n

Note that some specific builds cannot be done from some platforms. Learn more here.

\n

Want to support the app? ❤️

\n

\"Buy

\n

License 📄

\n

Licensed under the MIT License.

\n
", "readmeFetchedAt": "2022-05-10T00:07:38.841Z" }, "android-messages": { "readmeCleaned": "

\n

Android Messages

\n

A clean and native interface to https://messages.google.com/web. Supports dark and light mode on macOS Mojave. This project is 100% open-source and available for macOS. Enjoy!

\n

\"Android

\n

\"Android

\n

Build Instructions

\n

To build a new version of the application, first download nativefier using the following command:

\n
yarn global add nativefier\n
\n

OR

\n
npm install nativefier -g\n
\n

Next, download the required CSS and image assets from one of the releases here located here. For example, you will need the electron.css and logo.png files.

\n

Last, you'll need to run the nativefier command to build your package.

\n
nativefier --name \"Android Messages\" --platform \"osx\" --bounce --counter  --honest --hide-window-frame --disable-dev-tools --title-bar-style \"hidden\" --icon logo.png --inject electron.css \"https://messages.google.com/web\"\n
\n
\n

Note: Nativefier allows for osx, mas, linux, and windows platform types. You can specify this with the --platform flag.

\n
\n
", "readmeOriginal": "

\n

Android Messages

\n

A clean and native interface to https://messages.google.com/web. Supports dark and light mode on macOS Mojave. This project is 100% open-source and available for macOS. Enjoy!

\n

\"Android

\n

\"Android

\n

Build Instructions

\n

To build a new version of the application, first download nativefier using the following command:

\n
yarn global add nativefier\n
\n

OR

\n
npm install nativefier -g\n
\n

Next, download the required CSS and image assets from one of the releases here located here. For example, you will need the electron.css and logo.png files.

\n

Last, you'll need to run the nativefier command to build your package.

\n
nativefier --name \"Android Messages\" --platform \"osx\" --bounce --counter  --honest --hide-window-frame --disable-dev-tools --title-bar-style \"hidden\" --icon logo.png --inject electron.css \"https://messages.google.com/web\"\n
\n
\n

Note: Nativefier allows for osx, mas, linux, and windows platform types. You can specify this with the --platform flag.

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:38.849Z" }, "anote": { "readmeCleaned": "

This project is not maintained anymore...

\n

ANote

\n

A simple opensource note app(support markdown only :) ).

\n

Note: Only support mac for now

\n

\"quick_note.gif\"

\n

\"past_image.gif\"

\n

\"past_html.gif\"

\n

Features

\n\n

Goal

\n

Just need a good note. And want you to enjoy writing.

\n

Know where is my data (~/anote).

\n

Todo

\n\n

Inspired by

\n\n

Download

\n

Go to Release, then you can download anote app.

\n

Install/Build from source

\n
npm install\n\nnpm run build\n\nnpm run package\n
\n

Note: Install electron, babel and electron-packager first, and my node is 6.4

\n

Run from source

\n
npm run develop\n
\n

Tech stack

\n\n

Localization

\n

中文

\n

Join us

\n

If u like it, contact me at wpcreep@gmail.com. We can do it togethor.

\n
", "readmeOriginal": "

This project is not maintained anymore...

\n

ANote

\n

A simple opensource note app(support markdown only :) ).

\n

Note: Only support mac for now

\n

\"quick_note.gif\"

\n

\"past_image.gif\"

\n

\"past_html.gif\"

\n

Features

\n\n

Goal

\n

Just need a good note. And want you to enjoy writing.

\n

Know where is my data (~/anote).

\n

Todo

\n\n

Inspired by

\n\n

Download

\n

Go to Release, then you can download anote app.

\n

Install/Build from source

\n
npm install\n\nnpm run build\n\nnpm run package\n
\n

Note: Install electron, babel and electron-packager first, and my node is 6.4

\n

Run from source

\n
npm run develop\n
\n

Tech stack

\n\n

Localization

\n

中文

\n

Join us

\n

If u like it, contact me at wpcreep@gmail.com. We can do it togethor.

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.036Z" }, "appium": { "readmeCleaned": "

Appium Desktop

\n

\"Build\n\"Crowdin\"

\n

\"Action

\n

Appium Desktop is an app for Mac, Windows, and Linux which gives you the power of the Appium automation server in a beautiful and flexible UI. It is basically a graphical interface for the Appium Server. You can set options, start/stop the server, see logs, etc... You also don't need to use Node/NPM to install Appium, as the Node runtime comes bundled with Appium Desktop.

\n

Note: an inspector UI used to be included with Appium Desktop. It is now its own separate app: Appium Inspector.

\n

Download Appium Desktop

\n

You can always pick up the latest release of the Server GUI at our\nRelease page on\nGitHub.

\n

If you're on Windows or macOS, Appium Desktop will automatically provide you\nwith updated versions of the app when they are released. If you encounter\na problem updating, simply delete or uninstall the app and re-download the\nlatest from the link above.

\n

Note that Appium Desktop is not the same thing as Appium. Appium Desktop is\na graphical frontend to Appium with additional tools. Appium Desktop is\nreleased on its own cadence and has its own versioning system. If you are\nreporting an issue with Appium Desktop, always be sure to include both the\nversion of Appium Desktop and the version of the Appium Server which is in use\n(see below).

\n

If you're on macOS, you will need to install Appium Desktop apps by copying the app\nfrom the downloaded DMG file to your own file system (the best place is the\n\"Applications\" folder). Running Appium from in side the attached DMG itself is\nnot supported, and will not work.

\n

Installing on macOS

\n

If you're using the desktop app on macOS, when you run it you will likely be greeted with some error about the app not being able to be opened, or not verified by Apple, or something similar. The easiest way to get around this is to run xattr -cr on the file you downloaded. So let's say you downloaded Appium-Server-GUI-mac-<version>.dmg and copy Appium Server GUI.app in /Applications inside the disk image. Then you would run xattr -cr \"/Applications/Appium Server GUI.app\" before opening it. The same goes for the zip version (or the .app itself).

\n

The reason for this is that the Appium team does not have a paid Apple developer account and so our app isn't signed by a certificate they recognize, so the OS attempts to prevent it from running. Running the command above gets around this security limitation.

\n

Please try to call codesign --deep --sign - /Applications/Appium\\ Server\\ GUI.app in case you gets a crash in the app starts.

\n

Known Issues

\n\n

Usage Instructions

\n

These instructions assume you are already familiar with Appium and Appium-related concepts. If you\nare new to Appium, please visit appium.io and read our introductory material.\nThey also assume that you have downloaded both the Server GUI and the Inspector apps.

\n

This app provides a convenient way to download and run the Appium automation\nserver, as well as a tool for inspecting elements in Chrome/Safari browser and your Android or iOS application. Its\nvarious capabilities are described in the following sections.

\n

Starting a simple server

\n

\"Start

\n

When you open Appium Desktop, you are greeted with the server start window. The\nbasic option is to start an Appium server with all its defaults and the ability\nto modify the host and port. The start button will also let you know which\nversion of the Appium server you are running, which can be useful when\nreporting issues to the Appium team.

\n

Starting a server with advanced options

\n

\"Start

\n

By clicking on the 'Advanced' tab, you have the ability to set all the server\nflags that are available in Appium. This is for advanced users and should only\nbe modified after consulting the Appium documentation.

\n

Server presets

\n

\"Server

\n

If you use the advanced server options, you have the ability to save\na configuration for later use. Simply save the preset on the 'Advanced' tab,\nand you will subsequently be able to recall and start the server with that\nconfiguration from the 'Preset' tab.

\n

The server console output window

\n

Once you start the server, it will launch on the host and port you specified,\nand open a new window displaying the server log output.

\n

\"Server

\n

This is fairly straightforward and no real interaction is possible, beyond\nusing the button to stop the server. You can also copy-and-paste the logs from\nthis window which is useful in reporting Appium issues.

\n

Reporting Issues and Requesting Features

\n

Appium Desktop is open source, and we use GitHub for issue tracking. Please\nsimply report issues at our issue\ntracker. We will endeavor to\ndetermine whether the issue you are reporting is related to Appium Desktop or\nAppium Server. If it's not related to Appium Desktop specifically, we will\nclose the issue and ask you to open a general Appium issue at Appium's main\nissue tracker. Please, save\nyourselves and us valuable time by getting clear on whether the issue you're\nexperiencing is related to Appium Desktop specifically or instead is a general\nAppium issue. You can do this by seeing whether the issue reproduces with the\nAppium command line server as well. If it does, direct your report to Appium's\nissue tracker.

\n

Have a feature request? Follow the same process and submit an issue to the\nappropriate tracker! (Either here in this repo if the request is specifically\nfor Appium Desktop, or Appium's main tracker if the request is for Appium more\ngenerally.)

\n

Advanced Topics and Troubleshooting

\n

Appium can't detect environment variables on Mac

\n

Appium uses environment variables like ANDROID_HOME as well as relying on\nvarious binaries in your PATH and so on. When running from the command line\nin an environment where you have set these variables appropriately, Appium has\nno problem in picking them up. However, Appium Desktop does not run in a shell\nor a command-line environment, and so by default it does not have access to\nenvironment variables you have set in your shell startup script or profile. To\nwork around this, we use the\nshell-env package to pick up\nenvironment variables defined in your shell. This package only looks in certain\ncommon init scripts, however, like ~/.bashrc, ~/.bash_profile, and\n~/.zshrc. If you set your Appium environment variables in some other way, you\nwill need to create one of these default init scripts and set your environment\nvariables there as well, so that Appium Desktop will successfully pick them up.

\n

Warnings about being on a read-only file system

\n

This probably means you tried to launch Appium Desktop from the downloaded disk\nimage (.dmg file). This is not a supported mode of running Appium Desktop. To\ncorrectly install Appium Desktop, copy the application from the disk image to\nyour local filesystem, to somewhere like /Applications. Then, run the app\nfrom that new location.

\n

Developer Instructions

\n

Want to hack on Appium Desktop? Awesome! Head on over to our Contributing\nDoc for information on how to get a dev environment set up\nand submit changes back to the project.

\n
", "readmeOriginal": "

Appium Desktop

\n

\"Build\n\"Crowdin\"

\n

\"Action

\n

Appium Desktop is an app for Mac, Windows, and Linux which gives you the power of the Appium automation server in a beautiful and flexible UI. It is basically a graphical interface for the Appium Server. You can set options, start/stop the server, see logs, etc... You also don't need to use Node/NPM to install Appium, as the Node runtime comes bundled with Appium Desktop.

\n

Note: an inspector UI used to be included with Appium Desktop. It is now its own separate app: Appium Inspector.

\n

Download Appium Desktop

\n

You can always pick up the latest release of the Server GUI at our\nRelease page on\nGitHub.

\n

If you're on Windows or macOS, Appium Desktop will automatically provide you\nwith updated versions of the app when they are released. If you encounter\na problem updating, simply delete or uninstall the app and re-download the\nlatest from the link above.

\n

Note that Appium Desktop is not the same thing as Appium. Appium Desktop is\na graphical frontend to Appium with additional tools. Appium Desktop is\nreleased on its own cadence and has its own versioning system. If you are\nreporting an issue with Appium Desktop, always be sure to include both the\nversion of Appium Desktop and the version of the Appium Server which is in use\n(see below).

\n

If you're on macOS, you will need to install Appium Desktop apps by copying the app\nfrom the downloaded DMG file to your own file system (the best place is the\n\"Applications\" folder). Running Appium from in side the attached DMG itself is\nnot supported, and will not work.

\n

Installing on macOS

\n

If you're using the desktop app on macOS, when you run it you will likely be greeted with some error about the app not being able to be opened, or not verified by Apple, or something similar. The easiest way to get around this is to run xattr -cr on the file you downloaded. So let's say you downloaded Appium-Server-GUI-mac-<version>.dmg and copy Appium Server GUI.app in /Applications inside the disk image. Then you would run xattr -cr \"/Applications/Appium Server GUI.app\" before opening it. The same goes for the zip version (or the .app itself).

\n

The reason for this is that the Appium team does not have a paid Apple developer account and so our app isn't signed by a certificate they recognize, so the OS attempts to prevent it from running. Running the command above gets around this security limitation.

\n

Please try to call codesign --deep --sign - /Applications/Appium\\ Server\\ GUI.app in case you gets a crash in the app starts.

\n

Known Issues

\n\n

Usage Instructions

\n

These instructions assume you are already familiar with Appium and Appium-related concepts. If you\nare new to Appium, please visit appium.io and read our introductory material.\nThey also assume that you have downloaded both the Server GUI and the Inspector apps.

\n

This app provides a convenient way to download and run the Appium automation\nserver, as well as a tool for inspecting elements in Chrome/Safari browser and your Android or iOS application. Its\nvarious capabilities are described in the following sections.

\n

Starting a simple server

\n

\"Start

\n

When you open Appium Desktop, you are greeted with the server start window. The\nbasic option is to start an Appium server with all its defaults and the ability\nto modify the host and port. The start button will also let you know which\nversion of the Appium server you are running, which can be useful when\nreporting issues to the Appium team.

\n

Starting a server with advanced options

\n

\"Start

\n

By clicking on the 'Advanced' tab, you have the ability to set all the server\nflags that are available in Appium. This is for advanced users and should only\nbe modified after consulting the Appium documentation.

\n

Server presets

\n

\"Server

\n

If you use the advanced server options, you have the ability to save\na configuration for later use. Simply save the preset on the 'Advanced' tab,\nand you will subsequently be able to recall and start the server with that\nconfiguration from the 'Preset' tab.

\n

The server console output window

\n

Once you start the server, it will launch on the host and port you specified,\nand open a new window displaying the server log output.

\n

\"Server

\n

This is fairly straightforward and no real interaction is possible, beyond\nusing the button to stop the server. You can also copy-and-paste the logs from\nthis window which is useful in reporting Appium issues.

\n

Reporting Issues and Requesting Features

\n

Appium Desktop is open source, and we use GitHub for issue tracking. Please\nsimply report issues at our issue\ntracker. We will endeavor to\ndetermine whether the issue you are reporting is related to Appium Desktop or\nAppium Server. If it's not related to Appium Desktop specifically, we will\nclose the issue and ask you to open a general Appium issue at Appium's main\nissue tracker. Please, save\nyourselves and us valuable time by getting clear on whether the issue you're\nexperiencing is related to Appium Desktop specifically or instead is a general\nAppium issue. You can do this by seeing whether the issue reproduces with the\nAppium command line server as well. If it does, direct your report to Appium's\nissue tracker.

\n

Have a feature request? Follow the same process and submit an issue to the\nappropriate tracker! (Either here in this repo if the request is specifically\nfor Appium Desktop, or Appium's main tracker if the request is for Appium more\ngenerally.)

\n

Advanced Topics and Troubleshooting

\n

Appium can't detect environment variables on Mac

\n

Appium uses environment variables like ANDROID_HOME as well as relying on\nvarious binaries in your PATH and so on. When running from the command line\nin an environment where you have set these variables appropriately, Appium has\nno problem in picking them up. However, Appium Desktop does not run in a shell\nor a command-line environment, and so by default it does not have access to\nenvironment variables you have set in your shell startup script or profile. To\nwork around this, we use the\nshell-env package to pick up\nenvironment variables defined in your shell. This package only looks in certain\ncommon init scripts, however, like ~/.bashrc, ~/.bash_profile, and\n~/.zshrc. If you set your Appium environment variables in some other way, you\nwill need to create one of these default init scripts and set your environment\nvariables there as well, so that Appium Desktop will successfully pick them up.

\n

Warnings about being on a read-only file system

\n

This probably means you tried to launch Appium Desktop from the downloaded disk\nimage (.dmg file). This is not a supported mode of running Appium Desktop. To\ncorrectly install Appium Desktop, copy the application from the disk image to\nyour local filesystem, to somewhere like /Applications. Then, run the app\nfrom that new location.

\n

Developer Instructions

\n

Want to hack on Appium Desktop? Awesome! Head on over to our Contributing\nDoc for information on how to get a dev environment set up\nand submit changes back to the project.

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.099Z" }, "anotherredisdesktopmanager": { "readmeCleaned": "

\n

Another Redis Desktop Manager

\n
\n
\n

🚀🚀🚀 A faster, better and more stable redis desktop manager, compatible with Linux, windows, mac. What's more, it won't crash when loading massive keys.

\n
\n

\"MIT\"\n\"Download\"\n\"Download\n\"shiboooo\"\n\"FOSSA\n

\n

简体中文

\n

Windows

\n\n

Linux

\n\n

Mac

\n\n\n

Enjoy!

\n

\"redis

\n

\"redis

\n

\"redis

\n

\"redis

\n

Feature Log

\n\n

Dev Build

\n

Linux Or Mac

\n
# clone code\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\ncd AnotherRedisDesktopManager\n\n# install dependencies\nnpm install\n\n# if download electron failed during installing, use this command\n# ELECTRON_MIRROR=\"https://npm.taobao.org/mirrors/electron/\" npm install\n\n# serve with hot reload at localhost:9988\nnpm start\n\n\n# after the previous step is completed to 100%, open another tab, build up a desktop client\nnpm run electron
\n

If linux errors like this:

\n
# if error like this\n../src/FontManagerLinux.cc:1:35: fatal error: fontconfig/fontconfig.h: No such file or directory\n\n# then try this\nsudo apt install libfontconfig1-dev
\n

Windows

\n
# install build tools for the first time, just execute once\nnpm install -g windows-build-tools\n\n# clone code\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\ncd AnotherRedisDesktopManager\n\n# install dependencies, 32-bit or 64-bit all use win32\nnpm install --platform=win32\n\n# if download electron failed during installing, use this command\n# npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/\n# npm install --platform=win32\n\n# serve with hot reload at localhost:9988\nnpm start\n\n\n# after the previous step is completed to 100%, open another tab, build up a desktop client\nnpm run electron
\n

Build Package

\n
# prepare before package\nnpm run pack:prepare\n\n# build package on respective platforms\n# on windows build 64bit package\nnpm run pack:win\n# on windows build 32bit package\nnpm run pack:win32\n\n# on mac\nnpm run pack:mac\n\n# on linux\nnpm run pack:linux
\n

Sponsor

\n\n

Contributors

\n

This project exists thanks to all the people who contribute.\n\"contributors\"\n\"backers\"

\n

License

\n

MIT

\n

Support

\n

goanother.com   Producthunt   wb@shiboooo   Download Analysis

\n
", "readmeOriginal": "

\n

Another Redis Desktop Manager

\n
\n
\n

🚀🚀🚀 A faster, better and more stable redis desktop manager, compatible with Linux, windows, mac. What's more, it won't crash when loading massive keys.

\n
\n

\"MIT\"\n\"Download\"\n\"Download\n\"shiboooo\"\n\"FOSSA\n

\n

简体中文

\n

Windows

\n\n

Linux

\n\n

Mac

\n\n\n

Enjoy!

\n

\"redis

\n

\"redis

\n

\"redis

\n

\"redis

\n

Feature Log

\n\n

Dev Build

\n

Linux Or Mac

\n
# clone code\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\ncd AnotherRedisDesktopManager\n\n# install dependencies\nnpm install\n\n# if download electron failed during installing, use this command\n# ELECTRON_MIRROR=\"https://npm.taobao.org/mirrors/electron/\" npm install\n\n# serve with hot reload at localhost:9988\nnpm start\n\n\n# after the previous step is completed to 100%, open another tab, build up a desktop client\nnpm run electron
\n

If linux errors like this:

\n
# if error like this\n../src/FontManagerLinux.cc:1:35: fatal error: fontconfig/fontconfig.h: No such file or directory\n\n# then try this\nsudo apt install libfontconfig1-dev
\n

Windows

\n
# install build tools for the first time, just execute once\nnpm install -g windows-build-tools\n\n# clone code\ngit clone https://github.com/qishibo/AnotherRedisDesktopManager.git --depth=1\ncd AnotherRedisDesktopManager\n\n# install dependencies, 32-bit or 64-bit all use win32\nnpm install --platform=win32\n\n# if download electron failed during installing, use this command\n# npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/\n# npm install --platform=win32\n\n# serve with hot reload at localhost:9988\nnpm start\n\n\n# after the previous step is completed to 100%, open another tab, build up a desktop client\nnpm run electron
\n

Build Package

\n
# prepare before package\nnpm run pack:prepare\n\n# build package on respective platforms\n# on windows build 64bit package\nnpm run pack:win\n# on windows build 32bit package\nnpm run pack:win32\n\n# on mac\nnpm run pack:mac\n\n# on linux\nnpm run pack:linux
\n

Sponsor

\n\n

Contributors

\n

This project exists thanks to all the people who contribute.\n\"contributors\"\n\"backers\"

\n

License

\n

MIT

\n

Support

\n

goanother.com   Producthunt   wb@shiboooo   Download Analysis

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.116Z" }, "altair": { "readmeCleaned": "
\n

\"Crowdin\"

\n

\"Chrome\n\"Mozilla\n\"npm\"\n\"Altair\n\"GitHub\n\"Github

\n

\"Backers \"Sponsors

\n

\"Maintenance\"

\n

Deploying?

\n
\n\"Altair\n

Altair GraphQL Client

\n
\n

\"set

\n

Altair is a beautiful feature-rich GraphQL Client IDE for all platforms. Available for MacOS, Windows, Linux, Chrome, Firefox.\nIt enables you interact with any GraphQL server you are authorized to access from any platform you are on.

\n

-- the GraphQL IDE that does not require running a web server

\n

Features

\n

Altair provides several features that make developing with GraphQL very efficient and friendly. These features include:

\n\n

See more here: https://altair.sirmuel.design/docs/features

\n

Missing feature?

\n

Is there a feature that is missing? You can let us know by creating a new issue or you can add the feature by creating a Pull Request.

\n

Sponsors

\n

Thanks to all our sponsors for sponsoring this project! Do you use Altair GraphQL client at your company? Consider supporting this project as a major sponsor (primary, gold, silver or bronze) on open collective.

\n

Primary Sponsor

\n

\"XKojiMedia\"

\n

To be a primary sponsor, reach out to us.

\n

Gold Sponsor

\n

Become a Gold sponsor of Altair to appear here.

\n\n\n

Usage

\n

For mac users, you can also install using cask:

\n
$ brew install --cask altair-graphql-client\n
\n

For linux users, you can also install using snap:

\n
$ snap install altair\n
\n

For arch linux users, an AUR package aur/altair exists:

\n
$ yay -S altair\n
\n

For windows users, you can install using appget:

\n
$ appget install altair-graphql\n
\n

or chocolatey:

\n
$ choco install altair-graphql\n
\n

Usage with express

\n

You can use altair with an express server using altair-express-middleware. Read more about how to use this here.

\n

Usage with koa

\n

You can use altair with a koa server using altair-koa-middleware. Read more about how to use this here.

\n

Usage with Fastify

\n

You can use altair with a Fastify server using altair-fastify-plugin. Read more about how to use this here.

\n

Usage with Laravel (PHP)

\n

You can use altair in a Laravel project using xkojimedia/laravel-altair-graphql:

\n
$ composer require xkojimedia/laravel-altair-graphql
\n

You can find other available integrations here: https://altair.sirmuel.design/docs/integrations

\n

Configuration Options

\n

When using a custom instance of Altair, there are couple of options you can use to customize Altair based on your needs:

\n\n
{\n  'X-GraphQL-Token': 'asd7-237s-2bdk-nsdk4'\n}
\n\n
{\n  base: {\n    title: 'Environment',\n    variables: {}\n  },\n  subEnvironments: [\n    {\n      title: 'sub-1',\n      variables: {}\n    }\n  ]\n}
\n\n

Example usage:

\n
AltairGraphQL.init({\n  endpointURL: 'https://www.example.com/graphql',\n  initialVariables: '{ \"username\": \"imolorhe\" }',\n});
\n

Supported Browsers

\n

Altair has been tested in the latest versions of Google Chrome and Mozilla Firefox. It might not work as expected in other browsers like Safari and Edge.

\n

Community 🙏🏾

\n

You can learn more about how to get help here.

\n

Contributing

\n

Would you like to help with translations? https://altair-gql-translate.surge.sh/ Click here.

\n
\n

\"Donate

\n
\n

\n

Learn more about contributing to Altair here and here.

\n

Development

\n

Read more here.

\n

License

\n

\"FOSSA

\n
", "readmeOriginal": "
\n

\"Crowdin\"

\n

\"Chrome\n\"Mozilla\n\"npm\"\n\"Altair\n\"GitHub\n\"Github

\n

\"Backers \"Sponsors

\n

\"Maintenance\"

\n

Deploying?

\n
\n\"Altair\n

Altair GraphQL Client

\n
\n

\"set

\n

Altair is a beautiful feature-rich GraphQL Client IDE for all platforms. Available for MacOS, Windows, Linux, Chrome, Firefox.\nIt enables you interact with any GraphQL server you are authorized to access from any platform you are on.

\n

-- the GraphQL IDE that does not require running a web server

\n

Features

\n

Altair provides several features that make developing with GraphQL very efficient and friendly. These features include:

\n\n

See more here: https://altair.sirmuel.design/docs/features

\n

Missing feature?

\n

Is there a feature that is missing? You can let us know by creating a new issue or you can add the feature by creating a Pull Request.

\n

Sponsors

\n

Thanks to all our sponsors for sponsoring this project! Do you use Altair GraphQL client at your company? Consider supporting this project as a major sponsor (primary, gold, silver or bronze) on open collective.

\n

Primary Sponsor

\n

\"XKojiMedia\"

\n

To be a primary sponsor, reach out to us.

\n

Gold Sponsor

\n

Become a Gold sponsor of Altair to appear here.

\n\n\n

Usage

\n

For mac users, you can also install using cask:

\n
$ brew install --cask altair-graphql-client\n
\n

For linux users, you can also install using snap:

\n
$ snap install altair\n
\n

For arch linux users, an AUR package aur/altair exists:

\n
$ yay -S altair\n
\n

For windows users, you can install using appget:

\n
$ appget install altair-graphql\n
\n

or chocolatey:

\n
$ choco install altair-graphql\n
\n

Usage with express

\n

You can use altair with an express server using altair-express-middleware. Read more about how to use this here.

\n

Usage with koa

\n

You can use altair with a koa server using altair-koa-middleware. Read more about how to use this here.

\n

Usage with Fastify

\n

You can use altair with a Fastify server using altair-fastify-plugin. Read more about how to use this here.

\n

Usage with Laravel (PHP)

\n

You can use altair in a Laravel project using xkojimedia/laravel-altair-graphql:

\n
$ composer require xkojimedia/laravel-altair-graphql
\n

You can find other available integrations here: https://altair.sirmuel.design/docs/integrations

\n

Configuration Options

\n

When using a custom instance of Altair, there are couple of options you can use to customize Altair based on your needs:

\n\n
{\n  'X-GraphQL-Token': 'asd7-237s-2bdk-nsdk4'\n}
\n\n
{\n  base: {\n    title: 'Environment',\n    variables: {}\n  },\n  subEnvironments: [\n    {\n      title: 'sub-1',\n      variables: {}\n    }\n  ]\n}
\n\n

Example usage:

\n
AltairGraphQL.init({\n  endpointURL: 'https://www.example.com/graphql',\n  initialVariables: '{ \"username\": \"imolorhe\" }',\n});
\n

Supported Browsers

\n

Altair has been tested in the latest versions of Google Chrome and Mozilla Firefox. It might not work as expected in other browsers like Safari and Edge.

\n

Community 🙏🏾

\n

You can learn more about how to get help here.

\n

Contributing

\n

Would you like to help with translations? https://altair-gql-translate.surge.sh/ Click here.

\n
\n

\"Donate

\n
\n

\n

Learn more about contributing to Altair here and here.

\n

Development

\n

Read more here.

\n

License

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.307Z" }, "argo": { "readmeCleaned": "

ARGO

\n

\"NPM\n\"\"

\n

Argo is an open source trading platform, connecting directly with OANDA\nthrough the powerful API to develop trading strategies.

\n

Installation

\n

After installing Node.js (required), you can install Argo.

\n\n
$ npm install -g argo-trading\n
\n

Starting Web App

\n
$ argo-trading\n
\n

Eventually point your web brower to http://localhost:8000.

\n

Finally you need to point to the host and port defined by ARGO_PORT environment variable (8000 is the default) where you started argo

\n

Starting Standalone App

\n
$ argo-trading-standalone\n
\n

Tested locally with Node.js 10.x, hyperHTML 2.x.

\n

Basic features

\n\n

Advanced features

\n\n

Documentation

\n

Contributing

\n

Disclaimer

\n

NOT INVESTMENT ADVICE AND WILL LOSE LOTS OF MONEY SO PROCEED WITH CAUTION.

\n
", "readmeOriginal": "

ARGO

\n

\"NPM\n\"\"

\n

Argo is an open source trading platform, connecting directly with OANDA\nthrough the powerful API to develop trading strategies.

\n

Installation

\n

After installing Node.js (required), you can install Argo.

\n\n
$ npm install -g argo-trading\n
\n

Starting Web App

\n
$ argo-trading\n
\n

Eventually point your web brower to http://localhost:8000.

\n

Finally you need to point to the host and port defined by ARGO_PORT environment variable (8000 is the default) where you started argo

\n

Starting Standalone App

\n
$ argo-trading-standalone\n
\n

Tested locally with Node.js 10.x, hyperHTML 2.x.

\n

Basic features

\n\n

Advanced features

\n\n

Documentation

\n

Contributing

\n

Disclaimer

\n

NOT INVESTMENT ADVICE AND WILL LOSE LOTS OF MONEY SO PROCEED WITH CAUTION.

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.354Z" }, "apple-music-electron": { "readmeCleaned": "

\n \"Banner\"

\n

\n

\n \"Migration\"\n

\n

⚠️ AME has reached its EOL. Cider is our newest project focused on Apple Music, see it here. ⚠️

\n
\n

\n Credits \n

\n

\"Contributors\"

\n

\n
\n Project Supporters \n
\n
\n \"JetBrains\"\n \"MacStadium\"\n

\n
", "readmeOriginal": "

\n \"Banner\"

\n

\n

\n \"Migration\"\n

\n

⚠️ AME has reached its EOL. Cider is our newest project focused on Apple Music, see it here. ⚠️

\n
\n

\n Credits \n

\n

\"Contributors\"

\n

\n
\n Project Supporters \n
\n
\n \"JetBrains\"\n \"MacStadium\"\n

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.466Z" }, "antares": { "readmeCleaned": "
\n

\n \n

\n\n

Antares SQL Client

\n

\"GitHub \"GitHub\" \"Build \"antares\" \"antares\" \"Twitter \"Plant

\n

Antares is an SQL client based on Electron.js and Vue.js that aims to become a useful tool, especially for developers.
\nOur target is to support as many databases as possible, and all major operating systems, including the ARM versions.

\n

At the moment this application is in development state, many features will come in future updates, and supports only MySQL/MariaDB, PostgreSQL and SQLite.
\nAt the moment, however, there are all the features necessary to have a pleasant database management experience, so give it a chance and send us your feedback, we would really appreciate it.
\nWe are actively working on it, hoping to provide new cool features, improvements and fixes as soon as possible.

\n

🔗 If you are curious to try Antares you can download and install the latest release.
\n👁 To stay tuned for new releases follow Antares SQL on Twitter.
\n🌟 Don't forget to leave a star if you appreciate this project.

\n

Current key features

\n\n

Philosophy

\n

Why are we developing an SQL client when there are a lot of them on the market?
\nThe main goal is to develop a forever 100% free (without paid premium feature), full featured, as possible community driven, cross platform and open source alternative, empowered by JavaScript ecosystem.
\nA modern application created with minimalism and semplicity in mind, with features in the right places, not hundreds of tiny buttons, nested tabs or submenu; productivity comes first.

\n

Installation

\n

Based on your operating system you can have one or more distribution formats to choose based on your preferences.
\nSince Antares SQL is a free software we haven't a budget to spend in annual licenses or certificates. This can result that on some platforms you need some additional passages to install this app.

\n

Linux

\n

On Linux you can simply download and run .AppImage distributions, install from Snap Store or from AUR.

\n

Windows

\n

On Windows you can choose between Microsoft Store and download .exe distribution. The latter lacks of a certificate, so to install you need to click on \"More info\" and then \"Run anyway\" on SmartScreen prompt.

\n

MacOS

\n

On macOS you can run .dmg distribution following this guide to install apps from unknown developers.

\n

Download

\n

\"Get \"Get \"Get
\n🚀 Other Downloads

\n

Coming soon

\n

This is a roadmap with major features will come in near future.

\n\n

Currently supported

\n

Databases

\n\n

Operating Systems

\n

• x64

\n\n

• ARM

\n\n

How to contribute

\n\n

Contributors

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
Fabio Di Stasio

💻 🌍 📖
\"\"
Giulio Ganci

💻
\"\"
Christian Ratz

💻 🌍
\"\"
Giuseppe Gigliotti

🌍
\"\"
Mohd-PH

🌍
\"\"
hongkfui

🌍
\"\"
Robin

🌍
\"\"
Daniel Eduardo

🌍
\"\"
Ngô Quốc Đạt

🌍
\"\"
Isamu Sugiura

🌍
\"\"
Riccardo Sacchetto

📦
\"\"
Kilian Stallinger

💻
\"\"
文杰

💻
\"\"
goYou

🌍
\"\"
Topollo

💻
\"\"
Cleverson

🌍
\"\"
fred

🌍
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeOriginal": "
\n

\n \n

\n\n

Antares SQL Client

\n

\"GitHub \"GitHub\" \"Build \"antares\" \"antares\" \"Twitter \"Plant

\n

Antares is an SQL client based on Electron.js and Vue.js that aims to become a useful tool, especially for developers.
\nOur target is to support as many databases as possible, and all major operating systems, including the ARM versions.

\n

At the moment this application is in development state, many features will come in future updates, and supports only MySQL/MariaDB, PostgreSQL and SQLite.
\nAt the moment, however, there are all the features necessary to have a pleasant database management experience, so give it a chance and send us your feedback, we would really appreciate it.
\nWe are actively working on it, hoping to provide new cool features, improvements and fixes as soon as possible.

\n

🔗 If you are curious to try Antares you can download and install the latest release.
\n👁 To stay tuned for new releases follow Antares SQL on Twitter.
\n🌟 Don't forget to leave a star if you appreciate this project.

\n

Current key features

\n\n

Philosophy

\n

Why are we developing an SQL client when there are a lot of them on the market?
\nThe main goal is to develop a forever 100% free (without paid premium feature), full featured, as possible community driven, cross platform and open source alternative, empowered by JavaScript ecosystem.
\nA modern application created with minimalism and semplicity in mind, with features in the right places, not hundreds of tiny buttons, nested tabs or submenu; productivity comes first.

\n

Installation

\n

Based on your operating system you can have one or more distribution formats to choose based on your preferences.
\nSince Antares SQL is a free software we haven't a budget to spend in annual licenses or certificates. This can result that on some platforms you need some additional passages to install this app.

\n

Linux

\n

On Linux you can simply download and run .AppImage distributions, install from Snap Store or from AUR.

\n

Windows

\n

On Windows you can choose between Microsoft Store and download .exe distribution. The latter lacks of a certificate, so to install you need to click on \"More info\" and then \"Run anyway\" on SmartScreen prompt.

\n

MacOS

\n

On macOS you can run .dmg distribution following this guide to install apps from unknown developers.

\n

Download

\n

\"Get \"Get \"Get
\n🚀 Other Downloads

\n

Coming soon

\n

This is a roadmap with major features will come in near future.

\n\n

Currently supported

\n

Databases

\n\n

Operating Systems

\n

• x64

\n\n

• ARM

\n\n

How to contribute

\n\n

Contributors

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
Fabio Di Stasio

💻 🌍 📖
\"\"
Giulio Ganci

💻
\"\"
Christian Ratz

💻 🌍
\"\"
Giuseppe Gigliotti

🌍
\"\"
Mohd-PH

🌍
\"\"
hongkfui

🌍
\"\"
Robin

🌍
\"\"
Daniel Eduardo

🌍
\"\"
Ngô Quốc Đạt

🌍
\"\"
Isamu Sugiura

🌍
\"\"
Riccardo Sacchetto

📦
\"\"
Kilian Stallinger

💻
\"\"
文杰

💻
\"\"
goYou

🌍
\"\"
Topollo

💻
\"\"
Cleverson

🌍
\"\"
fred

🌍
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.475Z" }, "atom": { "readmeCleaned": "

Atom

\n

\"Build

\n

Atom is a hackable text editor for the 21st century, built on Electron, and based on everything we love about our favorite editors. We designed it to be deeply customizable, but still approachable using the default configuration.

\n

\"Atom\"

\n

\"Atom

\n

Visit atom.io to learn more or visit the Atom forum.

\n

Follow @AtomEditor on Twitter for important\nannouncements.

\n

This project adheres to the Contributor Covenant code of conduct.\nBy participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.

\n

Documentation

\n

If you want to read about using Atom or developing packages in Atom, the Atom Flight Manual is free and available online. You can find the source to the manual in atom/flight-manual.atom.io.

\n

The API reference for developing packages is also documented on Atom.io.

\n

Installing

\n

Prerequisites

\n\n

macOS

\n

Download the latest Atom release.

\n

Atom will automatically update when a new release is available.

\n

Windows

\n

Download the latest Atom installer. AtomSetup.exe is 32-bit. For 64-bit systems, download AtomSetup-x64.exe.

\n

Atom will automatically update when a new release is available.

\n

You can also download atom-windows.zip (32-bit) or atom-x64-windows.zip (64-bit) from the releases page.\nThe .zip version will not automatically update.

\n

Using Chocolatey? Run cinst Atom to install the latest version of Atom.

\n

Linux

\n

Atom is only available for 64-bit Linux systems.

\n

Configure your distribution's package manager to install and update Atom by following the Linux installation instructions in the Flight Manual. You will also find instructions on how to install Atom's official Linux packages without using a package repository, though you will not get automatic updates after installing Atom this way.

\n

Archive extraction

\n

An archive is available for people who don't want to install atom as root.

\n

This version enables you to install multiple Atom versions in parallel. It has been built on Ubuntu 64-bit,\nbut should be compatible with other Linux distributions.

\n
    \n
  1. Install dependencies (on Ubuntu):
  2. \n
\n
sudo apt install git libasound2 libcurl4 libgbm1 libgcrypt20 libgtk-3-0 libnotify4 libnss3 libglib2.0-bin xdg-utils libx11-xcb1 libxcb-dri3-0 libxss1 libxtst6 libxkbfile1
\n
    \n
  1. Download atom-amd64.tar.gz from the Atom releases page.
  2. \n
  3. Run tar xf atom-amd64.tar.gz in the directory where you want to extract the Atom folder.
  4. \n
  5. Launch Atom using the installed atom command from the newly extracted directory.
  6. \n
\n

The Linux version does not currently automatically update so you will need to\nrepeat these steps to upgrade to future releases.

\n

Building

\n\n

Discussion

\n\n

License

\n

MIT

\n

When using the Atom or other GitHub logos, be sure to follow the GitHub logo guidelines.

\n
", "readmeOriginal": "

Atom

\n

\"Build

\n

Atom is a hackable text editor for the 21st century, built on Electron, and based on everything we love about our favorite editors. We designed it to be deeply customizable, but still approachable using the default configuration.

\n

\"Atom\"

\n

\"Atom

\n

Visit atom.io to learn more or visit the Atom forum.

\n

Follow @AtomEditor on Twitter for important\nannouncements.

\n

This project adheres to the Contributor Covenant code of conduct.\nBy participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.

\n

Documentation

\n

If you want to read about using Atom or developing packages in Atom, the Atom Flight Manual is free and available online. You can find the source to the manual in atom/flight-manual.atom.io.

\n

The API reference for developing packages is also documented on Atom.io.

\n

Installing

\n

Prerequisites

\n\n

macOS

\n

Download the latest Atom release.

\n

Atom will automatically update when a new release is available.

\n

Windows

\n

Download the latest Atom installer. AtomSetup.exe is 32-bit. For 64-bit systems, download AtomSetup-x64.exe.

\n

Atom will automatically update when a new release is available.

\n

You can also download atom-windows.zip (32-bit) or atom-x64-windows.zip (64-bit) from the releases page.\nThe .zip version will not automatically update.

\n

Using Chocolatey? Run cinst Atom to install the latest version of Atom.

\n

Linux

\n

Atom is only available for 64-bit Linux systems.

\n

Configure your distribution's package manager to install and update Atom by following the Linux installation instructions in the Flight Manual. You will also find instructions on how to install Atom's official Linux packages without using a package repository, though you will not get automatic updates after installing Atom this way.

\n

Archive extraction

\n

An archive is available for people who don't want to install atom as root.

\n

This version enables you to install multiple Atom versions in parallel. It has been built on Ubuntu 64-bit,\nbut should be compatible with other Linux distributions.

\n
    \n
  1. Install dependencies (on Ubuntu):
  2. \n
\n
sudo apt install git libasound2 libcurl4 libgbm1 libgcrypt20 libgtk-3-0 libnotify4 libnss3 libglib2.0-bin xdg-utils libx11-xcb1 libxcb-dri3-0 libxss1 libxtst6 libxkbfile1
\n
    \n
  1. Download atom-amd64.tar.gz from the Atom releases page.
  2. \n
  3. Run tar xf atom-amd64.tar.gz in the directory where you want to extract the Atom folder.
  4. \n
  5. Launch Atom using the installed atom command from the newly extracted directory.
  6. \n
\n

The Linux version does not currently automatically update so you will need to\nrepeat these steps to upgrade to future releases.

\n

Building

\n\n

Discussion

\n\n

License

\n

MIT

\n

When using the Atom or other GitHub logos, be sure to follow the GitHub logo guidelines.

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.573Z" }, "arizona": { "readmeCleaned": "

Arizona

\n

Arizona is a fully customizable personal assistant and Spotify miniplayer. It'll help you google stuff. It's the best.

\n

\"Picture

\n

Official Beta Release

\n

Arizona is now in open beta! Get the latest release for Windows or Mac at https://github.com/strnadchristopher/arizona/releases/tag/v1.0.0-beta

\n

Check us out on Itch.io

\n

https://arizona.itch.io/arizona

\n

Shortcuts

\n\n

SPOTIFY UPDATE

\n

Spotify support is being added in version 0.0.11! If \"spotifyMiniPlayer\" is set to true in your config, an authorization window will pop up. And it should be as simple as any other oAuth situation.

\n

REQUIRES SPOTIFY PREMIUM ACCOUNT

\n

New Commands

\n\n

Spotify Mini Player

\n

If enabled, instead of the app closing when you click away, it will turn into a miniplayer.

\n

Official Discord

\n

https://discord.gg/6VcgEUR\nStop by and offer bug reports or suggestions.

\n

Description

\n

Arizona is meant to be a customizable open replacement for desktop assistants like Cortana and Siri. You can use any mp4 as your assistant's avatar. It's meant to be completely customizable to your liking, and because it's all written in HTML and CSS, that's completely easy.

\n

New Features

\n

Themes

\n

Copy the folder of another theme in your 'themes' directory and rename it to whatever you want to call your theme. Then, in config.json, set your theme to the name of the folder you created. You can add whatever css you want to the custom css file.

\n

Background Video

\n

Place a mp4 in the directory of your theme with the name 'bg.mp4'. Then just makes sure \"backgroundVideo\" is set to true in config.json

\n

Python Scripts

\n

Run Python scripts by placing them in your 'scripts' folder and just type the name of the python file to run. (Must have python installed)

\n

Getting Started

\n

Dependencies

\n

Installing

\n\n
npm install arizona\n
\n\n
npm install\n
\n

Executing program

\n\n
npm start\n
\n

Customizing

\n

See Config.json to change settings like your name, your assistant's name, and more.\nTo Add or remove inputs for conversation, edit the 'inputs.txt' and 'responses.txt'\nEvery line in 'inputs.txt' corresponds to the same line in 'responses.txt'. Separate alternate versions of inputs or responses with a '/'

\n

Commands

\n

All Platforms

\n\n

TO-DO

\n\n

Authors

\n

Christopher Strnad\nstrnadchristopher@gmail.com

\n

License

\n

This project is licensed under the GNU General Public License - see the LICENSE.md file for details

\n
", "readmeOriginal": "

Arizona

\n

Arizona is a fully customizable personal assistant and Spotify miniplayer. It'll help you google stuff. It's the best.

\n

\"Picture

\n

Official Beta Release

\n

Arizona is now in open beta! Get the latest release for Windows or Mac at https://github.com/strnadchristopher/arizona/releases/tag/v1.0.0-beta

\n

Check us out on Itch.io

\n

https://arizona.itch.io/arizona

\n

Shortcuts

\n\n

SPOTIFY UPDATE

\n

Spotify support is being added in version 0.0.11! If \"spotifyMiniPlayer\" is set to true in your config, an authorization window will pop up. And it should be as simple as any other oAuth situation.

\n

REQUIRES SPOTIFY PREMIUM ACCOUNT

\n

New Commands

\n\n

Spotify Mini Player

\n

If enabled, instead of the app closing when you click away, it will turn into a miniplayer.

\n

Official Discord

\n

https://discord.gg/6VcgEUR\nStop by and offer bug reports or suggestions.

\n

Description

\n

Arizona is meant to be a customizable open replacement for desktop assistants like Cortana and Siri. You can use any mp4 as your assistant's avatar. It's meant to be completely customizable to your liking, and because it's all written in HTML and CSS, that's completely easy.

\n

New Features

\n

Themes

\n

Copy the folder of another theme in your 'themes' directory and rename it to whatever you want to call your theme. Then, in config.json, set your theme to the name of the folder you created. You can add whatever css you want to the custom css file.

\n

Background Video

\n

Place a mp4 in the directory of your theme with the name 'bg.mp4'. Then just makes sure \"backgroundVideo\" is set to true in config.json

\n

Python Scripts

\n

Run Python scripts by placing them in your 'scripts' folder and just type the name of the python file to run. (Must have python installed)

\n

Getting Started

\n

Dependencies

\n

Installing

\n\n
npm install arizona\n
\n\n
npm install\n
\n

Executing program

\n\n
npm start\n
\n

Customizing

\n

See Config.json to change settings like your name, your assistant's name, and more.\nTo Add or remove inputs for conversation, edit the 'inputs.txt' and 'responses.txt'\nEvery line in 'inputs.txt' corresponds to the same line in 'responses.txt'. Separate alternate versions of inputs or responses with a '/'

\n

Commands

\n

All Platforms

\n\n

TO-DO

\n\n

Authors

\n

Christopher Strnad\nstrnadchristopher@gmail.com

\n

License

\n

This project is licensed under the GNU General Public License - see the LICENSE.md file for details

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.581Z" }, "assessment-disaggregation": { "readmeCleaned": "

Assessment Disaggregation

\n

This software calculates value-added learning scores accounting for guessing. The software reads in nearly any exam format and exam questions can appear in different locations in the pretest and posttest.

\n

More information about this software at https://www.assessmentdisaggregation.org/.

\n
", "readmeOriginal": "

Assessment Disaggregation

\n

This software calculates value-added learning scores accounting for guessing. The software reads in nearly any exam format and exam questions can appear in different locations in the pretest and posttest.

\n

More information about this software at https://www.assessmentdisaggregation.org/.

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.719Z" }, "authme": { "readmeCleaned": "

Authme

\n\n

\"Downloads\"\n\"Support\"\n\"License\"

\n

Features

\n\n

Compatible 2FA codes

\n\n

Screenshot

\n

\n

Latest Release

\n\n

\"Latest\n\"Windows\n\"Linux\n\"Mac\n\"Updated\"

\n\n

Latest Alpha

\n\n

\"Latest\n\"Windows\n\"Linux\n\"Mac\n\"Updated\"

\n

Translating

\n\n

Contributing and development

\n\n

License

\n\n
", "readmeOriginal": "

Authme

\n\n

\"Downloads\"\n\"Support\"\n\"License\"

\n

Features

\n\n

Compatible 2FA codes

\n\n

Screenshot

\n

\n

Latest Release

\n\n

\"Latest\n\"Windows\n\"Linux\n\"Mac\n\"Updated\"

\n\n

Latest Alpha

\n\n

\"Latest\n\"Windows\n\"Linux\n\"Mac\n\"Updated\"

\n

Translating

\n\n

Contributing and development

\n\n

License

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:39.748Z" }, "backlog": { "readmeCleaned": "

Backlog

\n
\n

Simple multiplatform desktop app for storing TODOs, ideas or backlog items.\nYou can organize them with boards as a plaintext or markdown. No dependencies, no internet connection required,\nno external accounts. Sleek flow.

\n
\n

\n\n

\n

2.0.0-BETA-5.1 release

\n

Preview of 2.0.0 version

\n\n

New 2.x version introduces a lot of new features including new UI, configurable keybindings, search item feature, emoji, and a lot more! Check it out !

\n

\n \n

\n

Official website

\n

www.backlog.cloud

\n

Download

\n

No installation required. Just unzip archive and run executable

\n\n

32bit versions

\n\n

Features

\n\n

Screenshots

\n

\n \n \n \n \n

\n

Update

\n

When new version is available just download it, unzip and enjoy. No additional action is required. All your boards and items will be available.

\n

Change log

\n

1.8.0

\n
\n

This is another huge update with number of significant improvements/features added.\nHopefully it will stay for a longer.

\n
\n

Features & improvements

\n\n

Bug fixes

\n\n

Why I've wrote it ?

\n

When programming I often have a number of ideas related to possible improvements for the future or a cool new project. Most often, it's just one sentence or a couple of words - just a draft of an idea to expand in the future.

\n

I know that, there are hundreds of todo list managers or other notes manager,\nbut this one will finally perfectly fulfill my needs. So far I wrote my thoughts on sticky notes, I tried Evernote, Simplenote...\nThey are fine, but all of them were either bloated with unnecessary features or lacked the desired \"flow\" -\nwhen I open a program I want type down thoughts, hit enter, and get back to my actual work. That's how I write Backlog. No dependencies, no internet connection required, no external accounts etc.

\n

License

\n

It's free and opensource application under MIT license. You can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source

\n

Technical

\n

How ?

\n

This application is built with Electron and web technologies (javascript, css, html) more specifically: Vue.js. UI toolkit is iView

\n

Build Setup

\n

You can build it yourself instead of downloading executable:

\n
# install dependencies\nnpm install\n\n# Compiles and hot-reloads for development\nnpm run serve\n\n# Compiles and minifies for production\nnpm run build\n\n# Run your tests\nnpm run test\n\n# Lints and fixes files\nnpm run lint\n\n# Run your unit tests\nnpm run test:unit
\n

Customize configuration

\n

See Configuration Reference.

\n
", "readmeOriginal": "

Backlog

\n
\n

Simple multiplatform desktop app for storing TODOs, ideas or backlog items.\nYou can organize them with boards as a plaintext or markdown. No dependencies, no internet connection required,\nno external accounts. Sleek flow.

\n
\n

\n\n

\n

2.0.0-BETA-5.1 release

\n

Preview of 2.0.0 version

\n\n

New 2.x version introduces a lot of new features including new UI, configurable keybindings, search item feature, emoji, and a lot more! Check it out !

\n

\n \n

\n

Official website

\n

www.backlog.cloud

\n

Download

\n

No installation required. Just unzip archive and run executable

\n\n

32bit versions

\n\n

Features

\n\n

Screenshots

\n

\n \n \n \n \n

\n

Update

\n

When new version is available just download it, unzip and enjoy. No additional action is required. All your boards and items will be available.

\n

Change log

\n

1.8.0

\n
\n

This is another huge update with number of significant improvements/features added.\nHopefully it will stay for a longer.

\n
\n

Features & improvements

\n\n

Bug fixes

\n\n

Why I've wrote it ?

\n

When programming I often have a number of ideas related to possible improvements for the future or a cool new project. Most often, it's just one sentence or a couple of words - just a draft of an idea to expand in the future.

\n

I know that, there are hundreds of todo list managers or other notes manager,\nbut this one will finally perfectly fulfill my needs. So far I wrote my thoughts on sticky notes, I tried Evernote, Simplenote...\nThey are fine, but all of them were either bloated with unnecessary features or lacked the desired \"flow\" -\nwhen I open a program I want type down thoughts, hit enter, and get back to my actual work. That's how I write Backlog. No dependencies, no internet connection required, no external accounts etc.

\n

License

\n

It's free and opensource application under MIT license. You can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source

\n

Technical

\n

How ?

\n

This application is built with Electron and web technologies (javascript, css, html) more specifically: Vue.js. UI toolkit is iView

\n

Build Setup

\n

You can build it yourself instead of downloading executable:

\n
# install dependencies\nnpm install\n\n# Compiles and hot-reloads for development\nnpm run serve\n\n# Compiles and minifies for production\nnpm run build\n\n# Run your tests\nnpm run test\n\n# Lints and fixes files\nnpm run lint\n\n# Run your unit tests\nnpm run test:unit
\n

Customize configuration

\n

See Configuration Reference.

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.862Z" }, "bdash": { "readmeCleaned": "

\"GitHub\n\"Test\"

\n

Bdash

\n

Simple SQL Client for lightweight data analysis.

\n

Feature

\n

Saving query

\n

\n

Drawing chart

\n

\n

Sharing result

\n

You can share the result with gist.

\n

https://gist.github.com/hokaccha/e128e1c3a68527ebf2c50d5e95a089b1

\n

Multiple data sources support

\n\n

Installation

\n

You can download and install from here: https://www.bdash.io/

\n

Development

\n

You can start the application with following commands.

\n
# Install dependencies\n$ yarn\n\n# Run following commands with different shell processes.\n$ yarn watch\n$ yarn start\n
\n

License

\n

MIT

\n
", "readmeOriginal": "

\"GitHub\n\"Test\"

\n

Bdash

\n

Simple SQL Client for lightweight data analysis.

\n

Feature

\n

Saving query

\n

\n

Drawing chart

\n

\n

Sharing result

\n

You can share the result with gist.

\n

https://gist.github.com/hokaccha/e128e1c3a68527ebf2c50d5e95a089b1

\n

Multiple data sources support

\n\n

Installation

\n

You can download and install from here: https://www.bdash.io/

\n

Development

\n

You can start the application with following commands.

\n
# Install dependencies\n$ yarn\n\n# Run following commands with different shell processes.\n$ yarn watch\n$ yarn start\n
\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:39.933Z" }, "auryo": { "readmeCleaned": "

Auryo \"Join \"Contributions

\n
\n

🚨 I am currently working on a major re-write, I will keep #255 up-to-date. In the meanwhile, please consider supporting me via patreon or github sponsors

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MacOS/LinuxWindowsSnap
\"Build\"Build\"Snap
\n

A beautiful SoundCloud app for your desktop. Using the power of electron we are able to integrate this webapp with native features like touchbar and media key support.

\n

Table of Contents

\n\n

Installation

\n

There are builds for Mac, Windows and Linux.

\n

Downloads are available on the website OR

\n

\"Get

\n

Contributing

\n

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

\n

Support 💪

\n

Auryo is a open source project. It can grow thanks to the sponsors and support by the amazing backers. If you like to donate, please visit 👉my patreon page.

\n

Author

\n

This application has been built by Jonas Snellinckx. It started out as a learning journey back in college-university Oct 2016, to start learning React, Redux and Electron. Since the first release in August 2017, the journey was incredibly educational. Over the next few months, Auryo has matured from a learning side-project into an escalated one. In a good sense.

\n

As of release 2.0.0, Auryo also has been open-sourced. See the list of contributors who participated in this project.

\n

Tip Jar

\n

Show me some love, buy me a 🍺.

\n\n

License

\n

This project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details

\n
", "readmeOriginal": "

Auryo \"Join \"Contributions

\n
\n

🚨 I am currently working on a major re-write, I will keep #255 up-to-date. In the meanwhile, please consider supporting me via patreon or github sponsors

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MacOS/LinuxWindowsSnap
\"Build\"Build\"Snap
\n

A beautiful SoundCloud app for your desktop. Using the power of electron we are able to integrate this webapp with native features like touchbar and media key support.

\n

Table of Contents

\n\n

Installation

\n

There are builds for Mac, Windows and Linux.

\n

Downloads are available on the website OR

\n

\"Get

\n

Contributing

\n

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

\n

Support 💪

\n

Auryo is a open source project. It can grow thanks to the sponsors and support by the amazing backers. If you like to donate, please visit 👉my patreon page.

\n

Author

\n

This application has been built by Jonas Snellinckx. It started out as a learning journey back in college-university Oct 2016, to start learning React, Redux and Electron. Since the first release in August 2017, the journey was incredibly educational. Over the next few months, Auryo has matured from a learning side-project into an escalated one. In a good sense.

\n

As of release 2.0.0, Auryo also has been open-sourced. See the list of contributors who participated in this project.

\n

Tip Jar

\n

Show me some love, buy me a 🍺.

\n\n

License

\n

This project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.011Z" }, "beaker-browser": { "readmeCleaned": "

Beaker Browser

\n

\"Backers \"Sponsors

\n

\"logo.png\"

\n

Beaker is an experimental peer-to-peer Web browser. It adds new APIs for building hostless applications while remaining compatible with the rest of the Web. Visit the website.

\n

Please feel free to open usability issues. Join us at #beakerbrowser on Freenode.

\n

Sponsors

\n

Sponsors support this project by contributing $100 a month or more. Become a sponsor

\n

\n\n\n\n\n\n\n\n\n

\n

Backers

\n

Backers support this project by contributing $2 to $99 a month. Become a backer

\n

\n

Table of Contents

\n\n\n\n\n

Installing

\n

Binaries

\n

Visit the Releases Page to find the installer you need.

\n

Building from source

\n

Requires node 12 or higher.

\n

In Linux (and in some cases macOS) you need libtool, m4, autoconf, and automake:

\n
sudo apt-get install libtool m4 make g++ autoconf # debian/ubuntu\nsudo dnf install libtool m4 make gcc-c++ libXScrnSaver  # fedora\nbrew install libtool autoconf automake # macos
\n

In Windows, you'll need to install Python 2.7, Visual Studio 2015 or 2017, and Git. (You might try windows-build-tools.) Then run:

\n
npm config set python c:/python27\nnpm config set msvs_version 2017\nnpm install -g node-gyp\nnpm install -g gulp
\n

To build:

\n
git clone https://github.com/beakerbrowser/beaker.git\ncd beaker/scripts\nnpm install # don't worry about v8 api errors building native modules - rebuild will fix\nnpm run rebuild # needed after each install. see https://github.com/electron/electron/issues/5851\nnpm start
\n

If you pull latest from the repo and get weird module errors, do:

\n
npm run burnthemall
\n

This invokes the mad king, who will torch your node_modules/, and do the full install/rebuild process for you.\n(We chose that command name when GoT was still cool.)\nnpm start should work afterward.

\n

If you're doing development, npm run watch to have assets build automatically.

\n

Documentation

\n

Env Vars

\n\n

Vulnerability disclosure

\n

See SECURITY.md for reporting security issues and vulnerabilities.

\n

Known issues

\n

tmux

\n

Launching from tmux is known to cause issues with GUI apps in macOS. On Beaker, it may cause the application to hang during startup.

\n

Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n\"\"

\n

License

\n

MIT License (MIT)

\n

Copyright (c) 2018 Blue Link Labs

\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n
", "readmeOriginal": "

Beaker Browser

\n

\"Backers \"Sponsors

\n

\"logo.png\"

\n

Beaker is an experimental peer-to-peer Web browser. It adds new APIs for building hostless applications while remaining compatible with the rest of the Web. Visit the website.

\n

Please feel free to open usability issues. Join us at #beakerbrowser on Freenode.

\n

Sponsors

\n

Sponsors support this project by contributing $100 a month or more. Become a sponsor

\n

\n\n\n\n\n\n\n\n\n

\n

Backers

\n

Backers support this project by contributing $2 to $99 a month. Become a backer

\n

\n

Table of Contents

\n\n\n\n\n

Installing

\n

Binaries

\n

Visit the Releases Page to find the installer you need.

\n

Building from source

\n

Requires node 12 or higher.

\n

In Linux (and in some cases macOS) you need libtool, m4, autoconf, and automake:

\n
sudo apt-get install libtool m4 make g++ autoconf # debian/ubuntu\nsudo dnf install libtool m4 make gcc-c++ libXScrnSaver  # fedora\nbrew install libtool autoconf automake # macos
\n

In Windows, you'll need to install Python 2.7, Visual Studio 2015 or 2017, and Git. (You might try windows-build-tools.) Then run:

\n
npm config set python c:/python27\nnpm config set msvs_version 2017\nnpm install -g node-gyp\nnpm install -g gulp
\n

To build:

\n
git clone https://github.com/beakerbrowser/beaker.git\ncd beaker/scripts\nnpm install # don't worry about v8 api errors building native modules - rebuild will fix\nnpm run rebuild # needed after each install. see https://github.com/electron/electron/issues/5851\nnpm start
\n

If you pull latest from the repo and get weird module errors, do:

\n
npm run burnthemall
\n

This invokes the mad king, who will torch your node_modules/, and do the full install/rebuild process for you.\n(We chose that command name when GoT was still cool.)\nnpm start should work afterward.

\n

If you're doing development, npm run watch to have assets build automatically.

\n

Documentation

\n

Env Vars

\n\n

Vulnerability disclosure

\n

See SECURITY.md for reporting security issues and vulnerabilities.

\n

Known issues

\n

tmux

\n

Launching from tmux is known to cause issues with GUI apps in macOS. On Beaker, it may cause the application to hang during startup.

\n

Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n\"\"

\n

License

\n

MIT License (MIT)

\n

Copyright (c) 2018 Blue Link Labs

\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.023Z" }, "beekeeper-studio": { "readmeCleaned": "

Beekeeper Studio (Community Edition)

\n

Beekeeper Studio is a cross-platform SQL editor and database manager available for Linux, Mac, and Windows. Beekeeper Studio Community Edition is GPL licensed so it is free (libre) and free (gratis).

\n

👉 Download Beekeeper Studio

\n

\"Beekeeper

\n

Editions of Beekeeper Studio

\n
    \n
  1. \n

    Beekeeper Studio Community Edition - This repository. This is the open source version of Beekeeper Studio. It is a full featured database management client that is totally free and open source.

    \n
  2. \n
  3. \n

    Beekeeper Studio Ultimate Edition - A commercial version of Beekeeper Studio with extra features and provided with a business-friendly commercial license. Buying the Ultimate Edition is the best way to support Beekeeper Studio.

    \n
  4. \n
\n

👉 Compare Beekeeper Studio Editions

\n

Beekeeper Studio Features

\n

Top feature: It's smooth 🍫, fast 🏎, and you'll actually enjoy using it 🥰

\n\n

One of our frustrations with other open-source SQL editors and database managers is that they take a 'kitchen sink' approach to features, adding so many features that the UI becomes cluttered and hard to navigate. We wanted a good looking, open source SQL workbench that's powerful, but also easy to use. We couldn't find one, so we created Beekeeper Studio!

\n

Beekeeper Studio supports connecting to the following databases:

\n\n

Supporting Beekeeper Studio

\n

I love working on Beekeeper Studio, and I'd love to keep growing and improving it forever. To do that I need your help.

\n

The best way to support Beekeeper Studio is to purchase the Ultimate Edition. Every purchase directly supports my work on Beekeeper Studio.

\n

If you can't afford a license, please consider becoming a project sponsor.

\n

Thank you for your continued support!

\n

Documentation

\n

Check out docs.beekeeperstudio.io for user guides, FAQs, troubleshooting tips, and more.

\n

License

\n

Beekeeper Studio Community Edition (the code in this repository) is licensed under the GPLv3 license.

\n

Beekeeper Studio Ultimate Edition contains extra features and is licensed under a commercial end user agreement (EULA).

\n

Beekeeper Studio's trademarks (words marks and logos) are not open source. See our trademark guidelines for more information.

\n

Trademark Guidelines

\n

Trademarks can be complicated with open source projects, so we have adapted a set of standard guidelines for using our trademarks that are common to many open source projects.

\n

If you are just using the Beekeeper Studio app, and you are not forking or distributing Beekeeper Studio code in any way, these probably don't apply to you.

\n

👉 Beekeeper Studio Trademark Guidelines

\n

Contributing to Beekeeper Studio

\n

We love any community engagement. Even if you're complaining because you don't like something about the app!

\n

Contributor Agreements

\n\n

Contribute without coding

\n

We have you covered, read our guide to contributing in 10 minutes without coding.

\n

Compiling and Running Beekeeper Studio Locally

\n

Want to write some code and improve Beekeeper Studio? Getting set-up is easy on Mac, Linux, or Windows.

\n
/beekeeper-studio.git beekeeper-studio\ncd beekeeper-studio/\nyarn install # installs dependencies\n\n# Now you can start the app:\nyarn run electron:serve ## the app will now start\">
# First: Install NodeJS 12 or 14, NPM, and Yarn\n# ...\n\n# 1. Fork the Beekeeper Studio Repo (click fork button at top right of this screen)\n# 2. Check out your fork:\ngit clone git@github.com:<your-username>/beekeeper-studio.git beekeeper-studio\ncd beekeeper-studio/\nyarn install # installs dependencies\n\n# Now you can start the app:\nyarn run electron:serve ## the app will now start
\n

Where to make changes?

\n

This repo is now a monorepo, we have several places with code, but only really a couple of important entry points.

\n

All app code lives in apps/studio, some shared code lives in shared/src. This is shared with other apps.

\n

Beekeeper Studio has two entry points:

\n\n

Generally we have two 'screens':

\n\n

How to submit a change?

\n\n

Maintainer notes (casual readers can ignore this stuff)

\n

Release Process

\n
    \n
  1. Up the version number in package.json
  2. \n
  3. Replace build/release-notes.md with the latest release notes. Follow the format that is there.
  4. \n
\n\n
    \n
  1. Commit
  2. \n
  3. Push to master
  4. \n
  5. Create a tag git tag v<version>. It must start with a 'v'
  6. \n
  7. git push origin <tagname>
  8. \n
\n\n
    \n
  1. Push the new release live
  2. \n
\n\n

This should also publish the latest docs

\n

Post Release:

\n
    \n
  1. Copy release notes to a blog post, post on website
  2. \n
  3. Tweet link
  4. \n
  5. Share on LinkedIn
  6. \n
  7. Send to mailing list on SendInBlue
  8. \n
\n

Big Thanks

\n

Beekeeper Studio wouldn't exist without Sqlectron-core, the core database libraries from the Sqlectron project. Beekeeper Studio started as an experimental fork of that repository. A big thanks to @maxcnunes and the rest of the Sqlectron community.

\n

The original license from sqlectron-core is included here:

\n
Copyright (c) 2015 The SQLECTRON Team\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n
\n
", "readmeOriginal": "

Beekeeper Studio (Community Edition)

\n

Beekeeper Studio is a cross-platform SQL editor and database manager available for Linux, Mac, and Windows. Beekeeper Studio Community Edition is GPL licensed so it is free (libre) and free (gratis).

\n

👉 Download Beekeeper Studio

\n

\"Beekeeper

\n

Editions of Beekeeper Studio

\n
    \n
  1. \n

    Beekeeper Studio Community Edition - This repository. This is the open source version of Beekeeper Studio. It is a full featured database management client that is totally free and open source.

    \n
  2. \n
  3. \n

    Beekeeper Studio Ultimate Edition - A commercial version of Beekeeper Studio with extra features and provided with a business-friendly commercial license. Buying the Ultimate Edition is the best way to support Beekeeper Studio.

    \n
  4. \n
\n

👉 Compare Beekeeper Studio Editions

\n

Beekeeper Studio Features

\n

Top feature: It's smooth 🍫, fast 🏎, and you'll actually enjoy using it 🥰

\n\n

One of our frustrations with other open-source SQL editors and database managers is that they take a 'kitchen sink' approach to features, adding so many features that the UI becomes cluttered and hard to navigate. We wanted a good looking, open source SQL workbench that's powerful, but also easy to use. We couldn't find one, so we created Beekeeper Studio!

\n

Beekeeper Studio supports connecting to the following databases:

\n\n

Supporting Beekeeper Studio

\n

I love working on Beekeeper Studio, and I'd love to keep growing and improving it forever. To do that I need your help.

\n

The best way to support Beekeeper Studio is to purchase the Ultimate Edition. Every purchase directly supports my work on Beekeeper Studio.

\n

If you can't afford a license, please consider becoming a project sponsor.

\n

Thank you for your continued support!

\n

Documentation

\n

Check out docs.beekeeperstudio.io for user guides, FAQs, troubleshooting tips, and more.

\n

License

\n

Beekeeper Studio Community Edition (the code in this repository) is licensed under the GPLv3 license.

\n

Beekeeper Studio Ultimate Edition contains extra features and is licensed under a commercial end user agreement (EULA).

\n

Beekeeper Studio's trademarks (words marks and logos) are not open source. See our trademark guidelines for more information.

\n

Trademark Guidelines

\n

Trademarks can be complicated with open source projects, so we have adapted a set of standard guidelines for using our trademarks that are common to many open source projects.

\n

If you are just using the Beekeeper Studio app, and you are not forking or distributing Beekeeper Studio code in any way, these probably don't apply to you.

\n

👉 Beekeeper Studio Trademark Guidelines

\n

Contributing to Beekeeper Studio

\n

We love any community engagement. Even if you're complaining because you don't like something about the app!

\n

Contributor Agreements

\n\n

Contribute without coding

\n

We have you covered, read our guide to contributing in 10 minutes without coding.

\n

Compiling and Running Beekeeper Studio Locally

\n

Want to write some code and improve Beekeeper Studio? Getting set-up is easy on Mac, Linux, or Windows.

\n
# First: Install NodeJS 12 or 14, NPM, and Yarn\n# ...\n\n# 1. Fork the Beekeeper Studio Repo (click fork button at top right of this screen)\n# 2. Check out your fork:\ngit clone git@github.com:<your-username>/beekeeper-studio.git beekeeper-studio\ncd beekeeper-studio/\nyarn install # installs dependencies\n\n# Now you can start the app:\nyarn run electron:serve ## the app will now start
\n

Where to make changes?

\n

This repo is now a monorepo, we have several places with code, but only really a couple of important entry points.

\n

All app code lives in apps/studio, some shared code lives in shared/src. This is shared with other apps.

\n

Beekeeper Studio has two entry points:

\n\n

Generally we have two 'screens':

\n\n

How to submit a change?

\n\n

Maintainer notes (casual readers can ignore this stuff)

\n

Release Process

\n
    \n
  1. Up the version number in package.json
  2. \n
  3. Replace build/release-notes.md with the latest release notes. Follow the format that is there.
  4. \n
\n\n
    \n
  1. Commit
  2. \n
  3. Push to master
  4. \n
  5. Create a tag git tag v<version>. It must start with a 'v'
  6. \n
  7. git push origin <tagname>
  8. \n
\n\n
    \n
  1. Push the new release live
  2. \n
\n\n

This should also publish the latest docs

\n

Post Release:

\n
    \n
  1. Copy release notes to a blog post, post on website
  2. \n
  3. Tweet link
  4. \n
  5. Share on LinkedIn
  6. \n
  7. Send to mailing list on SendInBlue
  8. \n
\n

Big Thanks

\n

Beekeeper Studio wouldn't exist without Sqlectron-core, the core database libraries from the Sqlectron project. Beekeeper Studio started as an experimental fork of that repository. A big thanks to @maxcnunes and the rest of the Sqlectron community.

\n

The original license from sqlectron-core is included here:

\n
Copyright (c) 2015 The SQLECTRON Team\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:40.125Z" }, "believers-sword": { "readmeCleaned": "

Believers Sword

\n

Believers Sword App is an application to help you study the bible. Not only that but to engage in learning the word of God. I built this apps specifically from my taste of view. I just really want to create an application including the features that I like to have in the application. Im so thankful to God for giving me time to create this application and also to share to others. Im not recommending this application, but I am encouraging you to try the application I built, and hoping that you may like it. I hope we learn learn to study the bible better.

\n

\"Believers\n\"Believers

\n

Features:

\n\n
", "readmeOriginal": "

Believers Sword

\n

Believers Sword App is an application to help you study the bible. Not only that but to engage in learning the word of God. I built this apps specifically from my taste of view. I just really want to create an application including the features that I like to have in the application. Im so thankful to God for giving me time to create this application and also to share to others. Im not recommending this application, but I am encouraging you to try the application I built, and hoping that you may like it. I hope we learn learn to study the bible better.

\n

\"Believers\n\"Believers

\n

Features:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:40.218Z" }, "bibisco": { "readmeCleaned": "

What is bibisco?

\n

bibisco is an open source application for writing novels.

\n

bibisco is a personal project, made with love.

\n

We love books and we want to help writers to write beautiful novels.

\n

With bibisco you can organize chapters and scenes, manage revisions, export novel in pdf, docx, or txt and write with a fully featured text editor.

\n

You can create a novel structure, define premise, fabula, narrative strands and settings: geographic, temporal and social context.

\n

And, most of all, with bibisco you can know everything about your characters. Because your novel works only if its characters are believable, that is when you understand their human nature's complexity.

\n

bibisco has 2 versions: Community Edition and Supporters Edition; this is the repository of bibisco Community Edition.

\n

Official website and blog

\n

You can find all information regarding bibisco novel writing software from the official website and from official blog.

\n

Support

\n

You can support bibisco in various ways:

\n\n

License

\n

bibisco is licensed under the terms of GNU GPL License.

\n

Contribution

\n

To contribute to bibisco development you need to:

\n\n
", "readmeOriginal": "

What is bibisco?

\n

bibisco is an open source application for writing novels.

\n

bibisco is a personal project, made with love.

\n

We love books and we want to help writers to write beautiful novels.

\n

With bibisco you can organize chapters and scenes, manage revisions, export novel in pdf, docx, or txt and write with a fully featured text editor.

\n

You can create a novel structure, define premise, fabula, narrative strands and settings: geographic, temporal and social context.

\n

And, most of all, with bibisco you can know everything about your characters. Because your novel works only if its characters are believable, that is when you understand their human nature's complexity.

\n

bibisco has 2 versions: Community Edition and Supporters Edition; this is the repository of bibisco Community Edition.

\n

Official website and blog

\n

You can find all information regarding bibisco novel writing software from the official website and from official blog.

\n

Support

\n

You can support bibisco in various ways:

\n\n

License

\n

bibisco is licensed under the terms of GNU GPL License.

\n

Contribution

\n

To contribute to bibisco development you need to:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:40.221Z" }, "beveldm": { "readmeCleaned": "

Bevel Download Manager

\n

\"Bevel\n\"Bevel

\n

Bevel Download Manager is a beautiful, fast, modern and cross-platform download manager.

\n

Features

\n\n

Contributing

\n

Feel free to contribute! Send your feedback and suggestions by creating a new issue.

\n\n
", "readmeOriginal": "

Bevel Download Manager

\n

\"Bevel\n\"Bevel

\n

Bevel Download Manager is a beautiful, fast, modern and cross-platform download manager.

\n

Features

\n\n

Contributing

\n

Feel free to contribute! Send your feedback and suggestions by creating a new issue.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:40.228Z" }, "blockbench": { "readmeCleaned": "

Blockbench

\n

Blockbench is a free, modern model editor for low-poly and boxy models with pixel art textures.\nModels can be exported into standardized formats, to be shared, rendered, 3D-printed, or used in game engines. There are also multiple dedicated formats for Minecraft Java and Bedrock Edition with format-specific features.

\n

Blockbench features a modern and intuitive UI, plugin support and innovative features. It is the industry standard for creating custom 3D models for the Minecraft Marketplace.

\n

Website and download: blockbench.net

\n

\"Interface\"

\n

Contribution

\n

\"Contributor

\n

If you are contributing to Blockbench in any way, you must adhere to the Code of Conduct.

\n\n

Launching Blockbench

\n

To launch Blockbench from source, you can clone the repository, navigate to the correct branch and launch the program in development mode using the instructions below. If you just want to use the latest version, please download the app from the website.

\n\n

Plugins

\n

Blockbench supports Javascript-based plugins. Learn more about creating plugins on https://documentation.blockbench.net.

\n

License

\n\n
", "readmeOriginal": "

Blockbench

\n

Blockbench is a free, modern model editor for low-poly and boxy models with pixel art textures.\nModels can be exported into standardized formats, to be shared, rendered, 3D-printed, or used in game engines. There are also multiple dedicated formats for Minecraft Java and Bedrock Edition with format-specific features.

\n

Blockbench features a modern and intuitive UI, plugin support and innovative features. It is the industry standard for creating custom 3D models for the Minecraft Marketplace.

\n

Website and download: blockbench.net

\n

\"Interface\"

\n

Contribution

\n

\"Contributor

\n

If you are contributing to Blockbench in any way, you must adhere to the Code of Conduct.

\n\n

Launching Blockbench

\n

To launch Blockbench from source, you can clone the repository, navigate to the correct branch and launch the program in development mode using the instructions below. If you just want to use the latest version, please download the app from the website.

\n\n

Plugins

\n

Blockbench supports Javascript-based plugins. Learn more about creating plugins on https://documentation.blockbench.net.

\n

License

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:40.429Z" }, "birds-kitchen": { "readmeCleaned": "

Birds Kitchen

\n

\"License: \"Github

\n

Love Birds Kitchen? Give this repo a star

\n

Website

\n

https://tenbirds.online/birdskitchen/

\n

\n

I wanted to learn something new...

\n

So, I decided to take a crack at learning React and building an application that I found deeply missing in Linux: a Desktop Recipe Manager (I know there are some, but they don't match my needs...)

\n

I you want to contribute, please send me a mail or a pidgeon 😁

\n

\"Email\"

\n

Screenshots

\n

 

\n

Dark and light themes - Grid view

\n

\n \"Birds\n

\n

 

\n

Image list view

\n

\n \"Birds\n

\n

 

\n

Table view

\n

\n \"Birds\n

\n

 

\n

Print view

\n

\n \"Birds\n

\n

 

\n

Edit view

\n

\n \"Birds\n

\n

 

\n

Preferences screen - Storage tab

\n

\n \"Birds\n

\n

 

\n

Preferences screen - Theme tab

\n

\n \"Birds\n

\n

Features

\n\n

Documentation

\n

Visit the Wiki Page

\n

Roadmap

\n

Visit the Roadmap Page for details...

\n

Running locally

\n

Binaries

\n

Visit the Releases Page to find the installer you need.

\n

Building from source

\n
# clone the project\ngit clone https://github.com/fredserva/birdskitchen.git\n\n# change directory to the project folder\ncd birdskitchen\n\n# install dependencies\nyarn\n\n# run the app in development mode\nyarn dev
\n

Contributing

\n

To add support for your favorite language, or submit new features, feel free to open an issue or contact me directly.\nContributions are very welcomed!

\n

License

\n

\"License:

\n

Buy me a coffee! (or more likely a beer)

\n

Yes, do that!

\n
\n

 

\n

Contributors

\n

Thanks go to these people

\n

   

\n

YSchroe: German translation
\nAlbano Battistella: Italian translation

\n
", "readmeOriginal": "

Birds Kitchen

\n

\"License: \"Github

\n

Love Birds Kitchen? Give this repo a star

\n

Website

\n

https://tenbirds.online/birdskitchen/

\n

\n

I wanted to learn something new...

\n

So, I decided to take a crack at learning React and building an application that I found deeply missing in Linux: a Desktop Recipe Manager (I know there are some, but they don't match my needs...)

\n

I you want to contribute, please send me a mail or a pidgeon 😁

\n

\"Email\"

\n

Screenshots

\n

 

\n

Dark and light themes - Grid view

\n

\n \"Birds\n

\n

 

\n

Image list view

\n

\n \"Birds\n

\n

 

\n

Table view

\n

\n \"Birds\n

\n

 

\n

Print view

\n

\n \"Birds\n

\n

 

\n

Edit view

\n

\n \"Birds\n

\n

 

\n

Preferences screen - Storage tab

\n

\n \"Birds\n

\n

 

\n

Preferences screen - Theme tab

\n

\n \"Birds\n

\n

Features

\n\n

Documentation

\n

Visit the Wiki Page

\n

Roadmap

\n

Visit the Roadmap Page for details...

\n

Running locally

\n

Binaries

\n

Visit the Releases Page to find the installer you need.

\n

Building from source

\n
# clone the project\ngit clone https://github.com/fredserva/birdskitchen.git\n\n# change directory to the project folder\ncd birdskitchen\n\n# install dependencies\nyarn\n\n# run the app in development mode\nyarn dev
\n

Contributing

\n

To add support for your favorite language, or submit new features, feel free to open an issue or contact me directly.\nContributions are very welcomed!

\n

License

\n

\"License:

\n

Buy me a coffee! (or more likely a beer)

\n

Yes, do that!

\n
\n

 

\n

Contributors

\n

Thanks go to these people

\n

   

\n

YSchroe: German translation
\nAlbano Battistella: Italian translation

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.444Z" }, "blankup": { "readmeCleaned": "

BlankUp

\n

\"built \"Project

\n

BlankUp, Markdown Editor with clarity 👍

\n

\"Demo

\n

Get the latest release, available for Windows, Mac and Linux.

\n
", "readmeOriginal": "

BlankUp

\n

\"built \"Project

\n

BlankUp, Markdown Editor with clarity 👍

\n

\"Demo

\n

Get the latest release, available for Windows, Mac and Linux.

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.478Z" }, "blink-mind-desktop": { "readmeCleaned": "

BlinkMindDesktop

\n

BlinkMindDesktop is an open source mind-map and outliner app.

\n

BlinkMindDesktop is an MIT licensed open source project, and the latest version will always be downloadable for free from the GitHub release page. BlinkMindDesktop is still in development.

\n

BlinkMindDesktop uses the open source mind-map library BlinkMind for mind-map rendering.

\n

Insider Preview Version Download

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

🚀 Features

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeatureStatusDescription
Multi sheet✔️Document can insert multi sheets.
Basic mind map features✔️Add/remove topic, edit topic content.
Undo redo✔️History of map changes
Set topic style✔️Set topic style include border, text color, font, background and links.
Customize theme✔️Theme editor, import theme, export theme.
Shortcuts✔️Shortcuts to make more efficient.
Drag and drop✔️Support drag one topic and then drop to another topic to reorganize the mind map.
Open and save file✔️Save and open .bmind file, double click file to open.
Export topic to image✔️Export topic to png/jpg/svg.
Insert image to topic✔️Every topic can insert unlimited images.
Paste rich text to topic✔️You can paste rich text from browser/microsoft word/apple pages or anything else to BlinkMind without losing format.
Rich text editor for topic notes✔️Rich text editor for topic notes.
Focus mode✔️Select any topic node as the editor root and only show that branch.
Outliner mode✔️Seamlessly switch between mind map and outliner, some outliner's shortcuts are different from mindmap mode.
Search✔️Search topic content and navigate to it.
Tags✔️Topics can add tags and you can navigate from tags.
Copy topics and pasteon the wayCopy multi topics including all the infomation(content,notes,tags and all attachment) and paste to another location(same document or another document).
Topic referenceon the wayTopics can reference each other and navigate conveniently.
Link curve between any two topicson the wayLink curve between any two topics
Markdown editorplaningWhen editing topic notes, you can choose use rich html editor or markdown editor, for users who familiar and like markdown grammar. Markdown editor will support latex and mermaid.
Manual layout diagramplaningManual layout diagram
Cloud StorageplaningSave and open file from clound storage(icloud/onedrive/google drive).
\n

For Dev

\n

Develop

\n

To develop locally, you need to have Chrome installed with the Immutable.js Object Formatter extension.

\n

First download the code and relevant submodules:

\n
git clone git@github.com:awehook/blink-mind-desktop.git\ngit submodule init\ngit submodule update 
\n

Install required libraries using yarn:

\n
yarn install
\n

Then open three terminals and run:

\n
yarn dev:r\nyarn dev:m\nyarn start:m
\n

Build package

\n
yarn dist
\n

Thanks

\n

\"image\"\nThanks for JetBrains supporting us the free JetBrains Open Source license(s).

\n
", "readmeOriginal": "

BlinkMindDesktop

\n

BlinkMindDesktop is an open source mind-map and outliner app.

\n

BlinkMindDesktop is an MIT licensed open source project, and the latest version will always be downloadable for free from the GitHub release page. BlinkMindDesktop is still in development.

\n

BlinkMindDesktop uses the open source mind-map library BlinkMind for mind-map rendering.

\n

Insider Preview Version Download

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

🚀 Features

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeatureStatusDescription
Multi sheet✔️Document can insert multi sheets.
Basic mind map features✔️Add/remove topic, edit topic content.
Undo redo✔️History of map changes
Set topic style✔️Set topic style include border, text color, font, background and links.
Customize theme✔️Theme editor, import theme, export theme.
Shortcuts✔️Shortcuts to make more efficient.
Drag and drop✔️Support drag one topic and then drop to another topic to reorganize the mind map.
Open and save file✔️Save and open .bmind file, double click file to open.
Export topic to image✔️Export topic to png/jpg/svg.
Insert image to topic✔️Every topic can insert unlimited images.
Paste rich text to topic✔️You can paste rich text from browser/microsoft word/apple pages or anything else to BlinkMind without losing format.
Rich text editor for topic notes✔️Rich text editor for topic notes.
Focus mode✔️Select any topic node as the editor root and only show that branch.
Outliner mode✔️Seamlessly switch between mind map and outliner, some outliner's shortcuts are different from mindmap mode.
Search✔️Search topic content and navigate to it.
Tags✔️Topics can add tags and you can navigate from tags.
Copy topics and pasteon the wayCopy multi topics including all the infomation(content,notes,tags and all attachment) and paste to another location(same document or another document).
Topic referenceon the wayTopics can reference each other and navigate conveniently.
Link curve between any two topicson the wayLink curve between any two topics
Markdown editorplaningWhen editing topic notes, you can choose use rich html editor or markdown editor, for users who familiar and like markdown grammar. Markdown editor will support latex and mermaid.
Manual layout diagramplaningManual layout diagram
Cloud StorageplaningSave and open file from clound storage(icloud/onedrive/google drive).
\n

For Dev

\n

Develop

\n

To develop locally, you need to have Chrome installed with the Immutable.js Object Formatter extension.

\n

First download the code and relevant submodules:

\n
git clone git@github.com:awehook/blink-mind-desktop.git\ngit submodule init\ngit submodule update 
\n

Install required libraries using yarn:

\n
yarn install
\n

Then open three terminals and run:

\n
yarn dev:r\nyarn dev:m\nyarn start:m
\n

Build package

\n
yarn dist
\n

Thanks

\n

\"image\"\nThanks for JetBrains supporting us the free JetBrains Open Source license(s).

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.485Z" }, "browserosaurus": { "readmeCleaned": "

\"logo\"

\n

Browserosaurus

\n

Browserosaurus is an open-source (GPLv3 license), browser prompter for macOS. It\nworks by setting itself as the default browser; any clicked links in non-browser\napps are now sent to Browserosaurus where you are presented with a menu of all\nyour installed browsers. You may now decide which app you’d like to continue\nopening the link with.

\n

\"screenshot\"

\n

Installation

\n

Download Browserosaurus from the\nGitHub releases page.\nSelect x64 for Intel machines, or arm64 for Apple Silicon (M1) machines.

\n

Or use Homebrew. Thank\nyou very much to @i0ntempest and\n@tk4k for keeping this cask updated 🙏

\n
brew install --cask browserosaurus
\n
\n

🚨 Please note that Browserosaurus only officially supports the version of\nmacOS that I currently use, which you can assume to be the latest stable\nversion.

\n
\n

Help

\n

Found a bug? Please log an\nissue. For anything else,\nplease see the documentation below or open a\ndiscussion.

\n

Documentation

\n\n

For the maintainer:

\n\n
", "readmeOriginal": "

\"logo\"

\n

Browserosaurus

\n

Browserosaurus is an open-source (GPLv3 license), browser prompter for macOS. It\nworks by setting itself as the default browser; any clicked links in non-browser\napps are now sent to Browserosaurus where you are presented with a menu of all\nyour installed browsers. You may now decide which app you’d like to continue\nopening the link with.

\n

\"screenshot\"

\n

Installation

\n

Download Browserosaurus from the\nGitHub releases page.\nSelect x64 for Intel machines, or arm64 for Apple Silicon (M1) machines.

\n

Or use Homebrew. Thank\nyou very much to @i0ntempest and\n@tk4k for keeping this cask updated 🙏

\n
brew install --cask browserosaurus
\n
\n

🚨 Please note that Browserosaurus only officially supports the version of\nmacOS that I currently use, which you can assume to be the latest stable\nversion.

\n
\n

Help

\n

Found a bug? Please log an\nissue. For anything else,\nplease see the documentation below or open a\ndiscussion.

\n

Documentation

\n\n

For the maintainer:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:40.705Z" }, "boost-changer": { "readmeCleaned": "

Boost Changer

\n

\"GitHub\" \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub

\n

‼️ This App is now only for Linux ‼️

\n

This App needs root rights. When and why?

\n

Boost Changer is made to control the frequencies of Intel CPUs. It can also manage the processor's energy consumption through Energy-Performance Preference.

\n

In generall this app does not need root rights but when you hit the Turn Off or On button a popup window will ask you about your root password.

\n

why?

\n\n
\n

To turn off or on your turbo boost you have to change this file and that is what this app does.

\n
\n\n
\n

when you change the energy performance in Boost Changer you have to change this file and that is what this app does.

\n
\n

📌 This app will only work on a real machine. 📌

\n

What it isn't

\n

This is just a GUI application and it is not meant to replace\nTLP, powertop or\nany other power management / energy consumption service. It is meant just to\nprovide quick access to sysfs settings related to Intel Processors and\nin fact it can run on top of TLP.

\n

Installation

\n

Download

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OSRelease Link
DebianAppImage 💿
UbuntuAppImage 💿
FedoraAppImage 💿
RedhatAppImage 💿
SolusAppImage 💿
OpenSUSEAppImage 💿
ArchAUR 💿
\n

\"Get

\n

How to run AppImage

\n
# Download the app\nwget https://github.com/nbebaw/boostchanger/releases/download/v4.4.0/boostchanger-4.4.0.AppImage\n\n# Make the app executable \nchmod +x boostchanger-4.4.0.AppImage\n\n# Run the app\n./boostchanger-4.4.0.AppImage
\n

Installation only for Developer

\n

You can help me to improve this app

\n
# Clone this repo\ngit clone https://github.com/nbebaw/boostchanger.git\n\n# Install dependencies\nnpm install\n\n# Run the App\nnpm run
\n

Common Issue for AppImage

\n
The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing ...
\n

The solution

\n

New features for future releases

\n

1 = High Prio | 2 = Middle Prio | 3 = Low Prio

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeaturePrio
Add AMD Support1
CPU Frequencies1
GPU Frequencies1
CPU Governor2
Nvidia PowerMizer Settings2
Represent all Infos about the Machine2
Make this App cross Platform3
\n
\n

\"Dashboard\"

\n

\"settings\"

\n

\"About\"

\n
", "readmeOriginal": "

Boost Changer

\n

\"GitHub\" \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub

\n

‼️ This App is now only for Linux ‼️

\n

This App needs root rights. When and why?

\n

Boost Changer is made to control the frequencies of Intel CPUs. It can also manage the processor's energy consumption through Energy-Performance Preference.

\n

In generall this app does not need root rights but when you hit the Turn Off or On button a popup window will ask you about your root password.

\n

why?

\n\n
\n

To turn off or on your turbo boost you have to change this file and that is what this app does.

\n
\n\n
\n

when you change the energy performance in Boost Changer you have to change this file and that is what this app does.

\n
\n

📌 This app will only work on a real machine. 📌

\n

What it isn't

\n

This is just a GUI application and it is not meant to replace\nTLP, powertop or\nany other power management / energy consumption service. It is meant just to\nprovide quick access to sysfs settings related to Intel Processors and\nin fact it can run on top of TLP.

\n

Installation

\n

Download

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OSRelease Link
DebianAppImage 💿
UbuntuAppImage 💿
FedoraAppImage 💿
RedhatAppImage 💿
SolusAppImage 💿
OpenSUSEAppImage 💿
ArchAUR 💿
\n

\"Get

\n

How to run AppImage

\n
# Download the app\nwget https://github.com/nbebaw/boostchanger/releases/download/v4.4.0/boostchanger-4.4.0.AppImage\n\n# Make the app executable \nchmod +x boostchanger-4.4.0.AppImage\n\n# Run the app\n./boostchanger-4.4.0.AppImage
\n

Installation only for Developer

\n

You can help me to improve this app

\n
# Clone this repo\ngit clone https://github.com/nbebaw/boostchanger.git\n\n# Install dependencies\nnpm install\n\n# Run the App\nnpm run
\n

Common Issue for AppImage

\n
The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing ...
\n

The solution

\n

New features for future releases

\n

1 = High Prio | 2 = Middle Prio | 3 = Low Prio

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeaturePrio
Add AMD Support1
CPU Frequencies1
GPU Frequencies1
CPU Governor2
Nvidia PowerMizer Settings2
Represent all Infos about the Machine2
Make this App cross Platform3
\n
\n

\"Dashboard\"

\n

\"settings\"

\n

\"About\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.710Z" }, "boxhero": { "readmeCleaned": "

BoxHero Desktop App

\n

박스히어로 데스크톱 앱

\n

\"제품목록\"

\n

NPM Scripts

\n

설치

\n
yarn install
\n

개발

\n
# 1회 실행\nyarn compile\n\n# watch mode로 실행\nyarn watch
\n

손 빌드

\n

mini-diary repo 참고.

\n

code sign 및 deploy 관련해서 아래 키들이 필요하다.

\n

MacOS (DMG):

\n

apple 정책 때문에 dmg는 apple 인증(notarize) 받아야 함. 참고1 참고2

\n

방법1. apple id / app-specific password를 쓴다.

\n
export APPLE_ID=\nexport APPLE_ID_PASSWORD=\n
\n

방법2. API Key

\n

AppstoreConnect에서 API key 파일을 받아서 ~/private_keys 폴더에 넣는다. (./private_keys 위치는 xcrun altool 버그(?) 때문에 인식을 못한다.)

\n
export API_KEY_ID=\nexport API_KEY_ISSUER_ID=\n
\n

Windows

\n

/cert 폴더를 만들고 www.bgpworks.com.pfx 파일 넣음.\n키스토어 위치와 비밀번호는 환경변수로 넣는다.

\n
export WIN_CSC_LINK=./cert/www.bgpworks.com.pfx\nexport WIN_CSC_KEY_PASSWORD=[KEY STORE PASSPHRASE]\n
\n

Github Token

\n

github에 deploy함.

\n

https://github.com/settings/tokens 에서 repo (repo_deployment, public_repo) 스콥으로 토큰 만듬.

\n
export GH_TOKEN=...\n
\n

AWS Credential

\n

S3에 deploy함. (필요권한)

\n
AWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\n
\n

Deploy

\n
yarn release\n
\n

CI Build (Github CI)

\n
    \n
  1. package.json 수정해서 버전 업데이트 & 채널 변경(‼️) 버전 뒤에 -alpha-beta 붙이면 됨.
  2. \n
  3. Github PR 생성 후 코드 리뷰.
  4. \n
  5. 해당 PR에 /deplay 커멘트 작성. (⚠️ 해당 채널로 디플로이 됨! 위에서 채널을 변경하지 않았으면 production(latest)로 디플로이 됨.)
  6. \n
  7. PR에 디플로이 상태가 업데이트 됨. (또는 Github Actions에서 확인 가능)
  8. \n
  9. Github releases draft가 자동 생성되는데 changelog를 채워서 완성함. 문제가 있으면 draft 삭제.
  10. \n
  11. 모든 테스트가 완료 되었으면, package.json을 수정하여 채널을 빼고 다시 커밋.
  12. \n
  13. 해당 PR에 /deplay 커멘트 작성.
  14. \n
  15. Github release 업데이트
  16. \n
\n

인증서 만료시 업데이트

\n
MacOS
\n
    \n
  1. 애플 포털 또는 Xcode에서 아래 두 인증서를 재발급 받아서 로컬에 설치한다.
  2. \n
\n\n
    \n
  1. Keychain access 앱을 켜서 저 두 인증서를 선택하고 Export 한다. 비밀번호를 적당히 설정한다.
  2. \n
  3. 이 레포의 Settings > Secrets를 업데이트 한다.
  4. \n
\n\n
Windows
\n
    \n
  1. 인증서 새로 발급 받는다.
  2. \n
  3. 이 레포의 Settings > Secrets를 업데이트 한다.
  4. \n
\n\n
Apple API Key
\n

만료가 없긴하다. AppstoreConnect 에서 발급받은 후 Settings > Secrets를 업데이트 한다.

\n\n
AWS Credential
\n

S3로 퍼블리시할 때 사용.

\n\n

프로젝트 구성

\n\n

주요 사항

\n\n

향후 과제

\n\n

인증서

\n

MAC(.dmg)용:

\n\n

스크린샷

\n

\"제품\n\"대시보드\"\n\"입출고\"\n\"바코드\n\"바코드\n\"바코드\n\"입출고

\n
", "readmeOriginal": "

BoxHero Desktop App

\n

박스히어로 데스크톱 앱

\n

\"제품목록\"

\n

NPM Scripts

\n

설치

\n
yarn install
\n

개발

\n
# 1회 실행\nyarn compile\n\n# watch mode로 실행\nyarn watch
\n

손 빌드

\n

mini-diary repo 참고.

\n

code sign 및 deploy 관련해서 아래 키들이 필요하다.

\n

MacOS (DMG):

\n

apple 정책 때문에 dmg는 apple 인증(notarize) 받아야 함. 참고1 참고2

\n

방법1. apple id / app-specific password를 쓴다.

\n
export APPLE_ID=\nexport APPLE_ID_PASSWORD=\n
\n

방법2. API Key

\n

AppstoreConnect에서 API key 파일을 받아서 ~/private_keys 폴더에 넣는다. (./private_keys 위치는 xcrun altool 버그(?) 때문에 인식을 못한다.)

\n
export API_KEY_ID=\nexport API_KEY_ISSUER_ID=\n
\n

Windows

\n

/cert 폴더를 만들고 www.bgpworks.com.pfx 파일 넣음.\n키스토어 위치와 비밀번호는 환경변수로 넣는다.

\n
export WIN_CSC_LINK=./cert/www.bgpworks.com.pfx\nexport WIN_CSC_KEY_PASSWORD=[KEY STORE PASSPHRASE]\n
\n

Github Token

\n

github에 deploy함.

\n

https://github.com/settings/tokens 에서 repo (repo_deployment, public_repo) 스콥으로 토큰 만듬.

\n
export GH_TOKEN=...\n
\n

AWS Credential

\n

S3에 deploy함. (필요권한)

\n
AWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\n
\n

Deploy

\n
yarn release\n
\n

CI Build (Github CI)

\n
    \n
  1. package.json 수정해서 버전 업데이트 & 채널 변경(‼️) 버전 뒤에 -alpha-beta 붙이면 됨.
  2. \n
  3. Github PR 생성 후 코드 리뷰.
  4. \n
  5. 해당 PR에 /deplay 커멘트 작성. (⚠️ 해당 채널로 디플로이 됨! 위에서 채널을 변경하지 않았으면 production(latest)로 디플로이 됨.)
  6. \n
  7. PR에 디플로이 상태가 업데이트 됨. (또는 Github Actions에서 확인 가능)
  8. \n
  9. Github releases draft가 자동 생성되는데 changelog를 채워서 완성함. 문제가 있으면 draft 삭제.
  10. \n
  11. 모든 테스트가 완료 되었으면, package.json을 수정하여 채널을 빼고 다시 커밋.
  12. \n
  13. 해당 PR에 /deplay 커멘트 작성.
  14. \n
  15. Github release 업데이트
  16. \n
\n

인증서 만료시 업데이트

\n
MacOS
\n
    \n
  1. 애플 포털 또는 Xcode에서 아래 두 인증서를 재발급 받아서 로컬에 설치한다.
  2. \n
\n\n
    \n
  1. Keychain access 앱을 켜서 저 두 인증서를 선택하고 Export 한다. 비밀번호를 적당히 설정한다.
  2. \n
  3. 이 레포의 Settings > Secrets를 업데이트 한다.
  4. \n
\n\n
Windows
\n
    \n
  1. 인증서 새로 발급 받는다.
  2. \n
  3. 이 레포의 Settings > Secrets를 업데이트 한다.
  4. \n
\n\n
Apple API Key
\n

만료가 없긴하다. AppstoreConnect 에서 발급받은 후 Settings > Secrets를 업데이트 한다.

\n\n
AWS Credential
\n

S3로 퍼블리시할 때 사용.

\n\n

프로젝트 구성

\n\n

주요 사항

\n\n

향후 과제

\n\n

인증서

\n

MAC(.dmg)용:

\n\n

스크린샷

\n

\"제품\n\"대시보드\"\n\"입출고\"\n\"바코드\n\"바코드\n\"바코드\n\"입출고

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.784Z" }, "brim": { "readmeCleaned": "

\"Brim

\n

Brim

\n

Brim is an open source desktop application for security and network\nspecialists. Brim makes it easy to search and analyze data from:

\n\n

Brim is especially useful to security and network operators that need to handle large packet captures,\nespecially those that are cumbersome for Wireshark, tshark, or other packet analyzers.

\n

\"Brim

\n

Brim is built from open source components, including:

\n\n

Installing Brim

\n

See the installation guide\nin the wiki. Release notes are\navailable at the releases page.

\n

Having a problem?

\n

Please browse the wiki to review common problems and helpful tips before opening an issue.

\n

Development and contributing

\n

We'd love your help! Please see the contributing guide for\ndevelopment information like building and testing Brim.

\n

Join the Community

\n

Join our Public Slack workspace for announcements, Q&A, and to trade tips!

\n
", "readmeOriginal": "

\"Brim

\n

Brim

\n

Brim is an open source desktop application for security and network\nspecialists. Brim makes it easy to search and analyze data from:

\n\n

Brim is especially useful to security and network operators that need to handle large packet captures,\nespecially those that are cumbersome for Wireshark, tshark, or other packet analyzers.

\n

\"Brim

\n

Brim is built from open source components, including:

\n\n

Installing Brim

\n

See the installation guide\nin the wiki. Release notes are\navailable at the releases page.

\n

Having a problem?

\n

Please browse the wiki to review common problems and helpful tips before opening an issue.

\n

Development and contributing

\n

We'd love your help! Please see the contributing guide for\ndevelopment information like building and testing Brim.

\n

Join the Community

\n

Join our Public Slack workspace for announcements, Q&A, and to trade tips!

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.855Z" }, "buka": { "readmeCleaned": "

\n \n

\n

\n Buka - EBook Management\n

\n

\n \"Awesome\"\n

\n
\n

About Buka

\n

Buka is a modern software that helps you manage your ebook at ease. With a simple, clean and straight-forward user interface, Buka aims to gather your ebooks for a reading experience without hassles. Buka currently support .PDF format with configurations that helps user focus more on the content.

\n

Installing

\n

Snap

\n
    \n
  1. Run sudo snap install buka
  2. \n
\n\n
    \n
  1. Download buka_1.0.0_amd64.snap from the Buka releases page.
  2. \n
  3. Run sudo snap install --dangerous buka_1.0.0_amd64.snap on the downloaded package.
  4. \n
  5. Launch Buka using the installed buka command.
  6. \n
\n

Debian x86

\n
    \n
  1. Download Buka_1.0.0_i386.deb from the Buka releases page.
  2. \n
  3. Run sudo dpkg --install Buka_1.0.0_i386.deb on the downloaded package.
  4. \n
  5. Launch Buka using the installed Buka command.
  6. \n
\n

Debian x64

\n
    \n
  1. Download Buka_1.0.0_amd64.deb from the Buka releases page.
  2. \n
  3. Run sudo dpkg --install Buka_1.0.0_amd64.deb on the downloaded package.
  4. \n
  5. Launch Buka using the installed Buka command.
  6. \n
\n
\n

Of course you can always open .deb package with a package manager like Synaptic, Gnome Software or Gdebi then start the app instead of using command line options.

\n
\n

Fedora

\n
    \n
  1. Download Buka-1.0.0.rpm from the Buka releases page.
  2. \n
  3. Run sudo dnf install Buka-1.0.0.rpm on the downloaded package.
  4. \n
  5. Launch Buka using the installed Buka command.
  6. \n
\n

AppImage

\n
    \n
  1. Download Buka-1.0.0-x86_64.AppImage from the Buka releases page.
  2. \n
  3. Make it executable sudo chmod a+x Buka*.AppImage
  4. \n
  5. Run ./Buka*.AppImage
  6. \n
\n

Build from source

\n
    \n
  1. git clone https://github.com/oguzhaninan/Buka.git
  2. \n
  3. cd Buka
  4. \n
  5. npm install && npm run build && npm start
  6. \n
\n

Uninstalling

\n\n

Screenshots

\n

\"s1\"

\n

\"s2\"

\n

\"s3\"

\n

\"s4\"

\n

\"s5\"

\n

Contributors

\n

Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n
", "readmeOriginal": "

\n \n

\n

\n Buka - EBook Management\n

\n

\n \"Awesome\"\n

\n
\n

About Buka

\n

Buka is a modern software that helps you manage your ebook at ease. With a simple, clean and straight-forward user interface, Buka aims to gather your ebooks for a reading experience without hassles. Buka currently support .PDF format with configurations that helps user focus more on the content.

\n

Installing

\n

Snap

\n
    \n
  1. Run sudo snap install buka
  2. \n
\n\n
    \n
  1. Download buka_1.0.0_amd64.snap from the Buka releases page.
  2. \n
  3. Run sudo snap install --dangerous buka_1.0.0_amd64.snap on the downloaded package.
  4. \n
  5. Launch Buka using the installed buka command.
  6. \n
\n

Debian x86

\n
    \n
  1. Download Buka_1.0.0_i386.deb from the Buka releases page.
  2. \n
  3. Run sudo dpkg --install Buka_1.0.0_i386.deb on the downloaded package.
  4. \n
  5. Launch Buka using the installed Buka command.
  6. \n
\n

Debian x64

\n
    \n
  1. Download Buka_1.0.0_amd64.deb from the Buka releases page.
  2. \n
  3. Run sudo dpkg --install Buka_1.0.0_amd64.deb on the downloaded package.
  4. \n
  5. Launch Buka using the installed Buka command.
  6. \n
\n
\n

Of course you can always open .deb package with a package manager like Synaptic, Gnome Software or Gdebi then start the app instead of using command line options.

\n
\n

Fedora

\n
    \n
  1. Download Buka-1.0.0.rpm from the Buka releases page.
  2. \n
  3. Run sudo dnf install Buka-1.0.0.rpm on the downloaded package.
  4. \n
  5. Launch Buka using the installed Buka command.
  6. \n
\n

AppImage

\n
    \n
  1. Download Buka-1.0.0-x86_64.AppImage from the Buka releases page.
  2. \n
  3. Make it executable sudo chmod a+x Buka*.AppImage
  4. \n
  5. Run ./Buka*.AppImage
  6. \n
\n

Build from source

\n
    \n
  1. git clone https://github.com/oguzhaninan/Buka.git
  2. \n
  3. cd Buka
  4. \n
  5. npm install && npm run build && npm start
  6. \n
\n

Uninstalling

\n\n

Screenshots

\n

\"s1\"

\n

\"s2\"

\n

\"s3\"

\n

\"s4\"

\n

\"s5\"

\n

Contributors

\n

Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n
", "readmeFetchedAt": "2022-05-10T00:07:40.965Z" }, "cashcash": { "readmeCleaned": "

\"Cashcash

\n

Cashcash is the accounting app for visual people.

\n

👀 Visualize

\n

Take decisions based on visual feedback. Graphs are the core feature of CashCash. First, you see and then you check the numbers.

\n

🔍 Filter

\n

One filter for all. Change it and see the graphs, tables and budgets adapting accordingly.

\n

⚖️ Budget

\n

Define your monthly target on all your expenses and incomes.

\n

🤖 Automate

\n

Create rules that will automatically assign transactions to the right accounts.

\n

🏦 Keep your secrets

\n

Your financial data stays on your computer. What you do with your money is nobody else business.\nYou can also export the database to save a copy at a place of your choice.

\n

Available features in CashCash

\n\n

Contribution

\n

Please make sure to read the Contributing Guide before making a pull request.

\n
", "readmeOriginal": "

\"Cashcash

\n

Cashcash is the accounting app for visual people.

\n

👀 Visualize

\n

Take decisions based on visual feedback. Graphs are the core feature of CashCash. First, you see and then you check the numbers.

\n

🔍 Filter

\n

One filter for all. Change it and see the graphs, tables and budgets adapting accordingly.

\n

⚖️ Budget

\n

Define your monthly target on all your expenses and incomes.

\n

🤖 Automate

\n

Create rules that will automatically assign transactions to the right accounts.

\n

🏦 Keep your secrets

\n

Your financial data stays on your computer. What you do with your money is nobody else business.\nYou can also export the database to save a copy at a place of your choice.

\n

Available features in CashCash

\n\n

Contribution

\n

Please make sure to read the Contributing Guide before making a pull request.

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.028Z" }, "boostnote": { "readmeCleaned": "
\n

New Boost Note app is available!

\n

We've launched a new Boost Note app which supports real-time collaborative writing.

\n

And it is open sourced too! Please check it out! https://github.com/BoostIO/BoostNote-App

\n

📦 Download App

\n

🖥 Desktop

\n\n

📱 Mobile

\n\n
\n

BoostNote-Legacy

\n

Note-taking app for programmers.

\n
Apps available for Mac, Windows and Linux.
\n
Built with Electron, React + Redux, Webpack, and CSSModules.
\n

\n \n \"Build\n \n

\n

Download

\n

Find the latest release of Boostnote here!

\n

More Information

\n\n

License

\n

GPL v3.

\n
", "readmeOriginal": "
\n

New Boost Note app is available!

\n

We've launched a new Boost Note app which supports real-time collaborative writing.

\n

And it is open sourced too! Please check it out! https://github.com/BoostIO/BoostNote-App

\n

📦 Download App

\n

🖥 Desktop

\n\n

📱 Mobile

\n\n
\n

BoostNote-Legacy

\n

Note-taking app for programmers.

\n
Apps available for Mac, Windows and Linux.
\n
Built with Electron, React + Redux, Webpack, and CSSModules.
\n

\n \n \"Build\n \n

\n

Download

\n

Find the latest release of Boostnote here!

\n

More Information

\n\n

License

\n

GPL v3.

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.063Z" }, "buttercup": { "readmeCleaned": "

Buttercup Desktop

\n
\n

Buttercup for Desktop - Mac, Linux and Windows

\n
\n

\"Buttercup\" \"Latest \"Chat \"Discuss

\n

\"Buttercup ²

\n

About

\n

Buttercup is a free, open-source and cross-platform password manager, built on NodeJS with Typescript. It uses strong industry-standard encryption to protect your passwords and credentials (among other data you store in Buttercup vaults) at rest, within vault files (.bcup). Vaults can be loaded from and saved to a number of sources, such as the local filesystem, Dropbox, Google Drive or any WebDAV-enabled service (like ownCloud or Nextcloud ¹).

\n

Why you need a password manager

\n

Password management is a crucial tool when you have any online presence. It's vital that all of your accounts online use strong and unique passwords so that they're much more difficult to break in to. Even if one of your accounts are breached, having unique passwords means that the likelihood of the attacker gaining further access to your accounts portfolio is greatly reduced.

\n

Without a password manager, such as Buttercup, it would be very tedious to manage different passwords for each service. If you remember your passwords it's a good sign that they're not strong enough. Ideally you should memorise a primary password for your vault, and not know any of the account-specific passwords off the top of your head.

\n

Precautions

\n

Buttercup securely encrypts your data in protected files, but this security is only as strong as the weakest component - and this is very often the primary password used to lock and unlock your vault. Follow these basic guidelines to ensure that your vault is safe even if exposed:

\n\n

It is very important to note that no one associated with Buttercup will ever request your personal vault or its primary password. Do not share it or any of its related details with anyone. Developers or contributors working with Buttercup may request example vaults created via your system to try and reproduce issues, but please ensure to never use your real password or store actual credentails within such vaults.

\n

Versions

\n

The current stable version is 2. We recommend upgrading if you're still on v1, as it is no longer being actively maintained. You can still browse the v1 source and documentation here.

\n

Operating Systems

\n

Buttercup Desktop is officially supported on:

\n\n

Arch Linux

\n

Buttercup is also available for Arch via the AUR. This release channel is maintained by our community.

\n

Some Arch users have reported the occasional segfault - if you experience this please try this solution before creating an issue.

\n

32bit builds (x86)

\n

There are some 32bit builds available, but please note that these are not officially supported. Issues, bug reports and questions regarding 32bit binaries are not allowed and will be closed without notice. PRs to fix 32bit support are permitted.

\n

Portability

\n

Buttercup provides a portable Windows version. Look for the release with the name Buttercup-win-x64-2.0.0-portable.exe where 2.0.0 is the version and x64 is the architecture.

\n

Although not explicitly portable, both the Mac zip and Linux AppImage formats are more or less standalone. They still write to the standard config/log destinations, however.

\n

To make the most of the portable version, some enviroment variables are required:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Enviroment VariablesDescription
BUTTERCUP_HOME_DIRIf provided buttercup will use this path for saving configrations , user settings or even temprorary files
BUTTERCUP_CONFIG_DIRStores user settings, not allways needed but can be used to change config location or will default to BUTTERCUP_HOME_DIR Optional: Only activates if BUTTERCUP_HOME_DIR is provided
BUTTERCUP_TEMP_DIRSame as BUTTERCUP_CONFIG_DIR but stores temprory files Optional: Only activates if BUTTERCUP_HOME_DIR is provided
\n

Sample ButtercupLauncher.bat for Windows portable executable

\n
\n

This example stores user settings and cache on the portable folder, but stores temprory files on the host PC.

\n
\n
@ECHO OFF\nif not exist \"%~dp0Buttercup\" mkdir \"%~dp0Buttercup\"\nset \"BUTTERCUP_HOME_DIR=%~dp0Buttercup\"\nset \"BUTTERCUP_TEMP_DIR=%temp%\"\nstart %~dp0Buttercup.exe %*
\n

Configuration

\n

Configuration files are stored in OS-specific locations.

\n

Command-Line arguments

\n

The following arguments can be provided to Buttercup, but are all optional.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ArgumentDescription
--no-windowDisables the automatic opening of the main window upon launch. Useful for when Buttercup is automatically started at boot time.
\n

App config

\n

Application configuration.

\n\n

Vault storage

\n

Storage of connected vaults (not actual vault contents).

\n\n

Offline vault cache

\n

Stored copies of vaults for offline use.

\n\n

Logs

\n

Logs are written for all app sessions.

\n\n

Note that logs for portable Windows applications will be written to the same directory that the executable resides in.

\n

Published Applications

\n

You can view the current releases on the Buttercup Desktop releases page. Under each release are some assets - the various binaries and installers for each platform Buttercup supports. When installing or downloading, make sure to pick the right operating system and architecture for your machine.

\n

Note that at this time, Buttercup only supports x64 (64 bit) machines.

\n

Linux

\n

We provide an AppImage build for Linux, because it is the most desirable format for us to release. AppImages support auto-updating, a crucial feature (we feel) for a security application. The other build types do not.

\n

Important: Buttercup uses Electron to build its desktop application, which relies on AppImageLauncher for correct integration of AppImages into the host OS. Features like Google Drive authentication and correct .desktop icon use is only performed when integrating via AppImageLauncher. We highly recommend that you install it.

\n

We won't be supporting formats like Snapcraft, deb or rpm images as they do not align with our requirements. Issues requesting these formats will be closed immediately. Discussion on topics like this should be started on other social channels.

\n

Development

\n

To begin developing features or bug-fixes for Buttercup Desktop, make sure that you first have Node v14 installed with a current version of NPM.

\n

Once cloned, make sure to install all dependencies: npm install. After that, open 2 terminals and run npm run start:renderer in one and npm run start:main in the other.

\n

Contributing

\n

There are a number of ways you can contribute to Buttercup!

\n

Features & Bug fixes

\n

We welcome pull-requests and issues that serve to better Buttercup as a platform. Please remain respecful (this is free & open source after all) with your ideas and observations, and always consider opening an issue before starting on a substantial pull request.

\n

Translations

\n

Buttercup relies on the community for translating its interfaces into languages besides English. We use British English (en_GB) as the base language, and translate into all others that our contributors are kind enough to provide.

\n

To add support for a language, make sure to add the translations for our vault UI first. After that, you can follow these instructions to add another language to the desktop application:

\n\n

Contributions

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

We'd also like to thank:

\n\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

Notes and Caveats

\n\n
", "readmeOriginal": "

Buttercup Desktop

\n
\n

Buttercup for Desktop - Mac, Linux and Windows

\n
\n

\"Buttercup\" \"Latest \"Chat \"Discuss

\n

\"Buttercup ²

\n

About

\n

Buttercup is a free, open-source and cross-platform password manager, built on NodeJS with Typescript. It uses strong industry-standard encryption to protect your passwords and credentials (among other data you store in Buttercup vaults) at rest, within vault files (.bcup). Vaults can be loaded from and saved to a number of sources, such as the local filesystem, Dropbox, Google Drive or any WebDAV-enabled service (like ownCloud or Nextcloud ¹).

\n

Why you need a password manager

\n

Password management is a crucial tool when you have any online presence. It's vital that all of your accounts online use strong and unique passwords so that they're much more difficult to break in to. Even if one of your accounts are breached, having unique passwords means that the likelihood of the attacker gaining further access to your accounts portfolio is greatly reduced.

\n

Without a password manager, such as Buttercup, it would be very tedious to manage different passwords for each service. If you remember your passwords it's a good sign that they're not strong enough. Ideally you should memorise a primary password for your vault, and not know any of the account-specific passwords off the top of your head.

\n

Precautions

\n

Buttercup securely encrypts your data in protected files, but this security is only as strong as the weakest component - and this is very often the primary password used to lock and unlock your vault. Follow these basic guidelines to ensure that your vault is safe even if exposed:

\n\n

It is very important to note that no one associated with Buttercup will ever request your personal vault or its primary password. Do not share it or any of its related details with anyone. Developers or contributors working with Buttercup may request example vaults created via your system to try and reproduce issues, but please ensure to never use your real password or store actual credentails within such vaults.

\n

Versions

\n

The current stable version is 2. We recommend upgrading if you're still on v1, as it is no longer being actively maintained. You can still browse the v1 source and documentation here.

\n

Operating Systems

\n

Buttercup Desktop is officially supported on:

\n\n

Arch Linux

\n

Buttercup is also available for Arch via the AUR. This release channel is maintained by our community.

\n

Some Arch users have reported the occasional segfault - if you experience this please try this solution before creating an issue.

\n

32bit builds (x86)

\n

There are some 32bit builds available, but please note that these are not officially supported. Issues, bug reports and questions regarding 32bit binaries are not allowed and will be closed without notice. PRs to fix 32bit support are permitted.

\n

Portability

\n

Buttercup provides a portable Windows version. Look for the release with the name Buttercup-win-x64-2.0.0-portable.exe where 2.0.0 is the version and x64 is the architecture.

\n

Although not explicitly portable, both the Mac zip and Linux AppImage formats are more or less standalone. They still write to the standard config/log destinations, however.

\n

To make the most of the portable version, some enviroment variables are required:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Enviroment VariablesDescription
BUTTERCUP_HOME_DIRIf provided buttercup will use this path for saving configrations , user settings or even temprorary files
BUTTERCUP_CONFIG_DIRStores user settings, not allways needed but can be used to change config location or will default to BUTTERCUP_HOME_DIR Optional: Only activates if BUTTERCUP_HOME_DIR is provided
BUTTERCUP_TEMP_DIRSame as BUTTERCUP_CONFIG_DIR but stores temprory files Optional: Only activates if BUTTERCUP_HOME_DIR is provided
\n

Sample ButtercupLauncher.bat for Windows portable executable

\n
\n

This example stores user settings and cache on the portable folder, but stores temprory files on the host PC.

\n
\n
@ECHO OFF\nif not exist \"%~dp0Buttercup\" mkdir \"%~dp0Buttercup\"\nset \"BUTTERCUP_HOME_DIR=%~dp0Buttercup\"\nset \"BUTTERCUP_TEMP_DIR=%temp%\"\nstart %~dp0Buttercup.exe %*
\n

Configuration

\n

Configuration files are stored in OS-specific locations.

\n

Command-Line arguments

\n

The following arguments can be provided to Buttercup, but are all optional.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ArgumentDescription
--no-windowDisables the automatic opening of the main window upon launch. Useful for when Buttercup is automatically started at boot time.
\n

App config

\n

Application configuration.

\n\n

Vault storage

\n

Storage of connected vaults (not actual vault contents).

\n\n

Offline vault cache

\n

Stored copies of vaults for offline use.

\n\n

Logs

\n

Logs are written for all app sessions.

\n\n

Note that logs for portable Windows applications will be written to the same directory that the executable resides in.

\n

Published Applications

\n

You can view the current releases on the Buttercup Desktop releases page. Under each release are some assets - the various binaries and installers for each platform Buttercup supports. When installing or downloading, make sure to pick the right operating system and architecture for your machine.

\n

Note that at this time, Buttercup only supports x64 (64 bit) machines.

\n

Linux

\n

We provide an AppImage build for Linux, because it is the most desirable format for us to release. AppImages support auto-updating, a crucial feature (we feel) for a security application. The other build types do not.

\n

Important: Buttercup uses Electron to build its desktop application, which relies on AppImageLauncher for correct integration of AppImages into the host OS. Features like Google Drive authentication and correct .desktop icon use is only performed when integrating via AppImageLauncher. We highly recommend that you install it.

\n

We won't be supporting formats like Snapcraft, deb or rpm images as they do not align with our requirements. Issues requesting these formats will be closed immediately. Discussion on topics like this should be started on other social channels.

\n

Development

\n

To begin developing features or bug-fixes for Buttercup Desktop, make sure that you first have Node v14 installed with a current version of NPM.

\n

Once cloned, make sure to install all dependencies: npm install. After that, open 2 terminals and run npm run start:renderer in one and npm run start:main in the other.

\n

Contributing

\n

There are a number of ways you can contribute to Buttercup!

\n

Features & Bug fixes

\n

We welcome pull-requests and issues that serve to better Buttercup as a platform. Please remain respecful (this is free & open source after all) with your ideas and observations, and always consider opening an issue before starting on a substantial pull request.

\n

Translations

\n

Buttercup relies on the community for translating its interfaces into languages besides English. We use British English (en_GB) as the base language, and translate into all others that our contributors are kind enough to provide.

\n

To add support for a language, make sure to add the translations for our vault UI first. After that, you can follow these instructions to add another language to the desktop application:

\n\n

Contributions

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

We'd also like to thank:

\n\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

Notes and Caveats

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:41.073Z" }, "calcy": { "readmeCleaned": "

The Calcy App

\n

\"MIT\n\"Build

\n

\n \"Calcy\n

\n

Table of Contents

\n\n

About

\n

A basic calculator app built with electron.

\n

Features

\n\n

Downloads

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformArchVersionLink
Windowsx641.1.0Download
Windowsx641.1.0Download
\n

Install

\n

macOS: Download the .dmg file or run brew cask install calcy

\n

Windows: Download the .exe installer.

\n

Debian: Download the .deb installer.

\n

Fedora: Download the .rpm installer.

\n

Other Linux distros: Download the .AppImage file or run snap install calcy

\n

Browser: Start the browser version.

\n

For Developers

\n

Any contributions are welcome, if you plan to contribute please read the contributing docs first.

\n

Third Party Plugins

\n

None

\n
\n

\nBuilt with ❤️ using Electron Framework.\n

\n
", "readmeOriginal": "

The Calcy App

\n

\"MIT\n\"Build

\n

\n \"Calcy\n

\n

Table of Contents

\n\n

About

\n

A basic calculator app built with electron.

\n

Features

\n\n

Downloads

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformArchVersionLink
Windowsx641.1.0Download
Windowsx641.1.0Download
\n

Install

\n

macOS: Download the .dmg file or run brew cask install calcy

\n

Windows: Download the .exe installer.

\n

Debian: Download the .deb installer.

\n

Fedora: Download the .rpm installer.

\n

Other Linux distros: Download the .AppImage file or run snap install calcy

\n

Browser: Start the browser version.

\n

For Developers

\n

Any contributions are welcome, if you plan to contribute please read the contributing docs first.

\n

Third Party Plugins

\n

None

\n
\n

\nBuilt with ❤️ using Electron Framework.\n

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.199Z" }, "catalyst": { "readmeCleaned": "

An amazing and elegant Electron web browser.\n\"image\"

\n

Catalyst

\n

Catalyst is a hobby project entirely managed and written by the community. It is an Electron/Chromium based web browser that really doesn't have a purpose, the contributors are below

\n

Contributors

\n\n\n \n \n \n \n \n \n\n\n \n\n
\n \n \"JaydenDev/\"\n
\n JaydenDev\n
\n
\n \n \"webdev03/\"\n
\n webdev03\n
\n
\n \n \"Scolder/\"\n
\n Scolder\n
\n
\n \n \"Judah\"\n
\n Judah Brown\n
\n
\n \n \"Mbrick2/\"\n
\n Mbrick2\n
\n
\n \n \"hello-smile6/\"\n
\n hello-smile6\n
\n
\n \n \"CocoTheMii/\"\n
\n CocoTheMii\n
\n
\n
", "readmeOriginal": "

An amazing and elegant Electron web browser.\n\"image\"

\n

Catalyst

\n

Catalyst is a hobby project entirely managed and written by the community. It is an Electron/Chromium based web browser that really doesn't have a purpose, the contributors are below

\n

Contributors

\n\n\n \n \n \n \n \n \n\n\n \n\n
\n \n \"JaydenDev/\"\n
\n JaydenDev\n
\n
\n \n \"webdev03/\"\n
\n webdev03\n
\n
\n \n \"Scolder/\"\n
\n Scolder\n
\n
\n \n \"Judah\"\n
\n Judah Brown\n
\n
\n \n \"Mbrick2/\"\n
\n Mbrick2\n
\n
\n \n \"hello-smile6/\"\n
\n hello-smile6\n
\n
\n \n \"CocoTheMii/\"\n
\n CocoTheMii\n
\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:41.251Z" }, "camunda-modeler": { "readmeCleaned": "

Camunda Modeler

\n

\"CI\"

\n

An integrated modeling solution for BPMN, DMN, and Forms based on bpmn.io.

\n

\"Camunda

\n

Resources

\n\n

Building the Application

\n

Build the app in a Posix environment. On Windows that is Git Bash or WSL. Make sure you have installed all the necessary tools to install and compile Node.js C++ addons.

\n
# checkout a tag\ngit checkout master\n\n# install dependencies\nnpm install\n\n# execute all checks (lint, test and build)\nnpm run all\n\n# build the application to ./dist\nnpm run build
\n

Development Setup

\n

Spin up the application for development, all strings attached:

\n
npm run dev\n
\n

Contributing

\n

Please checkout our contributing guidelines if you plan to\nfile an issue or pull request.

\n

Code of Conduct

\n

By participating to this project, please uphold to our Code of Conduct.

\n

License

\n

MIT

\n

Uses bpmn-js, dmn-js, and cmmn-js, licensed under the bpmn.io license.

\n
", "readmeOriginal": "

Camunda Modeler

\n

\"CI\"

\n

An integrated modeling solution for BPMN, DMN, and Forms based on bpmn.io.

\n

\"Camunda

\n

Resources

\n\n

Building the Application

\n

Build the app in a Posix environment. On Windows that is Git Bash or WSL. Make sure you have installed all the necessary tools to install and compile Node.js C++ addons.

\n
# checkout a tag\ngit checkout master\n\n# install dependencies\nnpm install\n\n# execute all checks (lint, test and build)\nnpm run all\n\n# build the application to ./dist\nnpm run build
\n

Development Setup

\n

Spin up the application for development, all strings attached:

\n
npm run dev\n
\n

Contributing

\n

Please checkout our contributing guidelines if you plan to\nfile an issue or pull request.

\n

Code of Conduct

\n

By participating to this project, please uphold to our Code of Conduct.

\n

License

\n

MIT

\n

Uses bpmn-js, dmn-js, and cmmn-js, licensed under the bpmn.io license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.265Z" }, "cbetar2": { "readmeCleaned": "

CBETA電子佛典閱讀器2(非官方)

\n

特色

\n

搜尋目錄、全文檢索、書籤功能、網址分享、離線瀏覽、語音播放、佛學詞典、佈景主題切換、經文分頁、字型調整、楷書字型、直排文字、列印經文/抄經本、連線/離線DB支援、跨平台、無廣告、開放原始碼。

\n

說明

\n

CBETA 電子佛典閱讀器2(非官方) (Chinese Buddhist Electronic Text Association Reader 2),簡寫cbetar2,使用 CBETA API 存取電子佛經,支援以下功能

\n\n

程式碼為開放(MIT License),可自由下載修改、重新發佈。

\n

支援平台

\n

已在這些環境作過安裝、測試:

\n\n

非上述環境仍可嘗試使用此 app。若有已知問題未描述的問題,可用異常回報功能。

\n

建議 OS 與 Chrome、Safari 保持在最新版,以取得最佳 app 體驗。

\n

安裝

\n

此 app 有3種取得、安裝方式:

\n
    \n
  1. 連線 DB 版 app:Chrome, Safari 網頁瀏覽器。
  2. \n
  3. 連線 DB 版 app:App 商店。
  4. \n
  5. 離線 DB 版 app:下載安裝檔。
  6. \n
\n

建議採用第1種用瀏覽器安裝,以取得最完整的 app 功能體驗。3種安裝方法如下。

\n

從瀏覽器開啟/安裝

\n

請用 Chrome (Windows, macOS, Linux, Android作業系統使用者)、Safari iOS (iPhone, iPad 使用者) 瀏覽器開啟以下網址:

\n

https://MrMYHuang.github.io

\n

或:

\n\n\n\n

此 progressive web app (PWA),可不安裝直接在網頁瀏覽器執行,或安裝至手機、平板、筆電、桌機。建議安裝,以避免瀏覽器定期清除快取,導致書籤資料不見!

\n

Windows, macOS, Linux, Android - 使用 Chrome 安裝

\n

使用 Chrome 瀏覧器(建議最新版)開啟上述 PWA 網址後,網址列會出現一個加號,如圖所示:\n

\n

點擊它,以完成安裝。安裝完後會在桌面出現\"電子佛典\"app圖示。

\n

iOS - 使用 Safari 安裝

\n
    \n
  1. 使用 Safari 開啟 web app 網址,再點擊下方中間的\"分享\"圖示:
  2. \n
\n

\n
    \n
  1. 滑動頁面至下方,點選\"加入主畫面\" (Add to Home Screen):
  2. \n
\n

\n
    \n
  1. 點擊\"新增\" (Add):
  2. \n
\n

\n
    \n
  1. App 安裝完,出現在主畫面的圖示:
  2. \n
\n

\n

從 App 商店安裝

\n

iOS 14.0+ (iPhone), iPadOS 14.0+ (iPad) - 使用 Apple App Store

\n\n\n\n

Android 4.4+ - 使用 Google Play Store

\n\n\"Google\n\n

Android 4.4+ - 使用 Amazon Appstore

\n\n\n\n

Android 4.4+ - 使用 Samsung Galaxy Store

\n\n\n\n

Android 4.4+ - 使用 Huawei AppGallery (未過審中國大陸)

\n\n\n\n

macOS 10.11+ (amd64 & arm64) - 使用 Apple App Store

\n\n\n\n

Windows 10+ (amd64 & arm64) - 使用 Microsoft Store

\n\n\"Chinese\n\n

Linux (amd64 & arm64) - 使用 Snap Store

\n\n\n\n

Linux (amd64 & arm64) - 使用 Flathub

\n\n\n\n

RHEL 8 & 9 / CentOS 8 & 9 / Fedora Linux 34-36 (amd64 & arm64) - 使用 Copr

\n

Shell script:

\n
sudo dnf copr enable mrmyh/cbetar2\nsudo dnf install cbetar2\n
\n

下載安裝檔

\n

支援的 amd64 & arm64 作業系統如下 (Android 為連線 DB app,其他都是離線 DB app):

\n
    \n
  1. Android (中國大陸使用者也能安裝)
  2. \n
  3. Linux AppImage (Ubuntu, Fedora)
  4. \n
  5. Linux DEB (Debian, Ubuntu, ...)
  6. \n
  7. Linux RPM (Fedora, ...)
  8. \n
  9. Windows 7+
  10. \n
  11. macOS 10.11+
  12. \n
\n

請開啟任一頁面,下載最新版安裝檔:

\n\n

也可以至此安裝 Electron App Store,搜尋 \"cbeta\" 找到此 app 安裝檔:

\n\n

TODO

\n
    \n
  1. 離線版 app 未完成或不支援功能:
  2. \n
  3. 搜尋目錄
  4. \n
  5. 全文搜索
  6. \n
  7. 查字典
  8. \n
  9. 查詞典
  10. \n
  11. 經文顯示缺字
  12. \n
  13. 初次啟動 app 仍須網路連線(自動下載前端 app)。
  14. \n
\n

已知問題

\n
    \n
  1. iOS Safari 在單頁模式下,捲軸無法顯示。
  2. \n
  3. 目前多數 Chrome 無法暫停合成語音播放,因此此 app 目前經文語音播放功能不支援暫停,只支援停止。
  4. \n
  5. 語音播放速度受限不同引擎、語音限制,可能無法達到指定速度。
  6. \n
  7. \"避免螢幕自動鎖定\"功能僅限部分較新 Chrome 瀏覽器才支援。
  8. \n
  9. iOS Safari 13.4 以上才支援\"分享此頁\"功能。
  10. \n
  11. iOS Safari 不支援 app 捷徑 (App Store iOS app 支援)。
  12. \n
  13. Safari, iOS Safari 不支援列印直排經文。( https://bugs.webkit.org/show_bug.cgi?id=220043 )
  14. \n
  15. iOS Safari 選擇文字後,仍會閃爍彈出式選單才消失。
  16. \n
  17. 合成語音選項濾掉非離線語音,以避開非離線語音單次播放最長字串過小的問題。
  18. \n
  19. 合成語音選項在 Android Chrome 無效。( https://stackoverflow.com/a/61366224/631869 )
  20. \n
  21. 合成語音功能在 Linux 無作用。
  22. \n
  23. App Store iOS app 不支援列印。
  24. \n
\n

版本歷史

\n

程式開發

\n

隱私政策聲明

\n

此app無收集使用者個人資訊,也無收集匿名資訊。

\n

第三方軟體版權聲明

\n
    \n
  1. CBETA API參考文件
  2. \n
  3. DILA 佛學術語字辭典
  4. \n
  5. 全字庫字型
  6. \n
  7. 萌典字典
  8. \n
\n

App相關貢獻者 (依姓名英、中排序)

\n\n
", "readmeOriginal": "

CBETA電子佛典閱讀器2(非官方)

\n

特色

\n

搜尋目錄、全文檢索、書籤功能、網址分享、離線瀏覽、語音播放、佛學詞典、佈景主題切換、經文分頁、字型調整、楷書字型、直排文字、列印經文/抄經本、連線/離線DB支援、跨平台、無廣告、開放原始碼。

\n

說明

\n

CBETA 電子佛典閱讀器2(非官方) (Chinese Buddhist Electronic Text Association Reader 2),簡寫cbetar2,使用 CBETA API 存取電子佛經,支援以下功能

\n\n

程式碼為開放(MIT License),可自由下載修改、重新發佈。

\n

支援平台

\n

已在這些環境作過安裝、測試:

\n\n

非上述環境仍可嘗試使用此 app。若有已知問題未描述的問題,可用異常回報功能。

\n

建議 OS 與 Chrome、Safari 保持在最新版,以取得最佳 app 體驗。

\n

安裝

\n

此 app 有3種取得、安裝方式:

\n
    \n
  1. 連線 DB 版 app:Chrome, Safari 網頁瀏覽器。
  2. \n
  3. 連線 DB 版 app:App 商店。
  4. \n
  5. 離線 DB 版 app:下載安裝檔。
  6. \n
\n

建議採用第1種用瀏覽器安裝,以取得最完整的 app 功能體驗。3種安裝方法如下。

\n

從瀏覽器開啟/安裝

\n

請用 Chrome (Windows, macOS, Linux, Android作業系統使用者)、Safari iOS (iPhone, iPad 使用者) 瀏覽器開啟以下網址:

\n

https://MrMYHuang.github.io

\n

或:

\n\n\n\n

此 progressive web app (PWA),可不安裝直接在網頁瀏覽器執行,或安裝至手機、平板、筆電、桌機。建議安裝,以避免瀏覽器定期清除快取,導致書籤資料不見!

\n

Windows, macOS, Linux, Android - 使用 Chrome 安裝

\n

使用 Chrome 瀏覧器(建議最新版)開啟上述 PWA 網址後,網址列會出現一個加號,如圖所示:\n

\n

點擊它,以完成安裝。安裝完後會在桌面出現\"電子佛典\"app圖示。

\n

iOS - 使用 Safari 安裝

\n
    \n
  1. 使用 Safari 開啟 web app 網址,再點擊下方中間的\"分享\"圖示:
  2. \n
\n

\n
    \n
  1. 滑動頁面至下方,點選\"加入主畫面\" (Add to Home Screen):
  2. \n
\n

\n
    \n
  1. 點擊\"新增\" (Add):
  2. \n
\n

\n
    \n
  1. App 安裝完,出現在主畫面的圖示:
  2. \n
\n

\n

從 App 商店安裝

\n

iOS 14.0+ (iPhone), iPadOS 14.0+ (iPad) - 使用 Apple App Store

\n\n\n\n

Android 4.4+ - 使用 Google Play Store

\n\n\"Google\n\n

Android 4.4+ - 使用 Amazon Appstore

\n\n\n\n

Android 4.4+ - 使用 Samsung Galaxy Store

\n\n\n\n

Android 4.4+ - 使用 Huawei AppGallery (未過審中國大陸)

\n\n\n\n

macOS 10.11+ (amd64 & arm64) - 使用 Apple App Store

\n\n\n\n

Windows 10+ (amd64 & arm64) - 使用 Microsoft Store

\n\n\"Chinese\n\n

Linux (amd64 & arm64) - 使用 Snap Store

\n\n\n\n

Linux (amd64 & arm64) - 使用 Flathub

\n\n\n\n

RHEL 8 & 9 / CentOS 8 & 9 / Fedora Linux 34-36 (amd64 & arm64) - 使用 Copr

\n

Shell script:

\n
sudo dnf copr enable mrmyh/cbetar2\nsudo dnf install cbetar2\n
\n

下載安裝檔

\n

支援的 amd64 & arm64 作業系統如下 (Android 為連線 DB app,其他都是離線 DB app):

\n
    \n
  1. Android (中國大陸使用者也能安裝)
  2. \n
  3. Linux AppImage (Ubuntu, Fedora)
  4. \n
  5. Linux DEB (Debian, Ubuntu, ...)
  6. \n
  7. Linux RPM (Fedora, ...)
  8. \n
  9. Windows 7+
  10. \n
  11. macOS 10.11+
  12. \n
\n

請開啟任一頁面,下載最新版安裝檔:

\n\n

也可以至此安裝 Electron App Store,搜尋 \"cbeta\" 找到此 app 安裝檔:

\n\n

TODO

\n
    \n
  1. 離線版 app 未完成或不支援功能:
  2. \n
  3. 搜尋目錄
  4. \n
  5. 全文搜索
  6. \n
  7. 查字典
  8. \n
  9. 查詞典
  10. \n
  11. 經文顯示缺字
  12. \n
  13. 初次啟動 app 仍須網路連線(自動下載前端 app)。
  14. \n
\n

已知問題

\n
    \n
  1. iOS Safari 在單頁模式下,捲軸無法顯示。
  2. \n
  3. 目前多數 Chrome 無法暫停合成語音播放,因此此 app 目前經文語音播放功能不支援暫停,只支援停止。
  4. \n
  5. 語音播放速度受限不同引擎、語音限制,可能無法達到指定速度。
  6. \n
  7. \"避免螢幕自動鎖定\"功能僅限部分較新 Chrome 瀏覽器才支援。
  8. \n
  9. iOS Safari 13.4 以上才支援\"分享此頁\"功能。
  10. \n
  11. iOS Safari 不支援 app 捷徑 (App Store iOS app 支援)。
  12. \n
  13. Safari, iOS Safari 不支援列印直排經文。( https://bugs.webkit.org/show_bug.cgi?id=220043 )
  14. \n
  15. iOS Safari 選擇文字後,仍會閃爍彈出式選單才消失。
  16. \n
  17. 合成語音選項濾掉非離線語音,以避開非離線語音單次播放最長字串過小的問題。
  18. \n
  19. 合成語音選項在 Android Chrome 無效。( https://stackoverflow.com/a/61366224/631869 )
  20. \n
  21. 合成語音功能在 Linux 無作用。
  22. \n
  23. App Store iOS app 不支援列印。
  24. \n
\n

版本歷史

\n

程式開發

\n

隱私政策聲明

\n

此app無收集使用者個人資訊,也無收集匿名資訊。

\n

第三方軟體版權聲明

\n
    \n
  1. CBETA API參考文件
  2. \n
  3. DILA 佛學術語字辭典
  4. \n
  5. 全字庫字型
  6. \n
  7. 萌典字典
  8. \n
\n

App相關貢獻者 (依姓名英、中排序)

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:41.331Z" }, "chronobreak": { "readmeCleaned": "

Chronobreak

\n

Open-source Pomodoro timer made in Electron that faithfully replicates the original technique, made in procrastination by Jordan Peters (Rollersteaam).

\n

Credits to redmusic for banner and logo art.

\n

\"Banner\"

\n

\"the

\n

Drag clock numbers to set in place the set timings, and hear each click along the way. By initiating every session with a physical act, focus and flow is created through the visual and audio cues as your session has an increased sense of purpose. You may also choose to set target focuses for a block of work to determine your specific tasks. Timer completion cues and drones, as well as an optional ticking of a timer each play their part in making a pretty 'alive' timer.

\n

Latest: Version 1.1.0

\n

This version is a major quality-of-life adjustment to Chronobreak as I've used it personally over the last 6 months, as well as reading some feedback online about the app itself.

\n

General

\n\n

Issues

\n\n

Installation

\n

Go to the Releases tab and download the latest version's .zip archive. Unzip it and run the 'Chronobreak' shortcut.

\n

Want to contribute?

\n

I would absolutely love for you to iterate on my design and improve it.

\n

By forking this project, you get your own copy of the latest version's files where you can make changes. You can then choose to make a pull request to merge those new changes. When I verify them, they'll be added officially to this project and you'll be shown as a Contributor, as well as being credited by me.

\n

Credits

\n

redmusic - Creating the new logo and banner art!

\n
", "readmeOriginal": "

Chronobreak

\n

Open-source Pomodoro timer made in Electron that faithfully replicates the original technique, made in procrastination by Jordan Peters (Rollersteaam).

\n

Credits to redmusic for banner and logo art.

\n

\"Banner\"

\n

\"the

\n

Drag clock numbers to set in place the set timings, and hear each click along the way. By initiating every session with a physical act, focus and flow is created through the visual and audio cues as your session has an increased sense of purpose. You may also choose to set target focuses for a block of work to determine your specific tasks. Timer completion cues and drones, as well as an optional ticking of a timer each play their part in making a pretty 'alive' timer.

\n

Latest: Version 1.1.0

\n

This version is a major quality-of-life adjustment to Chronobreak as I've used it personally over the last 6 months, as well as reading some feedback online about the app itself.

\n

General

\n\n

Issues

\n\n

Installation

\n

Go to the Releases tab and download the latest version's .zip archive. Unzip it and run the 'Chronobreak' shortcut.

\n

Want to contribute?

\n

I would absolutely love for you to iterate on my design and improve it.

\n

By forking this project, you get your own copy of the latest version's files where you can make changes. You can then choose to make a pull request to merge those new changes. When I verify them, they'll be added officially to this project and you'll be shown as a Contributor, as well as being credited by me.

\n

Credits

\n

redmusic - Creating the new logo and banner art!

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.396Z" }, "clipper": { "readmeCleaned": "

\n \"Clipper\"\n

Clipper


\n

\n Save history of all information you copy and use them whenever with a solitary snap.\n

\n

\"Github \"Stars\" \"Forks\" \"Issues\" \"License\" \"Visitors\" \"Tweet\"

\n

🙌 Features

\n\n

Screenshots

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Main ScreenList of copied textSettings
\"Main\"List\"\"Settings\"
\n

📥 Download

\n

Clipper is available for Windows & Linux and can be downloaded from Github releases.

\n

https://github.com/AkashRajpurohit/clipper/releases

\n

FAQs

\n
    \n
  1. Tray icon does not show up in linux?
  2. \n
\n
\n

Install App Indicator for Gnome Tweak tools.

\n
\n

💵 Support

\n
\n

If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of

\n
\n

\"Donate\"

\n

🐛 Bugs or Requests

\n

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on GitHub and I'll look into it. Pull request are also welcome.

\n

👥 Clones

\n\n
\n

Contact me@akashrajpurohit.com if you have cloned this project and want it to be listed here :)

\n
\n

Where to find me?

\n\n
", "readmeOriginal": "

\n \"Clipper\"\n

Clipper


\n

\n Save history of all information you copy and use them whenever with a solitary snap.\n

\n

\"Github \"Stars\" \"Forks\" \"Issues\" \"License\" \"Visitors\" \"Tweet\"

\n

🙌 Features

\n\n

Screenshots

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Main ScreenList of copied textSettings
\"Main\"List\"\"Settings\"
\n

📥 Download

\n

Clipper is available for Windows & Linux and can be downloaded from Github releases.

\n

https://github.com/AkashRajpurohit/clipper/releases

\n

FAQs

\n
    \n
  1. Tray icon does not show up in linux?
  2. \n
\n
\n

Install App Indicator for Gnome Tweak tools.

\n
\n

💵 Support

\n
\n

If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of

\n
\n

\"Donate\"

\n

🐛 Bugs or Requests

\n

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on GitHub and I'll look into it. Pull request are also welcome.

\n

👥 Clones

\n\n
\n

Contact me@akashrajpurohit.com if you have cloned this project and want it to be listed here :)

\n
\n

Where to find me?

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:41.538Z" }, "cells": { "readmeCleaned": "

\n \"Icon\"\n

Cells

\n

A Conway's Game of Life implementation

\n \"forthebadge\"\n \"forthebadge\"\n

\n

\n



\n

📝 Source Code

\n

In order to use this source code you need to have Node.js, Git and Bower installed globally. After that you have to follow the steps below.

\n
# Clone this repository\ngit clone https://github.com/florianfe/Cells\n# Go into the repository\ncd Cells\n# Install npm dependencies\nnpm install\n# Install bower dependencies\nbower install\n# Run the app in test mode\nnpm start\n# build application for release\nnpm run-script dist
\n

🖼 Previev

\n

\"Main

\n

\"Sandbox\"

\n

\"Tutorial\"

\n

\"Settings\"

\n

💾 Download

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
PlatformVersionDownload\n
Mac1.0.0Download
Windows1.0.0Download
Linux (.deb)1.0.0Download
\n

📖 License

\n

\"forthebadge\"

\n
", "readmeOriginal": "

\n \"Icon\"\n

Cells

\n

A Conway's Game of Life implementation

\n \"forthebadge\"\n \"forthebadge\"\n

\n

\n



\n

📝 Source Code

\n

In order to use this source code you need to have Node.js, Git and Bower installed globally. After that you have to follow the steps below.

\n
# Clone this repository\ngit clone https://github.com/florianfe/Cells\n# Go into the repository\ncd Cells\n# Install npm dependencies\nnpm install\n# Install bower dependencies\nbower install\n# Run the app in test mode\nnpm start\n# build application for release\nnpm run-script dist
\n

🖼 Previev

\n

\"Main

\n

\"Sandbox\"

\n

\"Tutorial\"

\n

\"Settings\"

\n

💾 Download

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
PlatformVersionDownload\n
Mac1.0.0Download
Windows1.0.0Download
Linux (.deb)1.0.0Download
\n

📖 License

\n

\"forthebadge\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.542Z" }, "cliptext": { "readmeCleaned": "

ClipText

\n

ClipText is a simple clipboard manager for macOS built with electron.

\n
Features
\n\n

Global shortcut for launching Clipboard history is Cmd+Alt+h

\n

You can find the latest build from releases section

\n

Screenshots:

\n

\n

\n
", "readmeOriginal": "

ClipText

\n

ClipText is a simple clipboard manager for macOS built with electron.

\n
Features
\n\n

Global shortcut for launching Clipboard history is Cmd+Alt+h

\n

You can find the latest build from releases section

\n

Screenshots:

\n

\n

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.649Z" }, "clipboard-manager-electron": { "readmeCleaned": "

\"Build

\n

Clipboard Manager Electron

\n

A clipboard manager built with Electron

\n

Preview Windows

\n

\"Preview

\n

Preview Linux Ubuntu 19.10

\n

\"Preview

\n

Preview MacOS

\n

\"Preview

\n

the icon are BIG, it's wrong. Help me on the issue #21

\n

Shortcuts (BETA)

\n

Now we have some shortcuts, but it is on beta state. Test and give me a feedback, thanks!

\n\n

Windows

\n

How to do a Windown build (You can go with either Yarn build or Npm build)

\n

Yarn Build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ yarn\n$ yarn build --win\n
\n

NPM build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ npm install\n$ npm run build -- --win\n
\n

Go to folder dist and execute the clipboard-manager-electron X.X.X.exe or clipboard-manager-electron Setup X.X.X.exe and be happy.

\n

Linux

\n

How to do a Linux build (You can go with either Yarn build or Npm build)

\n

Yarn Build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ yarn\n$ yarn build --linux\n
\n

NPM build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ npm install\n$ npm run build -- --linux\n
\n

Go to folder dist/ and execute the clipboard-manager-electron_X.X.X_<arch>.deb or clipboard-manager-electron_X.X.X_<arch>.rpm and be happy.

\n

Mac

\n

How to do a Mac build (You can go with either Yarn build or Npm build)

\n

Yarn Build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ yarn\n$ yarn build --mac\n
\n

NPM build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ npm install\n$ npm run build -- --mac\n
\n

Go to folder dist and execute the clipboard-manager-electron-X.X.X.dmg and be happy.

\n

Releases

\n

Download latest release

\n

If don´t want do a build, you can download the latest release!

\n
", "readmeOriginal": "

\"Build

\n

Clipboard Manager Electron

\n

A clipboard manager built with Electron

\n

Preview Windows

\n

\"Preview

\n

Preview Linux Ubuntu 19.10

\n

\"Preview

\n

Preview MacOS

\n

\"Preview

\n

the icon are BIG, it's wrong. Help me on the issue #21

\n

Shortcuts (BETA)

\n

Now we have some shortcuts, but it is on beta state. Test and give me a feedback, thanks!

\n\n

Windows

\n

How to do a Windown build (You can go with either Yarn build or Npm build)

\n

Yarn Build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ yarn\n$ yarn build --win\n
\n

NPM build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ npm install\n$ npm run build -- --win\n
\n

Go to folder dist and execute the clipboard-manager-electron X.X.X.exe or clipboard-manager-electron Setup X.X.X.exe and be happy.

\n

Linux

\n

How to do a Linux build (You can go with either Yarn build or Npm build)

\n

Yarn Build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ yarn\n$ yarn build --linux\n
\n

NPM build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ npm install\n$ npm run build -- --linux\n
\n

Go to folder dist/ and execute the clipboard-manager-electron_X.X.X_<arch>.deb or clipboard-manager-electron_X.X.X_<arch>.rpm and be happy.

\n

Mac

\n

How to do a Mac build (You can go with either Yarn build or Npm build)

\n

Yarn Build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ yarn\n$ yarn build --mac\n
\n

NPM build

\n
$ git clone https://github.com/dotenorio/clipboard-manager-electron.git\n$ cd clipboard-manager-electron\n$ npm install\n$ npm run build -- --mac\n
\n

Go to folder dist and execute the clipboard-manager-electron-X.X.X.dmg and be happy.

\n

Releases

\n

Download latest release

\n

If don´t want do a build, you can download the latest release!

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.739Z" }, "clippo": { "readmeCleaned": "

\"banner\"

\n

\"readme\"

\n

\"shot\"

\n
", "readmeOriginal": "

\"banner\"

\n

\"readme\"

\n

\"shot\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.744Z" }, "cloudcmd": { "readmeCleaned": "

Cloud Commander v16.1.0 \"Build \"Codacy\" \"Gitter\"

\n

Main Blog

\n

Cloud Commander a file manager for the web with console and editor.

\n

\"Cloud

\n

Install

\n
npm i cloudcmd -g\n
\n

Start

\n

For starting just type in console:

\n
cloudcmd
\n

How to use?

\n

Open url http://localhost:8000 in browser.

\n

View

\n

You will see something similar to this.\n\"View\"

\n

Deploy

\n

Cloud Commander could be easily deployed to Heroku.

\n

\"Deploy\"

\n

Using as Middleware

\n

Cloud Commander could be used as middleware for node.js applications based on socket.io and express:

\n

Init package.json:

\n
npm init -y\n
\n

Install dependencies:

\n
npm i cloudcmd express socket.io -S\n
\n

And create index.js:

\n
import http from 'http';\nimport cloudcmd from 'cloudcmd';\nimport {Server} from 'socket.io';\nimport express from 'express';\n\nconst app = express();\n\nconst port = 1337;\nconst prefix = '/';\n\nconst server = http.createServer(app);\nconst socket = new Server(server, {\n    path: `${prefix}socket.io`,\n});\n\nconst config = {\n    name: 'cloudcmd :)',\n};\n\nconst filePicker = {\n    data: {\n        FilePicker: {\n            key: 'key',\n        },\n    },\n};\n\n// override option from json/modules.json\nconst modules = {\n    filePicker,\n};\n\nconst {\n    createConfigManager,\n    configPath,\n} = cloudcmd;\n\nconst configManager = createConfigManager({\n    configPath,\n});\n\napp.use(prefix, cloudcmd({\n    socket, // used by Config, Edit (optional) and Console (required)\n    config, // config data (optional)\n    modules, // optional\n    configManager, // optional\n}));\n\nserver.listen(port);
\n

Docker

\n

The docker images are provided for multiple architectures and types. The following list shows all existing images:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ArchitectureType
amd64linux
arm/v7linux
arm64 (arm/v8)linux
amd64linux-alpine
arm/v7linux-alpine
arm64 (arm/v8)linux-alpine
\n

Cloud Commander could be used as a docker container this way:

\n
docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd
\n

Config would be read from home directory, hosts root file system would be mount to /mnt/fs,\n8000 port would be exposed to hosts port.

\n

Also you could use docker compose with docker-compose.yml:

\n
version: '2'\nservices:\n  web:\n    ports:\n      - 8000:8000\n    volumes:\n      - ~:/root\n      - /:/mnt/fs\n    image: coderaiser/cloudcmd
\n

When you create this file run:

\n
docker-compose up
\n

Documentation

\n

More documentation you can find on https://cloudcmd.io/.

\n

Get involved

\n

There is a lot ways to be involved in Cloud Commander development:

\n\n

License

\n

MIT

\n
", "readmeOriginal": "

Cloud Commander v16.1.0 \"Build \"Codacy\" \"Gitter\"

\n

Main Blog

\n

Cloud Commander a file manager for the web with console and editor.

\n

\"Cloud

\n

Install

\n
npm i cloudcmd -g\n
\n

Start

\n

For starting just type in console:

\n
cloudcmd
\n

How to use?

\n

Open url http://localhost:8000 in browser.

\n

View

\n

You will see something similar to this.\n\"View\"

\n

Deploy

\n

Cloud Commander could be easily deployed to Heroku.

\n

\"Deploy\"

\n

Using as Middleware

\n

Cloud Commander could be used as middleware for node.js applications based on socket.io and express:

\n

Init package.json:

\n
npm init -y\n
\n

Install dependencies:

\n
npm i cloudcmd express socket.io -S\n
\n

And create index.js:

\n
import http from 'http';\nimport cloudcmd from 'cloudcmd';\nimport {Server} from 'socket.io';\nimport express from 'express';\n\nconst app = express();\n\nconst port = 1337;\nconst prefix = '/';\n\nconst server = http.createServer(app);\nconst socket = new Server(server, {\n    path: `${prefix}socket.io`,\n});\n\nconst config = {\n    name: 'cloudcmd :)',\n};\n\nconst filePicker = {\n    data: {\n        FilePicker: {\n            key: 'key',\n        },\n    },\n};\n\n// override option from json/modules.json\nconst modules = {\n    filePicker,\n};\n\nconst {\n    createConfigManager,\n    configPath,\n} = cloudcmd;\n\nconst configManager = createConfigManager({\n    configPath,\n});\n\napp.use(prefix, cloudcmd({\n    socket, // used by Config, Edit (optional) and Console (required)\n    config, // config data (optional)\n    modules, // optional\n    configManager, // optional\n}));\n\nserver.listen(port);
\n

Docker

\n

The docker images are provided for multiple architectures and types. The following list shows all existing images:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ArchitectureType
amd64linux
arm/v7linux
arm64 (arm/v8)linux
amd64linux-alpine
arm/v7linux-alpine
arm64 (arm/v8)linux-alpine
\n

Cloud Commander could be used as a docker container this way:

\n
docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd
\n

Config would be read from home directory, hosts root file system would be mount to /mnt/fs,\n8000 port would be exposed to hosts port.

\n

Also you could use docker compose with docker-compose.yml:

\n
version: '2'\nservices:\n  web:\n    ports:\n      - 8000:8000\n    volumes:\n      - ~:/root\n      - /:/mnt/fs\n    image: coderaiser/cloudcmd
\n

When you create this file run:

\n
docker-compose up
\n

Documentation

\n

More documentation you can find on https://cloudcmd.io/.

\n

Get involved

\n

There is a lot ways to be involved in Cloud Commander development:

\n\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.802Z" }, "code-notes": { "readmeCleaned": "
\n
\n\"electron-vue\"\n
\n
\n
\n

\nA simple code snippet & gist manager for developers built with Electron & Vue.js 🚀\n

\n

\n https://lauthieb.github.io/code-notes\n

\n
\n

\"Build\n\"Join\n\"Financial\n\"PRs

\n

\"forthebadge\" \"forthebadge\" \"forthebadge\"

\n

\"Buy

\n
\n

Overview

\n

The aim of this project is to make us more efficient by offering a pretty cool tool : a kind of notepad for our code 😃📝

\n

Demo

\n
\n

\"Code

\n
\n

Download

\n

Go the the download section of our website to download Code Notes on your OS.

\n

Contributing

\n

For the moment, the project is pretty young. But if we work together to build the \"bloc-notes\" we dream, we can build pretty things for sure !
\nSo, feel free to contribute. Follow this guide 🤓

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build electron application for production\nnpm run build\n\n# run unit & end-to-end tests\nnpm test\n\n# lint all JS/Vue component files in `src/`\nnpm run eslint
\n

Support Code Notes

\n

\"Buy

\n

Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n
\n

This project was generated with vue-cli-plugin-electron-builder@f0c7709 using vue-cli. Documentation about the original structure can be found here.

\n
", "readmeOriginal": "
\n
\n\"electron-vue\"\n
\n
\n
\n

\nA simple code snippet & gist manager for developers built with Electron & Vue.js 🚀\n

\n

\n https://lauthieb.github.io/code-notes\n

\n
\n

\"Build\n\"Join\n\"Financial\n\"PRs

\n

\"forthebadge\" \"forthebadge\" \"forthebadge\"

\n

\"Buy

\n
\n

Overview

\n

The aim of this project is to make us more efficient by offering a pretty cool tool : a kind of notepad for our code 😃📝

\n

Demo

\n
\n

\"Code

\n
\n

Download

\n

Go the the download section of our website to download Code Notes on your OS.

\n

Contributing

\n

For the moment, the project is pretty young. But if we work together to build the \"bloc-notes\" we dream, we can build pretty things for sure !
\nSo, feel free to contribute. Follow this guide 🤓

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build electron application for production\nnpm run build\n\n# run unit & end-to-end tests\nnpm test\n\n# lint all JS/Vue component files in `src/`\nnpm run eslint
\n

Support Code Notes

\n

\"Buy

\n

Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n
\n

This project was generated with vue-cli-plugin-electron-builder@f0c7709 using vue-cli. Documentation about the original structure can be found here.

\n
", "readmeFetchedAt": "2022-05-10T00:07:41.923Z" }, "clovery": { "readmeCleaned": "

Neutron \"License: \"macOS

\n

Archived

\n

This repository is archived. To help us better improve the product and protect our intellectual assets, the development has been moved to Photon, a new core with closed source code base.

\n

Introduction

\n

The source code of the Neutron - the core that powers:

\n\n

Development

\n
# clone the project:\ngit clone https://github.com/webcatalog/neutron.git\ncd neutron
\n

For the app to be fully functional, set these environment variables:

\n
ELECTRON_APP_SENTRY_DSN=\nELECTRON_APP_GOOGLE_API_KEY=\nREACT_APP_AMPLITUDE_API_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_SEARCH_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_API_ENDPOINT=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_ENGINE_NAME=\n
\n

Modify public/app.json to change template app configuration. For example:

\n
{\n  \"id\": \"gmail\",\n  \"name\": \"Gmail\",\n  \"url\": \"https://mail.google.com\"\n}
\n\n

Distribution

\n

Release as/for:

\n\n
", "readmeOriginal": "

Neutron \"License: \"macOS

\n

Archived

\n

This repository is archived. To help us better improve the product and protect our intellectual assets, the development has been moved to Photon, a new core with closed source code base.

\n

Introduction

\n

The source code of the Neutron - the core that powers:

\n\n

Development

\n
# clone the project:\ngit clone https://github.com/webcatalog/neutron.git\ncd neutron
\n

For the app to be fully functional, set these environment variables:

\n
ELECTRON_APP_SENTRY_DSN=\nELECTRON_APP_GOOGLE_API_KEY=\nREACT_APP_AMPLITUDE_API_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_SEARCH_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_API_ENDPOINT=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_ENGINE_NAME=\n
\n

Modify public/app.json to change template app configuration. For example:

\n
{\n  \"id\": \"gmail\",\n  \"name\": \"Gmail\",\n  \"url\": \"https://mail.google.com\"\n}
\n\n

Distribution

\n

Release as/for:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:41.998Z" }, "codex": { "readmeCleaned": "

\n\t
\n\t\"GitHub\n\t\"GitHub\n\t\"GitHub\n\t

\n\tA free note-taking software for programmers and Computer Science students

\n\tMade by Josh Vickery\n

\n

Testing

\n
    \n
  1. Clone the respoitory with a git client, or download the source code ZIP from GitHub and extract it.
  2. \n
  3. Make sure you have NodeJS and npm (Node's package manager) installed.
  4. \n
  5. In the project's root folder, run npm install to download the required dependencies.
  6. \n
  7. Run npm start to test/run the project.
  8. \n
\n

Building

\n

Run npx electron-builder to build.

\n

The package.json should already specify the building behavior for Windows and Linux, but macOS has not been tested.

\n

Screenshot

\n

\"Screenshot\"

\n

License

\n

This work is licensed under a CC BY-NC 4.0 license.

\n
", "readmeOriginal": "

\n\t
\n\t\"GitHub\n\t\"GitHub\n\t\"GitHub\n\t

\n\tA free note-taking software for programmers and Computer Science students

\n\tMade by Josh Vickery\n

\n

Testing

\n
    \n
  1. Clone the respoitory with a git client, or download the source code ZIP from GitHub and extract it.
  2. \n
  3. Make sure you have NodeJS and npm (Node's package manager) installed.
  4. \n
  5. In the project's root folder, run npm install to download the required dependencies.
  6. \n
  7. Run npm start to test/run the project.
  8. \n
\n

Building

\n

Run npx electron-builder to build.

\n

The package.json should already specify the building behavior for Windows and Linux, but macOS has not been tested.

\n

Screenshot

\n

\"Screenshot\"

\n

License

\n

This work is licensed under a CC BY-NC 4.0 license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:42.111Z" }, "cocos-creator": { "readmeCleaned": "

\n \n \"Cocos\n \n

\n

\n \n \"stars\"\n \n \n \"forks\"\n \n \n \"version\"\n \n \n \"license\"\n \n \n \"twitter\"\n \n

\n

Engine for Cocos Creator

\n

\"image\"

\n

Cocos Engine is the framework for Cocos Creator editor. Cocos Creator is the new generation of game development tool in Cocos family, it brings a complete set of 3D features and provides an intuitive, low cost and collaboration friendly workflow to game developers.

\n

Cocos Creator inherited many good qualities and cool features from its previous versions, such as cross-platform support including instant gaming platforms like WeChat mini game, asset management, powerful animation editing, etc. Furthermore, Cocos Creator has pushed our technology to a whole new level. Our GFX implementation is designed to adapt to the latest graphic backend APIs, it already supports WebGL 2 and can be seamlessly fall back to WebGL 1, it will support Vulkan and Metal in the native build. The material system is built on our own effect format which uses GLSL 300 and can be easily adapted to lower version on low end devices. Developers can produce high performance, extremely expressive shaders with good compatibility. Along with physical based camera and lighting, high level game graphic can be easily achieved. Our pure GPU driven skeleton animation also make sure your game runs as smooth as possible. Besides all these exciting features, Cocos Creator have builtin physics support, terrain editing support, visual effect editing, ui system, TypeScript support, instant preview etc.

\n

\"image\"

\n

This repo is the engine part of Cocos Creator, it's mainly written in TypeScript and support users to use TypeScript or ES6 to write game logics. The engine itself is mostly self-contained, with full-fledged runtime modules including lighting, material, particle, animation, physical, UI, terrain, sound, resource and scene-graph management, etc. It supports both native and web platforms, including Windows, Mac, iOS, Android, Web. What's more exciting is that it supports rapidly expanding instant gaming platforms like WeChat Mini Game and Facebook Instant Games.

\n

The engine is naturally integrated within Cocos Creator, designed to only be the essential runtime library and not to be used independently.

\n

Developer

\n

Prerequisite

\n\n

Install

\n

In the cloned repo, run the following command to setup dev environment:

\n
# download & build engine dependencies\nnpm install
\n

This is all you have to do to setup engine development environment.

\n

Build

\n\n

Example Project

\n\n

Links

\n\n
", "readmeOriginal": "

\n \n \"Cocos\n \n

\n

\n \n \"stars\"\n \n \n \"forks\"\n \n \n \"version\"\n \n \n \"license\"\n \n \n \"twitter\"\n \n

\n

Engine for Cocos Creator

\n

\"image\"

\n

Cocos Engine is the framework for Cocos Creator editor. Cocos Creator is the new generation of game development tool in Cocos family, it brings a complete set of 3D features and provides an intuitive, low cost and collaboration friendly workflow to game developers.

\n

Cocos Creator inherited many good qualities and cool features from its previous versions, such as cross-platform support including instant gaming platforms like WeChat mini game, asset management, powerful animation editing, etc. Furthermore, Cocos Creator has pushed our technology to a whole new level. Our GFX implementation is designed to adapt to the latest graphic backend APIs, it already supports WebGL 2 and can be seamlessly fall back to WebGL 1, it will support Vulkan and Metal in the native build. The material system is built on our own effect format which uses GLSL 300 and can be easily adapted to lower version on low end devices. Developers can produce high performance, extremely expressive shaders with good compatibility. Along with physical based camera and lighting, high level game graphic can be easily achieved. Our pure GPU driven skeleton animation also make sure your game runs as smooth as possible. Besides all these exciting features, Cocos Creator have builtin physics support, terrain editing support, visual effect editing, ui system, TypeScript support, instant preview etc.

\n

\"image\"

\n

This repo is the engine part of Cocos Creator, it's mainly written in TypeScript and support users to use TypeScript or ES6 to write game logics. The engine itself is mostly self-contained, with full-fledged runtime modules including lighting, material, particle, animation, physical, UI, terrain, sound, resource and scene-graph management, etc. It supports both native and web platforms, including Windows, Mac, iOS, Android, Web. What's more exciting is that it supports rapidly expanding instant gaming platforms like WeChat Mini Game and Facebook Instant Games.

\n

The engine is naturally integrated within Cocos Creator, designed to only be the essential runtime library and not to be used independently.

\n

Developer

\n

Prerequisite

\n\n

Install

\n

In the cloned repo, run the following command to setup dev environment:

\n
# download & build engine dependencies\nnpm install
\n

This is all you have to do to setup engine development environment.

\n

Build

\n\n

Example Project

\n\n

Links

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:42.163Z" }, "code-sketch": { "readmeCleaned": "

\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=148413&theme=dark\"

\n

中文 | English

\n

代码画板 Code Sketch

\n
\n

一个你最初写代码的地方...

\n
\n

视频演示:Youtube | Bilibili,\n下载:release

\n

功能

\n\n

快捷键

\n\n

截图

\n

浅色主题

\n

\"code-sketch-light\"

\n

深色主题

\n

\"code-sketch-dark\"

\n

错误日志

\n

\"log\"

\n

控制台日志

\n

\"error\"

\n

开发

\n

yarn or npm

\n
yarn install\nyarn start\nyarn dev\n# build release for mac\nyarn release
\n

支持

\n
Wechat\n

\n \"donate-wechat\"\n

\n
\n
Alipay\n

\n \"donate-wechat\"\n

\n
\n
", "readmeOriginal": "

\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=148413&theme=dark\"

\n

中文 | English

\n

代码画板 Code Sketch

\n
\n

一个你最初写代码的地方...

\n
\n

视频演示:Youtube | Bilibili,\n下载:release

\n

功能

\n\n

快捷键

\n\n

截图

\n

浅色主题

\n

\"code-sketch-light\"

\n

深色主题

\n

\"code-sketch-dark\"

\n

错误日志

\n

\"log\"

\n

控制台日志

\n

\"error\"

\n

开发

\n

yarn or npm

\n
yarn install\nyarn start\nyarn dev\n# build release for mac\nyarn release
\n

支持

\n
Wechat\n

\n \"donate-wechat\"\n

\n
\n
Alipay\n

\n \"donate-wechat\"\n

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:42.177Z" }, "color-ramp-formulator": { "readmeCleaned": "

\"Color COLOR RAMP FORMULATOR

\n

Color Ramp Formulator is an open-source desktop application used to generate algorithmically-defined color ramps, making use of formulas.

\n

This application is built with Electron, and works on macOS, Linux and Windows operating systems.

\n

\"Color

\n

\"Color

\n

\"Color

\n

\"Color

\n

Examples

\n

CubeHelix (Destiny)

\n

\"CubeHelix

\n

\"CubeHelix

\n
cubehelix_color (1 - t, 0, 0.4, 0.8, 1, [ 0.15, 0.85 ])
\n

Diverging

\n

\"Diverging

\n

\"Diverging

\n
rgb_t\n(\n    cos ((t - 2/6) * PI),\n    cos ((t - 3/6) * PI),\n    cos ((t - 4/6) * PI)\n)
\n

Fancy (Ternary)

\n

\"Fancy

\n

\"Fancy

\n
rgb\n(\n    (x < 127.5) ? 255 - (2 * x) : (2 * x) - 255,\n    (x < 127.5) ? 1.5 * x : 127.5 + (0.5 * x),\n    (x < 127.5) ? 127.5 + (0.5 * (255 - x)) : 1.5 * (255 - x)\n)
\n

Green Sequential (Discrete)

\n

\"Green

\n

\"Green

\n
discrete_colors\n(\n    [\n        \"#085A32\",\n        \"#118649\",\n        \"#18A85A\",\n        \"#52B974\",\n        \"#9ECF8A\",\n        \"#D2E3A2\",\n        \"#F0F1BA\",\n        \"#F7F8E5\"\n    ],\n    [ 0, 255 ], x\n)
\n

Iron (YCbCr)

\n

\"Iron

\n

\"Iron

\n
ycbcr_t\n(\n    lerp (0.059, 0.886, t),\n    cubic ([ 5.99477, -8.68926, 2.53768, 0.550188 ], t),\n    cubic ([ 0.683558, -2.49828, 1.94276, 0.383144 ], t)\n)
\n

Navajo White (Transformed)

\n

\"Navajo

\n

\"Navajo

\n
transform_color\n(\n    \"navajo_white\",\n    0, lerp (1, 2, t), lerp (1, 1/3, t)\n)
\n

Parakeet (CubeHelix)

\n

\"Parakeet

\n

\"Parakeet

\n
interpolate_colors\n(\n    [\n        [ 0/3, cubehelix (260, 60, 35) ],\n        [ 2/3, cubehelix (80, 120, 75) ],\n        [ 3/3, \"gold\" ]\n    ],\n    t,\n    \"cubehelix-dec\", [ 100, 0, 0 ]\n)
\n

Radiancy (HSL)

\n

\"Radiancy

\n

\"Radiancy

\n
distribute_colors\n(\n    [ \"#2A4858\", \"#FAFA6E\", \"#2A4858\" ],\n    [ 0, 1 ], t,\n    \"hsl-far\", [ 0, 100, 0 ]\n)
\n

Two-Sided Color Bar

\n

\"Two-Sided

\n

\"Two-Sided

\n
hsv\n(\n    t < 0.5 ? lerp (240, 120, t) : lerp (60, -60, t - 0.5),\n    100,\n    100\n)
\n

Yellow to Blue

\n

\"Yellow

\n

\"Yellow

\n
hcl_t\n(\n    1/9 + 1/6 + (t / 2),\n    0.5,\n    1 - pow (t, 1.5)\n)
\n

Yellow to Red (Wavelengths)

\n

\"Yellow

\n

\"Yellow

\n
wavelength_color (lerp (580, 645, t))
\n

Using

\n

You can download the latest release for macOS.

\n

Building

\n

You'll need Node.js (which comes with npm) installed on your computer in order to build this application.

\n

Clone method

\n
# Clone the repository\ngit clone https://github.com/tonton-pixel/color-ramp-formulator\n# Go into the repository\ncd color-ramp-formulator\n# Install dependencies\nnpm install\n# Run the application\nnpm start
\n

Note: to use the clone method, the core tool git must also be installed.

\n

Download method

\n

If you don't wish to clone, you can download the source code, unZip it, then directly run the following commands from a Terminal opened at the resulting color-ramp-formulator-master folder location:

\n
# Install dependencies\nnpm install\n# Run the application\nnpm start
\n

Packaging

\n

Several scripts are also defined in the package.json file to build OS-specific bundles of the application, using the simple yet powerful Electron Packager Node module.
\nFor instance, running the following command (once the dependencies are installed) will create a Color Ramp Formulator.app version for macOS:

\n
# Build macOS (Darwin) application\nnpm run build-darwin
\n

License

\n

The MIT License (MIT).

\n

Copyright © 2020-2022 Michel Mariani.

\n
", "readmeOriginal": "

\"Color COLOR RAMP FORMULATOR

\n

Color Ramp Formulator is an open-source desktop application used to generate algorithmically-defined color ramps, making use of formulas.

\n

This application is built with Electron, and works on macOS, Linux and Windows operating systems.

\n

\"Color

\n

\"Color

\n

\"Color

\n

\"Color

\n

Examples

\n

CubeHelix (Destiny)

\n

\"CubeHelix

\n

\"CubeHelix

\n
cubehelix_color (1 - t, 0, 0.4, 0.8, 1, [ 0.15, 0.85 ])
\n

Diverging

\n

\"Diverging

\n

\"Diverging

\n
rgb_t\n(\n    cos ((t - 2/6) * PI),\n    cos ((t - 3/6) * PI),\n    cos ((t - 4/6) * PI)\n)
\n

Fancy (Ternary)

\n

\"Fancy

\n

\"Fancy

\n
rgb\n(\n    (x < 127.5) ? 255 - (2 * x) : (2 * x) - 255,\n    (x < 127.5) ? 1.5 * x : 127.5 + (0.5 * x),\n    (x < 127.5) ? 127.5 + (0.5 * (255 - x)) : 1.5 * (255 - x)\n)
\n

Green Sequential (Discrete)

\n

\"Green

\n

\"Green

\n
discrete_colors\n(\n    [\n        \"#085A32\",\n        \"#118649\",\n        \"#18A85A\",\n        \"#52B974\",\n        \"#9ECF8A\",\n        \"#D2E3A2\",\n        \"#F0F1BA\",\n        \"#F7F8E5\"\n    ],\n    [ 0, 255 ], x\n)
\n

Iron (YCbCr)

\n

\"Iron

\n

\"Iron

\n
ycbcr_t\n(\n    lerp (0.059, 0.886, t),\n    cubic ([ 5.99477, -8.68926, 2.53768, 0.550188 ], t),\n    cubic ([ 0.683558, -2.49828, 1.94276, 0.383144 ], t)\n)
\n

Navajo White (Transformed)

\n

\"Navajo

\n

\"Navajo

\n
transform_color\n(\n    \"navajo_white\",\n    0, lerp (1, 2, t), lerp (1, 1/3, t)\n)
\n

Parakeet (CubeHelix)

\n

\"Parakeet

\n

\"Parakeet

\n
interpolate_colors\n(\n    [\n        [ 0/3, cubehelix (260, 60, 35) ],\n        [ 2/3, cubehelix (80, 120, 75) ],\n        [ 3/3, \"gold\" ]\n    ],\n    t,\n    \"cubehelix-dec\", [ 100, 0, 0 ]\n)
\n

Radiancy (HSL)

\n

\"Radiancy

\n

\"Radiancy

\n
distribute_colors\n(\n    [ \"#2A4858\", \"#FAFA6E\", \"#2A4858\" ],\n    [ 0, 1 ], t,\n    \"hsl-far\", [ 0, 100, 0 ]\n)
\n

Two-Sided Color Bar

\n

\"Two-Sided

\n

\"Two-Sided

\n
hsv\n(\n    t < 0.5 ? lerp (240, 120, t) : lerp (60, -60, t - 0.5),\n    100,\n    100\n)
\n

Yellow to Blue

\n

\"Yellow

\n

\"Yellow

\n
hcl_t\n(\n    1/9 + 1/6 + (t / 2),\n    0.5,\n    1 - pow (t, 1.5)\n)
\n

Yellow to Red (Wavelengths)

\n

\"Yellow

\n

\"Yellow

\n
wavelength_color (lerp (580, 645, t))
\n

Using

\n

You can download the latest release for macOS.

\n

Building

\n

You'll need Node.js (which comes with npm) installed on your computer in order to build this application.

\n

Clone method

\n
# Clone the repository\ngit clone https://github.com/tonton-pixel/color-ramp-formulator\n# Go into the repository\ncd color-ramp-formulator\n# Install dependencies\nnpm install\n# Run the application\nnpm start
\n

Note: to use the clone method, the core tool git must also be installed.

\n

Download method

\n

If you don't wish to clone, you can download the source code, unZip it, then directly run the following commands from a Terminal opened at the resulting color-ramp-formulator-master folder location:

\n
# Install dependencies\nnpm install\n# Run the application\nnpm start
\n

Packaging

\n

Several scripts are also defined in the package.json file to build OS-specific bundles of the application, using the simple yet powerful Electron Packager Node module.
\nFor instance, running the following command (once the dependencies are installed) will create a Color Ramp Formulator.app version for macOS:

\n
# Build macOS (Darwin) application\nnpm run build-darwin
\n

License

\n

The MIT License (MIT).

\n

Copyright © 2020-2022 Michel Mariani.

\n
", "readmeFetchedAt": "2022-05-10T00:07:42.306Z" }, "compact-log-viewer": { "readmeCleaned": "

Compact Log Format Viewer 🔍 📈

\n

A cross platform tool to read & query JSON aka CLEF log files created by Serilog

\n

\n

\"screenshot\"

\n

Download

\n

Releases are available on this GitHub Repository along on the Windows Store

\n

Windows

\n

\"English

\n

MacOS

\n

The metrics for the MacOS usage was too little & I don't currently build/release any other Apple apps, so my Apple Developer subscription lapsed. I assumed the application would still be available to download but that I would not be able to push any new updates. However it seems Apple just removes the listing :(

\n

For now I recommend you build it manually. In future I may do auto-updates via GitHub releases instead of app stores.

\n

Building

\n

You will need the following installed:

\n\n

For OSX & Windows you can download the SDK here or install Visual Studio for Mac/Windows which includes the dotnet CLI tool
\nhttps://dotnet.microsoft.com/download
\nhttps://visualstudio.microsoft.com/vs/

\n

Build Steps 🔨📐

\n\n
\n

Note: If you npm run start before you have compiled the TypeScript files then Electron will complain about not finding the entry point file. Additionally if you have also not run dotnet publish then the underlying WebAPI which we communicate with will not be running.

\n
\n

3rd Party Libraries 💖💖

\n

This package uses the following libraries:

\n\n
", "readmeOriginal": "

Compact Log Format Viewer 🔍 📈

\n

A cross platform tool to read & query JSON aka CLEF log files created by Serilog

\n

\n

\"screenshot\"

\n

Download

\n

Releases are available on this GitHub Repository along on the Windows Store

\n

Windows

\n

\"English

\n

MacOS

\n

The metrics for the MacOS usage was too little & I don't currently build/release any other Apple apps, so my Apple Developer subscription lapsed. I assumed the application would still be available to download but that I would not be able to push any new updates. However it seems Apple just removes the listing :(

\n

For now I recommend you build it manually. In future I may do auto-updates via GitHub releases instead of app stores.

\n

Building

\n

You will need the following installed:

\n\n

For OSX & Windows you can download the SDK here or install Visual Studio for Mac/Windows which includes the dotnet CLI tool
\nhttps://dotnet.microsoft.com/download
\nhttps://visualstudio.microsoft.com/vs/

\n

Build Steps 🔨📐

\n\n
\n

Note: If you npm run start before you have compiled the TypeScript files then Electron will complain about not finding the entry point file. Additionally if you have also not run dotnet publish then the underlying WebAPI which we communicate with will not be running.

\n
\n

3rd Party Libraries 💖💖

\n

This package uses the following libraries:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:42.393Z" }, "commandeer": { "readmeCleaned": "

The Commandeer Developer IDE - Manage 30+ of the best Cloud Services

\n\n

\"commandeer\"

\n

Commandeer is a tool built by developers for developers that solves three things in the cloud. First, we are focused on the deployment of your IAC. Secondly, we enable you to ‘Test your Plumbing’. Lastly, Commandeer provides you the ability to easily view your data. (Manage AWS, Algolia, Slack, Twilio, SendGrid, Serverless, LocalStack, Ansible, Docker and more from your desktop)

\n\n
\n

\"MadeWithVueJs.com

\n

\"Commandeer

\n
\n

30+ Supported Services

\n

Docker and LocalStack Support

\n\n

Support AWS Services

\n\n

Other Services

\n\n

IaC

\n\n

Supporting Services for Sharing

\n\n
\n

Contents of this Open-Source Repo

\n

The code base for the Commandeer App is closed-source. To make a great product, we feel that is is better to only serve out a final, polished product with every release. If you look at our Release History you will notice that we have very few minor revisions, which are usually quick patches after a major release. This is because we have a hyper-focus on quality within all our tooling, but especially with our Desktop App, as it is a tool specifically meant to help you with your day to day work.

\n

Docker Compose

\n

This is the docker compose file to install Ansible runner, LocalStack, Portainer, Serverless, and Terraform.

\n

Tank Demo

\n

A demo application for help in creating a service to run in Commandeer

\n\n

\"Tank

\n

These are still in their infancy.

\n\n
", "readmeOriginal": "

The Commandeer Developer IDE - Manage 30+ of the best Cloud Services

\n\n

\"commandeer\"

\n

Commandeer is a tool built by developers for developers that solves three things in the cloud. First, we are focused on the deployment of your IAC. Secondly, we enable you to ‘Test your Plumbing’. Lastly, Commandeer provides you the ability to easily view your data. (Manage AWS, Algolia, Slack, Twilio, SendGrid, Serverless, LocalStack, Ansible, Docker and more from your desktop)

\n\n
\n

\"MadeWithVueJs.com

\n

\"Commandeer

\n
\n

30+ Supported Services

\n

Docker and LocalStack Support

\n\n

Support AWS Services

\n\n

Other Services

\n\n

IaC

\n\n

Supporting Services for Sharing

\n\n
\n

Contents of this Open-Source Repo

\n

The code base for the Commandeer App is closed-source. To make a great product, we feel that is is better to only serve out a final, polished product with every release. If you look at our Release History you will notice that we have very few minor revisions, which are usually quick patches after a major release. This is because we have a hyper-focus on quality within all our tooling, but especially with our Desktop App, as it is a tool specifically meant to help you with your day to day work.

\n

Docker Compose

\n

This is the docker compose file to install Ansible runner, LocalStack, Portainer, Serverless, and Terraform.

\n

Tank Demo

\n

A demo application for help in creating a service to run in Commandeer

\n\n

\"Tank

\n

These are still in their infancy.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:42.395Z" }, "colorpicker": { "readmeCleaned": "

\n \n \"ColorPicker\n \n

Colorpicker

\n

A mininal but complete colorpicker desktop app

\n

\n \n \n \n \n \n \n \"colorpicker-app\"\n \n \n \n \n

\n

\n

Survey for the next update of Colorpicker! Please take time to complete it! English survey - French survey

\n

Want to help to translate this app? go on Crowdin! Your help is welcome :)

\n

Colorpicker is a desktop tool with Electron to get and save colors code quickly for OSX, Windows and Linux!

\n

\n \"ColorPicker\n

\n

Colorpicker's menu come with a lot of cool features :

\n\n

Pin

\n

\"Pin

\n

With Pin, you can bring Colorpicker to the foreground. This makes it convenient to work quickly with different\napplications at the same time.

\n
\n

Picker

\n

\"Picker

\n

The Picker allows you to quickly retrieve a color anywhere on the screen. Whether it's on your browser, Photoshop, or\nwhatever.

\n
\n

Colorsbook

\n

\"Colorsbook

\n

Colorsbook is a full-fledged application. It allows you to store your colors, categorize them, and easily retrieve them.\nIt is destined to mature over time.\nCool tip: you can save color from colorpicker with CMD+S or CTRL+S!

\n
\n

Shading

\n

\"Tint

\n

With the shades, you can find the perfect color you need. You have a chromatic bar, a natural color bar and a shadow\nbar.

\n
\n

Opacity [WIP]

\n

\"Opacity

\n

This feature is a bit special. It allows you to render the application transparent. This can be useful to see the\nappearance of a transparent color.

\n
\n

Focus Mode

\n

\"Focus

\n

Need to compare a color or clean up the interface? This feature is for you, this will hide the sliders and make the menu\nmore transparent.

\n
\n

Magic Color [WIP]

\n

This functionality is still under development. Currently, it allows you to display the first color that is in your\nclipboard. This works with hexadecimal and RGB codes

\n
\n

Random

\n

A traditional feature, it allows you to display a color randomly.

\n
\n

Settings

\n

\"Settings

\n

The settings menu allows you to customize your Colorpicker, I let you discover it yourself :)!

\n

Download

\n\n

Want to support me?

\n

You can buy me a coffee here! Thank you!

\n

Happy Design !

\n

Developers

\n

Changelog

\n

See changelog here.

\n

How to compile

\n\n
yarn
\n\n
yarn rebuild
\n\n
# You can build nightly & release only for your current OS.\n# i.e. you can't build a OSX version if you use a Windows\n\n# build a nightly version\nyarn nightly\n\n# build a release version\nyarn release
\n
", "readmeOriginal": "

\n \n \"ColorPicker\n \n

Colorpicker

\n

A mininal but complete colorpicker desktop app

\n

\n \n \n \n \n \n \n \"colorpicker-app\"\n \n \n \n \n

\n

\n

Survey for the next update of Colorpicker! Please take time to complete it! English survey - French survey

\n

Want to help to translate this app? go on Crowdin! Your help is welcome :)

\n

Colorpicker is a desktop tool with Electron to get and save colors code quickly for OSX, Windows and Linux!

\n

\n \"ColorPicker\n

\n

Colorpicker's menu come with a lot of cool features :

\n\n

Pin

\n

\"Pin

\n

With Pin, you can bring Colorpicker to the foreground. This makes it convenient to work quickly with different\napplications at the same time.

\n
\n

Picker

\n

\"Picker

\n

The Picker allows you to quickly retrieve a color anywhere on the screen. Whether it's on your browser, Photoshop, or\nwhatever.

\n
\n

Colorsbook

\n

\"Colorsbook

\n

Colorsbook is a full-fledged application. It allows you to store your colors, categorize them, and easily retrieve them.\nIt is destined to mature over time.\nCool tip: you can save color from colorpicker with CMD+S or CTRL+S!

\n
\n

Shading

\n

\"Tint

\n

With the shades, you can find the perfect color you need. You have a chromatic bar, a natural color bar and a shadow\nbar.

\n
\n

Opacity [WIP]

\n

\"Opacity

\n

This feature is a bit special. It allows you to render the application transparent. This can be useful to see the\nappearance of a transparent color.

\n
\n

Focus Mode

\n

\"Focus

\n

Need to compare a color or clean up the interface? This feature is for you, this will hide the sliders and make the menu\nmore transparent.

\n
\n

Magic Color [WIP]

\n

This functionality is still under development. Currently, it allows you to display the first color that is in your\nclipboard. This works with hexadecimal and RGB codes

\n
\n

Random

\n

A traditional feature, it allows you to display a color randomly.

\n
\n

Settings

\n

\"Settings

\n

The settings menu allows you to customize your Colorpicker, I let you discover it yourself :)!

\n

Download

\n\n

Want to support me?

\n

You can buy me a coffee here! Thank you!

\n

Happy Design !

\n

Developers

\n

Changelog

\n

See changelog here.

\n

How to compile

\n\n
yarn
\n\n
yarn rebuild
\n\n
# You can build nightly & release only for your current OS.\n# i.e. you can't build a OSX version if you use a Windows\n\n# build a nightly version\nyarn nightly\n\n# build a release version\nyarn release
\n
", "readmeFetchedAt": "2022-05-10T00:07:42.399Z" }, "companion": { "readmeCleaned": "

\n

Companion

\n

\"license\"\n\"npm-version\"

\n

Did you know Compy the companion? They are a friendly mini browser to pin on top of any other desktop app and keep doing your things while enjoying a live stream or a youtube video.

\n

Tested services

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameWorksInfo
Twitch✔️Ok
Youtube✔️Ok
SoundCloud✔️Ok
NetflixDRM problem, needs Widevine
DisneyPlusDRM problem
\n

Downloads

\n

⚠️ Observation: At the moments the releases are made manually, I need time to create a proper continous distribution automation routine, follow the instruction on How to Compile if you want a specific version.

\n

Windows x64 | macOS | Linux

\n

\"Screenshot\"

\n

Streamer at the screenshot: @rawrafaela member of the @wakandastreamers team.

\n

How to Compile

\n

Pre-requisites:

\n\n

Install dependencies with:

\n
npm install
\n

Run the distribution command:

\n
# For Linux\nnpm run dist:linux\n\n# For Windows\nnpm run dist:win\n\n# For mac\nnpm run dist:mac
\n
", "readmeOriginal": "

\n

Companion

\n

\"license\"\n\"npm-version\"

\n

Did you know Compy the companion? They are a friendly mini browser to pin on top of any other desktop app and keep doing your things while enjoying a live stream or a youtube video.

\n

Tested services

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameWorksInfo
Twitch✔️Ok
Youtube✔️Ok
SoundCloud✔️Ok
NetflixDRM problem, needs Widevine
DisneyPlusDRM problem
\n

Downloads

\n

⚠️ Observation: At the moments the releases are made manually, I need time to create a proper continous distribution automation routine, follow the instruction on How to Compile if you want a specific version.

\n

Windows x64 | macOS | Linux

\n

\"Screenshot\"

\n

Streamer at the screenshot: @rawrafaela member of the @wakandastreamers team.

\n

How to Compile

\n

Pre-requisites:

\n\n

Install dependencies with:

\n
npm install
\n

Run the distribution command:

\n
# For Linux\nnpm run dist:linux\n\n# For Windows\nnpm run dist:win\n\n# For mac\nnpm run dist:mac
\n
", "readmeFetchedAt": "2022-05-10T00:07:42.566Z" }, "correo": { "readmeCleaned": "

\n
\n \"Correo\"\n
\n Correo\n
\n

\n

A menubar/taskbar Gmail App based on Electron.

\n

\n \n \n \n

\n

\n \n \n \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Windows 
\"sreenshot1\"\"screenshot2\"
\n

Features

\n\n

How To Use

\n

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\n$ git clone https://github.com/amitmerchant1990/correo\n\n# Go into the repository\n$ cd correo\n\n# Install dependencies\n$ npm install\n\n# Run the app\n$ npm start
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Download

\n

Download the portable version of Correo for Windows, macOS and Linux from here.

\n

Correo?

\n

Correo means \"mail\" in Spanish.

\n

Credits

\n

This software uses code from several open source packages.

\n\n

License

\n
\n

The MIT license (MIT)

\n

Copyright (c) Amit Merchant

\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n
\n
\n
\n

amitmerchant.com  · \nGitHub @amitmerchant1990  · \nTwitter @amit_merchant

\n
\n
", "readmeOriginal": "

\n
\n \"Correo\"\n
\n Correo\n
\n

\n

A menubar/taskbar Gmail App based on Electron.

\n

\n \n \n \n

\n

\n \n \n \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Windows 
\"sreenshot1\"\"screenshot2\"
\n

Features

\n\n

How To Use

\n

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\n$ git clone https://github.com/amitmerchant1990/correo\n\n# Go into the repository\n$ cd correo\n\n# Install dependencies\n$ npm install\n\n# Run the app\n$ npm start
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Download

\n

Download the portable version of Correo for Windows, macOS and Linux from here.

\n

Correo?

\n

Correo means \"mail\" in Spanish.

\n

Credits

\n

This software uses code from several open source packages.

\n\n

License

\n
\n

The MIT license (MIT)

\n

Copyright (c) Amit Merchant

\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n
\n
\n
\n

amitmerchant.com  · \nGitHub @amitmerchant1990  · \nTwitter @amit_merchant

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:42.650Z" }, "container-ps": { "readmeCleaned": "

\n \n \"Container\n \n

Container PS

\n

This little app for OSX help you to manager your Docker containers.

\n

\n \n \n \n \n \n

\n

\n
\n

You must have Docker launched to make work this app.\nIt uses shell commands using the Node.js child_process spawn module, thanks to @SebastianRuecker.

\n

You can see the list of all your containers, whether they are active or not.

\n

\n\n

When hovering over a container, you will have additional information about it, as well as buttons to turn it on, off, restart, open a console (bash or sh) and delete it.

\n

Install or Download

\n

The latest release can be dowloaded via brew cask:

\n
brew install --cask container-ps\n
\n

Downloads are available here: releases pages.

\n

Development

\n

Install dependencies and start.

\n
    yarn && yarn start
\n
", "readmeOriginal": "

\n \n \"Container\n \n

Container PS

\n

This little app for OSX help you to manager your Docker containers.

\n

\n \n \n \n \n \n

\n

\n
\n

You must have Docker launched to make work this app.\nIt uses shell commands using the Node.js child_process spawn module, thanks to @SebastianRuecker.

\n

You can see the list of all your containers, whether they are active or not.

\n

\n\n

When hovering over a container, you will have additional information about it, as well as buttons to turn it on, off, restart, open a console (bash or sh) and delete it.

\n

Install or Download

\n

The latest release can be dowloaded via brew cask:

\n
brew install --cask container-ps\n
\n

Downloads are available here: releases pages.

\n

Development

\n

Install dependencies and start.

\n
    yarn && yarn start
\n
", "readmeFetchedAt": "2022-05-10T00:07:42.653Z" }, "converse": { "readmeCleaned": "

\n \n \"Converse-Desktop\"\n \n

\n

Converse Desktop

\n

Jabber/XMPP client based on Converse.js and Electron

\n

\"XMPP

\n

A basic integration of Converse.js and Electron. With OMEMO.

\n

Screenshots and features

\n

\"Login\n\"One-to-one\n\"Multi-user

\n\n

Changelog

\n

See CHANGES.md

\n

Latest release installers

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operation SystemDownload link
macOSConverse_Desktop-9.1.0_x64.dmg
WindowsConverse_Desktop_Setup-9.1.0_x64.exe
Linux DEBconverse_desktop-9.1.0_amd64.deb
Linux otherconverse_desktop-9.1.0_x64.tar.gz
\n\n

Build from source

\n
git clone https://github.com/conversejs/converse-desktop.git\ncd converse-desktop\nnpm i\n$(npm bin)/electron-rebuild
\n

Then, to run:

\n
npm start
\n

Build targets:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operation SystemTarget
macOSnpm run dist
Windowsnpm run dist:win64
Linux DEBnpm run dist:linux64deb
\n

More targets could be added via package.json. See electron builder docs.

\n

License

\n

Like Converse.js, Converse Desktop's files are released under the Mozilla Public License version 2 (MPLv2). The gist of this license is that the covered files must stay open source, and modifications to them need to be released under the same license, but new files (for example for your own plugin) don't have to be released under the same license.

\n

However, libsignal library, which is required for OMEMO support is released under the GPLv3. The MPLv2 license is compatible with GPLv3 and when GPLv3 code is included, the entire project effectively is licensed under the GPLv3.

\n

Any custom build of Converse Desktop without libsignal included will again be licensed\nunder the MPLv2.

\n

Acknowledgements

\n

This project started as a fork of Nick Denry's Chimeverse.

\n\n \"PayPal\n\n
", "readmeOriginal": "

\n \n \"Converse-Desktop\"\n \n

\n

Converse Desktop

\n

Jabber/XMPP client based on Converse.js and Electron

\n

\"XMPP

\n

A basic integration of Converse.js and Electron. With OMEMO.

\n

Screenshots and features

\n

\"Login\n\"One-to-one\n\"Multi-user

\n\n

Changelog

\n

See CHANGES.md

\n

Latest release installers

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operation SystemDownload link
macOSConverse_Desktop-9.1.0_x64.dmg
WindowsConverse_Desktop_Setup-9.1.0_x64.exe
Linux DEBconverse_desktop-9.1.0_amd64.deb
Linux otherconverse_desktop-9.1.0_x64.tar.gz
\n\n

Build from source

\n
git clone https://github.com/conversejs/converse-desktop.git\ncd converse-desktop\nnpm i\n$(npm bin)/electron-rebuild
\n

Then, to run:

\n
npm start
\n

Build targets:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operation SystemTarget
macOSnpm run dist
Windowsnpm run dist:win64
Linux DEBnpm run dist:linux64deb
\n

More targets could be added via package.json. See electron builder docs.

\n

License

\n

Like Converse.js, Converse Desktop's files are released under the Mozilla Public License version 2 (MPLv2). The gist of this license is that the covered files must stay open source, and modifications to them need to be released under the same license, but new files (for example for your own plugin) don't have to be released under the same license.

\n

However, libsignal library, which is required for OMEMO support is released under the GPLv3. The MPLv2 license is compatible with GPLv3 and when GPLv3 code is included, the entire project effectively is licensed under the GPLv3.

\n

Any custom build of Converse Desktop without libsignal included will again be licensed\nunder the MPLv2.

\n

Acknowledgements

\n

This project started as a fork of Nick Denry's Chimeverse.

\n\n \"PayPal\n\n
", "readmeFetchedAt": "2022-05-10T00:07:42.674Z" }, "corda-node-explorer": { "readmeCleaned": "

Node Explorer

\n

Stand alone desktop app for Win/Osx/Linux that allows connecting to a local or remote Corda node. Examine transactions, run flows and view node and network properties in a few simple clicks.

\n

Downloading the Node Explorer Binaries

\n

If you're looking to download the node explorer and get started using it; download the latest packaged release on this repo's releases page.

\n

There are install packages for Linux, OSX and Windows.

\n

To login to your Corda node, you will need to provide the:

\n\n

Notes: You can find the Rpc port in your node config under rpcSettings->address or as displayed in a CraSH shell instance. If you have not explicitly set a username/password project defaults are user1 and test.

\n

Full instructions for using the Node-Explorer application at the documentation

\n
\n

Setting up for Node Explorer for Development

\n

Note: This repository uses sub-modules. If cloning use git clone --recursive to automatically initialize and update the submodules.

\n

Installation:

\n

Requirements: NodeJS and Npm package manager.

\n
    \n
  1. git clone --recursive <this repo> <optional: target dir>
  2. \n
  3. cd node-explorer (or target directory)
  4. \n
  5. npm install
  6. \n
\n

Note this project uses the node-server submodule available at https://github.com/corda/node-server this must be initialised either by passing the --recursive option when running git clone OR executing the following commands.

\n
    \n
  1. git submodule init
  2. \n
  3. git submodule update*
  4. \n
\n

*this command must also be run after any pull request which includes updates to the submodule. An alternative is to do pull requests with the following option:\ngit pull --recurse-submodules

\n

Other submodule commands:

\n\n

Running the Node Explorer w/o packaging

\n

To test your changes or run the node explorer without packaging you must:

\n

1 Build and run the server jar first

\n\n

2 Then run the front end from the main project directory

\n\n

3 The application can then be used through your browser at http://localhost:3000

\n

Packaging electron installers / app files

\n

Note: You must have a compiled server jar in the directory root

\n\n

Then run: npm run electron-pack

\n
\n

Deploy or Run Node Explorer with Docker

\n

You can build docker images using the provided DockerFile(s). You will need to build two images, one for the Node Explorer front end ./DockerFile and another for the backend Node Server ./server/DockerFile (the Node Server DockerFile utilizes layers so you will need to extract the jar - see A Better Dockerfile)

\n

If you DO NOT want to build your own images you can simply run Node Explorer using the docker-compose.yml and with contributed images. Follow the steps below:

\n

#####1. Set cordapps path

\n
export CORDAPPS_PATH=Your cordapps path here\n
\n

example

\n
export CORDAPPS_PATH=/home/karthik/github/samples-java/Basic/yo-cordapp/build/nodes/PartyA/cordapps\n
\n

#####2. Run docker-compose file

\n
docker-compose up -d\n
\n

#####3. Browse to Node explorer UI

\n

explorer runs at port 3000

\n
http://localhost:3000/\n
\n

#####4. Set cordapps directory in settings

\n

Provide cordapps path as /cordapps in settings tab.

\n
/cordapps\n
\n
", "readmeOriginal": "

Node Explorer

\n

Stand alone desktop app for Win/Osx/Linux that allows connecting to a local or remote Corda node. Examine transactions, run flows and view node and network properties in a few simple clicks.

\n

Downloading the Node Explorer Binaries

\n

If you're looking to download the node explorer and get started using it; download the latest packaged release on this repo's releases page.

\n

There are install packages for Linux, OSX and Windows.

\n

To login to your Corda node, you will need to provide the:

\n\n

Notes: You can find the Rpc port in your node config under rpcSettings->address or as displayed in a CraSH shell instance. If you have not explicitly set a username/password project defaults are user1 and test.

\n

Full instructions for using the Node-Explorer application at the documentation

\n
\n

Setting up for Node Explorer for Development

\n

Note: This repository uses sub-modules. If cloning use git clone --recursive to automatically initialize and update the submodules.

\n

Installation:

\n

Requirements: NodeJS and Npm package manager.

\n
    \n
  1. git clone --recursive <this repo> <optional: target dir>
  2. \n
  3. cd node-explorer (or target directory)
  4. \n
  5. npm install
  6. \n
\n

Note this project uses the node-server submodule available at https://github.com/corda/node-server this must be initialised either by passing the --recursive option when running git clone OR executing the following commands.

\n
    \n
  1. git submodule init
  2. \n
  3. git submodule update*
  4. \n
\n

*this command must also be run after any pull request which includes updates to the submodule. An alternative is to do pull requests with the following option:\ngit pull --recurse-submodules

\n

Other submodule commands:

\n\n

Running the Node Explorer w/o packaging

\n

To test your changes or run the node explorer without packaging you must:

\n

1 Build and run the server jar first

\n\n

2 Then run the front end from the main project directory

\n\n

3 The application can then be used through your browser at http://localhost:3000

\n

Packaging electron installers / app files

\n

Note: You must have a compiled server jar in the directory root

\n\n

Then run: npm run electron-pack

\n
\n

Deploy or Run Node Explorer with Docker

\n

You can build docker images using the provided DockerFile(s). You will need to build two images, one for the Node Explorer front end ./DockerFile and another for the backend Node Server ./server/DockerFile (the Node Server DockerFile utilizes layers so you will need to extract the jar - see A Better Dockerfile)

\n

If you DO NOT want to build your own images you can simply run Node Explorer using the docker-compose.yml and with contributed images. Follow the steps below:

\n

#####1. Set cordapps path

\n
export CORDAPPS_PATH=Your cordapps path here\n
\n

example

\n
export CORDAPPS_PATH=/home/karthik/github/samples-java/Basic/yo-cordapp/build/nodes/PartyA/cordapps\n
\n

#####2. Run docker-compose file

\n
docker-compose up -d\n
\n

#####3. Browse to Node explorer UI

\n

explorer runs at port 3000

\n
http://localhost:3000/\n
\n

#####4. Set cordapps directory in settings

\n

Provide cordapps path as /cordapps in settings tab.

\n
/cordapps\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:42.811Z" }, "cozy-desktop": { "readmeCleaned": "
\n \"Cozy\n\n

Cozy Drive for Desktop

\n

\"Latest\n\"Licence\"\n\"Windows\n\"Linux\n\"Code\n\"Coverage\"

\n

Cozy Drive for Desktop allows you to synchronize the files stored in\nyour Cozy with your laptop and/or desktop computer. It\nreplicates your files on your hard drive and apply changes you made on them on\nother synced devices and on your online Cozy.

\n

This is where the app is being developped. If you just want to install it,\nplease see the Download page.

\n

Contributing

\n\n

Working on the code

\n\n

License

\n

Cozy Drive for Desktop is developed by Cozy Cloud and distributed\nunder the AGPL v3 license.

\n
", "readmeOriginal": "
\n \"Cozy\n\n

Cozy Drive for Desktop

\n

\"Latest\n\"Licence\"\n\"Windows\n\"Linux\n\"Code\n\"Coverage\"

\n

Cozy Drive for Desktop allows you to synchronize the files stored in\nyour Cozy with your laptop and/or desktop computer. It\nreplicates your files on your hard drive and apply changes you made on them on\nother synced devices and on your online Cozy.

\n

This is where the app is being developped. If you just want to install it,\nplease see the Download page.

\n

Contributing

\n\n

Working on the code

\n\n

License

\n

Cozy Drive for Desktop is developed by Cozy Cloud and distributed\nunder the AGPL v3 license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:42.847Z" }, "cromberg": { "readmeCleaned": "

Cromberg - personal finance accounting system

\n

Features

\n

Accounting of income

\n\n

Balance

\n\n

Other

\n\n

Requirements

\n\n

Technology stack

\n\n

Screenshots

\n

\"Income\n\"Balance

\n

Contributing

\n

You are welcome for contributing.

\n

How to run app from sources

\n

First of all, do npm install from app folder.

\n

In folder app/db there is database-dev-example file with some prepared data for application. Copy it and rename to app/database-dev.

\n

There are two commands to run app from sources:

\n\n

And for Windows:

\n\n

How to build app

\n
npm run react-build\nnpm run dist\n
\n

How to make pull request

\n

Create pull request only to dev branch. Your commits will merge in master with next release.

\n

License

\n

MIT

\n
", "readmeOriginal": "

Cromberg - personal finance accounting system

\n

Features

\n

Accounting of income

\n\n

Balance

\n\n

Other

\n\n

Requirements

\n\n

Technology stack

\n\n

Screenshots

\n

\"Income\n\"Balance

\n

Contributing

\n

You are welcome for contributing.

\n

How to run app from sources

\n

First of all, do npm install from app folder.

\n

In folder app/db there is database-dev-example file with some prepared data for application. Copy it and rename to app/database-dev.

\n

There are two commands to run app from sources:

\n\n

And for Windows:

\n\n

How to build app

\n
npm run react-build\nnpm run dist\n
\n

How to make pull request

\n

Create pull request only to dev branch. Your commits will merge in master with next release.

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:42.922Z" }, "crossover": { "readmeCleaned": "

IF YOU ARE RECEIVING AN ERROR, PLEASE MANUALLY UPDATE CROSSOVER TO THE LATEST VERSION. (I'm really sorry 😬 )

\n

\n \n

\n

CrossOver

\n
\n

🎯 Adjustable Crosshair Overlay for any screen

\n
\n

\"Latest \"Snapcraft\" \"Trending\" \"CircleCI\" \"Appveyor\"

\n

Download CrossOver for Windows

\n
All Downloads (Mac, Linux, Windows)
\n
To Use CrossOver: Control-Alt-Shift-X
\n
Mac: Control-Option-Shift-X
\n

CrossOver allows you to place a customizable crosshair overlay above any application window.\nImprove your aim and gain a competitive advantage with a permanent colored crosshair to mark center screen.

\n

\n \n

\n

Documentation

\n\n

Download

\n

View All Dowloads (for any OS)

\n

Windows

\n

Download CrossOver.exe to install CrossOver to your system and receive automatic updates.

\n

If you just want to try out CrossOver, or don't like installing things, we offer a portable exe as well.

\n

Mac

\n

Download the dmg or zip file for your architecture:

\n\n

Linux

\n

We offer the following formats:

\n\n

Or download from the Snap Store

\n

\"Get

\n

Quick Start

\n\n

See usage…

\n

\n\t
\n\t\n\t\n\t\n\t\n\t\n\t\n

\n

Features

\n\n

* Escape from Tarkov will not work with CrossOver (#47)

\n

Download CrossOver for Windows

\n
View all dowloads for any OS
\n

\n \n

\n

Other crosshair programs offer a single style or color option, and often don't allow you to reposition them. CrossOver is a small, unintrusive crosshair overlay which has plenty of configuration options to assist with aiming and vision of your crosshair. CrossOver offers a huge improvement to many games' default crosshairs for those with colorblindness or contrast issues.

\n
Thanks to Reddit user /u/IrisFlame for the premade library of crosshairs!
\n
\n

Install

\n

macOS 10.10+, Linux, and Windows 7+ are supported.

\n

Download the latest version of CrossOver from the releases page

\n
Because this app is Free and Open-Source, we cannot afford to sign our code. This means Chrome may warn about an untrusted download, this is normal. Click the arrow icon -> Keep to finish downloading. Windows Defender and Mac Gatekeeper will prevent you from running the app the first time.
\n
Windows
\n

Download the .exe file. (CrossOver-Setup-x.x.x.exe)

\n
\n

Windows protected your PC.

\n
\n\n

Download the .dmg file. (CrossOver-x.x.x.dmg)

\n
\n

\"CrossOver\" cannot be opened because the developer cannot be verified.

\n
\n\n
Linux
\n

Download the file appropriate to your system. (.AppImage, .apk, .deb, .freebsd, .pacman, .rpm, .snap)

\n

The AppImage needs to be made executable after download.

\n
Further instructions for Windows and Mac
\n

\n \n

\n
\n

Usage

\n
\n

marks the spot…

\n
\n

Position: Click and drag the crosshair to anywhere on any screen. Double-click the bullseye to center the app.

\n

Choose Crosshair: Click the bullseye ◎ to select from tons of preloaded crosshairs. Drag an image to the window to use your own custom crosshair.

\n

Customize settings using the \"gear\" icon. See Settings below.

\n

Unlock the app to quit using Control-Alt-Shift-X, then click the close icon in the top-left corner. In Windows you can right-click on the crosshair window > Close.

\n

Default Keyboard Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DescriptionKeys
Toggle the settings window and lock the crosshair in placeControl-Alt-Shift-X
Move the crosshair a single pixelControl-Alt-Shift-Arrows
Quickly hide/show the applicationControl-Alt-Shift-H
Center the crosshair windowControl-Alt-Shift-C
Move the crosshair to the next connected displayControl-Alt-Shift-M
Duplicate your crosshair in a shadow windowControl-Alt-Shift-D
Display the \"About\" window detailsControl-Alt-Shift-A
Reset all settings and center the windowControl-Alt-Shift-R
\n
Mac: the Option key is used instead of Alt.
\n
Linux: Some distributions do not center on double-click.
\n

\n \n

\n
\n

Settings

\n
Crosshair
\n

Choose from over 100 real and fictional crosshairs, or use your own by dragging an image to the window. You can change the size and opacity.

\n
Reticle
\n

The reticle is the small dot or cross at the center of the sight. You can select the shape and the color, or this can be turned off.

\n
Hide on ADS
\n

Choose a mouse button to use as your ADS button. The crosshair will be hidden while this button is held down.

\n
Harware acceleration
\n

A handful of users have reported FPS issues with certain games (#70), CrossOver should not add any FPS or latency so if you experience it, toggle this setting on or off and disable Hide on ADS

\n
Start on boot
\n

You can automatically set CrossOver to start when your system starts on your gaming PC, so you're always ready to pop heads.

\n
Automatic Updates
\n

By default CrossOver will automatically keep itself updated with bug fixes and improvements. You can disable this in the settings to prevent all network requests.\nCrossOver will only connect to GitHub to download published releases and does not send or store any personal data. I'm a solo developer and you aren't important to me 🙂 I just want to game.

\n

Keybinds

\n
\n

See default keyboard shortcuts.\nAll of the keybinds can be changed or disabled except for the bind to reset all settings. Click into the input and press your bind, or press Backspace or Delete to disable a bind.

\n
\n

Keep in mind that keybinds may conflict with other programs so be careful about what you choose. There's no real mechanism for preventing you from setting two conflicting keyinds within the app, so don't do that.

\n
Duplicate crosshairs
\n

Duplicate crosshair windows use the same settings as the main window and do not support all of the features of the main window. Settings for duplicate crosshairs will not be saved and all duplicate windows will be closed if the main window is closed. Duplicate crosshairs cannot follow the mouse.

\n
Reset
\n

To reset all settings and binds to default, press Control-Alt-Shift-R

\n

\n\t
\n\t\n\t\n\t\n\t\n\t\n\t\n

\n
\n

What works/doesn't work (compatability)

\n
Most games don't work in Fullscreen mode on Windows or Linux
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
WorksGameNotes
Among Us
Apex LegendsRuns in Windowed mode
Call of Duty Black Ops Cold WarRuns in Windowed, Windowed Fullscreen, Multi-Monitor modes
Call of Duty: WarzoneRuns in Windowed mode
Counter-Strike (1.6)Runs in Windowed mode
CS:GO / Counter-Strike: Global OffensiveRuns in Windowed mode; Fullscreen mode works with AHK script
Dead by DaylightRuns in Windowed and Fullscreen modes
DeceitRuns in Windowed mode
Destiny 2Runs in Windowed Fullscreen mode; Some reports of running in Fullscreen mode
Empyrion: Galactic SurvivalRuns in Windowed mode
Escape from TarkovUsers report the game will no longer start with CrossOver running (#47)
FiveMRuns in Fullscreen mode
FortniteRuns in Windowed Fullscreen mode
League of LegendsRuns in Borderless and Windowed modes
Halo: The Master Chief CollectionRuns in Borderless and Windowed modes
Metro Exodus Gold EditionDoesn't work under any circumstances
OverwatchRuns in Windowed Fullscreen mode
PhasmophobiaRuns in Windowed and Fullscreen modes
Rainbow 6: SeigeVulkan-based
RobloxRuns in Fullscreen mode (Windows) and Windowed Fullscreen mode (MacOS)
Rocket LeagueRuns in Windowed mode
RustRuns in Windowed Fullscreen mode
Star Wars Battlefront 2Runs in Borderless mode
Tom Clancy's The Division 2Runs in Windowed Fullscreen mode
Tony Hawks Pro Skater 1+2Such a fun game!
Vulkan-based games
ValorantRuns in Borderless and Windowed modes
\n
\n

Reported from our users, add your resuts

\n
\n

Operating Systems

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
WorksOSNotes
MacOS arm64 (M1)Current reports state M1 Macs now with CrossOver #93
MacOS x64 (Intel)Tested on Catalina 10.15.1
Windows 10 ia32
Windows 10 x64Custom cursors do not show in draggable taskbar area
Windows 8
Windows 7Does not work in Windows 7 Home; Works in Windows 7 Pro #63
ArchTested in v2021.01.01
Elementary OSTested in v5.1
FedoraTested in v33 (Shortcut conflicts with desktop switching)
MintTested in v20.1
UbuntuTested in v20.04.1
\n
\n

Development

\n

Built with Electron. Simple HTML and Javascript, no framework.

\n

Start developing in src/main.js and src/renderer.js. index.html contains the layout and index.scss contains the styles for the main app BrowserWindow

\n

Run

\n

You will need node.js v14.x.x installed. If you have nvm installed, run nvm install && nvm use to switch to the correct node version.

\n
$ yarn && yarn start\n
\n

Build

\n
\n

Build steps optimized for Mac, see electron.builder for help customizing builds.

\n
\n

wine and mono must be installed for Windows builds (macOS)\nmultipass must be installed for Snap builds (macOS)

\n
$ yarn build\n
\n
\n

Or yarn build:all

\n
\n

Publish

\n
$ yarn release\n
\n

Then edit the automatically created GitHub Releases draft and publish.

\n

Bugs

\n

Hidden by fullscreen apps

\n

Currently CrossOver only works with windowed applications, use Windowed Fullscreen mode if your game or application supports it. Windows -

\n

Fullscreen for MacOS may have better results.

\n

Workaround

\n

If you absolutely need to use Fullscreen mode, or your game is not supported by crossover, there is a workaround using AutoHotKey.

\n

Doesn't work with some games #47, and causes FPS issues in other cases

\n

Install AutoHotKey and run this script with it (save it as script.ahk and double-click it):

\n
Home::Winset, Alwaysontop, , CrossOver
\n

Once in-game, pressing space should put the crosshair over the screen, even in fullscreen mode.

\n
\n

via @girkovarpa

\n
\n

Graphical issues on Linux

\n

Check your desktop environment. CrossOver may not work on KDE, try GNOME if you experience issues.

\n

Debugging

\n

You can run CrossOver from the command line to see debug output. Open a terminal and navigate to the CrossOver app, run ./CrossOver to see output:

\n
\n

(Mac, Linux)

\n
\n
╭─  lacymorrow in /Applications/CrossOver.app/Contents/MacOS using\n╰─○ $ ./CrossOver --debug\n09:45:16.023 › CrossOver 2.7.4 Development\n09:45:16.030 › Setting: Enable GPU\n09:45:16.487 › App ready
\n

Command-line lags

\n

--debug

\n

alias -d

\n

Start CrossOver in debug mode, with Chrome DevTools open.

\n

--reset

\n

alias -r

\n

Reset all app preferences to default, in case you get into a broken state.

\n

--version

\n

alias -v

\n

Print the app version to stdout (Good for CI).

\n

Credits

\n

An extra big thanks to the crosshair providers, as this wouldn't be possible without them:

\n\n
\n

Gaming, Crosshair, Crossover App

\n
\n

See CrossOver in the Electron Apps library

\n

Created by Lacy Morrow

\n

Support this project

\n
\n

TL,DR: If you enjoy this project, and are financially able, why not donate $3?

\n
\n

This project is entirely developed, built, and maintained by one person. I've put hundreds of hours into this and I love being able to give it away for free.

\n

Problem is, downloads don't pay the bills.\nIf you would like to see specific features or improvements added to CrossOver, consider donating on OpenCollective

\n

If you like this software and want to see it improved more often, consider supporting me on Patreon or through another channel:

\n

Tip Crypto

\n\n

          \"Buy

\n
", "readmeOriginal": "

IF YOU ARE RECEIVING AN ERROR, PLEASE MANUALLY UPDATE CROSSOVER TO THE LATEST VERSION. (I'm really sorry 😬 )

\n

\n \n

\n

CrossOver

\n
\n

🎯 Adjustable Crosshair Overlay for any screen

\n
\n

\"Latest \"Snapcraft\" \"Trending\" \"CircleCI\" \"Appveyor\"

\n

Download CrossOver for Windows

\n
All Downloads (Mac, Linux, Windows)
\n
To Use CrossOver: Control-Alt-Shift-X
\n
Mac: Control-Option-Shift-X
\n

CrossOver allows you to place a customizable crosshair overlay above any application window.\nImprove your aim and gain a competitive advantage with a permanent colored crosshair to mark center screen.

\n

\n \n

\n

Documentation

\n\n

Download

\n

View All Dowloads (for any OS)

\n

Windows

\n

Download CrossOver.exe to install CrossOver to your system and receive automatic updates.

\n

If you just want to try out CrossOver, or don't like installing things, we offer a portable exe as well.

\n

Mac

\n

Download the dmg or zip file for your architecture:

\n\n

Linux

\n

We offer the following formats:

\n\n

Or download from the Snap Store

\n

\"Get

\n

Quick Start

\n\n

See usage…

\n

\n\t
\n\t\n\t\n\t\n\t\n\t\n\t\n

\n

Features

\n\n

* Escape from Tarkov will not work with CrossOver (#47)

\n

Download CrossOver for Windows

\n
View all dowloads for any OS
\n

\n \n

\n

Other crosshair programs offer a single style or color option, and often don't allow you to reposition them. CrossOver is a small, unintrusive crosshair overlay which has plenty of configuration options to assist with aiming and vision of your crosshair. CrossOver offers a huge improvement to many games' default crosshairs for those with colorblindness or contrast issues.

\n
Thanks to Reddit user /u/IrisFlame for the premade library of crosshairs!
\n
\n

Install

\n

macOS 10.10+, Linux, and Windows 7+ are supported.

\n

Download the latest version of CrossOver from the releases page

\n
Because this app is Free and Open-Source, we cannot afford to sign our code. This means Chrome may warn about an untrusted download, this is normal. Click the arrow icon -> Keep to finish downloading. Windows Defender and Mac Gatekeeper will prevent you from running the app the first time.
\n
Windows
\n

Download the .exe file. (CrossOver-Setup-x.x.x.exe)

\n
\n

Windows protected your PC.

\n
\n\n

Download the .dmg file. (CrossOver-x.x.x.dmg)

\n
\n

\"CrossOver\" cannot be opened because the developer cannot be verified.

\n
\n\n
Linux
\n

Download the file appropriate to your system. (.AppImage, .apk, .deb, .freebsd, .pacman, .rpm, .snap)

\n

The AppImage needs to be made executable after download.

\n
Further instructions for Windows and Mac
\n

\n \n

\n
\n

Usage

\n
\n

marks the spot…

\n
\n

Position: Click and drag the crosshair to anywhere on any screen. Double-click the bullseye to center the app.

\n

Choose Crosshair: Click the bullseye ◎ to select from tons of preloaded crosshairs. Drag an image to the window to use your own custom crosshair.

\n

Customize settings using the \"gear\" icon. See Settings below.

\n

Unlock the app to quit using Control-Alt-Shift-X, then click the close icon in the top-left corner. In Windows you can right-click on the crosshair window > Close.

\n

Default Keyboard Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DescriptionKeys
Toggle the settings window and lock the crosshair in placeControl-Alt-Shift-X
Move the crosshair a single pixelControl-Alt-Shift-Arrows
Quickly hide/show the applicationControl-Alt-Shift-H
Center the crosshair windowControl-Alt-Shift-C
Move the crosshair to the next connected displayControl-Alt-Shift-M
Duplicate your crosshair in a shadow windowControl-Alt-Shift-D
Display the \"About\" window detailsControl-Alt-Shift-A
Reset all settings and center the windowControl-Alt-Shift-R
\n
Mac: the Option key is used instead of Alt.
\n
Linux: Some distributions do not center on double-click.
\n

\n \n

\n
\n

Settings

\n
Crosshair
\n

Choose from over 100 real and fictional crosshairs, or use your own by dragging an image to the window. You can change the size and opacity.

\n
Reticle
\n

The reticle is the small dot or cross at the center of the sight. You can select the shape and the color, or this can be turned off.

\n
Hide on ADS
\n

Choose a mouse button to use as your ADS button. The crosshair will be hidden while this button is held down.

\n
Harware acceleration
\n

A handful of users have reported FPS issues with certain games (#70), CrossOver should not add any FPS or latency so if you experience it, toggle this setting on or off and disable Hide on ADS

\n
Start on boot
\n

You can automatically set CrossOver to start when your system starts on your gaming PC, so you're always ready to pop heads.

\n
Automatic Updates
\n

By default CrossOver will automatically keep itself updated with bug fixes and improvements. You can disable this in the settings to prevent all network requests.\nCrossOver will only connect to GitHub to download published releases and does not send or store any personal data. I'm a solo developer and you aren't important to me 🙂 I just want to game.

\n

Keybinds

\n
\n

See default keyboard shortcuts.\nAll of the keybinds can be changed or disabled except for the bind to reset all settings. Click into the input and press your bind, or press Backspace or Delete to disable a bind.

\n
\n

Keep in mind that keybinds may conflict with other programs so be careful about what you choose. There's no real mechanism for preventing you from setting two conflicting keyinds within the app, so don't do that.

\n
Duplicate crosshairs
\n

Duplicate crosshair windows use the same settings as the main window and do not support all of the features of the main window. Settings for duplicate crosshairs will not be saved and all duplicate windows will be closed if the main window is closed. Duplicate crosshairs cannot follow the mouse.

\n
Reset
\n

To reset all settings and binds to default, press Control-Alt-Shift-R

\n

\n\t
\n\t\n\t\n\t\n\t\n\t\n\t\n

\n
\n

What works/doesn't work (compatability)

\n
Most games don't work in Fullscreen mode on Windows or Linux
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
WorksGameNotes
Among Us
Apex LegendsRuns in Windowed mode
Call of Duty Black Ops Cold WarRuns in Windowed, Windowed Fullscreen, Multi-Monitor modes
Call of Duty: WarzoneRuns in Windowed mode
Counter-Strike (1.6)Runs in Windowed mode
CS:GO / Counter-Strike: Global OffensiveRuns in Windowed mode; Fullscreen mode works with AHK script
Dead by DaylightRuns in Windowed and Fullscreen modes
DeceitRuns in Windowed mode
Destiny 2Runs in Windowed Fullscreen mode; Some reports of running in Fullscreen mode
Empyrion: Galactic SurvivalRuns in Windowed mode
Escape from TarkovUsers report the game will no longer start with CrossOver running (#47)
FiveMRuns in Fullscreen mode
FortniteRuns in Windowed Fullscreen mode
League of LegendsRuns in Borderless and Windowed modes
Halo: The Master Chief CollectionRuns in Borderless and Windowed modes
Metro Exodus Gold EditionDoesn't work under any circumstances
OverwatchRuns in Windowed Fullscreen mode
PhasmophobiaRuns in Windowed and Fullscreen modes
Rainbow 6: SeigeVulkan-based
RobloxRuns in Fullscreen mode (Windows) and Windowed Fullscreen mode (MacOS)
Rocket LeagueRuns in Windowed mode
RustRuns in Windowed Fullscreen mode
Star Wars Battlefront 2Runs in Borderless mode
Tom Clancy's The Division 2Runs in Windowed Fullscreen mode
Tony Hawks Pro Skater 1+2Such a fun game!
Vulkan-based games
ValorantRuns in Borderless and Windowed modes
\n
\n

Reported from our users, add your resuts

\n
\n

Operating Systems

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
WorksOSNotes
MacOS arm64 (M1)Current reports state M1 Macs now with CrossOver #93
MacOS x64 (Intel)Tested on Catalina 10.15.1
Windows 10 ia32
Windows 10 x64Custom cursors do not show in draggable taskbar area
Windows 8
Windows 7Does not work in Windows 7 Home; Works in Windows 7 Pro #63
ArchTested in v2021.01.01
Elementary OSTested in v5.1
FedoraTested in v33 (Shortcut conflicts with desktop switching)
MintTested in v20.1
UbuntuTested in v20.04.1
\n
\n

Development

\n

Built with Electron. Simple HTML and Javascript, no framework.

\n

Start developing in src/main.js and src/renderer.js. index.html contains the layout and index.scss contains the styles for the main app BrowserWindow

\n

Run

\n

You will need node.js v14.x.x installed. If you have nvm installed, run nvm install && nvm use to switch to the correct node version.

\n
$ yarn && yarn start\n
\n

Build

\n
\n

Build steps optimized for Mac, see electron.builder for help customizing builds.

\n
\n

wine and mono must be installed for Windows builds (macOS)\nmultipass must be installed for Snap builds (macOS)

\n
$ yarn build\n
\n
\n

Or yarn build:all

\n
\n

Publish

\n
$ yarn release\n
\n

Then edit the automatically created GitHub Releases draft and publish.

\n

Bugs

\n

Hidden by fullscreen apps

\n

Currently CrossOver only works with windowed applications, use Windowed Fullscreen mode if your game or application supports it. Windows -

\n

Fullscreen for MacOS may have better results.

\n

Workaround

\n

If you absolutely need to use Fullscreen mode, or your game is not supported by crossover, there is a workaround using AutoHotKey.

\n

Doesn't work with some games #47, and causes FPS issues in other cases

\n

Install AutoHotKey and run this script with it (save it as script.ahk and double-click it):

\n
Home::Winset, Alwaysontop, , CrossOver
\n

Once in-game, pressing space should put the crosshair over the screen, even in fullscreen mode.

\n
\n

via @girkovarpa

\n
\n

Graphical issues on Linux

\n

Check your desktop environment. CrossOver may not work on KDE, try GNOME if you experience issues.

\n

Debugging

\n

You can run CrossOver from the command line to see debug output. Open a terminal and navigate to the CrossOver app, run ./CrossOver to see output:

\n
\n

(Mac, Linux)

\n
\n
╭─  lacymorrow in /Applications/CrossOver.app/Contents/MacOS using\n╰─○ $ ./CrossOver --debug\n09:45:16.023 › CrossOver 2.7.4 Development\n09:45:16.030 › Setting: Enable GPU\n09:45:16.487 › App ready
\n

Command-line lags

\n

--debug

\n

alias -d

\n

Start CrossOver in debug mode, with Chrome DevTools open.

\n

--reset

\n

alias -r

\n

Reset all app preferences to default, in case you get into a broken state.

\n

--version

\n

alias -v

\n

Print the app version to stdout (Good for CI).

\n

Credits

\n

An extra big thanks to the crosshair providers, as this wouldn't be possible without them:

\n\n
\n

Gaming, Crosshair, Crossover App

\n
\n

See CrossOver in the Electron Apps library

\n

Created by Lacy Morrow

\n

Support this project

\n
\n

TL,DR: If you enjoy this project, and are financially able, why not donate $3?

\n
\n

This project is entirely developed, built, and maintained by one person. I've put hundreds of hours into this and I love being able to give it away for free.

\n

Problem is, downloads don't pay the bills.\nIf you would like to see specific features or improvements added to CrossOver, consider donating on OpenCollective

\n

If you like this software and want to see it improved more often, consider supporting me on Patreon or through another channel:

\n

Tip Crypto

\n\n

          \"Buy

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.053Z" }, "csbooks": { "readmeCleaned": "
\n\n
\n

\n

csBooks - A Smart Book Manager

\n

\n

\n \"Awesome\"\n

\n
\n

csBooks is a smart solution to manage all your PDF, EPUB and MOBI files. csBooks will automatically generate thumbnails for your books so that you can easily browse them and read them without problems. csBooks is focused on clean and beautiful interface with excellent user experience. csBooks supports PDF format of books and maintains the read status for them.

\n

Tech stack love story

\n

csBooks is made with love 💖, ElectronJS, VueJS, EpubJS, and PdfJS. It is written almost 85% in Typescript for stability and 15% in Javascript for flexibility.

\n

Installing

\n

Ubuntu Software Center or Debian x86

\n
    \n
  1. Run sudo snap install csbooks.
  2. \n
  3. Launch csBooks using the installed csbooks command.
  4. \n
\n
\n

You can also use software center app for your linux version to install the snap file. ;)

\n
\n

MacOS Users

\n
    \n
  1. Download csBooks_<version>.dmg from the csBooks releases page.
  2. \n
  3. Make it executable sudo chmod a+x csBooks_<version>.dmg
  4. \n
  5. Run csBooks_<version>.dmg
  6. \n
\n

Windows Users

\n
    \n
  1. Open your microsoft store app and search for csBooks.
  2. \n
  3. Click on Install button to install the app.
  4. \n
\n

Screenshots

\n
\n\n

Epub Support

\n\n

Light and Dark Mode

\n\n

List view

\n\n

PDF File Support

\n\n

Different Themes for Reading with Comfort

\n\n

Integration of Audiobooks from Librivox

\n\n

Audio book player

\n\n
\n

Feature Suggestions

\n

To request any features, please send an email to caesiumstudio@outlook.com OR create a feature request on GitHub to keep track of it.

\n
", "readmeOriginal": "
\n\n
\n

\n

csBooks - A Smart Book Manager

\n

\n

\n \"Awesome\"\n

\n
\n

csBooks is a smart solution to manage all your PDF, EPUB and MOBI files. csBooks will automatically generate thumbnails for your books so that you can easily browse them and read them without problems. csBooks is focused on clean and beautiful interface with excellent user experience. csBooks supports PDF format of books and maintains the read status for them.

\n

Tech stack love story

\n

csBooks is made with love 💖, ElectronJS, VueJS, EpubJS, and PdfJS. It is written almost 85% in Typescript for stability and 15% in Javascript for flexibility.

\n

Installing

\n

Ubuntu Software Center or Debian x86

\n
    \n
  1. Run sudo snap install csbooks.
  2. \n
  3. Launch csBooks using the installed csbooks command.
  4. \n
\n
\n

You can also use software center app for your linux version to install the snap file. ;)

\n
\n

MacOS Users

\n
    \n
  1. Download csBooks_<version>.dmg from the csBooks releases page.
  2. \n
  3. Make it executable sudo chmod a+x csBooks_<version>.dmg
  4. \n
  5. Run csBooks_<version>.dmg
  6. \n
\n

Windows Users

\n
    \n
  1. Open your microsoft store app and search for csBooks.
  2. \n
  3. Click on Install button to install the app.
  4. \n
\n

Screenshots

\n
\n\n

Epub Support

\n\n

Light and Dark Mode

\n\n

List view

\n\n

PDF File Support

\n\n

Different Themes for Reading with Comfort

\n\n

Integration of Audiobooks from Librivox

\n\n

Audio book player

\n\n
\n

Feature Suggestions

\n

To request any features, please send an email to caesiumstudio@outlook.com OR create a feature request on GitHub to keep track of it.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.194Z" }, "crypter": { "readmeCleaned": "

\n
\n \"Crypter\"\n
\n Crypter\n
\n
\n

\n

An innovative, convenient and secure crypto app.

\n

\n \n \"Download\n \n

\n

\n \n \"Standard\n \n \n \"Travis\n \n \n \"AppVeyor\n \n \n \"Test\n \n \n \"CodeClimate\n \n \n \"GitHub\n \n

\n
\n
\n

Encrypt unlimited bits. Remember only a bit.

\n
\n

Crypter is a cross-platform crypto app that makes encryption and decryption\nconvenient while still upholding strong security. It tackles one of the weakest\nlinks in most security systems today - weak passwords. It simplifies secure\npassword generation and management and requires you to only remember one bit -\nyour MasterPass.

\n

Crypter v4.0 is a crypto\napp that can decrypt and encrypt any arbitrary data this includes files and\nfolders. This version has been released and fully tested for macOS (OSX), Linux\n(for all distros via AppImage) and Windows (32 & 64\nbit). All core modules (modules that provide the core functionality) are fully\ntested.

\n

Crypter v5.0 will save your MasterPass\nin your OS's Keychain so you won't have to enter it every time you open the app.\nTo help speed up the development please send a PR for what's left do https://github.com/HR/Crypter/milestone/4

\n

Please open an issue if you have any suggestions and add improvements via PRs!

\n

Also checkout Ciphora (https://github.com/HR/ciphora)\na decentralized end-to-end encrypted messaging app.

\n

Link to this README: https://git.io/Crypter.info

\n
\n

Contents

\n\n\n

\n

Installation

\n

All prebuilt binaries for all major platforms are available under\nreleases.

\n

Crypter is also on Homebrew Cask for\nmacOS. So to install it, simply run the following command in the Terminal:

\n
$ brew install --cask crypter@4.0.0
\n
\n

Screens

\n

\n \"Welcome\n \"Crypter\n \"MasterPass\n \"Settings\n

\n
\n

Crypto

\n
\n

One key to derive them all!

\n
\n

Crypter derives a MasterPassKey from the MasterPass obtained at setup by using\nthe PBKDF2 key derivation algorithm (see below for the specification). It\nthen uses PBKDF2 to derive a number of encryption keys from the MasterPassKey\nthat can be used for the encryption of files. This method allows for the\ngeneration of very secure encryption keys for data encryption. Moreover, by\npublicly storing the credentials used to derive the MasterPassKey and the salts\nused to derive the encryption keys, you are able to produce the encryption keys\nat will and without needing to store them securely. Your MasterPass is the only\nthing that you need to remember.

\n

Crypter never directly encrypts anything with your MasterPass. Instead, it\nderives a MasterPassKey from it, which it then uses to derive the\nencryption key used to encrypt your file. Every time a file is decrypted,\nthe encryption key is re-derived from the MasterPassKey. Every time you set the\nMasterPass through the setup or reset it through Verify MasterPass, the\nMasterPassKey is derived from the MasterPass using a newly generated set of\n(random) credentials. These credentials are used to re-derive the MasterPassKey\nevery time that Crypter is executed (i.e. the app is launched).

\n

Authentication with the AES-256-GCM symmetric block cipher is used by default.\nThis ensures that data integrity is verified on decryption and allows the app\nto detect tampering or data corruption.

\n

The following are the crypto defaults and can be found under app/config.js:

\n
// Crypto defaults\n{\n  ITERATIONS: 50000, // file encryption key derivation iterations\n  KEYLENGTH: 32, // encryption key length\n  IVLENGTH: 12, // initialisation vector length\n  ALGORITHM: 'aes-256-gcm', // encryption algorithm\n  DIGEST: 'sha256', // digest function\n  HASH_ALG: 'sha256', // hashing function\n  MPK_ITERATIONS: 100000 // MasterPassKey derivation iterations\n}
\n

Encryption process

\n

When encrypting a file, Crypter first creates a temporary hidden directory,\nnamely '.crypting'. It then encrypts the user-selected file with the crypto\ndefaults and flushes the encrypted data to a file in the directory, namely\n'data'. If it is a directory then it is compressed first (tar). It also writes\nthe public credentials to a file within the same directory, namely 'creds'.\nFinally, Crypter compresses the directory to a tar archive with the name of the\nuser-selected file and the '.crypto' extension appended to it.

\n

Decryption process

\n

The decryption process is essentially the inverse of the encryption process.\nDuring decryption, Crypter creates a temporary hidden directory named\n'.decrypting'. It then reads the credentials from the creds file and decrypts\nthe data file into the original file or directory (after decompressing it) with\nits original name and extension, as deduced from the CRYPTO file name (e.g. the\nextension for \"file.txt.crypto\" would be \".txt\").

\n

Public credentials

\n

Certain credentials are required to decrypt the encrypted data. These are\nneeded to reconstruct the particular encryption key and to verify data integrity.\nThese can be stored publicly without compromising security since it is fairly\nimpossible (by current standards) to reconstruct the encryption key without the\nMasterPass and its credentials. These credentials are stored in the creds file of\nthe CRYPTO file archive (as delineated above) in the following\nformat:

\n

v1

\n
Crypter#iv#authTag#salt#dir\n
\n

v2

\n

Uses JSON

\n
{\n  \"type\": \"CRYPTO\",\n  \"iv\": \"...\",\n  \"authTag\": \"...\",\n  \"salt\": \"...\",\n  \"isDir\": true || false\n}
\n

The dir part is only included for directories\n

\n

CRYPTO file

\n

Format

\n

A CRYPTO file is the product of the Crypter encryption process. This file\nstores both the encrypted version of the user file and the public credentials\nneeded to encrypt and decrypt it. It has a .crypto file extension, which\nis appended to the full file name (including the extension) of the file\noriginally encrypted. The file itself is a tar archive in the following\nstructure:

\n
someFile.crypto\n├── data // the encrypted version of the user selected file\n└── creds // the public credentials used to encrypt it
\n

Reusing the same MasterPass

\n

If you attempt to decrypt a CRYPTO file by resetting to a specific\nMasterPass or setting an identical MasterPass on a different machine,\nyou will likely encounter the following error:

\n
ERROR: Unsupported state or unable to authenticate data\n
\n

This issue occurs because the MasterPassKey that was originally used to\nderive the encryption key on is not the same as the MasterPassKey\nderived with the reused MasterPass. Since Crypter uses randomness to\ngenerate secure credentials, this second set of credentials will be quite\ndifferent from the original set. As a result, the derived encryption key is\nincorrect and yields this error.

\n

See Achieving portability and same MasterPass reuse\nfor instructions on how to successfully reuse the same MasterPass.

\n

Achieving portability and same MasterPass reuse

\n

To achieve portability on Crypter, the set of MasterPassKey credentials\nneed to be exported from Crypter on the source machine1\nand imported into Crypter on the target machine2.

\n

This can be achieved in two simple steps:

\n
    \n
  1. Export MasterPass credentials on the source machine1
  2. \n
  3. Import MasterPass credentials on the target machine2
  4. \n
\n

Please refer to the FAQs for instructions on how to perform the above steps.

\n
\n

[1] The machine where the CRYPTO file was initially\nencrypted.

\n

[2] The machine where you wish to decrypt the CRYPTO\nfile.

\n
\n

Security

\n

Security-first practice

\n

Crypter follows a security-first practice. This means that security is its\nhighest priority and first consideration. Thus, while Crypter seeks\nto make encryption more convenient, it always defers to maintaining\na high level of security.

\n

MasterPass

\n

Crypter never stores your MasterPass in memory or on the filesystem. This\nsubstantially improves the security of your MasterPass. You are only asked to\nenter the MasterPass when you first set, reset or verify it. Whenever you enter\nyour MasterPass, Crypter derives a MasterPassKey (using a set of generated\ncredentials) and then immediately discards the MasterPass. The MasterPassKey is\nthen securely stored in memory and used to derive the encryption keys. Since\nthese credentials are derived via a one-way function, they cannot be used in\nany way to derive the MasterPass.

\n

MasterPassKey

\n

Crypter uses a WeakMap to store the MasterPassKey inside the MasterPassKey class\nusing a closure function. This makes the MasterPassKey data held in the object\n(externally) inaccessible, consequently increasing the protection of the\nMasterPassKey. The MasterPassKey is never flushed to the filesystem and is always\nstored in (main) memory. Since JS does not give control over or allow such a\nlow-level operation as wiping memory, the program relies on the garbage\ncollection and volatility of the main memory for the permanent erasure of the\nMasterPassKey stored in memory.

\n

A decent number of iterations (see the above specifications) are used in the\nderivation of the MasterPassKey to mitigate brute-force attacks. A good\namount of iterations are also used during the derivation of the encryption\nkeys from the MasterPassKey. Consequently, performance and speed are not\nsignificantly compromised. For critical applications, you may choose to\nselect 10,000,000 iterations instead of the default number\n(in app/core/crypto.js). Please refer to\nhttp://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf for\nmore information.

\n

Crypter generates a new set of random credentials for deriving the MasterPassKey\nevery time the MasterPass is set (at setup) or reset. Crypter employs randomness\nto mitigate brute-force attacks and thus drastically improve security.

\n
\n

FAQs

\n

How do I encrypt a file or folder?

\n

If you haven't already, walk through the setup and set your MasterPass.\nTo encrypt a file or folder, first launch Crypter and verify your MasterPass.\nAfter doing so successfully, you will see the main Crypter window with an orange\narea. Here, you can simply drag-and-drop or click to select the file/folder you\nwish to encrypt. Once Crypter is done encrypting your file/folder, it will show\nyou the encryption information (i.e. the encryption key and the path of the\nencrypted file) in a new window. To encrypt another file/folder simply click the\nback arrow at the bottom left and start-over ;)

\n

How do I decrypt a CRYPTO file?

\n
\n

The following instructions assume that the CRYPTO file that you wish to\ndecrypt is being used with the same MasterPass that you set at setup and also\nthat you have not reset it since that time. If this is not the case, please refer\nto Reusing the same MasterPass.

\n
\n

To decrypt a CRYPTO file, first launch Crypter and verify your MasterPass. After\ndoing so successfully, you will see the main Crypter window with an orange area.\nHere, you can simply drag-and-drop or click to select the CRYPTO file that you\nwish to decrypt. After a few seconds, the process will complete and you will see\nsome information about the file and its original encryption in a new window. By\ndefault, the decrypted file has the same name as the name of the original file\n(i.e. the encrypted file name without the .crypto at the end).

\n

How do I encrypt multiple files?

\n

Crypter can encrypt an entire folder so you can put them in a folder or,\nalternatively, compress them into an archive (like a .zip) and then just pass\nit to Crypter ;)

\n

Why am I getting the \"Corrupted Crypter file or trying to decrypt on a different machine.\" error?

\n

This error means that either your Crypter file (i.e. the data file) is\ncorrupt/tempered, that you are on a different machine than the one originally\nused to encrypt the file or that you have previously reset your MasterPass.\nFor the last two cases, please refer to\nReusing the same MasterPass and\nAchieving portability and same MasterPass reuse.

\n

Why can't I decrypt a CRYPTO file on a different machine with the same MasterPass?

\n

Please refer to Reusing the same MasterPass and\nAchieving portability and same MasterPass reuse

\n

Why can't I decrypt a CRYPTO file with the same MasterPass?

\n

Please refer to Reusing the same MasterPass and\nAchieving portability and same MasterPass reuse

\n

Where are my encrypted/decrypted files/folders placed?

\n

By default, every source file that you encrypt/decrypt gets encrypted/decrypted\nto the same directory where the source file is located.

\n

How can I access Crypter's preferences?

\n

You can access Crypter's preferences by either clicking on the cog icon in the\nmain Crypter window or by going to Crypter > Preferences... from the menu.

\n

How can I reset my MasterPass?

\n

You can reset your MasterPass by clicking on the \"Forgot it\" link in the Verify\nMasterPass window. This takes you to a new screen where you can enter a new, valid\nMasterPass. Once you've entered it, click the 'Reset' button and you'll be sent\nback to the verify screen where you can verify your new MasterPass.

\n

What is a valid MasterPass?

\n

Crypter will not allow you to set an invalid MasterPass. A MasterPass is valid\nwhen it adheres to the following rules:

\n\n

These rules are enforced via the following regular expression:

\n
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@!%*#?&]).{8,}$/;
\n

What are MasterPass credentials?

\n

MasterPass credentials are a set of values that are required to derive the\nMasterPassKey from the MasterPass. These values have a pseudo-random element and\nare cryptographically linked. Every MasterPass that is set or reset with Crypter\nhas a unique set of MasterPass credentials. These yield a distinct MasterPassKey,\neven when a MasterPass is reused.

\n

How can I export my MasterPass credentials?

\n

To export your MasterPass credentials, you can first open Crypter's\npreferences (see above). From this screen, click on the \"Export\" button. A\ndialog will appear from which you can select the folder where you wish to export\nthe credentials. A success message will confirm a successful export. The\nexported MasterPass credentials file is always named credentials.crypter.

\n

How can I import my MasterPass credentials?

\n

To import a set of MasterPass credentials, you can first open Crypter's\npreferences (see above). From this screen, click on the \"Import\" button. A\ndialog will appear from which you can locate your credentials.crypter file.\nAfter you select it, a success message will confirm a successful import and\nyou will have to verify the MasterPass for the credentials.

\n

NOTE: while Crypter does not require the MasterPass credentials file to be\nexactly named credentials.crypter, it does require the file's contents to\nbe unaltered from when it was exported from Crypter. If it has been altered,\nthe import may fail.

\n
\n

Development

\n

Crypter is developed in the \"dev\" branch, which may be unstable at times.\nThis branch should typically be used for pull requests.

\n

The \"master\" branch will always be kept stable.

\n

Configurations

\n

All major configurations that you can apply are found under app/config.js.\nThis includes changes to certain cryptography settings. Please be advised\nthat altering these may break functionality and\nportability.

\n

Install (dependencies)

\n

To install all dependencies, run:

\n
$ yarn install\n
\n

Run

\n

Since Crypter uses gulp, please install it globally if you have not already\ndone so. To start Crypter, run:

\n
$ gulp\n
\n

Test

\n

Crypter primarily uses mocha and chai for testing. Since the project uses a\nlot of JS ES6 syntax, babel is also used as a transpiler. To run all the tests,\nexecute:

\n
$ yarn test\n
\n

Crypter uses istanbul for coverage. To run test coverage, execute:

\n
$ yarn run coverage\n
\n

Build

\n

Crypter's binaries (available under releases) have been built using\nElectron. Since Crypter uses electron-builder to build binaries,\nyou must install it globally:

\n
$ npm install electron-builder@next -g\n
\n

To build the app for macOS, run:

\n
$ yarn run build:mac\n
\n

To build the app for Linux, run:

\n
$ sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils\n$ yarn run build:lin\n
\n

To build the app for Windows x84 and/or x64, run:

\n
$ yarn run build:win\n
\n

License

\n

The MIT License (MIT)

\n

Copyright (c) Habib Rehman (https://git.io/HR)

\n

Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished todo so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.

\n
", "readmeOriginal": "

\n
\n \"Crypter\"\n
\n Crypter\n
\n
\n

\n

An innovative, convenient and secure crypto app.

\n

\n \n \"Download\n \n

\n

\n \n \"Standard\n \n \n \"Travis\n \n \n \"AppVeyor\n \n \n \"Test\n \n \n \"CodeClimate\n \n \n \"GitHub\n \n

\n
\n
\n

Encrypt unlimited bits. Remember only a bit.

\n
\n

Crypter is a cross-platform crypto app that makes encryption and decryption\nconvenient while still upholding strong security. It tackles one of the weakest\nlinks in most security systems today - weak passwords. It simplifies secure\npassword generation and management and requires you to only remember one bit -\nyour MasterPass.

\n

Crypter v4.0 is a crypto\napp that can decrypt and encrypt any arbitrary data this includes files and\nfolders. This version has been released and fully tested for macOS (OSX), Linux\n(for all distros via AppImage) and Windows (32 & 64\nbit). All core modules (modules that provide the core functionality) are fully\ntested.

\n

Crypter v5.0 will save your MasterPass\nin your OS's Keychain so you won't have to enter it every time you open the app.\nTo help speed up the development please send a PR for what's left do https://github.com/HR/Crypter/milestone/4

\n

Please open an issue if you have any suggestions and add improvements via PRs!

\n

Also checkout Ciphora (https://github.com/HR/ciphora)\na decentralized end-to-end encrypted messaging app.

\n

Link to this README: https://git.io/Crypter.info

\n
\n

Contents

\n\n\n

\n

Installation

\n

All prebuilt binaries for all major platforms are available under\nreleases.

\n

Crypter is also on Homebrew Cask for\nmacOS. So to install it, simply run the following command in the Terminal:

\n
$ brew install --cask crypter@4.0.0
\n
\n

Screens

\n

\n \"Welcome\n \"Crypter\n \"MasterPass\n \"Settings\n

\n
\n

Crypto

\n
\n

One key to derive them all!

\n
\n

Crypter derives a MasterPassKey from the MasterPass obtained at setup by using\nthe PBKDF2 key derivation algorithm (see below for the specification). It\nthen uses PBKDF2 to derive a number of encryption keys from the MasterPassKey\nthat can be used for the encryption of files. This method allows for the\ngeneration of very secure encryption keys for data encryption. Moreover, by\npublicly storing the credentials used to derive the MasterPassKey and the salts\nused to derive the encryption keys, you are able to produce the encryption keys\nat will and without needing to store them securely. Your MasterPass is the only\nthing that you need to remember.

\n

Crypter never directly encrypts anything with your MasterPass. Instead, it\nderives a MasterPassKey from it, which it then uses to derive the\nencryption key used to encrypt your file. Every time a file is decrypted,\nthe encryption key is re-derived from the MasterPassKey. Every time you set the\nMasterPass through the setup or reset it through Verify MasterPass, the\nMasterPassKey is derived from the MasterPass using a newly generated set of\n(random) credentials. These credentials are used to re-derive the MasterPassKey\nevery time that Crypter is executed (i.e. the app is launched).

\n

Authentication with the AES-256-GCM symmetric block cipher is used by default.\nThis ensures that data integrity is verified on decryption and allows the app\nto detect tampering or data corruption.

\n

The following are the crypto defaults and can be found under app/config.js:

\n
// Crypto defaults\n{\n  ITERATIONS: 50000, // file encryption key derivation iterations\n  KEYLENGTH: 32, // encryption key length\n  IVLENGTH: 12, // initialisation vector length\n  ALGORITHM: 'aes-256-gcm', // encryption algorithm\n  DIGEST: 'sha256', // digest function\n  HASH_ALG: 'sha256', // hashing function\n  MPK_ITERATIONS: 100000 // MasterPassKey derivation iterations\n}
\n

Encryption process

\n

When encrypting a file, Crypter first creates a temporary hidden directory,\nnamely '.crypting'. It then encrypts the user-selected file with the crypto\ndefaults and flushes the encrypted data to a file in the directory, namely\n'data'. If it is a directory then it is compressed first (tar). It also writes\nthe public credentials to a file within the same directory, namely 'creds'.\nFinally, Crypter compresses the directory to a tar archive with the name of the\nuser-selected file and the '.crypto' extension appended to it.

\n

Decryption process

\n

The decryption process is essentially the inverse of the encryption process.\nDuring decryption, Crypter creates a temporary hidden directory named\n'.decrypting'. It then reads the credentials from the creds file and decrypts\nthe data file into the original file or directory (after decompressing it) with\nits original name and extension, as deduced from the CRYPTO file name (e.g. the\nextension for \"file.txt.crypto\" would be \".txt\").

\n

Public credentials

\n

Certain credentials are required to decrypt the encrypted data. These are\nneeded to reconstruct the particular encryption key and to verify data integrity.\nThese can be stored publicly without compromising security since it is fairly\nimpossible (by current standards) to reconstruct the encryption key without the\nMasterPass and its credentials. These credentials are stored in the creds file of\nthe CRYPTO file archive (as delineated above) in the following\nformat:

\n

v1

\n
Crypter#iv#authTag#salt#dir\n
\n

v2

\n

Uses JSON

\n
{\n  \"type\": \"CRYPTO\",\n  \"iv\": \"...\",\n  \"authTag\": \"...\",\n  \"salt\": \"...\",\n  \"isDir\": true || false\n}
\n

The dir part is only included for directories\n

\n

CRYPTO file

\n

Format

\n

A CRYPTO file is the product of the Crypter encryption process. This file\nstores both the encrypted version of the user file and the public credentials\nneeded to encrypt and decrypt it. It has a .crypto file extension, which\nis appended to the full file name (including the extension) of the file\noriginally encrypted. The file itself is a tar archive in the following\nstructure:

\n
someFile.crypto\n├── data // the encrypted version of the user selected file\n└── creds // the public credentials used to encrypt it
\n

Reusing the same MasterPass

\n

If you attempt to decrypt a CRYPTO file by resetting to a specific\nMasterPass or setting an identical MasterPass on a different machine,\nyou will likely encounter the following error:

\n
ERROR: Unsupported state or unable to authenticate data\n
\n

This issue occurs because the MasterPassKey that was originally used to\nderive the encryption key on is not the same as the MasterPassKey\nderived with the reused MasterPass. Since Crypter uses randomness to\ngenerate secure credentials, this second set of credentials will be quite\ndifferent from the original set. As a result, the derived encryption key is\nincorrect and yields this error.

\n

See Achieving portability and same MasterPass reuse\nfor instructions on how to successfully reuse the same MasterPass.

\n

Achieving portability and same MasterPass reuse

\n

To achieve portability on Crypter, the set of MasterPassKey credentials\nneed to be exported from Crypter on the source machine1\nand imported into Crypter on the target machine2.

\n

This can be achieved in two simple steps:

\n
    \n
  1. Export MasterPass credentials on the source machine1
  2. \n
  3. Import MasterPass credentials on the target machine2
  4. \n
\n

Please refer to the FAQs for instructions on how to perform the above steps.

\n
\n

[1] The machine where the CRYPTO file was initially\nencrypted.

\n

[2] The machine where you wish to decrypt the CRYPTO\nfile.

\n
\n

Security

\n

Security-first practice

\n

Crypter follows a security-first practice. This means that security is its\nhighest priority and first consideration. Thus, while Crypter seeks\nto make encryption more convenient, it always defers to maintaining\na high level of security.

\n

MasterPass

\n

Crypter never stores your MasterPass in memory or on the filesystem. This\nsubstantially improves the security of your MasterPass. You are only asked to\nenter the MasterPass when you first set, reset or verify it. Whenever you enter\nyour MasterPass, Crypter derives a MasterPassKey (using a set of generated\ncredentials) and then immediately discards the MasterPass. The MasterPassKey is\nthen securely stored in memory and used to derive the encryption keys. Since\nthese credentials are derived via a one-way function, they cannot be used in\nany way to derive the MasterPass.

\n

MasterPassKey

\n

Crypter uses a WeakMap to store the MasterPassKey inside the MasterPassKey class\nusing a closure function. This makes the MasterPassKey data held in the object\n(externally) inaccessible, consequently increasing the protection of the\nMasterPassKey. The MasterPassKey is never flushed to the filesystem and is always\nstored in (main) memory. Since JS does not give control over or allow such a\nlow-level operation as wiping memory, the program relies on the garbage\ncollection and volatility of the main memory for the permanent erasure of the\nMasterPassKey stored in memory.

\n

A decent number of iterations (see the above specifications) are used in the\nderivation of the MasterPassKey to mitigate brute-force attacks. A good\namount of iterations are also used during the derivation of the encryption\nkeys from the MasterPassKey. Consequently, performance and speed are not\nsignificantly compromised. For critical applications, you may choose to\nselect 10,000,000 iterations instead of the default number\n(in app/core/crypto.js). Please refer to\nhttp://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf for\nmore information.

\n

Crypter generates a new set of random credentials for deriving the MasterPassKey\nevery time the MasterPass is set (at setup) or reset. Crypter employs randomness\nto mitigate brute-force attacks and thus drastically improve security.

\n
\n

FAQs

\n

How do I encrypt a file or folder?

\n

If you haven't already, walk through the setup and set your MasterPass.\nTo encrypt a file or folder, first launch Crypter and verify your MasterPass.\nAfter doing so successfully, you will see the main Crypter window with an orange\narea. Here, you can simply drag-and-drop or click to select the file/folder you\nwish to encrypt. Once Crypter is done encrypting your file/folder, it will show\nyou the encryption information (i.e. the encryption key and the path of the\nencrypted file) in a new window. To encrypt another file/folder simply click the\nback arrow at the bottom left and start-over ;)

\n

How do I decrypt a CRYPTO file?

\n
\n

The following instructions assume that the CRYPTO file that you wish to\ndecrypt is being used with the same MasterPass that you set at setup and also\nthat you have not reset it since that time. If this is not the case, please refer\nto Reusing the same MasterPass.

\n
\n

To decrypt a CRYPTO file, first launch Crypter and verify your MasterPass. After\ndoing so successfully, you will see the main Crypter window with an orange area.\nHere, you can simply drag-and-drop or click to select the CRYPTO file that you\nwish to decrypt. After a few seconds, the process will complete and you will see\nsome information about the file and its original encryption in a new window. By\ndefault, the decrypted file has the same name as the name of the original file\n(i.e. the encrypted file name without the .crypto at the end).

\n

How do I encrypt multiple files?

\n

Crypter can encrypt an entire folder so you can put them in a folder or,\nalternatively, compress them into an archive (like a .zip) and then just pass\nit to Crypter ;)

\n

Why am I getting the \"Corrupted Crypter file or trying to decrypt on a different machine.\" error?

\n

This error means that either your Crypter file (i.e. the data file) is\ncorrupt/tempered, that you are on a different machine than the one originally\nused to encrypt the file or that you have previously reset your MasterPass.\nFor the last two cases, please refer to\nReusing the same MasterPass and\nAchieving portability and same MasterPass reuse.

\n

Why can't I decrypt a CRYPTO file on a different machine with the same MasterPass?

\n

Please refer to Reusing the same MasterPass and\nAchieving portability and same MasterPass reuse

\n

Why can't I decrypt a CRYPTO file with the same MasterPass?

\n

Please refer to Reusing the same MasterPass and\nAchieving portability and same MasterPass reuse

\n

Where are my encrypted/decrypted files/folders placed?

\n

By default, every source file that you encrypt/decrypt gets encrypted/decrypted\nto the same directory where the source file is located.

\n

How can I access Crypter's preferences?

\n

You can access Crypter's preferences by either clicking on the cog icon in the\nmain Crypter window or by going to Crypter > Preferences... from the menu.

\n

How can I reset my MasterPass?

\n

You can reset your MasterPass by clicking on the \"Forgot it\" link in the Verify\nMasterPass window. This takes you to a new screen where you can enter a new, valid\nMasterPass. Once you've entered it, click the 'Reset' button and you'll be sent\nback to the verify screen where you can verify your new MasterPass.

\n

What is a valid MasterPass?

\n

Crypter will not allow you to set an invalid MasterPass. A MasterPass is valid\nwhen it adheres to the following rules:

\n\n

These rules are enforced via the following regular expression:

\n
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@!%*#?&]).{8,}$/;
\n

What are MasterPass credentials?

\n

MasterPass credentials are a set of values that are required to derive the\nMasterPassKey from the MasterPass. These values have a pseudo-random element and\nare cryptographically linked. Every MasterPass that is set or reset with Crypter\nhas a unique set of MasterPass credentials. These yield a distinct MasterPassKey,\neven when a MasterPass is reused.

\n

How can I export my MasterPass credentials?

\n

To export your MasterPass credentials, you can first open Crypter's\npreferences (see above). From this screen, click on the \"Export\" button. A\ndialog will appear from which you can select the folder where you wish to export\nthe credentials. A success message will confirm a successful export. The\nexported MasterPass credentials file is always named credentials.crypter.

\n

How can I import my MasterPass credentials?

\n

To import a set of MasterPass credentials, you can first open Crypter's\npreferences (see above). From this screen, click on the \"Import\" button. A\ndialog will appear from which you can locate your credentials.crypter file.\nAfter you select it, a success message will confirm a successful import and\nyou will have to verify the MasterPass for the credentials.

\n

NOTE: while Crypter does not require the MasterPass credentials file to be\nexactly named credentials.crypter, it does require the file's contents to\nbe unaltered from when it was exported from Crypter. If it has been altered,\nthe import may fail.

\n
\n

Development

\n

Crypter is developed in the \"dev\" branch, which may be unstable at times.\nThis branch should typically be used for pull requests.

\n

The \"master\" branch will always be kept stable.

\n

Configurations

\n

All major configurations that you can apply are found under app/config.js.\nThis includes changes to certain cryptography settings. Please be advised\nthat altering these may break functionality and\nportability.

\n

Install (dependencies)

\n

To install all dependencies, run:

\n
$ yarn install\n
\n

Run

\n

Since Crypter uses gulp, please install it globally if you have not already\ndone so. To start Crypter, run:

\n
$ gulp\n
\n

Test

\n

Crypter primarily uses mocha and chai for testing. Since the project uses a\nlot of JS ES6 syntax, babel is also used as a transpiler. To run all the tests,\nexecute:

\n
$ yarn test\n
\n

Crypter uses istanbul for coverage. To run test coverage, execute:

\n
$ yarn run coverage\n
\n

Build

\n

Crypter's binaries (available under releases) have been built using\nElectron. Since Crypter uses electron-builder to build binaries,\nyou must install it globally:

\n
$ npm install electron-builder@next -g\n
\n

To build the app for macOS, run:

\n
$ yarn run build:mac\n
\n

To build the app for Linux, run:

\n
$ sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils\n$ yarn run build:lin\n
\n

To build the app for Windows x84 and/or x64, run:

\n
$ yarn run build:win\n
\n

License

\n

The MIT License (MIT)

\n

Copyright (c) Habib Rehman (https://git.io/HR)

\n

Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished todo so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.209Z" }, "covid-19-cases-overview": { "readmeCleaned": "

Covid-19 cases overview WebApp

\n

This project is a Web application that allow the user to check daily cases and much more information about covid-19. (Example: daily cases, daily death, daily recovery, total cases, total death, total recovery, active cases and numbers of tests). This Web application has been made with React*, Nodejs and Electronjs for desktop version (Windows, MacOS, Linux). Mobile version (iOS, Android) can use PWA by adding the website to home screen and use it just like a native app.

\n

WebApp URL & QR code:

\n

URL: https://covid-19-cases-overview.web.app
\nOr scan the QR code:
\n\"\"

\n

Note: Desktop app in the releases.

\n

Note: Please add to home screen if you are on mobile to use it as a native app.

\n

🪲 BugTracker 🪲 & 💡 suggestions 💡

\n

This is where you can report bug that need to be fixed in the WebApp and also request new feature.

\n

Links:

\n

Twitter: paul_le_gall 🐤

\n

All covid-19 data come from disease-sh

\n

Github link: https://github.com/disease-sh/API

\n

Screenshots:

\n

\"\"\n\"\"

\n

(*This project has been generated with \"create-react-app\")

\n

Copyright © 2020 Paul Le Gall

\n
", "readmeOriginal": "

Covid-19 cases overview WebApp

\n

This project is a Web application that allow the user to check daily cases and much more information about covid-19. (Example: daily cases, daily death, daily recovery, total cases, total death, total recovery, active cases and numbers of tests). This Web application has been made with React*, Nodejs and Electronjs for desktop version (Windows, MacOS, Linux). Mobile version (iOS, Android) can use PWA by adding the website to home screen and use it just like a native app.

\n

WebApp URL & QR code:

\n

URL: https://covid-19-cases-overview.web.app
\nOr scan the QR code:
\n\"\"

\n

Note: Desktop app in the releases.

\n

Note: Please add to home screen if you are on mobile to use it as a native app.

\n

🪲 BugTracker 🪲 & 💡 suggestions 💡

\n

This is where you can report bug that need to be fixed in the WebApp and also request new feature.

\n

Links:

\n

Twitter: paul_le_gall 🐤

\n

All covid-19 data come from disease-sh

\n

Github link: https://github.com/disease-sh/API

\n

Screenshots:

\n

\"\"\n\"\"

\n

(*This project has been generated with \"create-react-app\")

\n

Copyright © 2020 Paul Le Gall

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.218Z" }, "csgo-tracker": { "readmeCleaned": "

csgo-tracker

\n

\"CI

\n

csgo-tracker is a simple Electron app that lets you track your CS:GO matches and stats using Valve's game state integration.

\n

Features

\n\n

\"screenshot1\"

\n

\"screenshot2\"

\n

\"screenshot3\"

\n

Installation

\n

You can download the latest stable release for your OS here. Also, you can download the latest build from the Actions tab (you have to be logged into your GitHub account).

\n

The downloaded .zip folder will contain a .cfg file and an executable file. Before installing or running the app you need to place the .cfg file into the csgo/cfg directory inside the CS:GO installation folder. If your game was running when you placed the file, make sure to restart it to apply the configuration changes.

\n

To install the Windows version, you have to run the installer file. The Linux version is an AppImage so you can just run the executable to start the app.

\n

Usage

\n

To track a match, you have to run csgo-tracker before starting the match. If you close the app before the match ends, the match stats will be incomplete.

\n

To access your match history, go to the Matches tab. A list of matches will appear on the left hand side of the screen. Then you can click on any item of the list to see your performance in each match. You can also see your performance in any round by clicking on the chart at the bottom of the screen.

\n

Repository Structure

\n

The app has two main components:

\n\n

These two components are bundled together into an Electron app (electronapp folder) in order to easily distribute them.

\n
", "readmeOriginal": "

csgo-tracker

\n

\"CI

\n

csgo-tracker is a simple Electron app that lets you track your CS:GO matches and stats using Valve's game state integration.

\n

Features

\n\n

\"screenshot1\"

\n

\"screenshot2\"

\n

\"screenshot3\"

\n

Installation

\n

You can download the latest stable release for your OS here. Also, you can download the latest build from the Actions tab (you have to be logged into your GitHub account).

\n

The downloaded .zip folder will contain a .cfg file and an executable file. Before installing or running the app you need to place the .cfg file into the csgo/cfg directory inside the CS:GO installation folder. If your game was running when you placed the file, make sure to restart it to apply the configuration changes.

\n

To install the Windows version, you have to run the installer file. The Linux version is an AppImage so you can just run the executable to start the app.

\n

Usage

\n

To track a match, you have to run csgo-tracker before starting the match. If you close the app before the match ends, the match stats will be incomplete.

\n

To access your match history, go to the Matches tab. A list of matches will appear on the left hand side of the screen. Then you can click on any item of the list to see your performance in each match. You can also see your performance in any round by clicking on the chart at the bottom of the screen.

\n

Repository Structure

\n

The app has two main components:

\n\n

These two components are bundled together into an Electron app (electronapp folder) in order to easily distribute them.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.266Z" }, "cumulus": { "readmeCleaned": "

Cumulus

\n

A SoundCloud player that lives in your menubar.

\n

\"GitHub

\n

\n

Installing

\n

Download the latest release for OSX.

\n

IntelliJ users be warned: This app hijacks the ⌘+Alt+L shortcurt used by IntelliJ to reformat code. See #40 and #77.

\n

Developing

\n

Install dependencies

\n

npm install

\n

npm install -g electron

\n

Compile the application

\n

grunt or grunt build

\n

Run the application with the Chrome DevTools

\n

NODE_ENV=development electron .

\n

Or in Windows:

\n\n
", "readmeOriginal": "

Cumulus

\n

A SoundCloud player that lives in your menubar.

\n

\"GitHub

\n

\n

Installing

\n

Download the latest release for OSX.

\n

IntelliJ users be warned: This app hijacks the ⌘+Alt+L shortcurt used by IntelliJ to reformat code. See #40 and #77.

\n

Developing

\n

Install dependencies

\n

npm install

\n

npm install -g electron

\n

Compile the application

\n

grunt or grunt build

\n

Run the application with the Chrome DevTools

\n

NODE_ENV=development electron .

\n

Or in Windows:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:43.439Z" }, "csv-to-sqlite": { "readmeCleaned": "

CSV to SQLite

\n
\n

A desktop app to convert CSV files to SQLite databases!

\n
\n

\"Version\"\n\"Downloads\"\n\"License\"

\n

Table of Contents

\n

Purpose
\nCompatibility
\nSetup
\nScreenshots
\nFuture Goals

\n

Purpose

\n

CSV to SQLite is an electron application designed to convert comma-separated values files to SQLite databases with column type affinities. This desktop app allows a user to convert much more quickly when compared to command-line CSV to SQLite conversion methods. Instead of creating a custom conversion script for each SQLite database, a user is able to quickly adjust the parameters for how the CSV files should be converted.

\n

Compatibility

\n

CSV to SQLite is compatible with Windows, Mac OS, and Linux.

\n

Setup

\n
# clone the repository\ngit clone https://github.com/isaiahnields/csv-to-sqlite\n\n# install dependencies\nnpm install\n\n# serve with hot reload\nnpm run dev\n\n# build electron application for production\nnpm run build
\n

Screenshots

\n

\n

\n

Future Goals

\n

See Projects.

\n
", "readmeOriginal": "

CSV to SQLite

\n
\n

A desktop app to convert CSV files to SQLite databases!

\n
\n

\"Version\"\n\"Downloads\"\n\"License\"

\n

Table of Contents

\n

Purpose
\nCompatibility
\nSetup
\nScreenshots
\nFuture Goals

\n

Purpose

\n

CSV to SQLite is an electron application designed to convert comma-separated values files to SQLite databases with column type affinities. This desktop app allows a user to convert much more quickly when compared to command-line CSV to SQLite conversion methods. Instead of creating a custom conversion script for each SQLite database, a user is able to quickly adjust the parameters for how the CSV files should be converted.

\n

Compatibility

\n

CSV to SQLite is compatible with Windows, Mac OS, and Linux.

\n

Setup

\n
# clone the repository\ngit clone https://github.com/isaiahnields/csv-to-sqlite\n\n# install dependencies\nnpm install\n\n# serve with hot reload\nnpm run dev\n\n# build electron application for production\nnpm run build
\n

Screenshots

\n

\n

\n

Future Goals

\n

See Projects.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.448Z" }, "cyapass": { "readmeCleaned": "

CYaPass-Electron

\n

The official C'YaPass desktop app built on Electron (runs on Windows, Linux, Mac)

\n

Try It Out

\nYou can try this app with three easy steps:\n
    \n
  1. />git clone https://github.com/raddevus/CYaPass-Electron/
  2. \n
  3. />npm install -- installs all required node_modules
  4. \n
  5. />npm start -- starts the app\n
\n

Build the installation packages

\nYou can build the installation packages (after you've cloned the repo) with:
\n/>npm run dist -- builds installation packages for your current OS\n

\"first\"

\n
", "readmeOriginal": "

CYaPass-Electron

\n

The official C'YaPass desktop app built on Electron (runs on Windows, Linux, Mac)

\n

Try It Out

\nYou can try this app with three easy steps:\n
    \n
  1. />git clone https://github.com/raddevus/CYaPass-Electron/
  2. \n
  3. />npm install -- installs all required node_modules
  4. \n
  5. />npm start -- starts the app\n
\n

Build the installation packages

\nYou can build the installation packages (after you've cloned the repo) with:
\n/>npm run dist -- builds installation packages for your current OS\n

\"first\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.535Z" }, "cryptoarm-gost": { "readmeCleaned": "

КриптоАРМ ГОСТ

\n

\"GitHub

\n

Описание

\n

КриптоАРМ ГОСТ - это новый уровень развития знакомой многим программы КриптоАРМ. Новое приложение обеспечивает возможность создания и проверки электронной подписи файлов с произвольным расширением на операционных системах Windows, Linux и macOS.

\n

КриптоАРМ ГОСТ работает с сертификатами и ключами усиленной квалифицированной электронной подписи и полностью совместим с криптопровайдером СКЗИ КриптоПро CSP начиная с версии 4.0.

\n

В приложении поддержаны стандарты для электронной подписи и хеширования ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012, которые с должны заменить прекращающие свое действие стандарты ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94.

\n

\"изображение\"

\n

Функциональные возможности

\n\n

\"demo-sign\"

\n

Для создания усовершенствованной подписи, формата CAdES-X Long Type 1 выберите соответсвующий пункт в Параметрах и укажите ссылку TSP службы, наприvер http://qs.cryptopro.ru/tsp/tsp.srf

\n

\"изображение\"

\n\n

\"demo-enc\"

\n\n

\"изображение\"

\n\n

\"изображение\"

\n\n

\"изображение\"

\n

Документация

\n

Руководство пользователя.pdf

\n

Обратная связь

\n

Если у вас есть вопросы по технической поддержке, то напишите нам на support@trusted.ru или откройте обращение на странице GitHub Issues

\n
", "readmeOriginal": "

КриптоАРМ ГОСТ

\n

\"GitHub

\n

Описание

\n

КриптоАРМ ГОСТ - это новый уровень развития знакомой многим программы КриптоАРМ. Новое приложение обеспечивает возможность создания и проверки электронной подписи файлов с произвольным расширением на операционных системах Windows, Linux и macOS.

\n

КриптоАРМ ГОСТ работает с сертификатами и ключами усиленной квалифицированной электронной подписи и полностью совместим с криптопровайдером СКЗИ КриптоПро CSP начиная с версии 4.0.

\n

В приложении поддержаны стандарты для электронной подписи и хеширования ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012, которые с должны заменить прекращающие свое действие стандарты ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94.

\n

\"изображение\"

\n

Функциональные возможности

\n\n

\"demo-sign\"

\n

Для создания усовершенствованной подписи, формата CAdES-X Long Type 1 выберите соответсвующий пункт в Параметрах и укажите ссылку TSP службы, наприvер http://qs.cryptopro.ru/tsp/tsp.srf

\n

\"изображение\"

\n\n

\"demo-enc\"

\n\n

\"изображение\"

\n\n

\"изображение\"

\n\n

\"изображение\"

\n

Документация

\n

Руководство пользователя.pdf

\n

Обратная связь

\n

Если у вас есть вопросы по технической поддержке, то напишите нам на support@trusted.ru или откройте обращение на странице GitHub Issues

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.627Z" }, "darkj": { "readmeCleaned": "

DarkJ

\n

\"Preview\"

\n

Ever feel JIRA's UI is hard to use? Every small action it reloads the whole page or open a brand new one. That list of subtask really doesn't let you do anything. Searching doesn't really work the way you expected and if you find the thing, you don't know how you did it.

\n

Enter DarkJ! A fluid, dark themed native desktop UI for JIRA that helps you get by your daily JIRA workflow easier. With a custom built, Angular based UI, viewing issues has never been easier. A easy-to-use tab system manages all the issues you care about in one convenient place. Live update and pinning issues let you resume work faster and a custom built search page let you search almost everything.

\n

Interested? How about heading over to the Releases page and try it out? Oh, and it's free to use by the way.

\n

DarkJ's UI is based on the amazing Black Dashboard Theme by CreativeTim.

\n

This app is a fan created work and is not an official product of JIRA or endorsed by Atlassian.

\n

Highlights

\n\n

Built On

\n

\n

\n

Download & Installation

\n

Head over to the Releases page and download the latest version to get started!

\n

Windows

\n

Download the latest setup.exe and follow the installation instruction.

\n

MacOS

\n

You can download either the .zip or .dmg to use DarkJ.

\n

If you downloaded the .zip:

\n
    \n
  1. Extract the content of the .zip file.
  2. \n
  3. You can put the extracted file in your /Applications folder for it to show up in Launchpad.
  4. \n
\n

If you downloaded the .dmg:

\n
    \n
  1. Open the .dmg file.
  2. \n
  3. After clicking \"Agree\", drag the DarkJ icon into the Applications folder icon on screen.
  4. \n
  5. DarkJ should now be available in Launchpad.
  6. \n
  7. If there's a separate DarkJ icon appears on your Desktop, you can remove that by draggin it to the Trashcan.
  8. \n
\n

How much does this app cost?

\n

0, 🆓! It's free to use! If you like the app, maybe consider \"BuyBuy me a tea, a gazillion ton of black tea went into DarkJ 😉

\n

FAQ

\n\n

Issues

\n

For any issues or feature suggestions, feel free to post in the Issues.

\n
", "readmeOriginal": "

DarkJ

\n

\"Preview\"

\n

Ever feel JIRA's UI is hard to use? Every small action it reloads the whole page or open a brand new one. That list of subtask really doesn't let you do anything. Searching doesn't really work the way you expected and if you find the thing, you don't know how you did it.

\n

Enter DarkJ! A fluid, dark themed native desktop UI for JIRA that helps you get by your daily JIRA workflow easier. With a custom built, Angular based UI, viewing issues has never been easier. A easy-to-use tab system manages all the issues you care about in one convenient place. Live update and pinning issues let you resume work faster and a custom built search page let you search almost everything.

\n

Interested? How about heading over to the Releases page and try it out? Oh, and it's free to use by the way.

\n

DarkJ's UI is based on the amazing Black Dashboard Theme by CreativeTim.

\n

This app is a fan created work and is not an official product of JIRA or endorsed by Atlassian.

\n

Highlights

\n\n

Built On

\n

\n

\n

Download & Installation

\n

Head over to the Releases page and download the latest version to get started!

\n

Windows

\n

Download the latest setup.exe and follow the installation instruction.

\n

MacOS

\n

You can download either the .zip or .dmg to use DarkJ.

\n

If you downloaded the .zip:

\n
    \n
  1. Extract the content of the .zip file.
  2. \n
  3. You can put the extracted file in your /Applications folder for it to show up in Launchpad.
  4. \n
\n

If you downloaded the .dmg:

\n
    \n
  1. Open the .dmg file.
  2. \n
  3. After clicking \"Agree\", drag the DarkJ icon into the Applications folder icon on screen.
  4. \n
  5. DarkJ should now be available in Launchpad.
  6. \n
  7. If there's a separate DarkJ icon appears on your Desktop, you can remove that by draggin it to the Trashcan.
  8. \n
\n

How much does this app cost?

\n

0, 🆓! It's free to use! If you like the app, maybe consider \"BuyBuy me a tea, a gazillion ton of black tea went into DarkJ 😉

\n

FAQ

\n\n

Issues

\n

For any issues or feature suggestions, feel free to post in the Issues.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.678Z" }, "cypress": { "readmeCleaned": "

\n \n

\n

\n Documentation |\n Changelog |\n Roadmap\n

\n

\n The web has evolved. Finally, testing has too.\n

\n

\n Fast, easy and reliable testing for anything that runs in a browser.\n

\n

\n Join us, we're hiring.\n

\n

\n \n \"npm\"\n \n \n \"Gitter\n \n \n \"StackShare\"\n
\n

\n

What is Cypress?

\n

\n \n \"Why\n \n

\n

Installing

\n

\"npm

\n

Install Cypress for Mac, Linux, or Windows, then get started.

\n
npm install cypress --save-dev
\n

or

\n
yarn add cypress --dev
\n

\"installing-cli

\n

Contributing

\n\n

Please see our Contributing Guideline which explains repo organization, linting, testing, and other steps.

\n

License

\n

\"license\"

\n

This project is licensed under the terms of the MIT license.

\n

Badges

\n

Let the world know your project is using Cypress.io to test with this cool badge

\n

\"Cypress.io\"

\n
[![Cypress.io](https://img.shields.io/badge/tested%20with-Cypress-04C38E.svg)](https://www.cypress.io/)\n
\n
", "readmeOriginal": "

\n \n

\n

\n Documentation |\n Changelog |\n Roadmap\n

\n

\n The web has evolved. Finally, testing has too.\n

\n

\n Fast, easy and reliable testing for anything that runs in a browser.\n

\n

\n Join us, we're hiring.\n

\n

\n \n \"npm\"\n \n \n \"Gitter\n \n \n \"StackShare\"\n
\n

\n

What is Cypress?

\n

\n \n \"Why\n \n

\n

Installing

\n

\"npm

\n

Install Cypress for Mac, Linux, or Windows, then get started.

\n
npm install cypress --save-dev
\n

or

\n
yarn add cypress --dev
\n

\"installing-cli

\n

Contributing

\n\n

Please see our Contributing Guideline which explains repo organization, linting, testing, and other steps.

\n

License

\n

\"license\"

\n

This project is licensed under the terms of the MIT license.

\n

Badges

\n

Let the world know your project is using Cypress.io to test with this cool badge

\n

\"Cypress.io\"

\n
[![Cypress.io](https://img.shields.io/badge/tested%20with-Cypress-04C38E.svg)](https://www.cypress.io/)\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:43.690Z" }, "data-pixels-playground": { "readmeCleaned": "
\n \n

DATA PIXELS / Create Pixel Art Programmatically

\n

\"npm\"\n\"npm\"\n\"Github\n\"GitHub\n\"license\"

\n
\n

The DataPixels.js source code facilitates production of pixel art that is entirely generated programmatically at runtime. Additionally, the accompanying desktop application, Data Pixels Playground, may be used to write and execute code for displaying both customized and automated pixel art.

\n

DataPixels.js

\n

The DataPixels.js source code features a modular, ES2015 Class design for accessible and effortless construction of new instances. Each instance contains both HTMLCanvasElement and HTMLImageElement public accessors whose sources consist of the programmatically generated pixel art.

\n

Install

\n

DataPixels.js package can be installed as a project dependency from NPM by entering the following CLI command:

\n
npm i data-pixels\n
\n

Create

\n

The DataPixels.js constructor requires 2 arguments:

\n
    \n
  1. \n

    pixelData: An array containing one or more arrays of equal length, consisting of strings composed of 0-255 integer values per 24-bit RGB color channel (e.g., “255, 255, 255”) or 32-bit RGBA color channel (e.g., “255, 255, 255, 255”). Additionally, the strings may optionally contain any kind of descriptive text (e.g., “Red: 255, G - 128, 64 for Blue, Transparency = 32”) as only the number values within the string will be parsed in RGB / RGBA order. Strings that contain more than 4 numbers will throw an error.

    \n
  2. \n
  3. \n

    pixelSize: The size of each color data unit in pixels. This value represents the size of each perceived pixel that forms the pixel art.

    \n
  4. \n
\n

For more information see the Example Code section below.

\n

\"Code

\n

Data Pixels Playground

\n

Data Pixels Playground is a lightweight, cross-platform, desktop application for Windows, Mac and Linux, which may be used to write and execute DataPixels.js instances for previewing and testing purposes.

\n

The application features built-in example code via the Help menu as well as the ability to parse pixel data from image files to produce automatically generated code through the File > Open Image File… menu item or through drag-and-drop gestures. Additionally, compiled Data Pixels visible in the View Panel can be easily dragged, scaled and reflected using the mouse or in-app controls to help you design the perfect images for your requirements.

\n

Note: pixel color values that are automatically interpreted from image files with an embedded color space may differ slightly from the image’s intended color values.

\n

\"Application

\n

Desktop Application Release Builds

\n

Creating release builds for Windows, Mac and/or Linux is a 2-step process: code compilation, then application packaging, both of which are accomplished by running command-line NPM scripts.

\n

Compilation

\n

Production code compilation can be executed by entering the following CLI command at the project root folder [~/DataPixels/ ]:

\n
npm run prod\n
\n

For more detailed information concerning code compilation please refer to Project Foundation.

\n

Packaging

\n

Application packaging can be executed for individual platforms by entering one of the following CLI commands at the project build folder [~/DataPixels/resources/build/ ]:

\n
npm run package-linux\n
\n
npm run package-mac\n
\n
npm run package-windows\n
\n

Note: In order to avoid problems with code signing and other build issues it is highly recommended to execute packaging scripts for an individual platform from its own operating system.

\n

For more detailed information concerning application packaging please refer to Electron Packager.

\n

Example Code

\n

Basic

\n
/**\n * @description DataPixels basic code example\n * \n */\nimport DataPixels from \"data-pixels\";\n\nconst R = \"255, 0, 0, 255\";    //Red\nconst G = \"0, 255, 0, 255\";    //Green\nconst B = \"0, 0, 255, 255\";    //Blue\nconst _ = \"0, 0, 0, 0\";        //Transparent\n\nconst data = [[R, G],\n              [B, _]];\n\nconst size = 100;\n\nconst image = new DataPixels(data, size).image;\n\ndocument.body.appendChild(image);
\n

Hearts

\n
{number} consist of:\n *
    \n *
  • S
  • \n *
  • M
  • \n *
  • L
  • \n *
  • XL
  • \n *
\n * \n * @constant\n * \n */\nconst Size = {\n\n S: 10,\n M: 15,\n L: 20,\n XL: 25\n};\n\n/**\n * @description Creates a new heart shaped pixelData object of a specified hue\n * @param {number} red - The hue's red value \n * @param {number} green - The hue's green value\n * @param {number} blue - The hue's blue value\n * @param {number} lightness - The hue's applied value for brightness and darkness\n * \n */\nfunction createPixelDataHeart(red, green, blue, lightness = 20) {\n\n const R = red;\n const G = green;\n const B = blue;\n const L1 = lightness;\n const L2 = L1 * 2;\n const H = `${R}, ${G}, ${B}`; //Main Hue\n const A = `${R + L2}, ${G + L2}, ${B + L2}`; //Main Hue Light\n const Y = `${R - L1}, ${G - L1}, ${B - L1}`; //Main Hue Dark\n const Z = `${R - L2}, ${G - L2}, ${B - L2}`; //Main Hue Darker\n const $ = "0, 0, 0"; //Stroke\n const _ = "0, 0, 0, 0"; //Transparent\n\n return [[_, _, $, $, $, _, _, _, $, $, $, _, _],\n [_, $, H, H, H, $, _, $, Y, Y, Z, $, _],\n [$, H, H, A, H, H, $, H, H, Y, Y, Z, $],\n [$, H, A, H, H, H, H, H, H, H, Y, Z, $],\n [$, H, A, H, H, H, H, H, H, H, Y, Z, $],\n [$, H, H, H, H, H, H, H, H, H, Y, Z, $],\n [_, $, H, H, H, H, H, H, H, Y, Z, $, _],\n [_, _, $, H, H, H, H, H, H, Y, $, _, _],\n [_, _, _, $, H, H, H, H, Y, $, _, _, _],\n [_, _, _, _, $, H, H, Y, $, _, _, _, _],\n [_, _, _, _, _, $, Y, $, _, _, _, _, _],\n [_, _, _, _, _, _, $, _, _, _, _, _, _]];\n}\n\n/* \n * Create multiple heart canvases of different colors and sizes\n *\n */ \nconst redHeart = new DataPixels(createPixelDataHeart(200, 0, 50), Size.XL).canvas;\nconst blueHeart = new DataPixels(createPixelDataHeart(50, 30, 210), Size.L).canvas;\nconst purpleHeart = new DataPixels(createPixelDataHeart(125, 70, 180), Size.M).canvas;\nconst greenHeart = new DataPixels(createPixelDataHeart(25, 160, 50), Size.S).canvas;\n\n/* \n * Create a container for the heart canvases\n *\n */ \nconst heartsContainer = document.createElement("div");\nheartsContainer.style.filter = "drop-shadow(0 0 30px #FFFFFF)";\n\ndocument.body.appendChild(heartsContainer);\n\n/* \n * Rotate and append each heart canvas to the container\n *\n */ \nconst rotationDelta = 15;\n\n[redHeart, blueHeart, purpleHeart, greenHeart].forEach((heart, index) => {\n\n heart.style.transform = `rotate(${rotationDelta * index}deg)`;\n heartsContainer.appendChild(heart);\n});\">
/**\n * @description DataPixels example of multiple heart shaped instances of different hues and rotations\n * \n */\nimport DataPixels from \"data-pixels\";\n\n/**\n * @description Properties of type <strong>{number}</strong> consist of:\n * <ul>\n *     <li> S </li>\n *     <li> M </li>\n *     <li> L </li>\n *     <li> XL </li>\n * </ul>\n * \n * @constant\n * \n */\nconst Size = {\n\n    S: 10,\n    M: 15,\n    L: 20,\n    XL: 25\n};\n\n/**\n * @description Creates a new heart shaped pixelData object of a specified hue\n * @param {number} red - The hue's red value \n * @param {number} green - The hue's green value\n * @param {number} blue - The hue's blue value\n * @param {number} lightness - The hue's applied value for brightness and darkness\n * \n */\nfunction createPixelDataHeart(red, green, blue, lightness = 20) {\n\n    const R = red;\n    const G = green;\n    const B = blue;\n    const L1 = lightness;\n    const L2 = L1 * 2;\n    const H = `${R}, ${G}, ${B}`;                  //Main Hue\n    const A = `${R + L2}, ${G + L2}, ${B + L2}`;   //Main Hue Light\n    const Y = `${R - L1}, ${G - L1}, ${B - L1}`;   //Main Hue Dark\n    const Z = `${R - L2}, ${G - L2}, ${B - L2}`;   //Main Hue Darker\n    const $ = \"0, 0, 0\";                           //Stroke\n    const _ = \"0, 0, 0, 0\";                        //Transparent\n\n    return [[_, _, $, $, $, _, _, _, $, $, $, _, _],\n            [_, $, H, H, H, $, _, $, Y, Y, Z, $, _],\n            [$, H, H, A, H, H, $, H, H, Y, Y, Z, $],\n            [$, H, A, H, H, H, H, H, H, H, Y, Z, $],\n            [$, H, A, H, H, H, H, H, H, H, Y, Z, $],\n            [$, H, H, H, H, H, H, H, H, H, Y, Z, $],\n            [_, $, H, H, H, H, H, H, H, Y, Z, $, _],\n            [_, _, $, H, H, H, H, H, H, Y, $, _, _],\n            [_, _, _, $, H, H, H, H, Y, $, _, _, _],\n            [_, _, _, _, $, H, H, Y, $, _, _, _, _],\n            [_, _, _, _, _, $, Y, $, _, _, _, _, _],\n            [_, _, _, _, _, _, $, _, _, _, _, _, _]];\n}\n\n/* \n * Create multiple heart canvases of different colors and sizes\n *\n */ \nconst redHeart = new DataPixels(createPixelDataHeart(200, 0, 50), Size.XL).canvas;\nconst blueHeart = new DataPixels(createPixelDataHeart(50, 30, 210), Size.L).canvas;\nconst purpleHeart = new DataPixels(createPixelDataHeart(125, 70, 180), Size.M).canvas;\nconst greenHeart = new DataPixels(createPixelDataHeart(25, 160, 50), Size.S).canvas;\n\n/* \n * Create a container for the heart canvases\n *\n */ \nconst heartsContainer = document.createElement(\"div\");\nheartsContainer.style.filter = \"drop-shadow(0 0 30px #FFFFFF)\";\n\ndocument.body.appendChild(heartsContainer);\n\n/* \n * Rotate and append each heart canvas to the container\n *\n */ \nconst rotationDelta = 15;\n\n[redHeart, blueHeart, purpleHeart, greenHeart].forEach((heart, index) => {\n\n    heart.style.transform = `rotate(${rotationDelta * index}deg)`;\n    heartsContainer.appendChild(heart);\n});
\n

Mario Bros

\n
/**\n * @description DataPixels example of Nintendo's Mario Brothers\n * \n */\nimport DataPixels from \"data-pixels\";\n\n/**\n * @description Creates a Mario or Luigi pixelData object\n * @param {boolean} isMario - Defines the brother's hat and shirt color.  Mario is red and Luigi is green. \n * \n */\nfunction createMarioBrother(isMario = true) {\n\n    const mainColor = (isMario) ? \"255, 0, 0\" : \"0, 180, 0\";\n\n    const C = mainColor;        //Hat & Shirt\n    const B = \"100, 50, 0\";     //Brown Hair & Boots\n    const S = \"255, 200, 150\";  //Skin Tone\n    const O = \"0, 0, 255\";      //Blue Overalls\n    const Y = \"255, 255, 0\";    //Yellow Buckles       \n    const W = \"255, 255, 255\";  //White Gloves\n    const _ = \"0, 0, 0, 0\";     //Transparent (RGBA Format)\n\n    return [[_, _, _, C, C, C, C, C, _, _, _, _],\n            [_, _, C, C, C, C, C, C, C, C, C, _],\n            [_, _, B, B, B, S, S, B, S, _, _, _], \n            [_, B, S, B, S, S, S, B, S, S, S, _],\n            [_, B, S, B, B, S, S, S, B, S, S, B],\n            [_, B, B, S, S, S, S, B, B, B, B, _],\n            [_, _, _, S, S, S, S, S, S, S, _, _],\n            [_, _, C, C, O, C, C, C, C, _, _, _],\n            [_, C, C, C, O, C, C, O, C, C, C, _],\n            [C, C, C, C, O, O, O, O, C, C, C, C],\n            [W, W, C, O, Y, O, O, Y, O, C, W, W],\n            [W, W, W, O, O, O, O, O, O, W, W, W],\n            [W, W, O, O, O, O, O, O, O, O, W, W],\n            [_, _, O, O, O, _, _, O, O, O, _, _],\n            [_, B, B, B, _, _, _, _, B, B, B, _],\n            [B, B, B, B, _, _, _, _, B, B, B, B]];\n}\n\n/*\n * Create and append a Mario Brother canvas instance\n * \n */\nconst pixelSize = 30;\n\nconst brother = new DataPixels(createMarioBrother(true), pixelSize).canvas;\nbrother.style.filter = \"drop-shadow(0 10px 20px #000000)\";\n\ndocument.body.appendChild(brother);
\n

License

\n

MIT License

\n

Copyright © 2017-2018 Geoffrey Mattie

\n
", "readmeOriginal": "
\n \n

DATA PIXELS / Create Pixel Art Programmatically

\n

\"npm\"\n\"npm\"\n\"Github\n\"GitHub\n\"license\"

\n
\n

The DataPixels.js source code facilitates production of pixel art that is entirely generated programmatically at runtime. Additionally, the accompanying desktop application, Data Pixels Playground, may be used to write and execute code for displaying both customized and automated pixel art.

\n

DataPixels.js

\n

The DataPixels.js source code features a modular, ES2015 Class design for accessible and effortless construction of new instances. Each instance contains both HTMLCanvasElement and HTMLImageElement public accessors whose sources consist of the programmatically generated pixel art.

\n

Install

\n

DataPixels.js package can be installed as a project dependency from NPM by entering the following CLI command:

\n
npm i data-pixels\n
\n

Create

\n

The DataPixels.js constructor requires 2 arguments:

\n
    \n
  1. \n

    pixelData: An array containing one or more arrays of equal length, consisting of strings composed of 0-255 integer values per 24-bit RGB color channel (e.g., “255, 255, 255”) or 32-bit RGBA color channel (e.g., “255, 255, 255, 255”). Additionally, the strings may optionally contain any kind of descriptive text (e.g., “Red: 255, G - 128, 64 for Blue, Transparency = 32”) as only the number values within the string will be parsed in RGB / RGBA order. Strings that contain more than 4 numbers will throw an error.

    \n
  2. \n
  3. \n

    pixelSize: The size of each color data unit in pixels. This value represents the size of each perceived pixel that forms the pixel art.

    \n
  4. \n
\n

For more information see the Example Code section below.

\n

\"Code

\n

Data Pixels Playground

\n

Data Pixels Playground is a lightweight, cross-platform, desktop application for Windows, Mac and Linux, which may be used to write and execute DataPixels.js instances for previewing and testing purposes.

\n

The application features built-in example code via the Help menu as well as the ability to parse pixel data from image files to produce automatically generated code through the File > Open Image File… menu item or through drag-and-drop gestures. Additionally, compiled Data Pixels visible in the View Panel can be easily dragged, scaled and reflected using the mouse or in-app controls to help you design the perfect images for your requirements.

\n

Note: pixel color values that are automatically interpreted from image files with an embedded color space may differ slightly from the image’s intended color values.

\n

\"Application

\n

Desktop Application Release Builds

\n

Creating release builds for Windows, Mac and/or Linux is a 2-step process: code compilation, then application packaging, both of which are accomplished by running command-line NPM scripts.

\n

Compilation

\n

Production code compilation can be executed by entering the following CLI command at the project root folder [~/DataPixels/ ]:

\n
npm run prod\n
\n

For more detailed information concerning code compilation please refer to Project Foundation.

\n

Packaging

\n

Application packaging can be executed for individual platforms by entering one of the following CLI commands at the project build folder [~/DataPixels/resources/build/ ]:

\n
npm run package-linux\n
\n
npm run package-mac\n
\n
npm run package-windows\n
\n

Note: In order to avoid problems with code signing and other build issues it is highly recommended to execute packaging scripts for an individual platform from its own operating system.

\n

For more detailed information concerning application packaging please refer to Electron Packager.

\n

Example Code

\n

Basic

\n
/**\n * @description DataPixels basic code example\n * \n */\nimport DataPixels from \"data-pixels\";\n\nconst R = \"255, 0, 0, 255\";    //Red\nconst G = \"0, 255, 0, 255\";    //Green\nconst B = \"0, 0, 255, 255\";    //Blue\nconst _ = \"0, 0, 0, 0\";        //Transparent\n\nconst data = [[R, G],\n              [B, _]];\n\nconst size = 100;\n\nconst image = new DataPixels(data, size).image;\n\ndocument.body.appendChild(image);
\n

Hearts

\n
/**\n * @description DataPixels example of multiple heart shaped instances of different hues and rotations\n * \n */\nimport DataPixels from \"data-pixels\";\n\n/**\n * @description Properties of type <strong>{number}</strong> consist of:\n * <ul>\n *     <li> S </li>\n *     <li> M </li>\n *     <li> L </li>\n *     <li> XL </li>\n * </ul>\n * \n * @constant\n * \n */\nconst Size = {\n\n    S: 10,\n    M: 15,\n    L: 20,\n    XL: 25\n};\n\n/**\n * @description Creates a new heart shaped pixelData object of a specified hue\n * @param {number} red - The hue's red value \n * @param {number} green - The hue's green value\n * @param {number} blue - The hue's blue value\n * @param {number} lightness - The hue's applied value for brightness and darkness\n * \n */\nfunction createPixelDataHeart(red, green, blue, lightness = 20) {\n\n    const R = red;\n    const G = green;\n    const B = blue;\n    const L1 = lightness;\n    const L2 = L1 * 2;\n    const H = `${R}, ${G}, ${B}`;                  //Main Hue\n    const A = `${R + L2}, ${G + L2}, ${B + L2}`;   //Main Hue Light\n    const Y = `${R - L1}, ${G - L1}, ${B - L1}`;   //Main Hue Dark\n    const Z = `${R - L2}, ${G - L2}, ${B - L2}`;   //Main Hue Darker\n    const $ = \"0, 0, 0\";                           //Stroke\n    const _ = \"0, 0, 0, 0\";                        //Transparent\n\n    return [[_, _, $, $, $, _, _, _, $, $, $, _, _],\n            [_, $, H, H, H, $, _, $, Y, Y, Z, $, _],\n            [$, H, H, A, H, H, $, H, H, Y, Y, Z, $],\n            [$, H, A, H, H, H, H, H, H, H, Y, Z, $],\n            [$, H, A, H, H, H, H, H, H, H, Y, Z, $],\n            [$, H, H, H, H, H, H, H, H, H, Y, Z, $],\n            [_, $, H, H, H, H, H, H, H, Y, Z, $, _],\n            [_, _, $, H, H, H, H, H, H, Y, $, _, _],\n            [_, _, _, $, H, H, H, H, Y, $, _, _, _],\n            [_, _, _, _, $, H, H, Y, $, _, _, _, _],\n            [_, _, _, _, _, $, Y, $, _, _, _, _, _],\n            [_, _, _, _, _, _, $, _, _, _, _, _, _]];\n}\n\n/* \n * Create multiple heart canvases of different colors and sizes\n *\n */ \nconst redHeart = new DataPixels(createPixelDataHeart(200, 0, 50), Size.XL).canvas;\nconst blueHeart = new DataPixels(createPixelDataHeart(50, 30, 210), Size.L).canvas;\nconst purpleHeart = new DataPixels(createPixelDataHeart(125, 70, 180), Size.M).canvas;\nconst greenHeart = new DataPixels(createPixelDataHeart(25, 160, 50), Size.S).canvas;\n\n/* \n * Create a container for the heart canvases\n *\n */ \nconst heartsContainer = document.createElement(\"div\");\nheartsContainer.style.filter = \"drop-shadow(0 0 30px #FFFFFF)\";\n\ndocument.body.appendChild(heartsContainer);\n\n/* \n * Rotate and append each heart canvas to the container\n *\n */ \nconst rotationDelta = 15;\n\n[redHeart, blueHeart, purpleHeart, greenHeart].forEach((heart, index) => {\n\n    heart.style.transform = `rotate(${rotationDelta * index}deg)`;\n    heartsContainer.appendChild(heart);\n});
\n

Mario Bros

\n
/**\n * @description DataPixels example of Nintendo's Mario Brothers\n * \n */\nimport DataPixels from \"data-pixels\";\n\n/**\n * @description Creates a Mario or Luigi pixelData object\n * @param {boolean} isMario - Defines the brother's hat and shirt color.  Mario is red and Luigi is green. \n * \n */\nfunction createMarioBrother(isMario = true) {\n\n    const mainColor = (isMario) ? \"255, 0, 0\" : \"0, 180, 0\";\n\n    const C = mainColor;        //Hat & Shirt\n    const B = \"100, 50, 0\";     //Brown Hair & Boots\n    const S = \"255, 200, 150\";  //Skin Tone\n    const O = \"0, 0, 255\";      //Blue Overalls\n    const Y = \"255, 255, 0\";    //Yellow Buckles       \n    const W = \"255, 255, 255\";  //White Gloves\n    const _ = \"0, 0, 0, 0\";     //Transparent (RGBA Format)\n\n    return [[_, _, _, C, C, C, C, C, _, _, _, _],\n            [_, _, C, C, C, C, C, C, C, C, C, _],\n            [_, _, B, B, B, S, S, B, S, _, _, _], \n            [_, B, S, B, S, S, S, B, S, S, S, _],\n            [_, B, S, B, B, S, S, S, B, S, S, B],\n            [_, B, B, S, S, S, S, B, B, B, B, _],\n            [_, _, _, S, S, S, S, S, S, S, _, _],\n            [_, _, C, C, O, C, C, C, C, _, _, _],\n            [_, C, C, C, O, C, C, O, C, C, C, _],\n            [C, C, C, C, O, O, O, O, C, C, C, C],\n            [W, W, C, O, Y, O, O, Y, O, C, W, W],\n            [W, W, W, O, O, O, O, O, O, W, W, W],\n            [W, W, O, O, O, O, O, O, O, O, W, W],\n            [_, _, O, O, O, _, _, O, O, O, _, _],\n            [_, B, B, B, _, _, _, _, B, B, B, _],\n            [B, B, B, B, _, _, _, _, B, B, B, B]];\n}\n\n/*\n * Create and append a Mario Brother canvas instance\n * \n */\nconst pixelSize = 30;\n\nconst brother = new DataPixels(createMarioBrother(true), pixelSize).canvas;\nbrother.style.filter = \"drop-shadow(0 10px 20px #000000)\";\n\ndocument.body.appendChild(brother);
\n

License

\n

MIT License

\n

Copyright © 2017-2018 Geoffrey Mattie

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.845Z" }, "dbcloner": { "readmeCleaned": "

DBcloner

\n

DBcloner is a desktop app for cloning live remote databases in your desktop.

\n

It works by dumping remote dbs and mounting them into docker containers that you can easily manage by taking snapshots, restoring previous states, re-syncronize from remote, etc.

\n

Since it's Docker based, you will never ever need to deal with any database server runtime. 100% hassle-free.

\n

DBcloner was not built with a specific use case in mind, but you can use it to make some developer experiences better, like mounting local environments, running painless dml queries, safer debugging using real data.

\n

\"\" \"\" \"\"

\n

\"\"

\n

Current state of development and roadmap

\n

DBcloner is currently a closed source experimental project. It's being built using Vue over Electron, and dockerode node library to communicate with the Docker API.

\n

Only PostgreSQL is supported for the moment but MySQL and MariaDB support is almost ready for the next release.

\n

By the moment there's no roadmap, but here are some features I'm planning to add in the future:

\n\n

I'm open to feedback and ideas. If you want to say something feel free to open an issue or send me an email to felipe@leiva.io.

\n

Issues

\n

Since DBcloner is closed source by now, this repo is for issues.

\n
", "readmeOriginal": "

DBcloner

\n

DBcloner is a desktop app for cloning live remote databases in your desktop.

\n

It works by dumping remote dbs and mounting them into docker containers that you can easily manage by taking snapshots, restoring previous states, re-syncronize from remote, etc.

\n

Since it's Docker based, you will never ever need to deal with any database server runtime. 100% hassle-free.

\n

DBcloner was not built with a specific use case in mind, but you can use it to make some developer experiences better, like mounting local environments, running painless dml queries, safer debugging using real data.

\n

\"\" \"\" \"\"

\n

\"\"

\n

Current state of development and roadmap

\n

DBcloner is currently a closed source experimental project. It's being built using Vue over Electron, and dockerode node library to communicate with the Docker API.

\n

Only PostgreSQL is supported for the moment but MySQL and MariaDB support is almost ready for the next release.

\n

By the moment there's no roadmap, but here are some features I'm planning to add in the future:

\n\n

I'm open to feedback and ideas. If you want to say something feel free to open an issue or send me an email to felipe@leiva.io.

\n

Issues

\n

Since DBcloner is closed source by now, this repo is for issues.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.856Z" }, "dbgate": { "readmeCleaned": "

\"NPM\n\"GitHub\n\"dbgate\"\n\"dbgate\"\n\"styled

\n

\n

DbGate - (no)SQL database client

\n

DbGate is cross-platform database manager.\nIt's designed to be simple to use and effective, when working with more databases simultaneously.\nBut there are also many advanced features like schema compare, visual query designer, chart visualisation or batch export and import.

\n

DbGate is licensed under MIT license and is completely free.

\n\n

Supported databases

\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n\n

Features

\n\n

How to contribute

\n

Any contributions are welcome. If you want to contribute without coding, consider following:

\n\n

Thank you!

\n

Why is DbGate different

\n

There are many database managers now, so why DbGate?

\n\n

Design goals

\n\n\n

How to run development environment

\n

Simple variant - runs WEB application:

\n
yarn\nyarn start
\n

If you want more control, run WEB application:

\n
yarn # install NPM packages
\n

And than run following 3 commands concurrently in 3 terminals:

\n
yarn start:api # run API on port 3000\nyarn start:web # run web on port 5000\nyarn lib # watch typescript libraries and plugins modifications\n
\n

This runs API on port 3000 and web application on port 5000
\nOpen http://localhost:5000 in your browser

\n

If you want to run electron app:

\n
yarn # install NPM packages\ncd app\nyarn # install NPM packages for electron
\n

And than run following 3 commands concurrently in 3 terminals:

\n
yarn start:web # run web on port 5000 (only static JS and HTML files)\nyarn lib # watch typescript libraries and plugins modifications\nyarn start:app # run electron app\n
\n

How to run built electron app locally

\n

This mode is very similar to production run of electron app. Electron doesn't use localhost:5000.

\n
cd app\nyarn
\n
yarn\nyarn build:app:local\nyarn start:app:local
\n

How to create plugin

\n

Creating plugin is described in documentation

\n

But it is very simple:

\n
npm install -g yo # install yeoman\nnpm install -g generator-dbgate # install dbgate generator\ncd dbgate-plugin-my-new-plugin # this directory is created by wizard, edit, what you need to change\nyarn plugin # this compiles plugin and copies it into existing DbGate installation
\n

After restarting DbGate, you could use your new plugin from DbGate.

\n
", "readmeOriginal": "

\"NPM\n\"GitHub\n\"dbgate\"\n\"dbgate\"\n\"styled

\n

\n

DbGate - (no)SQL database client

\n

DbGate is cross-platform database manager.\nIt's designed to be simple to use and effective, when working with more databases simultaneously.\nBut there are also many advanced features like schema compare, visual query designer, chart visualisation or batch export and import.

\n

DbGate is licensed under MIT license and is completely free.

\n\n

Supported databases

\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n\n

Features

\n\n

How to contribute

\n

Any contributions are welcome. If you want to contribute without coding, consider following:

\n\n

Thank you!

\n

Why is DbGate different

\n

There are many database managers now, so why DbGate?

\n\n

Design goals

\n\n\n

How to run development environment

\n

Simple variant - runs WEB application:

\n
yarn\nyarn start
\n

If you want more control, run WEB application:

\n
yarn # install NPM packages
\n

And than run following 3 commands concurrently in 3 terminals:

\n
yarn start:api # run API on port 3000\nyarn start:web # run web on port 5000\nyarn lib # watch typescript libraries and plugins modifications\n
\n

This runs API on port 3000 and web application on port 5000
\nOpen http://localhost:5000 in your browser

\n

If you want to run electron app:

\n
yarn # install NPM packages\ncd app\nyarn # install NPM packages for electron
\n

And than run following 3 commands concurrently in 3 terminals:

\n
yarn start:web # run web on port 5000 (only static JS and HTML files)\nyarn lib # watch typescript libraries and plugins modifications\nyarn start:app # run electron app\n
\n

How to run built electron app locally

\n

This mode is very similar to production run of electron app. Electron doesn't use localhost:5000.

\n
cd app\nyarn
\n
yarn\nyarn build:app:local\nyarn start:app:local
\n

How to create plugin

\n

Creating plugin is described in documentation

\n

But it is very simple:

\n
npm install -g yo # install yeoman\nnpm install -g generator-dbgate # install dbgate generator\ncd dbgate-plugin-my-new-plugin # this directory is created by wizard, edit, what you need to change\nyarn plugin # this compiles plugin and copies it into existing DbGate installation
\n

After restarting DbGate, you could use your new plugin from DbGate.

\n
", "readmeFetchedAt": "2022-05-10T00:07:43.962Z" }, "debugtron": { "readmeCleaned": "

Debugtron

\n

\"test\"

\n

Debugtron is an app to debug in-production Electron based app. It is also built with Electron.

\n

\"Screenshot\"

\n

Installation

\n

Installation binaries are available at release page.

\n

License

\n

MIT

\n
", "readmeOriginal": "

Debugtron

\n

\"test\"

\n

Debugtron is an app to debug in-production Electron based app. It is also built with Electron.

\n

\"Screenshot\"

\n

Installation

\n

Installation binaries are available at release page.

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.040Z" }, "dat": { "readmeCleaned": "

\"deprecated\"

\n

More info on active projects and modules at dat-ecosystem.org

\n
\n

Dat Desktop

\n

Peer to peer data versioning & syncronization.

\n

\""Build\n\""Standard\"

\n

\"screenshot\"

\n

Table of Content

\n\n

Contributing

\n

To run Dat Desktop in development mode:

\n
node --version          # v12.4.0\nnpm install             # install dependencies\nnpm start               # start the application
\n

To create binary packages run:

\n
npm install             # install dependencies\nnpm run dist :os        # compile the app into an binary package
\n

FAQ

\n

How to speed up downloading Electron

\n

If you’re not in Europe or the US, you might want to use a different mirror for\nelectron. You can set the ELECTRON_MIRROR variable to point to a different\nprovider:

\n
# Europe / US\n$ npm install\n\n# Asia / Oceania\n$ ELECTRON_MIRROR=\"https://npm.taobao.org/mirrors/electron/\" npm install
\n

Licenses

\n

MIT License

\n

Font Attribution & License

\n

SourceSansPro-Regular.ttf: Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. SIL Open Font License, 1.1

\n

SourceCodePro-Regular.ttf: Copyright 2010, 2012 Adobe Systems Incorporated. All Rights Reserved. SIL Open Font License, 1.1

\n
", "readmeOriginal": "

\"deprecated\"

\n

More info on active projects and modules at dat-ecosystem.org

\n
\n

Dat Desktop

\n

Peer to peer data versioning & syncronization.

\n

\""Build\n\""Standard\"

\n

\"screenshot\"

\n

Table of Content

\n\n

Contributing

\n

To run Dat Desktop in development mode:

\n
node --version          # v12.4.0\nnpm install             # install dependencies\nnpm start               # start the application
\n

To create binary packages run:

\n
npm install             # install dependencies\nnpm run dist :os        # compile the app into an binary package
\n

FAQ

\n

How to speed up downloading Electron

\n

If you’re not in Europe or the US, you might want to use a different mirror for\nelectron. You can set the ELECTRON_MIRROR variable to point to a different\nprovider:

\n
# Europe / US\n$ npm install\n\n# Asia / Oceania\n$ ELECTRON_MIRROR=\"https://npm.taobao.org/mirrors/electron/\" npm install
\n

Licenses

\n

MIT License

\n

Font Attribution & License

\n

SourceSansPro-Regular.ttf: Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. SIL Open Font License, 1.1

\n

SourceCodePro-Regular.ttf: Copyright 2010, 2012 Adobe Systems Incorporated. All Rights Reserved. SIL Open Font License, 1.1

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.068Z" }, "dbglass": { "readmeCleaned": "

DBGlass

\n

\"Code

\n

Simple cross-platform PostgreSQL client. Built with Electron, React, Redux, FixedDataTable.

\n

\"\"

\n

Features

\n\n

How To Use

\n

You can either

\n

Download Released App

\n

Extract it somewhere, and then run the executable.

\n

or

\n

Package app manually from sources

\n

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\ngit clone https://github.com/web-pal/dbglass\n# Go into the repository\ncd dbglass\n# Install dependencies and run the app\nnpm install && npm run dev
\n

App will be running in development mode at this point, in which you can:

\n
Toggle Chrome DevTools
\n\n

See electron-debug for more information.

\n
Ignore default modules
\n

We add some module's peerDependencies to ignore option as default for application size reduction.

\n\n
\n

Note: If you want to use any above modules in runtime, for example: require('babel/register'), you should move them form devDependencies to dependencies.

\n
\n
Pack into an app for your platform from command line:
\n
npm run package
\n
Building windows apps from non-windows platforms
\n

Please checkout Building windows apps from non-windows platforms.

\n

License MIT

\n
", "readmeOriginal": "

DBGlass

\n

\"Code

\n

Simple cross-platform PostgreSQL client. Built with Electron, React, Redux, FixedDataTable.

\n

\"\"

\n

Features

\n\n

How To Use

\n

You can either

\n

Download Released App

\n

Extract it somewhere, and then run the executable.

\n

or

\n

Package app manually from sources

\n

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\ngit clone https://github.com/web-pal/dbglass\n# Go into the repository\ncd dbglass\n# Install dependencies and run the app\nnpm install && npm run dev
\n

App will be running in development mode at this point, in which you can:

\n
Toggle Chrome DevTools
\n\n

See electron-debug for more information.

\n
Ignore default modules
\n

We add some module's peerDependencies to ignore option as default for application size reduction.

\n\n
\n

Note: If you want to use any above modules in runtime, for example: require('babel/register'), you should move them form devDependencies to dependencies.

\n
\n
Pack into an app for your platform from command line:
\n
npm run package
\n
Building windows apps from non-windows platforms
\n

Please checkout Building windows apps from non-windows platforms.

\n

License MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.099Z" }, "deckboard": { "readmeCleaned": "

\n \n

Deckboard

\n

\n \n \n \n \n

\n

\n

Create custom computer macro shortcuts and launch them through your device.\nNo more windows switching to open the folder or website, get Deckboard to simplify them and maximize your productivity!\nWith OBS Studio and Streamlabs OBS supported, bring Deckboard as your personal streaming companion tool!\nConnect your computer to your device through local WiFi connection by entering IP address or scanning QR code.

\n

Features

\n\n

Available Macros

\n\n

Download

\n\n

Support The Dev

\n

Love the app? You can support the development by purchasing PRO version or donate.

\n

\"Buy

\n

Privacy Policy

\n

The application Deckboard (Android), hereby defined as the app, requests the following potentially sensitive data:

\n\n

This potentially sensitive data is not transmitted over the internet, and is not stored by the app. It is not handled by any system other than the device the app is installed on.

\n
", "readmeOriginal": "

\n \n

Deckboard

\n

\n \n \n \n \n

\n

\n

Create custom computer macro shortcuts and launch them through your device.\nNo more windows switching to open the folder or website, get Deckboard to simplify them and maximize your productivity!\nWith OBS Studio and Streamlabs OBS supported, bring Deckboard as your personal streaming companion tool!\nConnect your computer to your device through local WiFi connection by entering IP address or scanning QR code.

\n

Features

\n\n

Available Macros

\n\n

Download

\n\n

Support The Dev

\n

Love the app? You can support the development by purchasing PRO version or donate.

\n

\"Buy

\n

Privacy Policy

\n

The application Deckboard (Android), hereby defined as the app, requests the following potentially sensitive data:

\n\n

This potentially sensitive data is not transmitted over the internet, and is not stored by the app. It is not handled by any system other than the device the app is installed on.

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.182Z" }, "deckmaster": { "readmeCleaned": "

Yu-Gi-Oh! DeckMaster

\n

\"GitHub\n\"Discord\"

\n

\"DeckMaster's

\n

Yu-Gi-Oh! DeckMaster is a deck editor for the Yu-Gi-Oh! trading card game.\nIt features a full deck editor and a combo editor for live probabilities.

\n

Installation

\n

You can install DeckMaster via one of our installers, or by building from source.\nVisit the documentation for instructions.

\n

Support

\n

If you encounter any issues when using DeckMaster, or simply have a suggestion on how to improve it, please open an issue in our issue tracker and I'll get back to you.

\n

Alternatively, if you do not have a GitHub account, please use the Discord server.

\n

Contributing

\n

DeckMaster is completely open-source and accepts contributions from the community.\nIf you wish to contribute to DeckMaster, please read our contributing guide.

\n

License

\n

DeckMaster is distributed under the MIT license.

\n

Thanks For All The Fish! (Attribution)

\n\n
", "readmeOriginal": "

Yu-Gi-Oh! DeckMaster

\n

\"GitHub\n\"Discord\"

\n

\"DeckMaster's

\n

Yu-Gi-Oh! DeckMaster is a deck editor for the Yu-Gi-Oh! trading card game.\nIt features a full deck editor and a combo editor for live probabilities.

\n

Installation

\n

You can install DeckMaster via one of our installers, or by building from source.\nVisit the documentation for instructions.

\n

Support

\n

If you encounter any issues when using DeckMaster, or simply have a suggestion on how to improve it, please open an issue in our issue tracker and I'll get back to you.

\n

Alternatively, if you do not have a GitHub account, please use the Discord server.

\n

Contributing

\n

DeckMaster is completely open-source and accepts contributions from the community.\nIf you wish to contribute to DeckMaster, please read our contributing guide.

\n

License

\n

DeckMaster is distributed under the MIT license.

\n

Thanks For All The Fish! (Attribution)

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:44.269Z" }, "deco-ide": { "readmeCleaned": "

\"Deco

\n

\"Build \"Bountysource\" \"Slack

\n

The all-in-one solution for building React Native applications.

\n

You can get started right away on your React Native project by installing Deco and creating a new project — it's fast and there's no manual setup needed. File scaffolding handles your boilerplate. Ready-made components drop right into your code. Properties are graphically editable through the property inspector. It's an entirely new way to write, tweak, and re-use code.

\n

Download Deco for Mac

\n

\"Deco

\n

Documentation to get you started on Deco IDE.

\n

Open an Issue for bug reports and feature requests.

\n

Join Slack to talk with us.

\n

Table of Contents

\n\n

Setup for Development

\n

Environment

\n

OSX

\n

It is recommended that you use node v5.x and npm 3.x for best results. This project also requires the Ruby 'Bundler' gem.

\n

Installing these on your Mac is easy with Homebrew

\n
/usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n
\n

Now that Homebrew is installed you can run these commands:

\n
brew install node\nbrew install ruby\ngem install bundler\n
\n

Linux

\n

Linux is not supported at this time.

\n

Windows

\n

Windows is not supported at this time.

\n

Clone and Install Dependencies

\n
$ git clone git@github.com:decosoftware/deco-ide\n$ cd ./deco-ide/web\n$ npm install\n$ bundle install\n$ cd ../desktop\n$ npm install\n$ npm run copy-libs\n$ cd ../shared\n$ npm install\n$ cd ../desktop/libs/Scripts/sync-service\n$ npm install\n
\n

Development

\n

Deco core is split into three sub-projects...

\n
    \n
  1. Web
  2. \n
\n\n
    \n
  1. Desktop
  2. \n
\n\n
    \n
  1. Shared
  2. \n
\n\n

Quick Start

\n
$ cd ./deco-ide\n$ ./run-dev.js\n
\n

Manual Start

\n

Occasionally it is helpful to stop and restart the desktop gulp task without stopping the web gulp task. To do this you can run the following commands...

\n
$ cd ./web\n$ npm run watch\n\n
\n

This command will:

\n
    \n
  1. Watch the ./web/src directory and re-build on any changes to the code
  2. \n
  3. Serve the build on localhost:8080
  4. \n
\n
# Open a new terminal window\n$ cd ./desktop\n$ npm run start\n
\n

This command will:

\n
    \n
  1. Build ./desktop/src and place the result into ./desktop/build/app.js
  2. \n
  3. Launch a local Electron binary and load in the bundle from desktop/build/app.js
  4. \n
\n

Testing a Production Build

\n
$ cd ./desktop\n$ npm run pack\n
\n

The resulting .pkg file will be output to ./dist/osx/Deco-$VERSION.pkg

\n

This build is for local testing only. When you install, the system will generate a warning about this being from an unapproved developer — this is because the package is not signed when building locally.

\n

Contributing

\n

Opening Issues

\n
Issues are intended for bug reporting and feature requests.
\n

Before you open a new issue, make sure it isn't already in the list of existing issues. If you believe you've found a new bug, it helps to include any relevant logs in your description.

\n

You can find the logs file at ~/Library/Application Support/com.decosoftware.Deco/logs.out

\n

Becoming a Contributor

\n

All information on how to become a contributor is in our Contribution Guidelines.

\n

Feedback

\n

We ❤️ feedback!

\n
Join the discussion in our community chat.
\n

Copyright

\n

Copyright 2015 © Deco Software Inc - All rights reserved

\n
", "readmeOriginal": "

\"Deco

\n

\"Build \"Bountysource\" \"Slack

\n

The all-in-one solution for building React Native applications.

\n

You can get started right away on your React Native project by installing Deco and creating a new project — it's fast and there's no manual setup needed. File scaffolding handles your boilerplate. Ready-made components drop right into your code. Properties are graphically editable through the property inspector. It's an entirely new way to write, tweak, and re-use code.

\n

Download Deco for Mac

\n

\"Deco

\n

Documentation to get you started on Deco IDE.

\n

Open an Issue for bug reports and feature requests.

\n

Join Slack to talk with us.

\n

Table of Contents

\n\n

Setup for Development

\n

Environment

\n

OSX

\n

It is recommended that you use node v5.x and npm 3.x for best results. This project also requires the Ruby 'Bundler' gem.

\n

Installing these on your Mac is easy with Homebrew

\n
/usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n
\n

Now that Homebrew is installed you can run these commands:

\n
brew install node\nbrew install ruby\ngem install bundler\n
\n

Linux

\n

Linux is not supported at this time.

\n

Windows

\n

Windows is not supported at this time.

\n

Clone and Install Dependencies

\n
$ git clone git@github.com:decosoftware/deco-ide\n$ cd ./deco-ide/web\n$ npm install\n$ bundle install\n$ cd ../desktop\n$ npm install\n$ npm run copy-libs\n$ cd ../shared\n$ npm install\n$ cd ../desktop/libs/Scripts/sync-service\n$ npm install\n
\n

Development

\n

Deco core is split into three sub-projects...

\n
    \n
  1. Web
  2. \n
\n\n
    \n
  1. Desktop
  2. \n
\n\n
    \n
  1. Shared
  2. \n
\n\n

Quick Start

\n
$ cd ./deco-ide\n$ ./run-dev.js\n
\n

Manual Start

\n

Occasionally it is helpful to stop and restart the desktop gulp task without stopping the web gulp task. To do this you can run the following commands...

\n
$ cd ./web\n$ npm run watch\n\n
\n

This command will:

\n
    \n
  1. Watch the ./web/src directory and re-build on any changes to the code
  2. \n
  3. Serve the build on localhost:8080
  4. \n
\n
# Open a new terminal window\n$ cd ./desktop\n$ npm run start\n
\n

This command will:

\n
    \n
  1. Build ./desktop/src and place the result into ./desktop/build/app.js
  2. \n
  3. Launch a local Electron binary and load in the bundle from desktop/build/app.js
  4. \n
\n

Testing a Production Build

\n
$ cd ./desktop\n$ npm run pack\n
\n

The resulting .pkg file will be output to ./dist/osx/Deco-$VERSION.pkg

\n

This build is for local testing only. When you install, the system will generate a warning about this being from an unapproved developer — this is because the package is not signed when building locally.

\n

Contributing

\n

Opening Issues

\n
Issues are intended for bug reporting and feature requests.
\n

Before you open a new issue, make sure it isn't already in the list of existing issues. If you believe you've found a new bug, it helps to include any relevant logs in your description.

\n

You can find the logs file at ~/Library/Application Support/com.decosoftware.Deco/logs.out

\n

Becoming a Contributor

\n

All information on how to become a contributor is in our Contribution Guidelines.

\n

Feedback

\n

We ❤️ feedback!

\n
Join the discussion in our community chat.
\n

Copyright

\n

Copyright 2015 © Deco Software Inc - All rights reserved

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.352Z" }, "deck": { "readmeCleaned": "

\n \"Deck\n

\n

Modern & extendable local web development studio

\n

DECK is powerful and high performant local web development studio unlike any other, install & try out more than 40+ open source stacks ☀️

\n\n

Roadmap 🌱🌱🌱

\n\n

\n Click here to see in action >\n

\n

Download DECK

\n

\n macOS / Ubuntu / Windows\n

\n

\n \"GitHub\n \"GitHub\n \"GitHub\n \"GitHub\n

\n

\n \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub\n

\n

\"DECK

\n

Automatic HTTPS

\n

\"DECK

\n

DECK's inbuilt SSL engine powered by LetsEncrypt and a supercharged proxy layer enables full HTTPS on localhost apps.

\n

Unlimited projects, multiple server configurations

\n

\"DECK

\n

Create any number of development environments right from your localhost. DECK's integrated marketplace lets you spin up stacks with just a click of a button. Popular web technologies such as LAMP, LEMP, MERN, MEAN, Laravel, Symfony, WordPress, Magento & many more are available out of the box

\n

Built-in Log output and Terminal

\n

\"DECK

\n

See real-time logs from your projects, access terminal to run shell commands, composer or npm

\n

Native support for Docker without Docker Desktop

\n

DECK has NO dependency on Docker Desktop app to run Docker containers. It just works out of the box with native support for Docker powered by Multipass on macOS & WSL 2 on Windows

\n

Downloads

\n

See a full list of downloads here: https://github.com/sfx101/deck/releases

\n

Documentation

\n

https://getdeck.io/docs/

\n
", "readmeOriginal": "

\n \"Deck\n

\n

Modern & extendable local web development studio

\n

DECK is powerful and high performant local web development studio unlike any other, install & try out more than 40+ open source stacks ☀️

\n\n

Roadmap 🌱🌱🌱

\n\n

\n Click here to see in action >\n

\n

Download DECK

\n

\n macOS / Ubuntu / Windows\n

\n

\n \"GitHub\n \"GitHub\n \"GitHub\n \"GitHub\n

\n

\n \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub \"GitHub\n

\n

\"DECK

\n

Automatic HTTPS

\n

\"DECK

\n

DECK's inbuilt SSL engine powered by LetsEncrypt and a supercharged proxy layer enables full HTTPS on localhost apps.

\n

Unlimited projects, multiple server configurations

\n

\"DECK

\n

Create any number of development environments right from your localhost. DECK's integrated marketplace lets you spin up stacks with just a click of a button. Popular web technologies such as LAMP, LEMP, MERN, MEAN, Laravel, Symfony, WordPress, Magento & many more are available out of the box

\n

Built-in Log output and Terminal

\n

\"DECK

\n

See real-time logs from your projects, access terminal to run shell commands, composer or npm

\n

Native support for Docker without Docker Desktop

\n

DECK has NO dependency on Docker Desktop app to run Docker containers. It just works out of the box with native support for Docker powered by Multipass on macOS & WSL 2 on Windows

\n

Downloads

\n

See a full list of downloads here: https://github.com/sfx101/deck/releases

\n

Documentation

\n

https://getdeck.io/docs/

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.459Z" }, "deer": { "readmeCleaned": "

\n \n

\n \n \n \n \n \n \n \n \n \n

\n

\n

Deer 🦌 is a modern 🌟, fast 🚀, beautiful note taking 📝 app. Write down your thoughts and ideas 🔖 quickly and easily on Linux, Mac and Windows.

\n

Deer 🦌 is built on Electron and aims to be

\n\n

Screenshots

\n

\"screenshot-1\"

\n

Supported Languages

\n

Currently, Deer supports these languages 🌎. If you would like to Deer to support your language, please request that here.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
 Language
🇬🇧English
🇪🇬العربية
🇪🇸Español
🇷🇺Русский
🇵🇱Polski
🇧🇷Português do Brasil
🇨🇿Česky
🇩🇪Deutsch
🇨🇳中文
🇹🇷Türkçe
🇧🇩বাংলা
\n

Download

\n

Currently, Deer is available for Linux, Mac and Windows 🎉🎉

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindowsLinux
DownloadDownloadDebian-based
RedHat-based
Portable
\n

More information about this release

\n

Nightly builds

\n

Nightly builds ✈️ are produced automatically for latest changes, so that people can help us testing features that have just been added

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindowsLinux
DownloadDownloadDebian-based
RedHat-based
Portable
\n

Getting started

\n

Check Our Docs for building and installing instructions.

\n

If you would like to contribute to Deer, see Our Docs too.

\n

Get in touch!

\n

Feel free to Join us on Gitter, or email us at deer-project@googlegroups.com if you have questions.

\n

License

\n

Deer is licensed under MIT License.

\n
", "readmeOriginal": "

\n \n

\n \n \n \n \n \n \n \n \n \n

\n

\n

Deer 🦌 is a modern 🌟, fast 🚀, beautiful note taking 📝 app. Write down your thoughts and ideas 🔖 quickly and easily on Linux, Mac and Windows.

\n

Deer 🦌 is built on Electron and aims to be

\n\n

Screenshots

\n

\"screenshot-1\"

\n

Supported Languages

\n

Currently, Deer supports these languages 🌎. If you would like to Deer to support your language, please request that here.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
 Language
🇬🇧English
🇪🇬العربية
🇪🇸Español
🇷🇺Русский
🇵🇱Polski
🇧🇷Português do Brasil
🇨🇿Česky
🇩🇪Deutsch
🇨🇳中文
🇹🇷Türkçe
🇧🇩বাংলা
\n

Download

\n

Currently, Deer is available for Linux, Mac and Windows 🎉🎉

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindowsLinux
DownloadDownloadDebian-based
RedHat-based
Portable
\n

More information about this release

\n

Nightly builds

\n

Nightly builds ✈️ are produced automatically for latest changes, so that people can help us testing features that have just been added

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindowsLinux
DownloadDownloadDebian-based
RedHat-based
Portable
\n

Getting started

\n

Check Our Docs for building and installing instructions.

\n

If you would like to contribute to Deer, see Our Docs too.

\n

Get in touch!

\n

Feel free to Join us on Gitter, or email us at deer-project@googlegroups.com if you have questions.

\n

License

\n

Deer is licensed under MIT License.

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.495Z" }, "deskfiler": { "readmeCleaned": "

Deskfiler

\n\n
\n

An Open Source electron plugin ecosystem for JS developers that makes tools for the desktop on Windows, Mac and Linux\neasily deployable and manageable as plugins.

\n
\n

\n

Get your binary downloads at Deskfiler.org

\n

Table of Contents

\n\n

Features

\n\n

Contributing

\n

Please read Code of conduct and Contributing instructions

\n

Documentation

\n

All documentation resides here

\n

License

\n

Deskfiler is published under the GPLv3. You will find the license within the code tree.

\n
", "readmeOriginal": "

Deskfiler

\n\n
\n

An Open Source electron plugin ecosystem for JS developers that makes tools for the desktop on Windows, Mac and Linux\neasily deployable and manageable as plugins.

\n
\n

\n

Get your binary downloads at Deskfiler.org

\n

Table of Contents

\n\n

Features

\n\n

Contributing

\n

Please read Code of conduct and Contributing instructions

\n

Documentation

\n

All documentation resides here

\n

License

\n

Deskfiler is published under the GPLv3. You will find the license within the code tree.

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.510Z" }, "devhub": { "readmeCleaned": "

\n
\n DevHub: GitHub Notifications & Activities on your Desktop
\n Android, iOS, Web & Desktop with 95%+ code sharing between them
thanks to React Native + React Native Web

\n

\n \"Download\n \"Get\n

\n

\n

Why

\n

DevHub is a mobile and desktop app to help you manage GitHub Notifications and stay on top of repository activities. Save custom searches, apply filters and don't miss anything important.

\n
\n

Screenshots

\n

Desktop

\n

\"DevHub)

\n

Menubar

\n

\"DevHub

\n

Mobile

\n

\n \"DevHub\n \"DevHub\n \"DevHub\n

\n
\n

Download links

\n\n
\n

Features

\n\n
\n

Next features:

\n\n
\n

Which one do you want first? Any other recommendations? Search for existing feature requests and add a 👍 reaction on them, or create a new one. Feel free to ping me (@brunolemos) if you feel it's something important.

\n
\n\n
\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

Donate

\n\n
\n

Tech Stack

\n\n
\n

Contributing

\n

See CONTRIBUTING.md

\n
\n
\n

Community

\n
\n \nTwitter: @devhub_app\n
\n \nSlack: Slack Invitation\n
\n
\n

Author

\n

Follow me on Twitter: @brunolemos\n
Donate to me: Patreon | Crypto\n
Donate to DevHub: OpenCollective | Crypto

\n

\n
\n

License

\n

Copyright (c) 2019 Bruno Lemos.

\n

This project is provided as is without any warranties. Use at your own risk.
\nBy using DevHub you agree with its privacy policy and license.

\n
", "readmeOriginal": "

\n
\n DevHub: GitHub Notifications & Activities on your Desktop
\n Android, iOS, Web & Desktop with 95%+ code sharing between them
thanks to React Native + React Native Web

\n

\n \"Download\n \"Get\n

\n

\n

Why

\n

DevHub is a mobile and desktop app to help you manage GitHub Notifications and stay on top of repository activities. Save custom searches, apply filters and don't miss anything important.

\n
\n

Screenshots

\n

Desktop

\n

\"DevHub)

\n

Menubar

\n

\"DevHub

\n

Mobile

\n

\n \"DevHub\n \"DevHub\n \"DevHub\n

\n
\n

Download links

\n\n
\n

Features

\n\n
\n

Next features:

\n\n
\n

Which one do you want first? Any other recommendations? Search for existing feature requests and add a 👍 reaction on them, or create a new one. Feel free to ping me (@brunolemos) if you feel it's something important.

\n
\n\n
\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

Donate

\n\n
\n

Tech Stack

\n\n
\n

Contributing

\n

See CONTRIBUTING.md

\n
\n
\n

Community

\n
\n \nTwitter: @devhub_app\n
\n \nSlack: Slack Invitation\n
\n
\n

Author

\n

Follow me on Twitter: @brunolemos\n
Donate to me: Patreon | Crypto\n
Donate to DevHub: OpenCollective | Crypto

\n

\n
\n

License

\n

Copyright (c) 2019 Bruno Lemos.

\n

This project is provided as is without any warranties. Use at your own risk.
\nBy using DevHub you agree with its privacy policy and license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.622Z" }, "diffuse": { "readmeCleaned": "

\"Diffuse\"

\n

A music player that connects to your cloud/distributed storage,
\nin the form of a static, serverless, web application.

\n

📍 Available at diffuse.sh and for download.

\n
\n

\n

Integrations

\n

Music layer for music storage.\nUser layer for user-data storage.

\n

Music layer

\n\n

User layer

\n\n
\n

Hosting on your own server

\n

Diffuse is a static web application, which means it's just HTML, CSS and Javascript. No REST API, database, or anything backend-related involved. The app uses a hash, aka. fragment, based routing system, so you don't need any special server rules for routing. You can download a pre-build web-only version of Diffuse on the releases page. Diffuse uses service workers, so you may need HTTPS for it to work smoothly in certain browsers.

\n

I should also note that some source services use OAuth, so you'll need to use your own application credentials (eg. google drive client id + secret). That said, if you're working locally you can use http://localhost:5000 or http://127.0.0.1:44999 to use the default ones, that's what the old Electron app was using.

\n

In short:

\n\n
\n

Building it yourself

\n

This project uses Nix to manage the project's environment. If you'd like to build this project without Nix, check out the dependencies in the shell.nix file (most are available through Homebrew as well).

\n
# 🍱\n\n# 1. Setup Nix environment\n# https://nixos.org/download.html\n\n# 2. Install js dependencies\njust install-deps\n\n# 3. Build, start server & watch for changes\njust
\n
", "readmeOriginal": "

\"Diffuse\"

\n

A music player that connects to your cloud/distributed storage,
\nin the form of a static, serverless, web application.

\n

📍 Available at diffuse.sh and for download.

\n
\n

\n

Integrations

\n

Music layer for music storage.\nUser layer for user-data storage.

\n

Music layer

\n\n

User layer

\n\n
\n

Hosting on your own server

\n

Diffuse is a static web application, which means it's just HTML, CSS and Javascript. No REST API, database, or anything backend-related involved. The app uses a hash, aka. fragment, based routing system, so you don't need any special server rules for routing. You can download a pre-build web-only version of Diffuse on the releases page. Diffuse uses service workers, so you may need HTTPS for it to work smoothly in certain browsers.

\n

I should also note that some source services use OAuth, so you'll need to use your own application credentials (eg. google drive client id + secret). That said, if you're working locally you can use http://localhost:5000 or http://127.0.0.1:44999 to use the default ones, that's what the old Electron app was using.

\n

In short:

\n\n
\n

Building it yourself

\n

This project uses Nix to manage the project's environment. If you'd like to build this project without Nix, check out the dependencies in the shell.nix file (most are available through Homebrew as well).

\n
# 🍱\n\n# 1. Setup Nix environment\n# https://nixos.org/download.html\n\n# 2. Install js dependencies\njust install-deps\n\n# 3. Build, start server & watch for changes\njust
\n
", "readmeFetchedAt": "2022-05-10T00:07:44.755Z" }, "devdocs-app": { "readmeCleaned": "

DevDocs Desktop

\n

日本語説明ページはこちら

\n

\"version\"\n\"downloads\"\n\"downloads

\n

DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it.

\n

\"devdocs-preview\"

\n

Features

\n

Background behavior

\n

When closing the window, the app will continue running in the background, in the dock on macOS and the tray on Linux/Windows. Right-click the dock/tray icon and choose Quit to completely quit the app. On macOS, click the dock icon to show the window. On Linux, right-click the tray icon and choose Toggle to toggle the window. On Windows, click the tray icon to toggle the window.

\n

Build-in shortcuts

\n

devdocs the website itself has great built-in shortcuts support, just check the help page in the app.

\n

\"help\"

\n

Planned features

\n

Please consider sponsoring me to accelerate development.

\n\n

Global shortcut

\n

Use Ctrl+Shift+D (or Command+Shift+D on macOS) to toggle the app.

\n

Install

\n

Using Homebrew

\n
brew install --cask devdocs\n
\n

Manual download

\n

You can manually download the latest release here.

\n

Development

\n

It's really easy to develop this app, no build tools like Webpack needed here, checkout ./app to get more:

\n
npm install\n\nnpm run app\n# edit files, save, refresh and it's done.
\n

Distribute

\n
npm run dist
\n

License

\n

MIT © EGOIST

\n
", "readmeOriginal": "

DevDocs Desktop

\n

日本語説明ページはこちら

\n

\"version\"\n\"downloads\"\n\"downloads

\n

DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it.

\n

\"devdocs-preview\"

\n

Features

\n

Background behavior

\n

When closing the window, the app will continue running in the background, in the dock on macOS and the tray on Linux/Windows. Right-click the dock/tray icon and choose Quit to completely quit the app. On macOS, click the dock icon to show the window. On Linux, right-click the tray icon and choose Toggle to toggle the window. On Windows, click the tray icon to toggle the window.

\n

Build-in shortcuts

\n

devdocs the website itself has great built-in shortcuts support, just check the help page in the app.

\n

\"help\"

\n

Planned features

\n

Please consider sponsoring me to accelerate development.

\n\n

Global shortcut

\n

Use Ctrl+Shift+D (or Command+Shift+D on macOS) to toggle the app.

\n

Install

\n

Using Homebrew

\n
brew install --cask devdocs\n
\n

Manual download

\n

You can manually download the latest release here.

\n

Development

\n

It's really easy to develop this app, no build tools like Webpack needed here, checkout ./app to get more:

\n
npm install\n\nnpm run app\n# edit files, save, refresh and it's done.
\n

Distribute

\n
npm run dist
\n

License

\n

MIT © EGOIST

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.841Z" }, "display-dj": { "readmeCleaned": "

\"build-main\"

\n

display-dj

\n

\"icon\"

\n

display-dj is a cross platform desktop application that supports brightness adjustment for integrated laptop monitor as well as external monitors and dark mode toggle supporting Windows and MacOSX at the moment. Adjustment brightness will be quicker and does not require tinkering with the external monitor controls.

\n

I published an article describing this project in details. Here's the link to the published article about display-dj.

\n

The Problems

\n\n

Downloads

\n

You can download display-dj at the following URL.

\n\n

Motivation

\n

The challenge of work from home in the last 2 years with 2 young toddlers is that they can charge into your room any time of the day and playing with the light switch. This is my defense mechanism for those sudden changes in light intensity. I can toggle between 2 different modes rather quickly with a key stroke: going to the dark side vs going to the light side of the force.

\n

\"image\"\n\"image\"

\n

Screenshots / Demo

\n

Windows 11

\n

\"image\"\n\"image\"

\n

Mac OSX Monterey

\n

\"demo-mac\"

\n

Supported Platforms

\n

The following version of OS has been tested and working.

\n\n

Features / Configs / Preferences

\n

Renaming the display

\n

By default, we will give each display a name. You can rename the display to something more friendly by clicking on the name of the display and finish by hitting Enter key.

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

Monitor Configs

\n

At the moment, there is no UI to modify the configs. This can also be accessed via right clicking the tray icon of display-dj and choose Open Monitor Configs.

\n\n

Sample configs file

\n

Configs file are located at:

\n\n
{\n  \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&21f33940&0&UID4352#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\": {\n    \"id\": \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&21f33940&0&UID4352#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\",\n    \"name\": \"Left\",\n    \"brightness\": 0,\n    \"sortOrder\": 1,\n    \"disabled\": false\n  },\n  \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&23c70c64&0&UID257#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\": {\n    \"id\": \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&23c70c64&0&UID257#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\",\n    \"name\": \"Right\",\n    \"brightness\": 0,\n    \"sortOrder\": 2,\n    \"disabled\": false\n  },\n  \"laptop-built-in\": {\n    \"id\": \"laptop-built-in\",\n    \"name\": \"Laptop Built-In Display\",\n    \"brightness\": 0,\n    \"sortOrder\": 3,\n    \"disabled\": true\n  }\n}
\n

Default Key Bindings

\n

Below are default Key Bindings, you can modify the default keybinding in preferences.json, refer to the sample preferences file section.

\n

Key Bindings' command can be an array in case you want to mix and match multiple commands. In this case, Shift + F1, minimize brightness and also turn off darkmode.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeysCommand
Shift + EscapeToggle Dark Mode
Shift + F1Change brightness to 10% and turn dark mode off
Shift + F2Change brightness to 100% and turn dark mode on
Shift + F3Change brightness to 0%
Shift + F4Change brightness to 50%
Shift + F5Change brightness to 100%
Shift + F6Change volume to 0% (Muted)
Shift + F7Change volume to 100%
\n

Preferences / Key Bindings

\n

At the moment, there is no UI to modify the preferences. This can also be accessed via right clicking the tray icon of display-dj and choose Open App Preferences.

\n\n
# brightness commands\ncommand/changeBrightness/down\ncommand/changeBrightness/up\ncommand/changeBrightness/0\ncommand/changeBrightness/10\ncommand/changeBrightness/50\ncommand/changeBrightness/100\n\n# dark mode commands\ncommand/changeDarkMode/toggle\ncommand/changeDarkMode/dark\ncommand/changeDarkMode/light\n\n# volumes commands\ncommand/changeVolume/0\ncommand/changeVolume/50\ncommand/changeVolume/100
\n

Sample preferences file

\n

Preferences file are located at:

\n\n
{\n  \"showIndividualDisplays\": false,\n  \"brightnessDelta\": 50,\n  \"keyBindings\": [\n    {\n      \"key\": \"Shift+Escape\",\n      \"command\": \"command/changeDarkMode/toggle\"\n    },\n    {\n      \"key\": \"Shift+F1\",\n      \"command\": [\"command/changeDarkMode/dark\", \"command/changeBrightness/10\"]\n    },\n    {\n      \"key\": \"Shift+F2\",\n      \"command\": [\"command/changeDarkMode/light\", \"command/changeBrightness/100\"]\n    }\n    {\n      \"key\": \"Shift+F3\",\n      \"command\": \"command/changeBrightness/0\"\n    },\n    {\n      \"key\": \"Shift+F4\",\n      \"command\": \"command/changeBrightness/50\"\n    },\n    {\n      \"key\": \"Shift+F5\",\n      \"command\": \"command/changeBrightness/100\"\n    }\n  ]\n}
\n

TODO

\n\n

Contributing?

\n

If you are interested in contributing, you can refer to this doc to get started

\n\n

Known issues

\n

Due to the complexity and quirks of ddc/ci protocol, unfortunately it's nearly impossible to support every single monitor out there. So if you run into issue where this app doesn't work, we will not guarantee support.

\n

Suggestion?

\n

Use the following link to file a bug or a suggestion. Please indicate which OS and monitor.

\n\n
", "readmeOriginal": "

\"build-main\"

\n

display-dj

\n

\"icon\"

\n

display-dj is a cross platform desktop application that supports brightness adjustment for integrated laptop monitor as well as external monitors and dark mode toggle supporting Windows and MacOSX at the moment. Adjustment brightness will be quicker and does not require tinkering with the external monitor controls.

\n

I published an article describing this project in details. Here's the link to the published article about display-dj.

\n

The Problems

\n\n

Downloads

\n

You can download display-dj at the following URL.

\n\n

Motivation

\n

The challenge of work from home in the last 2 years with 2 young toddlers is that they can charge into your room any time of the day and playing with the light switch. This is my defense mechanism for those sudden changes in light intensity. I can toggle between 2 different modes rather quickly with a key stroke: going to the dark side vs going to the light side of the force.

\n

\"image\"\n\"image\"

\n

Screenshots / Demo

\n

Windows 11

\n

\"image\"\n\"image\"

\n

Mac OSX Monterey

\n

\"demo-mac\"

\n

Supported Platforms

\n

The following version of OS has been tested and working.

\n\n

Features / Configs / Preferences

\n

Renaming the display

\n

By default, we will give each display a name. You can rename the display to something more friendly by clicking on the name of the display and finish by hitting Enter key.

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

Monitor Configs

\n

At the moment, there is no UI to modify the configs. This can also be accessed via right clicking the tray icon of display-dj and choose Open Monitor Configs.

\n\n

Sample configs file

\n

Configs file are located at:

\n\n
{\n  \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&21f33940&0&UID4352#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\": {\n    \"id\": \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&21f33940&0&UID4352#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\",\n    \"name\": \"Left\",\n    \"brightness\": 0,\n    \"sortOrder\": 1,\n    \"disabled\": false\n  },\n  \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&23c70c64&0&UID257#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\": {\n    \"id\": \"\\\\\\\\?\\\\DISPLAY#VSCB73A#5&23c70c64&0&UID257#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}\",\n    \"name\": \"Right\",\n    \"brightness\": 0,\n    \"sortOrder\": 2,\n    \"disabled\": false\n  },\n  \"laptop-built-in\": {\n    \"id\": \"laptop-built-in\",\n    \"name\": \"Laptop Built-In Display\",\n    \"brightness\": 0,\n    \"sortOrder\": 3,\n    \"disabled\": true\n  }\n}
\n

Default Key Bindings

\n

Below are default Key Bindings, you can modify the default keybinding in preferences.json, refer to the sample preferences file section.

\n

Key Bindings' command can be an array in case you want to mix and match multiple commands. In this case, Shift + F1, minimize brightness and also turn off darkmode.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeysCommand
Shift + EscapeToggle Dark Mode
Shift + F1Change brightness to 10% and turn dark mode off
Shift + F2Change brightness to 100% and turn dark mode on
Shift + F3Change brightness to 0%
Shift + F4Change brightness to 50%
Shift + F5Change brightness to 100%
Shift + F6Change volume to 0% (Muted)
Shift + F7Change volume to 100%
\n

Preferences / Key Bindings

\n

At the moment, there is no UI to modify the preferences. This can also be accessed via right clicking the tray icon of display-dj and choose Open App Preferences.

\n\n
# brightness commands\ncommand/changeBrightness/down\ncommand/changeBrightness/up\ncommand/changeBrightness/0\ncommand/changeBrightness/10\ncommand/changeBrightness/50\ncommand/changeBrightness/100\n\n# dark mode commands\ncommand/changeDarkMode/toggle\ncommand/changeDarkMode/dark\ncommand/changeDarkMode/light\n\n# volumes commands\ncommand/changeVolume/0\ncommand/changeVolume/50\ncommand/changeVolume/100
\n

Sample preferences file

\n

Preferences file are located at:

\n\n
{\n  \"showIndividualDisplays\": false,\n  \"brightnessDelta\": 50,\n  \"keyBindings\": [\n    {\n      \"key\": \"Shift+Escape\",\n      \"command\": \"command/changeDarkMode/toggle\"\n    },\n    {\n      \"key\": \"Shift+F1\",\n      \"command\": [\"command/changeDarkMode/dark\", \"command/changeBrightness/10\"]\n    },\n    {\n      \"key\": \"Shift+F2\",\n      \"command\": [\"command/changeDarkMode/light\", \"command/changeBrightness/100\"]\n    }\n    {\n      \"key\": \"Shift+F3\",\n      \"command\": \"command/changeBrightness/0\"\n    },\n    {\n      \"key\": \"Shift+F4\",\n      \"command\": \"command/changeBrightness/50\"\n    },\n    {\n      \"key\": \"Shift+F5\",\n      \"command\": \"command/changeBrightness/100\"\n    }\n  ]\n}
\n

TODO

\n\n

Contributing?

\n

If you are interested in contributing, you can refer to this doc to get started

\n\n

Known issues

\n

Due to the complexity and quirks of ddc/ci protocol, unfortunately it's nearly impossible to support every single monitor out there. So if you run into issue where this app doesn't work, we will not guarantee support.

\n

Suggestion?

\n

Use the following link to file a bug or a suggestion. Please indicate which OS and monitor.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:44.898Z" }, "dict": { "readmeCleaned": "

Dian

\n

\"Package\"\n\"\"\n\"\"

\n

This is a Dictionary application

\n\n

How to Contribute

\n

I am using React & TypeScript Electron Bootstrap Electron-Builder, if you are interesting, just make a pr, we will have a look.

\n

Basic commands can help you to start the project.

\n\n
\n

Thanks

\n\n
", "readmeOriginal": "

Dian

\n

\"Package\"\n\"\"\n\"\"

\n

This is a Dictionary application

\n\n

How to Contribute

\n

I am using React & TypeScript Electron Bootstrap Electron-Builder, if you are interesting, just make a pr, we will have a look.

\n

Basic commands can help you to start the project.

\n\n
\n

Thanks

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:44.937Z" }, "ditto": { "readmeCleaned": "

\"Markdown

\n

Ditto++

\n

Cross platform clipboard manager inspired by Ditto for windows

\n

\"screenshot\"

\n

How to use

\n\n

\"screenshot\"

\n

Search highlight

\n

\"screenshot\"

\n

Download

\n

Find your download: https://github.com/RubinderS/DittoPlusPlus/releases/

\n
", "readmeOriginal": "

\"Markdown

\n

Ditto++

\n

Cross platform clipboard manager inspired by Ditto for windows

\n

\"screenshot\"

\n

How to use

\n\n

\"screenshot\"

\n

Search highlight

\n

\"screenshot\"

\n

Download

\n

Find your download: https://github.com/RubinderS/DittoPlusPlus/releases/

\n
", "readmeFetchedAt": "2022-05-10T00:07:44.977Z" }, "dn-tool-container": { "readmeCleaned": "

\n

DN Tool Container

\n

\n

An application can install many convenient tools for platforms of OS X 、Windows and Linux .\nIt can get more and more convenience tool in the future and no need reinstall Application.

\n

\"\"

\n

Downloads

\n

GitHub Releases

\n

Package Source Code Repo

\n\n

Usage

\n

Install tool from store

\n\n

\"\"

\n\n

\"\"

\n

\"\"

\n\n

\"\"

\n

Install tools from custom package

\n

You can package your tools by DN Tool Packager

\n\n

\"\"

\n\n

\"\"

\n\n

\"\"

\n

Host your custom package store server

\n

You can install your custom package store server : DN Tool Container Store API Server

\n

※ API document: Link

\n

Add custom package store to DnToolContainer

\n\n

\"\"

\n\n

\"\"

\n\n

\"\"

\n
", "readmeOriginal": "

\n

DN Tool Container

\n

\n

An application can install many convenient tools for platforms of OS X 、Windows and Linux .\nIt can get more and more convenience tool in the future and no need reinstall Application.

\n

\"\"

\n

Downloads

\n

GitHub Releases

\n

Package Source Code Repo

\n\n

Usage

\n

Install tool from store

\n\n

\"\"

\n\n

\"\"

\n

\"\"

\n\n

\"\"

\n

Install tools from custom package

\n

You can package your tools by DN Tool Packager

\n\n

\"\"

\n\n

\"\"

\n\n

\"\"

\n

Host your custom package store server

\n

You can install your custom package store server : DN Tool Container Store API Server

\n

※ API document: Link

\n

Add custom package store to DnToolContainer

\n\n

\"\"

\n\n

\"\"

\n\n

\"\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.102Z" }, "doki-doki-mod-manager": { "readmeCleaned": "

Doki Doki Mod Manager \"Build \"Build \"Translation

\n

Doki Doki Mod Manager is a mod manager for Doki Doki Literature Club!

\n

Discord

\n

Got any questions, suggestions or complaints? Join the Discord server!

\n

DDMM Discord

\n

IP Guidelines

\n

Doki Doki Mod Manager is a fan work of Doki Doki Literature Club, as defined by Team Salvato's IP Guidelines.

\n

Download

\n

Builds are available on the Releases page for Windows, macOS and Linux.

\n

Debug tools

\n

Set the following environment variables to enable debugging features.

\n\n

Run from source

\n

For the latest changes, or if you want to contribute, you can run DDMM from source.

\n
$ git clone https://github.com/DokiDokiModManager/Mod-Manager\n$ yarn && yarn start\n
\n

Licenses and Acknowledgements

\n

Doki Doki Mod Manager is licensed under the MIT License. Contributions are welcomed!

\n

Sayonika assets licensed under CC BY-NC-SA.

\n

7-Zip (7za.exe) licensed under GNU LGPL.

\n
", "readmeOriginal": "

Doki Doki Mod Manager \"Build \"Build \"Translation

\n

Doki Doki Mod Manager is a mod manager for Doki Doki Literature Club!

\n

Discord

\n

Got any questions, suggestions or complaints? Join the Discord server!

\n

DDMM Discord

\n

IP Guidelines

\n

Doki Doki Mod Manager is a fan work of Doki Doki Literature Club, as defined by Team Salvato's IP Guidelines.

\n

Download

\n

Builds are available on the Releases page for Windows, macOS and Linux.

\n

Debug tools

\n

Set the following environment variables to enable debugging features.

\n\n

Run from source

\n

For the latest changes, or if you want to contribute, you can run DDMM from source.

\n
$ git clone https://github.com/DokiDokiModManager/Mod-Manager\n$ yarn && yarn start\n
\n

Licenses and Acknowledgements

\n

Doki Doki Mod Manager is licensed under the MIT License. Contributions are welcomed!

\n

Sayonika assets licensed under CC BY-NC-SA.

\n

7-Zip (7za.exe) licensed under GNU LGPL.

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.157Z" }, "dixa": { "readmeCleaned": "

\"Dixa\"

\n

Dixa Desktop app for Windows and Mac

\n

Download the installer at dixa.com/downloads/desktop (windows/mac).

\n

Features:

\n\n

About:

\n

Dixa is a born global customer service tech company on a mission to solve customer chaos, eliminate bad customer service and build strong bonds between companies and their customers - much like the connection between friends.

\n

Our software eliminates chaos caused by using disconnected systems and unifies the customer experience across email, chat, messaging and phone.

\n

Dixa has customers in 20+ countries and has rocketed from new entrant to the #1 ranked SaaS Contact Center platform in just over 1 year.

\n

Integrations devices

\n\n
", "readmeOriginal": "

\"Dixa\"

\n

Dixa Desktop app for Windows and Mac

\n

Download the installer at dixa.com/downloads/desktop (windows/mac).

\n

Features:

\n\n

About:

\n

Dixa is a born global customer service tech company on a mission to solve customer chaos, eliminate bad customer service and build strong bonds between companies and their customers - much like the connection between friends.

\n

Our software eliminates chaos caused by using disconnected systems and unifies the customer experience across email, chat, messaging and phone.

\n

Dixa has customers in 20+ countries and has rocketed from new entrant to the #1 ranked SaaS Contact Center platform in just over 1 year.

\n

Integrations devices

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:45.185Z" }, "domain-book": { "readmeCleaned": "

Domain book application

\n

Domain Book app, an easy and straightforward way to monitor your domains' expiration date.\nIt is like a phonebook for your domains.

\n

\"\"

\n

You can buy the macOS version via AppSumo for only $10 down from $14.99.

\n

Features

\n

One Platforms

\n

You can run the application on macOS (intel/M1).

\n

Simple and Easy to use

\n

A simple UI to give you the critical information about your domains, especially when you have many domains with various registrars. All you need to do is adding your domain, and the app will get all the information required from the Internet. We support a long list of domains WHOIS servers. Also, you can refresh the domain information at any time.

\n

\"\"

\n

Modify the local domain information

\n

If for some reason, we were not able to get a piece of accurate information about your domains, you can use the edit screen to correct this information. Also, you can add notes and tags to help remember anything about a specific domain name.

\n

Once you modified the expiration date, a red dot will be shown near the domain to identify what you have changed. Meanwhile, if you added notes, a small page icon will appear which you can click to read these notes.

\n

\"\"\n\"\"

\n

Auto import

\n

By utilizing the powerful API that each registrar provide, we were able to provide this feature which allows you to auto import the list of your domains directly without the need to add them manually. Right now we only support four companies, and we are planning to add more shortly.

\n

\"\"

\n

What will expire soon?

\n

We all know how it feels when you forget to renew your domain, that's why we have added two menus to our application, one to show you a list of all the domains which will expire in 30 days, the other one display the domains which will expire in 60 days. This way you will know when your domain will be renewed, no surprise payments anymore.

\n

\"\"

\n

More info

\n

More info about the application can be seen at Darawish website.

\n
", "readmeOriginal": "

Domain book application

\n

Domain Book app, an easy and straightforward way to monitor your domains' expiration date.\nIt is like a phonebook for your domains.

\n

\"\"

\n

You can buy the macOS version via AppSumo for only $10 down from $14.99.

\n

Features

\n

One Platforms

\n

You can run the application on macOS (intel/M1).

\n

Simple and Easy to use

\n

A simple UI to give you the critical information about your domains, especially when you have many domains with various registrars. All you need to do is adding your domain, and the app will get all the information required from the Internet. We support a long list of domains WHOIS servers. Also, you can refresh the domain information at any time.

\n

\"\"

\n

Modify the local domain information

\n

If for some reason, we were not able to get a piece of accurate information about your domains, you can use the edit screen to correct this information. Also, you can add notes and tags to help remember anything about a specific domain name.

\n

Once you modified the expiration date, a red dot will be shown near the domain to identify what you have changed. Meanwhile, if you added notes, a small page icon will appear which you can click to read these notes.

\n

\"\"\n\"\"

\n

Auto import

\n

By utilizing the powerful API that each registrar provide, we were able to provide this feature which allows you to auto import the list of your domains directly without the need to add them manually. Right now we only support four companies, and we are planning to add more shortly.

\n

\"\"

\n

What will expire soon?

\n

We all know how it feels when you forget to renew your domain, that's why we have added two menus to our application, one to show you a list of all the domains which will expire in 30 days, the other one display the domains which will expire in 60 days. This way you will know when your domain will be renewed, no surprise payments anymore.

\n

\"\"

\n

More info

\n

More info about the application can be seen at Darawish website.

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.209Z" }, "domterm": { "readmeCleaned": "

DomTerm - a terminal emulator and console using DOM and JavaScript

\n

DomTerm is a combined terminal emulator and REPL console using web\ntechnlogies - i.e. JavaScript and DOM: Users can type commands which\ngets sent to an application, which evaluates the command, and displays\nthe results, typically in some kind of type-script format.

\n

See the home page for more information,\nincluding list of features with many screenshots.

\n

\"DomTerm

\n
", "readmeOriginal": "

DomTerm - a terminal emulator and console using DOM and JavaScript

\n

DomTerm is a combined terminal emulator and REPL console using web\ntechnlogies - i.e. JavaScript and DOM: Users can type commands which\ngets sent to an application, which evaluates the command, and displays\nthe results, typically in some kind of type-script format.

\n

See the home page for more information,\nincluding list of features with many screenshots.

\n

\"DomTerm

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.331Z" }, "dopamine": { "readmeCleaned": "

\"Dopamine\"

\n

Dopamine

\n

Dopamine is an elegant audio player which tries to make organizing and listening to music as simple and pretty as possible. This version is written using Electron, Angular and Typescript. The original Dopamine (for Windows), which is written in WPF and C#, remains available here.

\n

Dopamine icons created by Sharlee.

\n

\"Release\"\n\"GitHub\n\"Issues\"\n\"Donate\"

\n

\"Buy

\n

\"Dopaminescreenshot\"

\n

Build prerequisites

\n\n

Build prerequisites on Ubuntu:

\n\n

Follow the build instructions below to start or build Dopamine for your platform.

\n

Build prerequisites on Manjaro:

\n\n

Follow the build instructions below to start or build Dopamine for your platform.

\n

Build prerequisites on Windows:

\n\n

Follow the build instructions below to start or build Dopamine for your platform.

\n

Build prerequisites on MacOS:

\n\n

Build instructions

\n

Due to the native dependency better-sqlite3, this project cannot be built for all platforms on GNU/Linux. The GNU/Linux packages must be built on GNU/Linux, the Windows package must be built on Windows and the MacOS package must be built on MacOS.

\n
$ git clone https://github.com/digimezzo/dopamine.git\n$ cd dopamine\n$ npm install                # Install dependencies\n$ npm start                  # Start Dopamine\n$ npm run electron:windows   # Build for Windows\n$ npm run electron:linux     # Build for Linux\n$ npm run electron:mac       # Build for Mac
\n

Pacman installation notes

\n

The pacman package contains a dependency to package libappindicator-sharp, which is no longer distributed with Arch Linux. I cannot remove this dependency for now, because it is an issue in electron-builder (the packaging tool which is used in this project). It is, however, possible to install Dopamine on Arch Linux or Manjaro using this command:

\n

$ sudo pacman -U Dopamine-3.0.0-preview.3.pacman --assume-installed libappindicator-sharp

\n
", "readmeOriginal": "

\"Dopamine\"

\n

Dopamine

\n

Dopamine is an elegant audio player which tries to make organizing and listening to music as simple and pretty as possible. This version is written using Electron, Angular and Typescript. The original Dopamine (for Windows), which is written in WPF and C#, remains available here.

\n

Dopamine icons created by Sharlee.

\n

\"Release\"\n\"GitHub\n\"Issues\"\n\"Donate\"

\n

\"Buy

\n

\"Dopaminescreenshot\"

\n

Build prerequisites

\n\n

Build prerequisites on Ubuntu:

\n\n

Follow the build instructions below to start or build Dopamine for your platform.

\n

Build prerequisites on Manjaro:

\n\n

Follow the build instructions below to start or build Dopamine for your platform.

\n

Build prerequisites on Windows:

\n\n

Follow the build instructions below to start or build Dopamine for your platform.

\n

Build prerequisites on MacOS:

\n\n

Build instructions

\n

Due to the native dependency better-sqlite3, this project cannot be built for all platforms on GNU/Linux. The GNU/Linux packages must be built on GNU/Linux, the Windows package must be built on Windows and the MacOS package must be built on MacOS.

\n
$ git clone https://github.com/digimezzo/dopamine.git\n$ cd dopamine\n$ npm install                # Install dependencies\n$ npm start                  # Start Dopamine\n$ npm run electron:windows   # Build for Windows\n$ npm run electron:linux     # Build for Linux\n$ npm run electron:mac       # Build for Mac
\n

Pacman installation notes

\n

The pacman package contains a dependency to package libappindicator-sharp, which is no longer distributed with Arch Linux. I cannot remove this dependency for now, because it is an issue in electron-builder (the packaging tool which is used in this project). It is, however, possible to install Dopamine on Arch Linux or Manjaro using this command:

\n

$ sudo pacman -U Dopamine-3.0.0-preview.3.pacman --assume-installed libappindicator-sharp

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.399Z" }, "droppoint": { "readmeCleaned": "

DropPoint - Make Drag 'n' Drop easier \"Twitter\"

\n

\"DropPoint\"

\n

\n \n \n \n

\n

\n \n \n \n \n \n

\n

Make drag-and-drop easier using DropPoint!

\n

DropPoint helps you drag content without having to open side-by-side windows

\n

Works on Windows, Linux and MacOS.

\n

Follows Fluent design style to match Windows 11 aesthetics :)

\n

Table of Contents

\n\n

Demo

\n

Across maximized windows in the same desktop

\n

\"Drag

\n

Across windows in different virtual desktops/workspaces

\n

\"Drag

\n

📦 How to Install (Normal Installation)

\n

Go to the Releases Page to download the latest releases

\n\n

✌️ Usage

\n\n

⚙️ Developer Installation

\n

You must have NPM and Git installed in your PC

\n
    \n
  1. Clone repo and change into directory\n
    git clone https://github.com/GameGodS3/DropPoint.git\ncd DropPoint
    \n
  2. \n
  3. Install dependencies and run\n
     npm install\n npm start
    \n
  4. \n
\n

Contribution

\n

Contributions are welcome 😃.

\n

Please do refer to our Contributing Guidelines and Pull Request Templates before making a Pull Request.

\n

❤️ Credits

\n\n

Related

\n\n
", "readmeOriginal": "

DropPoint - Make Drag 'n' Drop easier \"Twitter\"

\n

\"DropPoint\"

\n

\n \n \n \n

\n

\n \n \n \n \n \n

\n

Make drag-and-drop easier using DropPoint!

\n

DropPoint helps you drag content without having to open side-by-side windows

\n

Works on Windows, Linux and MacOS.

\n

Follows Fluent design style to match Windows 11 aesthetics :)

\n

Table of Contents

\n\n

Demo

\n

Across maximized windows in the same desktop

\n

\"Drag

\n

Across windows in different virtual desktops/workspaces

\n

\"Drag

\n

📦 How to Install (Normal Installation)

\n

Go to the Releases Page to download the latest releases

\n\n

✌️ Usage

\n\n

⚙️ Developer Installation

\n

You must have NPM and Git installed in your PC

\n
    \n
  1. Clone repo and change into directory\n
    git clone https://github.com/GameGodS3/DropPoint.git\ncd DropPoint
    \n
  2. \n
  3. Install dependencies and run\n
     npm install\n npm start
    \n
  4. \n
\n

Contribution

\n

Contributions are welcome 😃.

\n

Please do refer to our Contributing Guidelines and Pull Request Templates before making a Pull Request.

\n

❤️ Credits

\n\n

Related

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:45.436Z" }, "drpcm": { "readmeCleaned": "

\"Logo\"

\n

⬇️ Scroll down for install instructions! ⬇️

\n

\"Discord\"\n\"Github\"\n\"BMC\"\n\"NPM\"\n\"GitHub

\n

\"Promo\"\n\"Large\"\n\"Small\"

\n

\"Discord\"

\n

Features

\n\n
\n

Install

\n
Version 2.1.1
\n

Windows \"windows\"

\n\n
\n

macOS \"mac\"

\n\n
\n

AppImage (all Linux distros) \"tux\" \"ai\"

\n\n

AUR package (discordrpcmaker) \"arch\"

\n\n

.deb (Ubuntu/Debian based Linux distros) \"ubun\" \"deb\"

\n\n

.rpm (RedHat based Linux distros) \"fedora\"

\n\n

Tarball (all Linux distros) \"tux\"

\n\n
\n

From source \"electron\"

\n
Don't do this unless you intend to modify the code!
\n\n
\n

Supporters

\n

You can \"BuyMeACoffee\" to get your name here!

\n

We're trying to raise $150 to pay for online services for the next update and code signing!

\n\n
\n

Still need help, or just want to chat?

\n

Open a new issue here or join the Discord!

\n

Made by ThatOneCalculator and KraXen72. Not officially affiliated with Discord. Thank you discord.js, electron-builder, fosscord-ui, and all our lovely stargazers, helpers, translators, and users for making this project possible. Full credits are in the Instructions & Info menu in the program.

\n
", "readmeOriginal": "

\"Logo\"

\n

⬇️ Scroll down for install instructions! ⬇️

\n

\"Discord\"\n\"Github\"\n\"BMC\"\n\"NPM\"\n\"GitHub

\n

\"Promo\"\n\"Large\"\n\"Small\"

\n

\"Discord\"

\n

Features

\n\n
\n

Install

\n
Version 2.1.1
\n

Windows \"windows\"

\n\n
\n

macOS \"mac\"

\n\n
\n

AppImage (all Linux distros) \"tux\" \"ai\"

\n\n

AUR package (discordrpcmaker) \"arch\"

\n\n

.deb (Ubuntu/Debian based Linux distros) \"ubun\" \"deb\"

\n\n

.rpm (RedHat based Linux distros) \"fedora\"

\n\n

Tarball (all Linux distros) \"tux\"

\n\n
\n

From source \"electron\"

\n
Don't do this unless you intend to modify the code!
\n\n
\n

Supporters

\n

You can \"BuyMeACoffee\" to get your name here!

\n

We're trying to raise $150 to pay for online services for the next update and code signing!

\n\n
\n

Still need help, or just want to chat?

\n

Open a new issue here or join the Discord!

\n

Made by ThatOneCalculator and KraXen72. Not officially affiliated with Discord. Thank you discord.js, electron-builder, fosscord-ui, and all our lovely stargazers, helpers, translators, and users for making this project possible. Full credits are in the Instructions & Info menu in the program.

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.469Z" }, "eagluet": { "readmeCleaned": "

Eagluet

\n

\"Eagluet

\n

Pomodora Clock which force you to Rest in Rest Mode.

\n

\"Eagluet\"

\n

Features

\n\n

Download

\n
    \n
  1. Windows Download
  2. \n
\n

Running Locally

\n
    \n
  1. Clone the Repo
  2. \n
  3. Install the dependencies.npm install
  4. \n
  5. Start the project Locally. npm run start
  6. \n
\n

Contributing

\n\n
", "readmeOriginal": "

Eagluet

\n

\"Eagluet

\n

Pomodora Clock which force you to Rest in Rest Mode.

\n

\"Eagluet\"

\n

Features

\n\n

Download

\n
    \n
  1. Windows Download
  2. \n
\n

Running Locally

\n
    \n
  1. Clone the Repo
  2. \n
  3. Install the dependencies.npm install
  4. \n
  5. Start the project Locally. npm run start
  6. \n
\n

Contributing

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:45.595Z" }, "e-search": { "readmeCleaned": "

eSearch

\n

\"LOGO\"

\n

\"license\"\n\"\"\n\"release-date\"\n\"release\"\n\"\"\n\"aur\"\n\"aur1\"

\n

简介

\n

eSearch 是Information-portal\":electron:\"重写版(顺便加了亿些功能)

\n

主要是想在 Linux 上(win 和 mac 上也能用)实现锤子大爆炸小米传送门这样的屏幕搜索功能,当然也是一款方便的截屏软件

\n

截屏+OCR+搜索+贴图+以图搜图

\n

\"截屏界面\"

\n
\n

字体是FiraCode,字体可在设置里设置

\n
\n

\"识别文字主界面\"

\n

下载安装

\n

到网站eSearch下载

\n

或在右侧 releases 打开标签,选择符合你系统的包并下载安装

\n

国内快速下载链接:Releases · xushengfeng/eSearch · fastgit

\n

ArchLinux 可在 AUR 查找安装 e-searche-search-git

\n

OCR 服务

\n

软件不附带本地 OCR 核心服务,但在启动时会提示下载。

\n

本地 OCR 由PaddleOCR提供支持,在eSearch-OCR中发布编译好的服务。

\n

默认启用本地 OCR 服务,若想使用在线 OCR,目前提供了百度在线 OCR,需要依据教程获取API KEY 以及 Secret KEY,截止 2022 年 1 月,百度 OCR 还是可以免费领取服务。将获取到的API KEYSecret KEY 以及相应的你选择的文字识别服务URL 填入软件设置,去掉离线 OCR 的勾选即可使用在线 OCR。

\n

源码运行&编译

\n

编译需要pythonC++环境,Windows 下编译需要 pythonvisual studio(安装 C++)

\n
git clone https://github.com/xushengfeng/eSearch.git\ncd eSearch\nnpm install\n# 运行\nnpx electron .\n# 编译\nnpm run rebuild\nnpm run dist\n# 将在build目录生产安装包和解压的目录
\n

修改已安装的程序

\n

先按下Ctrl+Shift+I,或在菜单栏-识图-开发者工具 打开开发者工具进行调试。修改调试知道满意后,在对源码进行修改。

\n
# 安装asar\nnpm install -g asar\nasar e [设置里提示的运行位置]\n# 解压后在app目录修改\n# 打包\nasar p app app.asar\n# 重启软件即可
\n

启动

\n

在你的启动器打开 eSearch,他将出现在托盘。Gnome 用户需要安装appindicator插件

\n

默认快捷键为 Alt+C(你也可以在设置里设置快捷键)

\n

Linux 下的快捷键

\n

大多数 Linux 桌面环境支持自定义快捷键,eSearch支持 cli,这也意味着你可以进行系统级设置快捷键

\n
esearch (若找不到,请尝试e-search)\n\t-a # 自动搜索\n\t-c # 截屏搜索\n\t-s # 选中搜索\n\t-b # 剪贴板搜索\n\t-q # 快速截屏
\n

不建议在终端进行自动或选中搜索,否则eSearch会执行Ctrl+C,从而导致终止终端程序

\n

功能

\n\n
\n \n \n \n\n 1.mp4\n \n \n\n \n
\n\n
\n

截屏,自由调整框选大小(视频约 2.6MB)

\n
\n
\n \n \n \n\n 3.mp4\n \n \n\n \n
\n\n
\n

取色器(视频约 1MB)

\n
\n
\n \n \n \n\n 2.mp4\n \n \n\n \n
\n\n
\n

Ding 在屏幕上,透明度调节、归位以及鼠标操作(视频约 1.8MB)

\n
\n

\"3\"

\n
\n

绘图界面

\n
\n
\n \n \n \n\n 4.mp4\n \n \n\n \n
\n\n
\n

主界面搜索和其他应用编辑(视频约 1.6MB)

\n
\n

\"3\"

\n
\n

主界面查找替换(支持正则)

\n
\n

测试

\n

在 ArchLinux,KDE plasma,Xorg 下测试通过

\n

Windows10 和 Windows11 测试通过

\n

macOS Catalina 测试通过

\n

Wayland 桌面环境暂时不支持

\n

开发原因

\n

我在用 Windows 时一直用这个好用的截屏软件:Snipaste - 截图 + 贴图,但我现在切换到 Linux,Snipaste 不支持,所以我选择了Flameshot,很可惜它没有直观的取色器。

\n

促使我开发 eSearch 的另一个契机是我很享受在手机上使用锤子大爆炸小米传送门这样的即时信息搜索工具,但我没有找到电脑上类似的代替品。

\n

所以我干脆自己开发一个“截屏+OCR+搜索+贴图”的软件。最开始用 python+pyqt 开发出Information-portal,但因为我不熟悉 pyqt,所以我转战\":electron:\",开发出本软件。😄

\n

License

\n

GPL-3.0 © xushengfeng

\n
", "readmeOriginal": "

eSearch

\n

\"LOGO\"

\n

\"license\"\n\"\"\n\"release-date\"\n\"release\"\n\"\"\n\"aur\"\n\"aur1\"

\n

简介

\n

eSearch 是Information-portal\":electron:\"重写版(顺便加了亿些功能)

\n

主要是想在 Linux 上(win 和 mac 上也能用)实现锤子大爆炸小米传送门这样的屏幕搜索功能,当然也是一款方便的截屏软件

\n

截屏+OCR+搜索+贴图+以图搜图

\n

\"截屏界面\"

\n
\n

字体是FiraCode,字体可在设置里设置

\n
\n

\"识别文字主界面\"

\n

下载安装

\n

到网站eSearch下载

\n

或在右侧 releases 打开标签,选择符合你系统的包并下载安装

\n

国内快速下载链接:Releases · xushengfeng/eSearch · fastgit

\n

ArchLinux 可在 AUR 查找安装 e-searche-search-git

\n

OCR 服务

\n

软件不附带本地 OCR 核心服务,但在启动时会提示下载。

\n

本地 OCR 由PaddleOCR提供支持,在eSearch-OCR中发布编译好的服务。

\n

默认启用本地 OCR 服务,若想使用在线 OCR,目前提供了百度在线 OCR,需要依据教程获取API KEY 以及 Secret KEY,截止 2022 年 1 月,百度 OCR 还是可以免费领取服务。将获取到的API KEYSecret KEY 以及相应的你选择的文字识别服务URL 填入软件设置,去掉离线 OCR 的勾选即可使用在线 OCR。

\n

源码运行&编译

\n

编译需要pythonC++环境,Windows 下编译需要 pythonvisual studio(安装 C++)

\n
git clone https://github.com/xushengfeng/eSearch.git\ncd eSearch\nnpm install\n# 运行\nnpx electron .\n# 编译\nnpm run rebuild\nnpm run dist\n# 将在build目录生产安装包和解压的目录
\n

修改已安装的程序

\n

先按下Ctrl+Shift+I,或在菜单栏-识图-开发者工具 打开开发者工具进行调试。修改调试知道满意后,在对源码进行修改。

\n
# 安装asar\nnpm install -g asar\nasar e [设置里提示的运行位置]\n# 解压后在app目录修改\n# 打包\nasar p app app.asar\n# 重启软件即可
\n

启动

\n

在你的启动器打开 eSearch,他将出现在托盘。Gnome 用户需要安装appindicator插件

\n

默认快捷键为 Alt+C(你也可以在设置里设置快捷键)

\n

Linux 下的快捷键

\n

大多数 Linux 桌面环境支持自定义快捷键,eSearch支持 cli,这也意味着你可以进行系统级设置快捷键

\n
esearch (若找不到,请尝试e-search)\n\t-a # 自动搜索\n\t-c # 截屏搜索\n\t-s # 选中搜索\n\t-b # 剪贴板搜索\n\t-q # 快速截屏
\n

不建议在终端进行自动或选中搜索,否则eSearch会执行Ctrl+C,从而导致终止终端程序

\n

功能

\n\n
\n \n \n \n\n 1.mp4\n \n \n\n \n
\n\n
\n

截屏,自由调整框选大小(视频约 2.6MB)

\n
\n
\n \n \n \n\n 3.mp4\n \n \n\n \n
\n\n
\n

取色器(视频约 1MB)

\n
\n
\n \n \n \n\n 2.mp4\n \n \n\n \n
\n\n
\n

Ding 在屏幕上,透明度调节、归位以及鼠标操作(视频约 1.8MB)

\n
\n

\"3\"

\n
\n

绘图界面

\n
\n
\n \n \n \n\n 4.mp4\n \n \n\n \n
\n\n
\n

主界面搜索和其他应用编辑(视频约 1.6MB)

\n
\n

\"3\"

\n
\n

主界面查找替换(支持正则)

\n
\n

测试

\n

在 ArchLinux,KDE plasma,Xorg 下测试通过

\n

Windows10 和 Windows11 测试通过

\n

macOS Catalina 测试通过

\n

Wayland 桌面环境暂时不支持

\n

开发原因

\n

我在用 Windows 时一直用这个好用的截屏软件:Snipaste - 截图 + 贴图,但我现在切换到 Linux,Snipaste 不支持,所以我选择了Flameshot,很可惜它没有直观的取色器。

\n

促使我开发 eSearch 的另一个契机是我很享受在手机上使用锤子大爆炸小米传送门这样的即时信息搜索工具,但我没有找到电脑上类似的代替品。

\n

所以我干脆自己开发一个“截屏+OCR+搜索+贴图”的软件。最开始用 python+pyqt 开发出Information-portal,但因为我不熟悉 pyqt,所以我转战\":electron:\",开发出本软件。😄

\n

License

\n

GPL-3.0 © xushengfeng

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.659Z" }, "ebtcalc": { "readmeCleaned": "

EBTCalc for Windows and Linux

\n

EBTCalc (Desktop) is a Reverse Polish Notation (RPN) calculator with custom buttons, programmed in Javascript, using a convenient editor. EBTCalc runs on Windows 10, OSX, and Linux. EBTCalc is open source.

\n

EBTCalc is built on the Electron framework.

\n

Copyright

\n

EBTCalc (Desktop)

\n

© Copyright 2022, Eric Bergman-Terrell

\n

Screenshots

\n

\"EBTCalc

\n

\"EBTCalc

\n

Links

\n\n

Android Version

\n

A version of EBTCalc for Android is also available.

\n

Quick Start

\n

To run EBTCalc:

\n
git clone https://github.com/EricTerrell/EBTCalc.git\ncd EBTCalc\nnpm install\nnpm start
\n

Debugging

\n

To enable the Chrome debugging tools, set the DEBUG_MENUS environment variable to true (see displayCustomMenus in WindowUtils)

\n

License

\n

GPL3

\n

Feedback

\n

Please submit your feedback to EBTCalc@EricBT.com.

\n
", "readmeOriginal": "

EBTCalc for Windows and Linux

\n

EBTCalc (Desktop) is a Reverse Polish Notation (RPN) calculator with custom buttons, programmed in Javascript, using a convenient editor. EBTCalc runs on Windows 10, OSX, and Linux. EBTCalc is open source.

\n

EBTCalc is built on the Electron framework.

\n

Copyright

\n

EBTCalc (Desktop)

\n

© Copyright 2022, Eric Bergman-Terrell

\n

Screenshots

\n

\"EBTCalc

\n

\"EBTCalc

\n

Links

\n\n

Android Version

\n

A version of EBTCalc for Android is also available.

\n

Quick Start

\n

To run EBTCalc:

\n
git clone https://github.com/EricTerrell/EBTCalc.git\ncd EBTCalc\nnpm install\nnpm start
\n

Debugging

\n

To enable the Chrome debugging tools, set the DEBUG_MENUS environment variable to true (see displayCustomMenus in WindowUtils)

\n

License

\n

GPL3

\n

Feedback

\n

Please submit your feedback to EBTCalc@EricBT.com.

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.729Z" }, "echo": { "readmeCleaned": "

\n

Echo

\n

Echo desktop app.

\n

\n

\n

Download

\n

Currently, only Windows is supported.

\n

v1.0

\n\n

License

\n

This product is licensed under the GPL-3.0 license.

\n
\n

\n Made with ❤️ by @afractal\n

\n
", "readmeOriginal": "

\n

Echo

\n

Echo desktop app.

\n

\n

\n

Download

\n

Currently, only Windows is supported.

\n

v1.0

\n\n

License

\n

This product is licensed under the GPL-3.0 license.

\n
\n

\n Made with ❤️ by @afractal\n

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.790Z" }, "dusk-player": { "readmeCleaned": "

\n
\n Dusk Player \n

\n

\n\n\n\n\n

\n

A minimalistic music player, designed for simplicity. Built on electron, uses Howler for handling music playback, Svelte for the UI, and music-metadata to retrieve ID3 tags.

\n

This can also serve as a starting point to implement your own front-end/UI for a music Player.

\n

Download here: Releases

\n

How to use

\n

The Player

\n

Download the build for your OS. Start the application and then click on the Folders tab on the top left corner, this will bring up a window where you can select the folder where you want to play your audio files from.\nOnce you select a folder with songs, just click play.

\n

Building from the repo

\n

Clone the repository, make it your working directory, and then on your terminal run npm install.\nOnce all the dependencies have finished downloading, run npm run app-dev to test it, and npm run build to build it for your platform.

\n

Features

\n\n

Shortcuts

\n

Next track: 🠊 |\nPrevious track: 🠈 |\nVolume up: 🠉 |\nVolume down: 🠋 |\nPlay/pause: Space

\n

Screenshots

\n

\n\n

\n

\n\n

\n

Upcoming Features

\n

Some new features and under the hood stuff that will be or has already been implemented. They'll be included in the next update.

\n\n

Contributing

\n

Please read CONTRIBUTING.md before raising a PR or creating an issue.

\n

Changelog

\n

You can find the changelog for all releases here

\n
\n\"Dusk\n
\n

If you liked this, check out My Blog where I post tutorials and write about projects like this

\n

https://home.aveek.io/blog/

\n
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
\n
", "readmeOriginal": "

\n
\n Dusk Player \n

\n

\n\n\n\n\n

\n

A minimalistic music player, designed for simplicity. Built on electron, uses Howler for handling music playback, Svelte for the UI, and music-metadata to retrieve ID3 tags.

\n

This can also serve as a starting point to implement your own front-end/UI for a music Player.

\n

Download here: Releases

\n

How to use

\n

The Player

\n

Download the build for your OS. Start the application and then click on the Folders tab on the top left corner, this will bring up a window where you can select the folder where you want to play your audio files from.\nOnce you select a folder with songs, just click play.

\n

Building from the repo

\n

Clone the repository, make it your working directory, and then on your terminal run npm install.\nOnce all the dependencies have finished downloading, run npm run app-dev to test it, and npm run build to build it for your platform.

\n

Features

\n\n

Shortcuts

\n

Next track: 🠊 |\nPrevious track: 🠈 |\nVolume up: 🠉 |\nVolume down: 🠋 |\nPlay/pause: Space

\n

Screenshots

\n

\n\n

\n

\n\n

\n

Upcoming Features

\n

Some new features and under the hood stuff that will be or has already been implemented. They'll be included in the next update.

\n\n

Contributing

\n

Please read CONTRIBUTING.md before raising a PR or creating an issue.

\n

Changelog

\n

You can find the changelog for all releases here

\n
\n\"Dusk\n
\n

If you liked this, check out My Blog where I post tutorials and write about projects like this

\n

https://home.aveek.io/blog/

\n
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
\n
", "readmeFetchedAt": "2022-05-10T00:07:45.819Z" }, "elcalc": { "readmeCleaned": "

\n\t\"elcalc\n

\n

elcalc

\n

Cross-platform calculator, built with Electron \":electron:\"

\n

\n\t\"Build\n\t\"Code\n \"Downloads\" \n\t\"Mentioned\n

\n
\n

Highlights

\n\n

Install

\n

Check out the latest release.

\n
\n

Dev

\n

\"Screenshot\"

\n

Prerequisites

\n\n

Usage

\n
# Install dependencies\n\n $ npm install\n\n# Run the app\n\n $ npm start\n \n# Run lint & tests\n\n $ npm test\n \n# Build \n\n $ npm run dist
\n\n\t\n\n

File Tree

\n
├── build                 \t\t\t    # Contains configuration files for Webpack etc.\n│   └── start.js            \t\t    # Configuration for `npm start` command\n│   └── webpack.app.config.js       # Webpack app config (entry point, output)\n│   └── webpack.base.config.js      # Webpack base config (plugins, loaders)\n├── crate                \t\t\t      # Contains Rust code, which will be compiled to WASM.\n│   ├── src                \t\t\t\n│   │\t└── lib.rs            \t\t    # Main Rust file\n│   └── Cargo.lock     \t\t\t\t      # Cargo lock file\n│   └── Cargo.toml      \t\t\t      # Cargo configuration file\n├── resources                 \t\t  # Contains icons for different operating systems\n│   ├── icons                \t\t\t\n│   │\t└── 512x512.png               # Icon for other operating systems (like Linux)\n│   └── icon.icns       \t\t\t      # Icon for macOS\n│   └── icon.ico      \t\t\t\t      # Icon for Windows\n├── src                \t\t\t\t      # Main application folder\n│   ├── stylesheets                \t\t\t\n│   │\t└── main.css             \t    # Styles\n│   └── app.html          \t\t\t    # Main HTML file\n│   └── app.js       \t\t\t\t        # Main JS file\n│   └── background.js     \t\t\t    # Electron configuration\n├── test                \t\t\t      # Tests folder\n│   └── spec.js       \t\t\t\t      # Spectron tests\n├── .npmrc                \t\t\t    # npm config\n├── .stylelintrc          \t\t\t    # stylelint config\n├── .travis.yml           \t\t\t    # Travis CI config\n├── babel.config.js       \t\t\t    # Babel config
\n

Keyboard Support

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyDescription
1, 2, 3, 4, 5, 6, 7, 8, 9, 0Type numbers
+, -, * or x, /, ., ^, eType symbols
Enter or ReturnEvaluate equation
Backspace or DeleteClear calculator output
\n

License

\n

MIT

\n
", "readmeOriginal": "

\n\t\"elcalc\n

\n

elcalc

\n

Cross-platform calculator, built with Electron \":electron:\"

\n

\n\t\"Build\n\t\"Code\n \"Downloads\" \n\t\"Mentioned\n

\n
\n

Highlights

\n\n

Install

\n

Check out the latest release.

\n
\n

Dev

\n

\"Screenshot\"

\n

Prerequisites

\n\n

Usage

\n
# Install dependencies\n\n $ npm install\n\n# Run the app\n\n $ npm start\n \n# Run lint & tests\n\n $ npm test\n \n# Build \n\n $ npm run dist
\n\n\t\n\n

File Tree

\n
├── build                 \t\t\t    # Contains configuration files for Webpack etc.\n│   └── start.js            \t\t    # Configuration for `npm start` command\n│   └── webpack.app.config.js       # Webpack app config (entry point, output)\n│   └── webpack.base.config.js      # Webpack base config (plugins, loaders)\n├── crate                \t\t\t      # Contains Rust code, which will be compiled to WASM.\n│   ├── src                \t\t\t\n│   │\t└── lib.rs            \t\t    # Main Rust file\n│   └── Cargo.lock     \t\t\t\t      # Cargo lock file\n│   └── Cargo.toml      \t\t\t      # Cargo configuration file\n├── resources                 \t\t  # Contains icons for different operating systems\n│   ├── icons                \t\t\t\n│   │\t└── 512x512.png               # Icon for other operating systems (like Linux)\n│   └── icon.icns       \t\t\t      # Icon for macOS\n│   └── icon.ico      \t\t\t\t      # Icon for Windows\n├── src                \t\t\t\t      # Main application folder\n│   ├── stylesheets                \t\t\t\n│   │\t└── main.css             \t    # Styles\n│   └── app.html          \t\t\t    # Main HTML file\n│   └── app.js       \t\t\t\t        # Main JS file\n│   └── background.js     \t\t\t    # Electron configuration\n├── test                \t\t\t      # Tests folder\n│   └── spec.js       \t\t\t\t      # Spectron tests\n├── .npmrc                \t\t\t    # npm config\n├── .stylelintrc          \t\t\t    # stylelint config\n├── .travis.yml           \t\t\t    # Travis CI config\n├── babel.config.js       \t\t\t    # Babel config
\n

Keyboard Support

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyDescription
1, 2, 3, 4, 5, 6, 7, 8, 9, 0Type numbers
+, -, * or x, /, ., ^, eType symbols
Enter or ReturnEvaluate equation
Backspace or DeleteClear calculator output
\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.933Z" }, "electorrent": { "readmeCleaned": "

\n \n

\n

\n \n \n \n \n \n \n \n \n \n

\n

Electorrent

\n

No more! Stop copy/pasting magnet links and uploading torrent files through a tedious webinterface. Electorrent is your new desktop remote torrenting application. Remote control your NAS, VPS, seedbox - you name it.

\n

Support

\n

Electorrent can connect to the following bittorrent clients:

\n\n

Downloads

\n

Please note: I do not own code signing certificates which may results in anti-virus warnings!

\n\n

Features

\n\n

Screenshots

\n

\n \n \n \n

\n

\n \n \n \n

\n

\n \n \n \n

\n

FAQ

\n\n

What an opportunity! Now open an issue telling me which bittorrent client you would like to see next :)

\n\n

The application is build around Electron, AngularJS and SemanticUI

\n\n

When using rTorrent you have to configure your http server correctly. Follow this guide to make sure you have it set up correctly. Alternative you may be able to use /plugins/httprpc/action.php as the path if your have the HTTPRPC plugin installed.

\n
", "readmeOriginal": "

\n \n

\n

\n \n \n \n \n \n \n \n \n \n

\n

Electorrent

\n

No more! Stop copy/pasting magnet links and uploading torrent files through a tedious webinterface. Electorrent is your new desktop remote torrenting application. Remote control your NAS, VPS, seedbox - you name it.

\n

Support

\n

Electorrent can connect to the following bittorrent clients:

\n\n

Downloads

\n

Please note: I do not own code signing certificates which may results in anti-virus warnings!

\n\n

Features

\n\n

Screenshots

\n

\n \n \n \n

\n

\n \n \n \n

\n

\n \n \n \n

\n

FAQ

\n\n

What an opportunity! Now open an issue telling me which bittorrent client you would like to see next :)

\n\n

The application is build around Electron, AngularJS and SemanticUI

\n\n

When using rTorrent you have to configure your http server correctly. Follow this guide to make sure you have it set up correctly. Alternative you may be able to use /plugins/httprpc/action.php as the path if your have the HTTPRPC plugin installed.

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.961Z" }, "electrocrud": { "readmeCleaned": "

\n

ElectroCRUD 2 \"GitHub \"Open

\n

ElectroCRUD?

\n

ElectroCRUD is Open Source Database CRUD (Create, Read, Update, Delete) Software. No Code Needed — Just in a few clicks, you can create a Database Admin/Dashboard/Whatever. Its Open Source — It's Free.

\n

Why?

\n

After a failed search for a basic admin panel that does not involve writing code or installs web-based solutions, I came up with ElectroCRUD idea.

\n

ElectroCRUD v1

\n

The ElectroCRUD v1 was born in 2016. An Electron application that made it possible to create a friendly dashboard with data tables, search, widgets, filter & relations with few clicks without any experience in programming.

\n

ElectroCRUD v2

\n

After a few years of the project being inactive, I decided to bring it to life again. The codebase was built from scratch using Electron+Angular8. The new version contains most of the features of the first version, and new features are added on a weekly basis.

\n

From version 2.7.0 SQLite has been added, currently its very limited support but we working on full support for next version.

\n

\"forthebadge\"

\n

\"ElectroCRUD\"

\n

Functionality

\n\n

Databases

\n\n

Download Binaries \"GitHub

\n\n

Install via Package Managers

\n

Homebrew/brew (Mac OS/X)

\n

brew install --cask electrocrud

\n

Download Sources

\n

ElectroCRUD on GitHub

\n

Videos

\n

\"How\n\"Review

\n

Screenshots

\n

\n \n \n\n

\n

Build from source

\n

npm install

\n

With codesign

\n

npm run electron:mac-win-linux

\n

Without codesign

\n

CSC_IDENTITY_AUTO_DISCOVERY=false npm run electron:mac-win-linux

\n

\"GitHub\n\"GitHub\n\"Analytics\"

\n
", "readmeOriginal": "

\n

ElectroCRUD 2 \"GitHub \"Open

\n

ElectroCRUD?

\n

ElectroCRUD is Open Source Database CRUD (Create, Read, Update, Delete) Software. No Code Needed — Just in a few clicks, you can create a Database Admin/Dashboard/Whatever. Its Open Source — It's Free.

\n

Why?

\n

After a failed search for a basic admin panel that does not involve writing code or installs web-based solutions, I came up with ElectroCRUD idea.

\n

ElectroCRUD v1

\n

The ElectroCRUD v1 was born in 2016. An Electron application that made it possible to create a friendly dashboard with data tables, search, widgets, filter & relations with few clicks without any experience in programming.

\n

ElectroCRUD v2

\n

After a few years of the project being inactive, I decided to bring it to life again. The codebase was built from scratch using Electron+Angular8. The new version contains most of the features of the first version, and new features are added on a weekly basis.

\n

From version 2.7.0 SQLite has been added, currently its very limited support but we working on full support for next version.

\n

\"forthebadge\"

\n

\"ElectroCRUD\"

\n

Functionality

\n\n

Databases

\n\n

Download Binaries \"GitHub

\n\n

Install via Package Managers

\n

Homebrew/brew (Mac OS/X)

\n

brew install --cask electrocrud

\n

Download Sources

\n

ElectroCRUD on GitHub

\n

Videos

\n

\"How\n\"Review

\n

Screenshots

\n

\n \n \n\n

\n

Build from source

\n

npm install

\n

With codesign

\n

npm run electron:mac-win-linux

\n

Without codesign

\n

CSC_IDENTITY_AUTO_DISCOVERY=false npm run electron:mac-win-linux

\n

\"GitHub\n\"GitHub\n\"Analytics\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:45.999Z" }, "electron-app-store": { "readmeCleaned": "

Electron App Store

\n

\"Repo

\n

\"CodeFactor\"

\n

\"Electron\n   \n\"Electron

\n

A Cross Platform App Store for Open-Source apps!

\n

Features

\n\n

Screenshots

\n

\"Explore\n\"App\n\"Download\n\"Download

\n

Roadmap

\n\n

Installation

\n

You can download for your Platform by visiting our website or for Linux you can get the Snap from Snapcraft:
\n\"Get

\n

Contributing

\n

Drop your pull requests. We are all for It. Lets have fun in building this project.

\n

Community

\n

You can join us on Telegram or Discord!

\n

Telegram

\n

Just join us on Telegram by Clicking this Link

\n

Discord

\n

Let's chat on Discord by Clicking this link!

\n
", "readmeOriginal": "

Electron App Store

\n

\"Repo

\n

\"CodeFactor\"

\n

\"Electron\n   \n\"Electron

\n

A Cross Platform App Store for Open-Source apps!

\n

Features

\n\n

Screenshots

\n

\"Explore\n\"App\n\"Download\n\"Download

\n

Roadmap

\n\n

Installation

\n

You can download for your Platform by visiting our website or for Linux you can get the Snap from Snapcraft:
\n\"Get

\n

Contributing

\n

Drop your pull requests. We are all for It. Lets have fun in building this project.

\n

Community

\n

You can join us on Telegram or Discord!

\n

Telegram

\n

Just join us on Telegram by Clicking this Link

\n

Discord

\n

Let's chat on Discord by Clicking this link!

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.074Z" }, "electron-clippy": { "readmeCleaned": "

Clippy

\n

Clipboard manager that makes sense

\n

A clipboard manger that support text and images for now.\nThis cliboard is inspired by Ditto for Windows.\nif you on windows use ditto instead of this. Hence it is far better than this at current stage.\ni needed a same solution for linux and mac so i built it for myself.

\n

Since it is not configurable right now so let me give you a tour.\nIt allows you to copy and paste images/text while keeping your cliboard histroy as well. voila!\nYou can search through your texts using pannel.\nYou can hide/show tha app using alt+space for mac/windows/linux.

\n

The main thing i wanted was to be able to have a hot key for recent copied commands.

\n

So,\nYou have ctrl+1 to ... ctrl + 5 for your most recent 5 copied text or images at your disposal.\nif your are on mac use cmnd + 1 to achieve the desire effect.\nthere is a catch here Ditto allows you to paste using the hot keys as well. Since it is writter on electron i was unable to get the funcationality. i have found the way around but it's not that good.\nSo, to be able to use that functionality you need to have the jdk (java) installed on your computer since it uses the node module that uses the jar file to trigerr keys.\nThe above solution is kind a slow and unresponsive espacially for mac.\nSo, for mac i have used the apple script within this app. so you have to allow this application accesbility feature in order to use this functionality. other wise you can use the defualt settingss which is to press the desired hot key and then press ctrl/cmnd+ v manually to paste the text on that number.

\n\n
", "readmeOriginal": "

Clippy

\n

Clipboard manager that makes sense

\n

A clipboard manger that support text and images for now.\nThis cliboard is inspired by Ditto for Windows.\nif you on windows use ditto instead of this. Hence it is far better than this at current stage.\ni needed a same solution for linux and mac so i built it for myself.

\n

Since it is not configurable right now so let me give you a tour.\nIt allows you to copy and paste images/text while keeping your cliboard histroy as well. voila!\nYou can search through your texts using pannel.\nYou can hide/show tha app using alt+space for mac/windows/linux.

\n

The main thing i wanted was to be able to have a hot key for recent copied commands.

\n

So,\nYou have ctrl+1 to ... ctrl + 5 for your most recent 5 copied text or images at your disposal.\nif your are on mac use cmnd + 1 to achieve the desire effect.\nthere is a catch here Ditto allows you to paste using the hot keys as well. Since it is writter on electron i was unable to get the funcationality. i have found the way around but it's not that good.\nSo, to be able to use that functionality you need to have the jdk (java) installed on your computer since it uses the node module that uses the jar file to trigerr keys.\nThe above solution is kind a slow and unresponsive espacially for mac.\nSo, for mac i have used the apple script within this app. so you have to allow this application accesbility feature in order to use this functionality. other wise you can use the defualt settingss which is to press the desired hot key and then press ctrl/cmnd+ v manually to paste the text on that number.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:46.168Z" }, "elements": { "readmeCleaned": "

\n \"Icon\"\n

Elements

\n

\n A desktop App which displays the periodic table
\n It's using the <chemical-element-visualisation> Web Component\n

\n \"build-with-love\"\n \"uses-js\"\n
\n \"download-count\"\n

\n

\n



\n

📝 Source Code

\n

In order to use this source code you need to have Node.js, Git and Bower installed globally. After that you have to follow the steps below.

\n
# Clone this repository\ngit clone https://github.com/florianfe/Elements\n# Go into the repository\ncd Elements\n# Install npm dependencies\nnpm install\n# Install bower dependencies\nbower install\n# Run the app in test mode\nnpm start\n# build application for release\nnpm run-script dist
\n

🖼 Preview

\n

\"screenshot_1\"

\n

\"screenshot_2\"

\n

\"screenshot_3\"

\n

💾 Download

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
PlatformVersionDownload\n
Mac1.2.1Download
Windows1.2.1Download
Linux (.deb)1.2.1Download
Linux (.AppImage)1.2.1Download
\n

📖 License

\n

\"forthebadge\"

\n
", "readmeOriginal": "

\n \"Icon\"\n

Elements

\n

\n A desktop App which displays the periodic table
\n It's using the <chemical-element-visualisation> Web Component\n

\n \"build-with-love\"\n \"uses-js\"\n
\n \"download-count\"\n

\n

\n



\n

📝 Source Code

\n

In order to use this source code you need to have Node.js, Git and Bower installed globally. After that you have to follow the steps below.

\n
# Clone this repository\ngit clone https://github.com/florianfe/Elements\n# Go into the repository\ncd Elements\n# Install npm dependencies\nnpm install\n# Install bower dependencies\nbower install\n# Run the app in test mode\nnpm start\n# build application for release\nnpm run-script dist
\n

🖼 Preview

\n

\"screenshot_1\"

\n

\"screenshot_2\"

\n

\"screenshot_3\"

\n

💾 Download

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
PlatformVersionDownload\n
Mac1.2.1Download
Windows1.2.1Download
Linux (.deb)1.2.1Download
Linux (.AppImage)1.2.1Download
\n

📖 License

\n

\"forthebadge\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.224Z" }, "encrypt0r": { "readmeCleaned": "

🔐 encrypt0r

\n

Encrypt and Decrypt files on a Mac, Windows or Linux using a Passphrase

\n

\"encrypt0r

\n

💡 Motivation

\n

Sometimes you just need a quick way to encrypt files securely using a passphrase. I started this project to explore the world of Electron and learn about cryptography.

\n

encrypt0r provides a simple drag and drop interface to encrypt/decrypt your files using a password.

\n

🔏 Signing Issues

\n

When running the app on Mac/Windows, you might get an untrusted developer warning. This is because the app is not signed by the developer (aka me). Signing an app requires a Signing Certificate that costs hundreds of dollars per year. Apart from the warning, the app works as advertised.

\n

Here's a quick video of the warning on Windows: https://www.youtube.com/watch?v=VIVz7MtNEO0

\n

📹 Demo

\n

https://www.youtube.com/watch?v=WBf2bRMRFME

\n
", "readmeOriginal": "

🔐 encrypt0r

\n

Encrypt and Decrypt files on a Mac, Windows or Linux using a Passphrase

\n

\"encrypt0r

\n

💡 Motivation

\n

Sometimes you just need a quick way to encrypt files securely using a passphrase. I started this project to explore the world of Electron and learn about cryptography.

\n

encrypt0r provides a simple drag and drop interface to encrypt/decrypt your files using a password.

\n

🔏 Signing Issues

\n

When running the app on Mac/Windows, you might get an untrusted developer warning. This is because the app is not signed by the developer (aka me). Signing an app requires a Signing Certificate that costs hundreds of dollars per year. Apart from the warning, the app works as advertised.

\n

Here's a quick video of the warning on Windows: https://www.youtube.com/watch?v=VIVz7MtNEO0

\n

📹 Demo

\n

https://www.youtube.com/watch?v=WBf2bRMRFME

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.313Z" }, "elephicon": { "readmeCleaned": "

Elephicon

\n

Elephicon, a GUI wrapper for png2icons, generates Apple ICNS and Microsoft ICO files from PNG files.

\n

\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub

\n

📗 Usage

\n\n

\"animation\"

\n

🎁 Download

\n

🖥️ macOS (x64, arm64)

\n

You can download the latest version of Elephicon from the releases page here:
\nhttps://github.com/sprout2000/elephicon/releases

\n

💻 Windows10, 11

\n

Download the latest version for Windows 10 and 11 at Microsoft Store.

\n

\"Badge\"

\n

🌈 Embedded Sizes

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DimensionICOICNS
16x16
16x16@2x
24x24
32x32
32x32@2x
48x48
64x64
72x72
96x96
128x128
128x128@2x
256x256
256x256@2x
512x512
512x512@2x
\n

📚 Supported Languages (App Menu)

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LanguageCode
English 🇺🇸 🇬🇧 🌎en
日本語 🇯🇵ja
Deutsch 🇩🇪de
Русский 🇷🇺ru
Português 🇵🇹 🇧🇷pt
Italiano 🇮🇹it
简体中文 🇨🇳zh_CN
Türkçe 🇹🇷tr
Malayalam 🇮🇳ml
\n

🔐 Security

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
APIValue
Content-Security-Policydefault-src self
nodeIntegrationfalse
enableRemoteModulefalse
contextIsolationtrue
safeDialogstrue
sandboxtrue
\n

🛠️ Development

\n

You can build this repository as follows:

\n
# clone this repo.\ngit clone https://github.com/sprout2000/elephicon.git\n\n# install dependencies\ncd elephicon\nnpm install\n\n# on development\nnpm run dev\n\n# on production\nnpm run build && npm run package
\n

🩹 Contributing

\n

You can easily contribute to this repository by providing translation files.

\n
    \n
  1. Create {your_LANG}.json in src/locales.
  2. \n
\n
  src\n  ├── @types\n  ├── createMenu.ts\n  ├── locales\n+ │   ├── de.json\n  │   ├── en.json\n  │   └── ja.json\n  ├── main.ts\n  ├── preload.ts\n  ├── setLocales.ts\n  └── web
\n
    \n
  1. Import the locale into src/setLocales.ts as follows:
  2. \n
\n
{\n i18next.init({\n lng: locale,\n fallbackLng: 'en',\n resources: {\n en: { translation: en },\n ja: { translation: ja },\n+ de: { translation: de },\n },\n });\n };\">
  import en from './locales/en.json';\n  import ja from './locales/ja.json';\n+ import de from './locales/de.json';\n\n  export const setLocales = (locale: string): void => {\n    i18next.init({\n      lng: locale,\n      fallbackLng: 'en',\n      resources: {\n        en: { translation: en },\n        ja: { translation: ja },\n+       de: { translation: de },\n      },\n    });\n  };
\n
    \n
  1. Send the pull request to this repo.
  2. \n
\n

🎉 Contributors

\n

Special Thanks to:

\n\n

🚦 Privacy Policy

\n\n

©️ License

\n

png2icons

\n

MIT © idesis GmbH, Rellinghauser Straße 334F, D-45136 Essen

\n

Elephicon

\n

Copyright(c) 2020 sprout2000 and other contributors
\nMIT Licensed

\n
", "readmeOriginal": "

Elephicon

\n

Elephicon, a GUI wrapper for png2icons, generates Apple ICNS and Microsoft ICO files from PNG files.

\n

\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub

\n

📗 Usage

\n\n

\"animation\"

\n

🎁 Download

\n

🖥️ macOS (x64, arm64)

\n

You can download the latest version of Elephicon from the releases page here:
\nhttps://github.com/sprout2000/elephicon/releases

\n

💻 Windows10, 11

\n

Download the latest version for Windows 10 and 11 at Microsoft Store.

\n

\"Badge\"

\n

🌈 Embedded Sizes

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DimensionICOICNS
16x16
16x16@2x
24x24
32x32
32x32@2x
48x48
64x64
72x72
96x96
128x128
128x128@2x
256x256
256x256@2x
512x512
512x512@2x
\n

📚 Supported Languages (App Menu)

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LanguageCode
English 🇺🇸 🇬🇧 🌎en
日本語 🇯🇵ja
Deutsch 🇩🇪de
Русский 🇷🇺ru
Português 🇵🇹 🇧🇷pt
Italiano 🇮🇹it
简体中文 🇨🇳zh_CN
Türkçe 🇹🇷tr
Malayalam 🇮🇳ml
\n

🔐 Security

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
APIValue
Content-Security-Policydefault-src self
nodeIntegrationfalse
enableRemoteModulefalse
contextIsolationtrue
safeDialogstrue
sandboxtrue
\n

🛠️ Development

\n

You can build this repository as follows:

\n
# clone this repo.\ngit clone https://github.com/sprout2000/elephicon.git\n\n# install dependencies\ncd elephicon\nnpm install\n\n# on development\nnpm run dev\n\n# on production\nnpm run build && npm run package
\n

🩹 Contributing

\n

You can easily contribute to this repository by providing translation files.

\n
    \n
  1. Create {your_LANG}.json in src/locales.
  2. \n
\n
  src\n  ├── @types\n  ├── createMenu.ts\n  ├── locales\n+ │   ├── de.json\n  │   ├── en.json\n  │   └── ja.json\n  ├── main.ts\n  ├── preload.ts\n  ├── setLocales.ts\n  └── web
\n
    \n
  1. Import the locale into src/setLocales.ts as follows:
  2. \n
\n
  import en from './locales/en.json';\n  import ja from './locales/ja.json';\n+ import de from './locales/de.json';\n\n  export const setLocales = (locale: string): void => {\n    i18next.init({\n      lng: locale,\n      fallbackLng: 'en',\n      resources: {\n        en: { translation: en },\n        ja: { translation: ja },\n+       de: { translation: de },\n      },\n    });\n  };
\n
    \n
  1. Send the pull request to this repo.
  2. \n
\n

🎉 Contributors

\n

Special Thanks to:

\n\n

🚦 Privacy Policy

\n\n

©️ License

\n

png2icons

\n

MIT © idesis GmbH, Rellinghauser Straße 334F, D-45136 Essen

\n

Elephicon

\n

Copyright(c) 2020 sprout2000 and other contributors
\nMIT Licensed

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.350Z" }, "erin": { "readmeCleaned": "
\n \n

Erin

\n

A cross-platform app for changing wallpaper

\n
\n

Goal

\n

Erin has been created as an attempt to solve just one seemingly easy and, as I figured out later on, fairly common problem: getting used to your desktop wallpaper way too quickly while downloading them manually being too big of a hassle. If one's a software engineer, it's their moral duty to spend 100+ hours trying to automate a task that would take 10 minutes to complete manually in the worst of conditions, so that's exactly how Erin was born.

\n

Screenshots

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\"Dark\"Light
\"Dark\"Light
\"Dark\"Light
\"Dark\"Light
\n

Installation

\n

Download an installation file corresponding to your OS from GitHub releases

\n

\"Get

\n

Stack

\n

Main technologies used in the project:

\n\n

Local setup

\n

Setup

\n

Copy the repository using the following command:

\n
git clone https://github.com/losbiw/erin\n
\n

Include your own .env file (or use the existing one) in the electron directory which has to contain the following variables:

\n\n

Steps to run locally

\n\n

Commands to build the app on each platform

\n\n
", "readmeOriginal": "
\n \n

Erin

\n

A cross-platform app for changing wallpaper

\n
\n

Goal

\n

Erin has been created as an attempt to solve just one seemingly easy and, as I figured out later on, fairly common problem: getting used to your desktop wallpaper way too quickly while downloading them manually being too big of a hassle. If one's a software engineer, it's their moral duty to spend 100+ hours trying to automate a task that would take 10 minutes to complete manually in the worst of conditions, so that's exactly how Erin was born.

\n

Screenshots

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\"Dark\"Light
\"Dark\"Light
\"Dark\"Light
\"Dark\"Light
\n

Installation

\n

Download an installation file corresponding to your OS from GitHub releases

\n

\"Get

\n

Stack

\n

Main technologies used in the project:

\n\n

Local setup

\n

Setup

\n

Copy the repository using the following command:

\n
git clone https://github.com/losbiw/erin\n
\n

Include your own .env file (or use the existing one) in the electron directory which has to contain the following variables:

\n\n

Steps to run locally

\n\n

Commands to build the app on each platform

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:46.429Z" }, "email-securely-app": { "readmeCleaned": "

\n \n

\n

ElectronMail is an Electron-based unofficial desktop client for ProtonMail. The app aims to provide enhanced desktop user experience enabling features that are not supported by the official in-browser web clients.\nIt is written in TypeScript and uses Angular.

\n

\"GitHub\n\"License\"\n\"GitHub

\n

\"view-toggling\"

\n

Download

\n

The download page with Linux/OSX/Windows installation packages is here.

\n

The way of verifying that the installation packages attached to the releases have been assembled from the source code is being provided.

\n

Some package types are available for installing from the repositories (AUR/Pacman and Snap repositories are being maintained by @joshirio and MPR/Debian repo by @hiddeninthesand):

\n

\"Get

\n

\"Get

\n

\"Get

\n

\"Get

\n

\"Get

\n

Features

\n\n

FAQ

\n

You got it here.

\n

How to build your own installation package from source code

\n

Building on Continuous Integration server

\n

The reproducible builds idea is respected by the project. So the simplest way to prepare your own installation package from the source code is to clone the project. The respective GitHub Actions CI config file comes with the project.

\n

Building locally

\n\n

To recap, considering that all the described build requirements are met, the short command to build let's say Arch Linux package will be pnpm install --frozen-lockfile && pnpm run app:dist && pnpm run electron-builder:dist:linux:pacman.

\n

Data/config files created and used by the app

\n

If you want to backup the app data these are only files you need to take care of (files localed in the settings folder):

\n\n

Removing the app

\n

It's recommended to perform the following actions before uninstalling the app:

\n\n
", "readmeOriginal": "

\n \n

\n

ElectronMail is an Electron-based unofficial desktop client for ProtonMail. The app aims to provide enhanced desktop user experience enabling features that are not supported by the official in-browser web clients.\nIt is written in TypeScript and uses Angular.

\n

\"GitHub\n\"License\"\n\"GitHub

\n

\"view-toggling\"

\n

Download

\n

The download page with Linux/OSX/Windows installation packages is here.

\n

The way of verifying that the installation packages attached to the releases have been assembled from the source code is being provided.

\n

Some package types are available for installing from the repositories (AUR/Pacman and Snap repositories are being maintained by @joshirio and MPR/Debian repo by @hiddeninthesand):

\n

\"Get

\n

\"Get

\n

\"Get

\n

\"Get

\n

\"Get

\n

Features

\n\n

FAQ

\n

You got it here.

\n

How to build your own installation package from source code

\n

Building on Continuous Integration server

\n

The reproducible builds idea is respected by the project. So the simplest way to prepare your own installation package from the source code is to clone the project. The respective GitHub Actions CI config file comes with the project.

\n

Building locally

\n\n

To recap, considering that all the described build requirements are met, the short command to build let's say Arch Linux package will be pnpm install --frozen-lockfile && pnpm run app:dist && pnpm run electron-builder:dist:linux:pacman.

\n

Data/config files created and used by the app

\n

If you want to backup the app data these are only files you need to take care of (files localed in the settings folder):

\n\n

Removing the app

\n

It's recommended to perform the following actions before uninstalling the app:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:46.647Z" }, "excel-parser-processor": { "readmeCleaned": "

\"Excel Excel Parser Processor

\n

A Desktop app for processing all rows of Excel files

\n

Simply generates an array of items from the rows of an Excel file and does the repetitive tedious operations step by step\nrecursively till every item of the array is processed. For example downloads all the URL's in an Excel file.

\n

\"Dependency\n\"Build\n\"Github\n\"codecov\"\n\"Backers\n\"Sponsors\n\"Open\n\"CodeFactor\"\n\"CodeQL\"

\n

How to use

\n

You can download the latest release for your operating system\nor build it yourself (see Development).

\n

Just select or drag & drop an Excel file, then select the output folder for the downloaded images or files. All the items\nin the Excel file will be downloaded into the selected folder, and you will be notified about the state of ongoing progress.

\n

Sample Excel file structure

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ABC
1https://www.buraktargac.com/sample_image.gifoptional-sample-file-nameoptional-sub-folder-name
2https://www.buraktargac.com/sample_image.pngoptional-sample-file-nameoptional-sub-folder-name
3https://www.buraktargac.com/sample_image.jpg
....
....
nAsset URL ( can be any type of file jpg, jpeg, png, txt, doc, etc)
\n
\n

Currently there is no limit for n, I tested with 4000 items and unless your IP is banned from the publisher there\nis no problem to download as much as you can.

\n

Demo

\n

\"Excel

\n

Development

\n

You need to have Node.js installed on your computer in order to develop & build this app.

\n
$ git clone https://github.com/btargac/excel-parser-processor.git\n$ cd excel-parser-processor\n$ npm install\n$ npm run build\n$ npm start
\n

If you are changing the view or renderer related things, you can use Webpack's watch feature with

\n
$ npm run start-renderer-dev
\n

After running this command, you'll see a webpack process watching your files after a new renderer.bundle.js is generated\nyou can refresh the Excel parser processor app window with cmd + R or ctrl + R depending on your system.

\n

To generate binaries on your computer after your development is completed, you can run;

\n
$ npm run dist
\n

This will add binaries under /release folder on your project folder.

\n

/release folder is ignored at the repository. Github Actions will be building the binaries after your branch is merged with master.

\n

Contributors

\n

This project exists thanks to all the people who contribute. [Code of Conduct].\n

\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

MIT © Burak Targaç

\n
", "readmeOriginal": "

\"Excel Excel Parser Processor

\n

A Desktop app for processing all rows of Excel files

\n

Simply generates an array of items from the rows of an Excel file and does the repetitive tedious operations step by step\nrecursively till every item of the array is processed. For example downloads all the URL's in an Excel file.

\n

\"Dependency\n\"Build\n\"Github\n\"codecov\"\n\"Backers\n\"Sponsors\n\"Open\n\"CodeFactor\"\n\"CodeQL\"

\n

How to use

\n

You can download the latest release for your operating system\nor build it yourself (see Development).

\n

Just select or drag & drop an Excel file, then select the output folder for the downloaded images or files. All the items\nin the Excel file will be downloaded into the selected folder, and you will be notified about the state of ongoing progress.

\n

Sample Excel file structure

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ABC
1https://www.buraktargac.com/sample_image.gifoptional-sample-file-nameoptional-sub-folder-name
2https://www.buraktargac.com/sample_image.pngoptional-sample-file-nameoptional-sub-folder-name
3https://www.buraktargac.com/sample_image.jpg
....
....
nAsset URL ( can be any type of file jpg, jpeg, png, txt, doc, etc)
\n
\n

Currently there is no limit for n, I tested with 4000 items and unless your IP is banned from the publisher there\nis no problem to download as much as you can.

\n

Demo

\n

\"Excel

\n

Development

\n

You need to have Node.js installed on your computer in order to develop & build this app.

\n
$ git clone https://github.com/btargac/excel-parser-processor.git\n$ cd excel-parser-processor\n$ npm install\n$ npm run build\n$ npm start
\n

If you are changing the view or renderer related things, you can use Webpack's watch feature with

\n
$ npm run start-renderer-dev
\n

After running this command, you'll see a webpack process watching your files after a new renderer.bundle.js is generated\nyou can refresh the Excel parser processor app window with cmd + R or ctrl + R depending on your system.

\n

To generate binaries on your computer after your development is completed, you can run;

\n
$ npm run dist
\n

This will add binaries under /release folder on your project folder.

\n

/release folder is ignored at the repository. Github Actions will be building the binaries after your branch is merged with master.

\n

Contributors

\n

This project exists thanks to all the people who contribute. [Code of Conduct].\n

\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

MIT © Burak Targaç

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.654Z" }, "enderframework": { "readmeCleaned": "

\"Screenshot\"

\n

\"Downloads\" \"EnderFramework \"EnderFramework \"License\" \"Issues\" \"Bugs\" \"To-Do\" \"Help \"EnderFramework \"Twitter\" \"EnderAdel\"

\n

EnderFramework enables you to build cross-platform applications using JavaScript, HTML, and CSS. It is based on Electron. Why make a new framework out of another framework? Glad you asked! This framework will be more focused on introducing custom elements, custom designs, and custom APIs on top of the originals! And giving the user the ability to build a full-on custom app, with a fully customizable UI using CSS, in a matter of minutes.

\n

You can find out more about this framework in here!

\n

Note: the framework is still in the very early development stages. We are open to suggestions.

\n

Installation

\n

To run EnderFramework, you need to have NodeJS and VS Build Tools 2017 installed on your device. Execute npm install to install all the modules. And then, after the installation process is done, execute npm start.

\n

You can change the start file code (core/start.js) to start any app! Look for the ready event in the file.

\n
app.on(\"ready\", function() {\n    for (var i = 0; i < process.argv.length; i++) {\n        if (process.argv[i].includes(\"--start=\")) {//You can change this to true!\n            done = true;\n            var appID = process.argv[i].replace(/\\s/g, '').substring(8),\n                length = appID.replace(/[^.]/g, \"\").length;\n            /*And replace the code above with any value you want, such as:\n            var appID = \"com.enderadel.test\",\n                length = appID.replace(/[^.]/g, \"\").length;*/\n            [...]\n        } else if (process.argv[i] == \"--store\") {//You can change this to true!\n            [...]\n        } else if (process.argv[i] == \"--installer\") {//You can change this to true!\n            [...]\n        } else if (process.argv[i] == \"--studio\") {//You can change this to true!\n            [...]\n        } else if (process.argv[i] == \"--settings\") {//You can change this to true!\n            [...]\n        }\n    }\n    [...]\n});
\n

Quick start

\n

Coming soon!

\n

Reporting Bugs and requesting Features

\n

You can report bugs and request new features by opening a new issue.

\n

Contributing

\n

If you are interested in reporting/fixing issues and contributing directly to the code base, feel free to do so! Please read CONTRIBUTING.md for more information!

\n

Note: As you can see, I'm not very active on GitHub. The reason is because I'm a student. You can contact me on my email (adel.sbeh.email@gmail.com) regarding any concern!

\n

Screenshots

\n

\"Screenshot\"\n\"Screenshot\"

\n

The framework supports light mode and dark mode!\n\"Screenshot\"\n\"Screenshot\"

\n

License

\n

Apache License, Version 2.0

\n

When using the logos of EnderFramework, or GitHub, be sure to follow the GitHub logo guidelines.

\n

More

\n

Follow @_EnderCommunity on Twitter to keep yourself up-to-date on everything related to the framework. You can also join our Discord server.

\n

EnderFramework is the property of EnderCommunity

\n
", "readmeOriginal": "

\"Screenshot\"

\n

\"Downloads\" \"EnderFramework \"EnderFramework \"License\" \"Issues\" \"Bugs\" \"To-Do\" \"Help \"EnderFramework \"Twitter\" \"EnderAdel\"

\n

EnderFramework enables you to build cross-platform applications using JavaScript, HTML, and CSS. It is based on Electron. Why make a new framework out of another framework? Glad you asked! This framework will be more focused on introducing custom elements, custom designs, and custom APIs on top of the originals! And giving the user the ability to build a full-on custom app, with a fully customizable UI using CSS, in a matter of minutes.

\n

You can find out more about this framework in here!

\n

Note: the framework is still in the very early development stages. We are open to suggestions.

\n

Installation

\n

To run EnderFramework, you need to have NodeJS and VS Build Tools 2017 installed on your device. Execute npm install to install all the modules. And then, after the installation process is done, execute npm start.

\n

You can change the start file code (core/start.js) to start any app! Look for the ready event in the file.

\n
app.on(\"ready\", function() {\n    for (var i = 0; i < process.argv.length; i++) {\n        if (process.argv[i].includes(\"--start=\")) {//You can change this to true!\n            done = true;\n            var appID = process.argv[i].replace(/\\s/g, '').substring(8),\n                length = appID.replace(/[^.]/g, \"\").length;\n            /*And replace the code above with any value you want, such as:\n            var appID = \"com.enderadel.test\",\n                length = appID.replace(/[^.]/g, \"\").length;*/\n            [...]\n        } else if (process.argv[i] == \"--store\") {//You can change this to true!\n            [...]\n        } else if (process.argv[i] == \"--installer\") {//You can change this to true!\n            [...]\n        } else if (process.argv[i] == \"--studio\") {//You can change this to true!\n            [...]\n        } else if (process.argv[i] == \"--settings\") {//You can change this to true!\n            [...]\n        }\n    }\n    [...]\n});
\n

Quick start

\n

Coming soon!

\n

Reporting Bugs and requesting Features

\n

You can report bugs and request new features by opening a new issue.

\n

Contributing

\n

If you are interested in reporting/fixing issues and contributing directly to the code base, feel free to do so! Please read CONTRIBUTING.md for more information!

\n

Note: As you can see, I'm not very active on GitHub. The reason is because I'm a student. You can contact me on my email (adel.sbeh.email@gmail.com) regarding any concern!

\n

Screenshots

\n

\"Screenshot\"\n\"Screenshot\"

\n

The framework supports light mode and dark mode!\n\"Screenshot\"\n\"Screenshot\"

\n

License

\n

Apache License, Version 2.0

\n

When using the logos of EnderFramework, or GitHub, be sure to follow the GitHub logo guidelines.

\n

More

\n

Follow @_EnderCommunity on Twitter to keep yourself up-to-date on everything related to the framework. You can also join our Discord server.

\n

EnderFramework is the property of EnderCommunity

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.782Z" }, "etcd-manager": { "readmeCleaned": "

ETCD Manager

\n

\"etcd-manager\"

\n\n

\"Alt

\n

\"Alt

\n

\"Alt

\n

This is a free, cross-platform ETCD v3 client and GUI. The goal of the project is twofold:

\n\n

Please note that currently ETCD V2 API is not supported! At the moment, we support V3 only.

\n

Features

\n

Available now (v1.2)

\n

Currently, the following features are implemented:

\n\n

Coming up (v1.3)

\n

This release is mainly for contributors. There will be no new features in this one. Instead, we gonna focus solely on making it easier to understand how the code works and how to get started with contributing. In order to achieve this, we'll refactor many parts of the code and we'll also try to provide better documentation for contributors and a project dashboard.

\n

As for refactoring, some of the things we gonna change are:

\n\n

Planned

\n

We plan to add tons of cool features in the future. The most important ones are listed below.:

\n

Features

\n\n

Future platforms

\n\n

A better organized overview of these plans will be available soon. Stay tuned :)

\n

Installation

\n

End users..

\n

The current stable (prod) version is 1.2. It's available for Mac OS X (10.15.5 Catalina+), MS Windows (7, 8, 10+) and some major Linux distros (Ubuntu 10.04+, Arch etc). The following are pre-built binaries and this is the recommended way to install.

\n

If you are using a more or less recent major Linux distro (Ubuntu, Redhat, Suse etc), or Ubuntu LTS or some up-to-date rolling release distro like Arch, everything should work fine. Most older Linux systems should be supported as well. However, very old Linux versions might not work as expected. If you have difficulties installing the app, please report the problem using our issue tracker.

\n

Grab one now:

\n\n

Other packages are available for download as well, please see the releases page.

\n

We are on SnapCraft!

\n

\"Get

\n

Install snap and run the following command:

\n
snap install etcd-manager\n
\n

Contributors..

\n

You may install the dev version by cloning this repository.

\n
git clone https://github.com/i-Cell-Mobilsoft-Open-Source/etcdmanager.git\n
\n

Or you may also install the NPM package (although this is not recommended, since the package might not contain the latest code).

\n

First of all, you must install Yarn. Please see this page for details.

\n
yarn add etcd-manager\ncd node_modules/etcd-manager\n
\n

Please also check out the contribution guide before writing any code.

\n

Running the dev build

\n

Once you have the code, simply execute the following commands:

\n
yarn install\n
\n

The next step is to compile the GRPC Node extension. This requires the usual build tools (gcc, make etc) to be installed. Make sure you have these, then run:

\n
npm rebuild --target=ELECTRON_VERSION --runtime=electron --dist-url=https://atom.io/download/electron\n
\n

... where ELECTRON_VERSION is the exact version number of the Electron framework the app uses. You can determine this by running:

\n
yarn list electron\n
\n

Finally, start the dev server in the following way:

\n
yarn electron:serve\n
\n

This will start a dev build and the app should appear shortly.

\n

Usage and support

\n

First of all, in order to work properly, ETCD Manager must be configured.

\n

You need to provide only two mandatory settings: the host and the port ETCD is running at. You'll find these on the settings screen, under the ETCD tab.\nIf your ETCD host requires authentication, you will also need to provide a password / username pair or certificates / keys, which you can do under the auth tab.\nThere are several additional configuration options, but those are all optional.

\n

Detailed documentation is not available (yet), but you may want to activate quick help, which is available everywhere. Press CTRL / CMD + H to open the help pane. Here you'll find some basic info as well as all the keyboard shortcuts. This should be enough to get you started.

\n

If you still need help, please feel free to contact us. Create a issue (question / support request).

\n

Once the documentation is ready, we'll upload it to the website.

\n

Upgrading

\n

If you've installed the app using the Windows or Mac installer or the Linux AppImage, you'll be notified automatically whenever a new release is available. Simply restart the app, and it'll check for updates.

\n

Otherwise, you have to download and install the new version manually.

\n

As for the dev version, you may update that by the usual means (Yarn or Git). In any case, please read our changelog for an overview of the most recent changes.

\n

Bugs and feature requests

\n

If you find a bug, please report it using our issue tracker.

\n

This is also the place for requesting new features or asking questions. Please label your issue appropriately, use the \"bug\", \"enchantment\" and \"question\" labels, respectively.

\n
", "readmeOriginal": "

ETCD Manager

\n

\"etcd-manager\"

\n\n

\"Alt

\n

\"Alt

\n

\"Alt

\n

This is a free, cross-platform ETCD v3 client and GUI. The goal of the project is twofold:

\n\n

Please note that currently ETCD V2 API is not supported! At the moment, we support V3 only.

\n

Features

\n

Available now (v1.2)

\n

Currently, the following features are implemented:

\n\n

Coming up (v1.3)

\n

This release is mainly for contributors. There will be no new features in this one. Instead, we gonna focus solely on making it easier to understand how the code works and how to get started with contributing. In order to achieve this, we'll refactor many parts of the code and we'll also try to provide better documentation for contributors and a project dashboard.

\n

As for refactoring, some of the things we gonna change are:

\n\n

Planned

\n

We plan to add tons of cool features in the future. The most important ones are listed below.:

\n

Features

\n\n

Future platforms

\n\n

A better organized overview of these plans will be available soon. Stay tuned :)

\n

Installation

\n

End users..

\n

The current stable (prod) version is 1.2. It's available for Mac OS X (10.15.5 Catalina+), MS Windows (7, 8, 10+) and some major Linux distros (Ubuntu 10.04+, Arch etc). The following are pre-built binaries and this is the recommended way to install.

\n

If you are using a more or less recent major Linux distro (Ubuntu, Redhat, Suse etc), or Ubuntu LTS or some up-to-date rolling release distro like Arch, everything should work fine. Most older Linux systems should be supported as well. However, very old Linux versions might not work as expected. If you have difficulties installing the app, please report the problem using our issue tracker.

\n

Grab one now:

\n\n

Other packages are available for download as well, please see the releases page.

\n

We are on SnapCraft!

\n

\"Get

\n

Install snap and run the following command:

\n
snap install etcd-manager\n
\n

Contributors..

\n

You may install the dev version by cloning this repository.

\n
git clone https://github.com/i-Cell-Mobilsoft-Open-Source/etcdmanager.git\n
\n

Or you may also install the NPM package (although this is not recommended, since the package might not contain the latest code).

\n

First of all, you must install Yarn. Please see this page for details.

\n
yarn add etcd-manager\ncd node_modules/etcd-manager\n
\n

Please also check out the contribution guide before writing any code.

\n

Running the dev build

\n

Once you have the code, simply execute the following commands:

\n
yarn install\n
\n

The next step is to compile the GRPC Node extension. This requires the usual build tools (gcc, make etc) to be installed. Make sure you have these, then run:

\n
npm rebuild --target=ELECTRON_VERSION --runtime=electron --dist-url=https://atom.io/download/electron\n
\n

... where ELECTRON_VERSION is the exact version number of the Electron framework the app uses. You can determine this by running:

\n
yarn list electron\n
\n

Finally, start the dev server in the following way:

\n
yarn electron:serve\n
\n

This will start a dev build and the app should appear shortly.

\n

Usage and support

\n

First of all, in order to work properly, ETCD Manager must be configured.

\n

You need to provide only two mandatory settings: the host and the port ETCD is running at. You'll find these on the settings screen, under the ETCD tab.\nIf your ETCD host requires authentication, you will also need to provide a password / username pair or certificates / keys, which you can do under the auth tab.\nThere are several additional configuration options, but those are all optional.

\n

Detailed documentation is not available (yet), but you may want to activate quick help, which is available everywhere. Press CTRL / CMD + H to open the help pane. Here you'll find some basic info as well as all the keyboard shortcuts. This should be enough to get you started.

\n

If you still need help, please feel free to contact us. Create a issue (question / support request).

\n

Once the documentation is ready, we'll upload it to the website.

\n

Upgrading

\n

If you've installed the app using the Windows or Mac installer or the Linux AppImage, you'll be notified automatically whenever a new release is available. Simply restart the app, and it'll check for updates.

\n

Otherwise, you have to download and install the new version manually.

\n

As for the dev version, you may update that by the usual means (Yarn or Git). In any case, please read our changelog for an overview of the most recent changes.

\n

Bugs and feature requests

\n

If you find a bug, please report it using our issue tracker.

\n

This is also the place for requesting new features or asking questions. Please label your issue appropriately, use the \"bug\", \"enchantment\" and \"question\" labels, respectively.

\n
", "readmeFetchedAt": "2022-05-10T00:07:46.886Z" }, "exifcleaner": { "readmeCleaned": "

ExifCleaner

\n

\"Version\" \"Total

\n
\n

Desktop app to clean metadata from images, videos, PDFs, and other files.

\n
\n

\"ExifCleaner

\n

!!!!! NOTE - UPGRADE TO 3.6.0+ ASAP !!!!!

\n

If you are running a version of ExifCleaner before 3.6.0, upgrade immediately! A security vulnerability was found in exiftool, the command-line application that powers ExifCleaner under the hood, and this was updated in ExifCleaner 3.5.0. There was also an XSS and Electron remote shell vulnerability due to unsanitized HTML output that was fixed in ExifCleaner 3.6.0.

\n

Benefits

\n\n

Drawbacks

\n\n

Download and Install

\n

Linux, macOS 10.10+, and Windows 7+ are supported (64-bit only).

\n\n

For Linux, The AppImage needs to be made executable after download.

\n

Arch Linux users can install the app from the AUR using an AUR helper (such as yay or paru):

\n
paru -S exifcleaner-bin
\n

Links

\n\n

Supported File Types

\n

Below is a full list of supported file types that ExifCleaner will remove metadata for. It's based on which file types ExifTool supports write operations for.

\n\n

File writer limitations

\n

ExifCleaner has the same writer limitations as the underlying exiftool it depends on. Taken from the official website:

\n\n

Translations

\n

New translations and corrections to existing translations are welcome! See the Adding a Translation section if there is a language you would like to add. Here is the current translations status:

\n\n

Verifying checksum of downloads from the Github releases page

\n

Download the latest.yml (Windows), latest-mac.yml (Mac), or latest-linux.yml (Linux) file from the release page that corresponds to your operating system. Then run the following command to generate a sha checksum. ExifCleaner 3.5.0 is used here as an example.

\n

On Mac, Linux, and on Windows using the Linux Subsystem for Windows:

\n
sha512sum ExifCleaner-Setup-3.5.0.exe | cut -f1 -d\\ | xxd -r -p | base64
\n

The output should match the sha512 value in the latest.yml file for the version you downloaded. As of now there is no checksum generated for the Linux RPM version (appears to be an electron-build issue, see Github issue here).

\n

Development

\n

Built with Electron. Uses node-exiftool as a wrapper for Exiftool binaries. To see the current list of NPM dependencies, run:

\n
yarn list --production
\n

Run the app in dev mode

\n

Clone the repository and cd into the directory.

\n
git clone https://github.com/szTheory/exifcleaner.git\ncd exifcleaner
\n

Next, install the NPM package dependencies.

\n
yarn install
\n

Pull down the latest ExifTool binaries (in Windows, run this within the Linux Subsystem for Windows):

\n
yarn run update-exiftool
\n

Finally, launch the application. This supports Hot Module Reload (HMR) so you will automatically see your changes every time you save a file.

\n
yarn run dev
\n

Contributing

\n

This app is mostly feature complete. I want to keep it simple and not add a bunch of bloat to it. And I want to avoid release churn. That said, there are a couple small features that might be worth adding. And there are a few minor bugs or points of cleanup that would be worth polishing. If you'd like to help check out the Issue Tracker which contains an exhaustive list of known issues. Just pick one and submit a Pull Request or leave a comment and I can provide guidance or help if you need it. Make sure to test the app out to see if it still works though. There isn't much going on in this app so it should be easy enough to do. I might add some automated tests later on to help with this. For now it's just been me working on the app so manual testing has worked out fine.

\n

TypeScript code is formatted using Prettier.

\n

Adding a Translation

\n

Adding a translation is easy. All you have to do is go to the translation list, click on \"Edit this file\", and add an entry for the new language underneath the other ones. So for example if you wanted to add a Spanish translation, where it says:

\n
\"empty.title\": {\n  \"en\": \"No files selected\",\n  \"fr\": \"Aucun fichier sélectionné\"\n},
\n

You just add a line for \"es\" (list of language codes here) underneath the other ones:

\n
\"empty.title\": {\n  \"en\": \"No files selected\",\n  \"fr\": \"Aucun fichier sélectionné\",\n  \"es\": \"Spanish translation here\"\n},
\n

and repeat that pattern for each of the entries. That's probably the easiest way to contribute. If you want to be able to see all of your translations working in a live app before submitting, you can also do this:

\n
    \n
  1. Fork the project on Github
  2. \n
  3. Follow the directions here to get ExifCleaner running in development mode on your computer
  4. \n
  5. Then update the strings.json file as mentioned above, and quit the program and relaunch it to see your changes. When you're finished, commit your changes from the command line with for example git commit -am \"Finished adding translations\". Then run git push origin master, and go to the project URL your forked it to (for example https://github.com/myusernamehere/exifcleaner) and click the button to open a new Pull Request.
  6. \n
\n

If you want to run the app with a specific locale without changing your system preferences, use one of the following commands with the correct language code. If you don't see your language listed below, just follow the pattern and plug in your own language code from this list.

\n
yarn run dev --lang=en #English\nyarn run dev --lang=fr #French\nyarn run dev --lang=pl #Polish\nyarn run dev --lang=ja #Japanese\nyarn run dev --lang=es #Spanish\nyarn run dev --lang=de #German
\n

Let me know if you run into any issues, I can guide you through the process if you get stuck.

\n

Linux AppImage Notes

\n

To mount the AppImage and inspect it's contents:

\n
./ExifCleaner-x.y.z.AppImage --appimage-mount
\n

Where x.y.z is the release version number

\n

Smoke test checklist for new releases

\n

On all platforms:

\n\n

Perform the following manual tests before a release:

\n\n

Publishing a new release

\n

This section is really for my own reference when publishing a new release.

\n

Bump the version with release (choose a \"pre\" release for point releases for testing):

\n
yarn run release
\n

Check the Github release page and confirm a new draft release was created. Then run the publish command:

\n
yarn run publish
\n

Once you're happy with the release and want to finalize it, remove the draft flag on the Github releases page.

\n

Contributors

\n

Thanks to all the people who submitted bug reports and fixes. I've tried to include everyone so if I've missed you it was by accident, just let me know and I'll add you.

\n\n
", "readmeOriginal": "

ExifCleaner

\n

\"Version\" \"Total

\n
\n

Desktop app to clean metadata from images, videos, PDFs, and other files.

\n
\n

\"ExifCleaner

\n

!!!!! NOTE - UPGRADE TO 3.6.0+ ASAP !!!!!

\n

If you are running a version of ExifCleaner before 3.6.0, upgrade immediately! A security vulnerability was found in exiftool, the command-line application that powers ExifCleaner under the hood, and this was updated in ExifCleaner 3.5.0. There was also an XSS and Electron remote shell vulnerability due to unsanitized HTML output that was fixed in ExifCleaner 3.6.0.

\n

Benefits

\n\n

Drawbacks

\n\n

Download and Install

\n

Linux, macOS 10.10+, and Windows 7+ are supported (64-bit only).

\n\n

For Linux, The AppImage needs to be made executable after download.

\n

Arch Linux users can install the app from the AUR using an AUR helper (such as yay or paru):

\n
paru -S exifcleaner-bin
\n

Links

\n\n

Supported File Types

\n

Below is a full list of supported file types that ExifCleaner will remove metadata for. It's based on which file types ExifTool supports write operations for.

\n\n

File writer limitations

\n

ExifCleaner has the same writer limitations as the underlying exiftool it depends on. Taken from the official website:

\n\n

Translations

\n

New translations and corrections to existing translations are welcome! See the Adding a Translation section if there is a language you would like to add. Here is the current translations status:

\n\n

Verifying checksum of downloads from the Github releases page

\n

Download the latest.yml (Windows), latest-mac.yml (Mac), or latest-linux.yml (Linux) file from the release page that corresponds to your operating system. Then run the following command to generate a sha checksum. ExifCleaner 3.5.0 is used here as an example.

\n

On Mac, Linux, and on Windows using the Linux Subsystem for Windows:

\n
sha512sum ExifCleaner-Setup-3.5.0.exe | cut -f1 -d\\ | xxd -r -p | base64
\n

The output should match the sha512 value in the latest.yml file for the version you downloaded. As of now there is no checksum generated for the Linux RPM version (appears to be an electron-build issue, see Github issue here).

\n

Development

\n

Built with Electron. Uses node-exiftool as a wrapper for Exiftool binaries. To see the current list of NPM dependencies, run:

\n
yarn list --production
\n

Run the app in dev mode

\n

Clone the repository and cd into the directory.

\n
git clone https://github.com/szTheory/exifcleaner.git\ncd exifcleaner
\n

Next, install the NPM package dependencies.

\n
yarn install
\n

Pull down the latest ExifTool binaries (in Windows, run this within the Linux Subsystem for Windows):

\n
yarn run update-exiftool
\n

Finally, launch the application. This supports Hot Module Reload (HMR) so you will automatically see your changes every time you save a file.

\n
yarn run dev
\n

Contributing

\n

This app is mostly feature complete. I want to keep it simple and not add a bunch of bloat to it. And I want to avoid release churn. That said, there are a couple small features that might be worth adding. And there are a few minor bugs or points of cleanup that would be worth polishing. If you'd like to help check out the Issue Tracker which contains an exhaustive list of known issues. Just pick one and submit a Pull Request or leave a comment and I can provide guidance or help if you need it. Make sure to test the app out to see if it still works though. There isn't much going on in this app so it should be easy enough to do. I might add some automated tests later on to help with this. For now it's just been me working on the app so manual testing has worked out fine.

\n

TypeScript code is formatted using Prettier.

\n

Adding a Translation

\n

Adding a translation is easy. All you have to do is go to the translation list, click on \"Edit this file\", and add an entry for the new language underneath the other ones. So for example if you wanted to add a Spanish translation, where it says:

\n
\"empty.title\": {\n  \"en\": \"No files selected\",\n  \"fr\": \"Aucun fichier sélectionné\"\n},
\n

You just add a line for \"es\" (list of language codes here) underneath the other ones:

\n
\"empty.title\": {\n  \"en\": \"No files selected\",\n  \"fr\": \"Aucun fichier sélectionné\",\n  \"es\": \"Spanish translation here\"\n},
\n

and repeat that pattern for each of the entries. That's probably the easiest way to contribute. If you want to be able to see all of your translations working in a live app before submitting, you can also do this:

\n
    \n
  1. Fork the project on Github
  2. \n
  3. Follow the directions here to get ExifCleaner running in development mode on your computer
  4. \n
  5. Then update the strings.json file as mentioned above, and quit the program and relaunch it to see your changes. When you're finished, commit your changes from the command line with for example git commit -am \"Finished adding translations\". Then run git push origin master, and go to the project URL your forked it to (for example https://github.com/myusernamehere/exifcleaner) and click the button to open a new Pull Request.
  6. \n
\n

If you want to run the app with a specific locale without changing your system preferences, use one of the following commands with the correct language code. If you don't see your language listed below, just follow the pattern and plug in your own language code from this list.

\n
yarn run dev --lang=en #English\nyarn run dev --lang=fr #French\nyarn run dev --lang=pl #Polish\nyarn run dev --lang=ja #Japanese\nyarn run dev --lang=es #Spanish\nyarn run dev --lang=de #German
\n

Let me know if you run into any issues, I can guide you through the process if you get stuck.

\n

Linux AppImage Notes

\n

To mount the AppImage and inspect it's contents:

\n
./ExifCleaner-x.y.z.AppImage --appimage-mount
\n

Where x.y.z is the release version number

\n

Smoke test checklist for new releases

\n

On all platforms:

\n\n

Perform the following manual tests before a release:

\n\n

Publishing a new release

\n

This section is really for my own reference when publishing a new release.

\n

Bump the version with release (choose a \"pre\" release for point releases for testing):

\n
yarn run release
\n

Check the Github release page and confirm a new draft release was created. Then run the publish command:

\n
yarn run publish
\n

Once you're happy with the release and want to finalize it, remove the draft flag on the Github releases page.

\n

Contributors

\n

Thanks to all the people who submitted bug reports and fixes. I've tried to include everyone so if I've missed you it was by accident, just let me know and I'll add you.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:46.979Z" }, "etcher": { "readmeCleaned": "

Etcher

\n
\n

Flash OS images to SD cards & USB drives, safely and easily.

\n
\n

Etcher is a powerful OS image flasher built with web technologies to ensure\nflashing an SDCard or USB drive is a pleasant and safe experience. It protects\nyou from accidentally writing to your hard-drives, ensures every byte of data\nwas written correctly, and much more. It can also directly flash Raspberry Pi devices that support USB device boot mode.

\n

\"Current\n\"License\"\n\"Balena.io

\n
\n

Download | Support | Documentation | Contributing | Roadmap

\n

Supported Operating Systems

\n\n

Note: Etcher will run on any platform officially supported by\nElectron. Read more in their\ndocumentation.

\n

Installers

\n

Refer to the downloads page for the latest pre-made\ninstallers for all supported operating systems.

\n

Packages

\n
\n

\"Hosted
\nPackage repository hosting is graciously provided by Cloudsmith.\nCloudsmith is the only fully hosted, cloud-native, universal package management solution, that\nenables your organization to create, store and share packages in any format, to any place, with total\nconfidence.

\n
\n

Debian and Ubuntu based Package Repository (GNU/Linux x86/x64)

\n
\n

Detailed or alternative steps in the instructions by Cloudsmith

\n
\n
    \n
  1. \n

    Add Etcher Debian repository:

    \n
    curl -1sLf \\\n   'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' \\\n   | sudo -E bash
    \n
  2. \n
  3. \n

    Update and install:

    \n
    sudo apt-get update\nsudo apt-get install balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
sudo apt-get remove balena-etcher-electron\nrm /etc/apt/sources.list.d/balena-etcher.list\napt-get clean\nrm -rf /var/lib/apt/lists/*\napt-get update
\n

Redhat (RHEL) and Fedora-based Package Repository (GNU/Linux x86/x64)

\n
\n

Detailed or alternative steps in the instructions by Cloudsmith

\n
\n
DNF
\n
    \n
  1. \n

    Add Etcher rpm repository:

    \n
    curl -1sLf \\\n   'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' \\\n   | sudo -E bash
    \n
  2. \n
  3. \n

    Update and install:

    \n
    sudo dnf install -y balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
rm /etc/yum.repos.d/balena-etcher.repo\nrm /etc/yum.repos.d/balena-etcher-source.repo
\n
Yum
\n
    \n
  1. \n

    Add Etcher rpm repository:

    \n
    curl -1sLf \\\n   'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' \\\n   | sudo -E bash
    \n
  2. \n
  3. \n

    Update and install:

    \n
    sudo yum install -y balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
sudo yum remove -y balena-etcher-electron\nrm /etc/yum.repos.d/balena-etcher.repo\nrm /etc/yum.repos.d/balena-etcher-source.repo
\n

OpenSUSE LEAP & Tumbleweed install (zypper)

\n
    \n
  1. \n

    Add the repo

    \n
    curl -1sLf \\\n'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' \\\n| sudo -E bash
    \n
  2. \n
  3. \n

    Update and install

    \n
    sudo zypper up\nsudo zypper install balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
sudo zypper rm balena-etcher-electron\n# remove the repo\nsudo zypper rr balena-etcher\nsudo zypper rr balena-etcher-source
\n

Solus (GNU/Linux x64)

\n
sudo eopkg it etcher
\n
Uninstall
\n
sudo eopkg rm etcher
\n

Arch/Manjaro Linux (GNU/Linux x64)

\n

Etcher is offered through the Arch User Repository and can be installed on both Manjaro and Arch systems. You can compile it from the source code in this repository using balena-etcher. The following example uses a common AUR helper to install the latest release:

\n
yay -S balena-etcher
\n
Uninstall
\n
yay -R balena-etcher
\n

Brew (macOS)

\n

Note: Etcher has to be updated manually to point to new versions,\nso it might not refer to the latest version immediately after an Etcher\nrelease.

\n
brew install balenaetcher
\n
Uninstall
\n
brew uninstall balenaetcher
\n

Chocolatey (Windows)

\n

This package is maintained by @majkinetor, and\nis kept up to date automatically.

\n
choco install etcher
\n
Uninstall
\n
choco uninstall etcher
\n

Support

\n

If you're having any problem, please raise an issue on GitHub, and\nthe balena.io team will be happy to help.

\n

License

\n

Etcher is free software and may be redistributed under the terms specified in\nthe license.

\n
", "readmeOriginal": "

Etcher

\n
\n

Flash OS images to SD cards & USB drives, safely and easily.

\n
\n

Etcher is a powerful OS image flasher built with web technologies to ensure\nflashing an SDCard or USB drive is a pleasant and safe experience. It protects\nyou from accidentally writing to your hard-drives, ensures every byte of data\nwas written correctly, and much more. It can also directly flash Raspberry Pi devices that support USB device boot mode.

\n

\"Current\n\"License\"\n\"Balena.io

\n
\n

Download | Support | Documentation | Contributing | Roadmap

\n

Supported Operating Systems

\n\n

Note: Etcher will run on any platform officially supported by\nElectron. Read more in their\ndocumentation.

\n

Installers

\n

Refer to the downloads page for the latest pre-made\ninstallers for all supported operating systems.

\n

Packages

\n
\n

\"Hosted
\nPackage repository hosting is graciously provided by Cloudsmith.\nCloudsmith is the only fully hosted, cloud-native, universal package management solution, that\nenables your organization to create, store and share packages in any format, to any place, with total\nconfidence.

\n
\n

Debian and Ubuntu based Package Repository (GNU/Linux x86/x64)

\n
\n

Detailed or alternative steps in the instructions by Cloudsmith

\n
\n
    \n
  1. \n

    Add Etcher Debian repository:

    \n
    curl -1sLf \\\n   'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' \\\n   | sudo -E bash
    \n
  2. \n
  3. \n

    Update and install:

    \n
    sudo apt-get update\nsudo apt-get install balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
sudo apt-get remove balena-etcher-electron\nrm /etc/apt/sources.list.d/balena-etcher.list\napt-get clean\nrm -rf /var/lib/apt/lists/*\napt-get update
\n

Redhat (RHEL) and Fedora-based Package Repository (GNU/Linux x86/x64)

\n
\n

Detailed or alternative steps in the instructions by Cloudsmith

\n
\n
DNF
\n
    \n
  1. \n

    Add Etcher rpm repository:

    \n
    curl -1sLf \\\n   'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' \\\n   | sudo -E bash
    \n
  2. \n
  3. \n

    Update and install:

    \n
    sudo dnf install -y balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
rm /etc/yum.repos.d/balena-etcher.repo\nrm /etc/yum.repos.d/balena-etcher-source.repo
\n
Yum
\n
    \n
  1. \n

    Add Etcher rpm repository:

    \n
    curl -1sLf \\\n   'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' \\\n   | sudo -E bash
    \n
  2. \n
  3. \n

    Update and install:

    \n
    sudo yum install -y balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
sudo yum remove -y balena-etcher-electron\nrm /etc/yum.repos.d/balena-etcher.repo\nrm /etc/yum.repos.d/balena-etcher-source.repo
\n

OpenSUSE LEAP & Tumbleweed install (zypper)

\n
    \n
  1. \n

    Add the repo

    \n
    curl -1sLf \\\n'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' \\\n| sudo -E bash
    \n
  2. \n
  3. \n

    Update and install

    \n
    sudo zypper up\nsudo zypper install balena-etcher-electron
    \n
  4. \n
\n
Uninstall
\n
sudo zypper rm balena-etcher-electron\n# remove the repo\nsudo zypper rr balena-etcher\nsudo zypper rr balena-etcher-source
\n

Solus (GNU/Linux x64)

\n
sudo eopkg it etcher
\n
Uninstall
\n
sudo eopkg rm etcher
\n

Arch/Manjaro Linux (GNU/Linux x64)

\n

Etcher is offered through the Arch User Repository and can be installed on both Manjaro and Arch systems. You can compile it from the source code in this repository using balena-etcher. The following example uses a common AUR helper to install the latest release:

\n
yay -S balena-etcher
\n
Uninstall
\n
yay -R balena-etcher
\n

Brew (macOS)

\n

Note: Etcher has to be updated manually to point to new versions,\nso it might not refer to the latest version immediately after an Etcher\nrelease.

\n
brew install balenaetcher
\n
Uninstall
\n
brew uninstall balenaetcher
\n

Chocolatey (Windows)

\n

This package is maintained by @majkinetor, and\nis kept up to date automatically.

\n
choco install etcher
\n
Uninstall
\n
choco uninstall etcher
\n

Support

\n

If you're having any problem, please raise an issue on GitHub, and\nthe balena.io team will be happy to help.

\n

License

\n

Etcher is free software and may be redistributed under the terms specified in\nthe license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.023Z" }, "explorer": { "readmeCleaned": "

Introduction

\n

This Explorer allows to perform various statistical analyses and data mining operations in a very easy and intuitive way. As the name implies, this software aims at exploring data and getting quick insight of the order of magnitude of the observed objects. That's why it does focus on graphical representation and mouse driven operations, unlike the traditional statistical tools cluttered with numerous dialog boxes and lists with five decimal figures. You can, however, have the detailed numbers once your analysis is completed.

\n

Videos

\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n
Overview\n\t\t\n\t\t\t\n\t\t \n\t\t\n\t\t\t\n\t\t
Contingency table\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t
Weather data\n\t\t\n\t\t\t\n\t\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t
Animation \n\t\t\n\t\t\t\n\t\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t
\n

Screenshots

\n

\"explorer\n\"explorer

\n\n

Installation and run

\n

The Explorer is written in javascript and built with electron,

\n
OSX
\n

Download the latest version for darwin from the release page.

\n
Windows
\n

Download the latest version corresponding to your system (32bit or 64bit) from the release page. The application is bundled into a single exe file, thanks to BoxedApp Packer .

\n
Linux
\n

Follow the \"Build from source\" instructions below.

\n

Build from Source

\n

Should you want to go the Build & Deploy route -you'll require node.js (developed\non v6.1.0, confirmed to work on v4.7.3) and npm (comes with node.js, developed using v3.9.5, confirmed to work on v2.15.11).

\n

Download and unzip the Source files (zip or tar.gz) from the the release page, or clone the repository:

\n
git clone https://github.com/jfbouzereau/explorer.git
\n

Enter the Explorer's directory with cd explorer-1.x/app (if you downloaded it from Releases) or cd explorer/app (if you cloned the repository).

\n

Install the dependencies:

\n
npm install
\n

And launch the app:

\n
npm start
\n

Data loading

\n

At launch time, the Explorer shows a window to choose the dataset to use. You can either drag and drop a file from your computer desktop, or click the clipboard button.

\n

\"explorer

\n

Various file formats are accepted :

\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\t\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\t\n\t\n\n\t\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n
SourceFile extensionRemarks
Accessmdb , accdbAccess 2000 or higher
ARFF / KEEL*No comments at the beginning of the file.
\n\tThe first line must be @relation \n\t
BigQuery*A config file with a content like this:
\nBigQuery
\nclient_secret:/full/path/to/my_private_key.json
\nquery:select * from lookerdata:cdc.project_tycho_reports limit 1000
\ntimeout:60000
\n\t
dBasedbf
ExcelxlsxThe names of the fields are expected at the top of the columns
JMPjmp
JSON file*A JSON array of records
LIMDEP / NLOGITlpj
MINITABmtw
MLwiNwsUncompressed format only
MongoDB*A config file with a content like this:

\n\t\tmongodb
\n\t\thost:192.168.0.121:27017
\n\t\tdatabase:geo
\n\t\tcollection:countries
\n\t\tquery:{cont:{$eq:\"EU\"},pop:{$gt:50000000}}
\n\t
Mysql*A config file with a content like this:

\nmysql
\nhost:192.168.0.2
\nuser:bob
\npassword:secret
\ndatabase:test
\nquery:select * from mytable
\n\t
Postgres*A config file with a content like this:

\npostgres
\nhost:192.168.0.2
\nuser:bob
\npassword:secret
\ndatabase:test
\nquery:select * from mytable
\n
\nor:
\npostgres
\nconnection:bob:secret@192.168.0.2/test
\nquery:select * from mytable
\n\t
RrdbBinary format only
SASsas7bdatUncompressed format only
SPLUSsdd
SPSSsavUncompressed format only
SQL Server*A config file with a content like this:

\n\t\tmssql
\n\t\thost:192.168.0.121
\n\t\tusername:bob
\n\t\tpassword:secret
\n\t\tquery:select * from mytable
\n\t
StatadtaStata 8 or higher
Tabular file*The names of the fields are expected on the first line
Bzip2 filebz2The uncompressed file must be in one of the previous formats
Gzip filegzThe uncompressed file must be in one of the previous formats
Web file*Contains the url of the data. The remote file must be in one of the previous formats
\n

If you click the clipboard button, the data must be in tabular form, with the name of the fields on the first line.

\n

Main window

\n

Once the data have been successfully loaded, the main window is displayed :

\n

\"workspace\"

\n

Here are the elements of the interface :

\n
    \n
  1. \n

    List of the categorical fields (aka \"the pink zone\"). By default only 10 fields are displayed. To resize the list, move the mouse just below the list and drag to shrink or extend the list. To scroll the list, move the mouse to the right of the list.

    \n
  2. \n
  3. \n

    Icons of the existing analyses (graphs). To run a new analysis, just drag its icon to the workspace.

    \n
  4. \n
  5. \n

    List of the numerical fields (aka \"the blue zone\"). By default only 10 fields are displayed. To resize the list, move the mouse just below the list and drag to shrink or extend the list. To scroll the list, move the mouse to the right of the list.

    \n
  6. \n
  7. \n

    Icons of the tools

    \n
  8. \n
  9. \n

    Status bar. This area gives at any time details about the object under the mouse, or the action your are about to do.

    \n
  10. \n
  11. \n

    Dock This area is used to keep graphs that are temporarily removed from the workspace.

    \n
  12. \n
  13. \n

    Version number

    \n
  14. \n
  15. \n

    Memory usage

    \n
  16. \n
  17. \n

    Workspace. This area is where the graphs are created and arranged.

    \n
  18. \n
\n

Graph

\n

To create a new graph, drag its icon to the workspace. Alternatively if you dont know which icon to look at, you can right-click or control-click on the workspace to get a menu with all the possible analyses.

\n

A graph is represented by an area with different noticeable parts :\n\"graph\"

\n
    \n
  1. \n

    Close box. Click on this box to close the graph. All the computations done will be lost.

    \n
  2. \n
  3. \n

    Option menu. Some graphs have different ways of representing the results. In that case click on this sign to bring up the menu to choose from. Alternatively, right-click or control-click within the graph.

    \n
  4. \n
  5. \n

    Title bar. This area shows the current selection (see below). Click on this area to drag the graph around.

    \n
  6. \n
  7. \n

    Slots. These are the places where you can define the parameters of the analysis. Depending on the graph, different combinations of slots are shown. On a pink slot you can drag a categorical field. On a blue slot you can drag a numerical slot. Parameters can be swapped by dragging from one slot to another one ( of the same graph, and of the same color ).

    \n
  8. \n
  9. \n

    Resize box. Click on this box and drag to resize the graph.

    \n
  10. \n
\n

To change the type of a graph, drag the icon of the new type onto the graph. The new analysis will retain the parameters and selection of the previous one.

\n

Selection

\n

Every analysis can be restricted to a part of the data only. The set of observations (records) currently processed by a graph is named the selection, and is displayed in the title bar .\nInitially, the selection consists of all the observations, and the title is blank.

\n
Selection based on a categorical field
\n\n

Conversely, the selection of an existing graph can be changed by dragging a pie slice onto its\ntitle. This allows to conduct successively the same analysis on different parts of the data.

\n
Selection based on a numerical field
\n\n
Combining selections
\n

Dragging a slice to the title of a graph which already has a selection will combine the two\nsets.

\n

If the two variables are the same, the resulting selection will be the union of the two sets. Example: a pie graph splits the data into Apples, Pears, Peaches, and Apricots. If you drag the apple slice to the title of another graph, the selection will be Apples. If you then drag the peach slice to the title of the graph, the selection will be Apples + Peaches

\n

If the two variables are not the same, the resulting selection will be the intersection of the two sets. Example : a pie graph splits the data into Apples, Pears, Peaches and Apricots. If you drag the apple slice to the title of another graph, the selection will be Apples. If you change the variable defining the pie to split the data into Organic and Non-Organic, and drag the Organic\nslice to the title of the second graph, the selection will be Apples AND Organic.

\n

Conversions

\n

When loading the data, the Explorer identifies fields containing only numbers as numeric, and all others fields as categorical. Sometimes it is desirable to change this. Several possibilities exist.

\n\n

Original data:

\n\n\n\n\n\n\n
IDCOLOR
1Blue
2Red
3Green
4Red
\n

Data after the conversion

\n\n\n\n\n\n\n
IDBlueRedGreen
1100
2010
3001
4010
\n\n

Original data :

\n\n\n\n\n\n
IDCOLORHEIGHTWIDTHDEPTH
1Blue1422511
2Red1751216
3Green1094814
\n

Data after the pivot :

\n\n\n\n\n\n\n\n\n\n\n\n
IDCOLORPIVOTCOUNT
1BlueHEIGHT142
1BlueWIDTH25
1BlueDEPTH11
2RedHEIGHT175
2RedWIDTH12
2RedDEPTH16
3GreenHEIGHT109
3GreenWIDTH48
3GreenDEPTH14

Units

\"balloons\"

Tools

Here are the various tools proposed by the toolbar at the bottom of the screen :

\"graph\"

Types of analysis

In the browser

The Explorer can also be executed in any modern browser. Open app/index.html,\npaste the data from the clipboard, and click OK.

Credits

The Explorer takes advantage of some very useful npm modules :

Contact

jfbouzereau@netcourrier.com

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
", "readmeOriginal": "

Introduction

\n

This Explorer allows to perform various statistical analyses and data mining operations in a very easy and intuitive way. As the name implies, this software aims at exploring data and getting quick insight of the order of magnitude of the observed objects. That's why it does focus on graphical representation and mouse driven operations, unlike the traditional statistical tools cluttered with numerous dialog boxes and lists with five decimal figures. You can, however, have the detailed numbers once your analysis is completed.

\n

Videos

\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n
Overview\n\t\t\n\t\t\t\n\t\t \n\t\t\n\t\t\t\n\t\t
Contingency table\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t
Weather data\n\t\t\n\t\t\t\n\t\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t
Animation \n\t\t\n\t\t\t\n\t\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t
\n

Screenshots

\n

\"explorer\n\"explorer

\n\n

Installation and run

\n

The Explorer is written in javascript and built with electron,

\n
OSX
\n

Download the latest version for darwin from the release page.

\n
Windows
\n

Download the latest version corresponding to your system (32bit or 64bit) from the release page. The application is bundled into a single exe file, thanks to BoxedApp Packer .

\n
Linux
\n

Follow the \"Build from source\" instructions below.

\n

Build from Source

\n

Should you want to go the Build & Deploy route -you'll require node.js (developed\non v6.1.0, confirmed to work on v4.7.3) and npm (comes with node.js, developed using v3.9.5, confirmed to work on v2.15.11).

\n

Download and unzip the Source files (zip or tar.gz) from the the release page, or clone the repository:

\n
git clone https://github.com/jfbouzereau/explorer.git
\n

Enter the Explorer's directory with cd explorer-1.x/app (if you downloaded it from Releases) or cd explorer/app (if you cloned the repository).

\n

Install the dependencies:

\n
npm install
\n

And launch the app:

\n
npm start
\n

Data loading

\n

At launch time, the Explorer shows a window to choose the dataset to use. You can either drag and drop a file from your computer desktop, or click the clipboard button.

\n

\"explorer

\n

Various file formats are accepted :

\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\t\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\t\n\t\n\n\t\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\n
SourceFile extensionRemarks
Accessmdb , accdbAccess 2000 or higher
ARFF / KEEL*No comments at the beginning of the file.
\n\tThe first line must be @relation \n\t
BigQuery*A config file with a content like this:
\nBigQuery
\nclient_secret:/full/path/to/my_private_key.json
\nquery:select * from lookerdata:cdc.project_tycho_reports limit 1000
\ntimeout:60000
\n\t
dBasedbf
ExcelxlsxThe names of the fields are expected at the top of the columns
JMPjmp
JSON file*A JSON array of records
LIMDEP / NLOGITlpj
MINITABmtw
MLwiNwsUncompressed format only
MongoDB*A config file with a content like this:

\n\t\tmongodb
\n\t\thost:192.168.0.121:27017
\n\t\tdatabase:geo
\n\t\tcollection:countries
\n\t\tquery:{cont:{$eq:\"EU\"},pop:{$gt:50000000}}
\n\t
Mysql*A config file with a content like this:

\nmysql
\nhost:192.168.0.2
\nuser:bob
\npassword:secret
\ndatabase:test
\nquery:select * from mytable
\n\t
Postgres*A config file with a content like this:

\npostgres
\nhost:192.168.0.2
\nuser:bob
\npassword:secret
\ndatabase:test
\nquery:select * from mytable
\n
\nor:
\npostgres
\nconnection:bob:secret@192.168.0.2/test
\nquery:select * from mytable
\n\t
RrdbBinary format only
SASsas7bdatUncompressed format only
SPLUSsdd
SPSSsavUncompressed format only
SQL Server*A config file with a content like this:

\n\t\tmssql
\n\t\thost:192.168.0.121
\n\t\tusername:bob
\n\t\tpassword:secret
\n\t\tquery:select * from mytable
\n\t
StatadtaStata 8 or higher
Tabular file*The names of the fields are expected on the first line
Bzip2 filebz2The uncompressed file must be in one of the previous formats
Gzip filegzThe uncompressed file must be in one of the previous formats
Web file*Contains the url of the data. The remote file must be in one of the previous formats
\n

If you click the clipboard button, the data must be in tabular form, with the name of the fields on the first line.

\n

Main window

\n

Once the data have been successfully loaded, the main window is displayed :

\n

\"workspace\"

\n

Here are the elements of the interface :

\n
    \n
  1. \n

    List of the categorical fields (aka \"the pink zone\"). By default only 10 fields are displayed. To resize the list, move the mouse just below the list and drag to shrink or extend the list. To scroll the list, move the mouse to the right of the list.

    \n
  2. \n
  3. \n

    Icons of the existing analyses (graphs). To run a new analysis, just drag its icon to the workspace.

    \n
  4. \n
  5. \n

    List of the numerical fields (aka \"the blue zone\"). By default only 10 fields are displayed. To resize the list, move the mouse just below the list and drag to shrink or extend the list. To scroll the list, move the mouse to the right of the list.

    \n
  6. \n
  7. \n

    Icons of the tools

    \n
  8. \n
  9. \n

    Status bar. This area gives at any time details about the object under the mouse, or the action your are about to do.

    \n
  10. \n
  11. \n

    Dock This area is used to keep graphs that are temporarily removed from the workspace.

    \n
  12. \n
  13. \n

    Version number

    \n
  14. \n
  15. \n

    Memory usage

    \n
  16. \n
  17. \n

    Workspace. This area is where the graphs are created and arranged.

    \n
  18. \n
\n

Graph

\n

To create a new graph, drag its icon to the workspace. Alternatively if you dont know which icon to look at, you can right-click or control-click on the workspace to get a menu with all the possible analyses.

\n

A graph is represented by an area with different noticeable parts :\n\"graph\"

\n
    \n
  1. \n

    Close box. Click on this box to close the graph. All the computations done will be lost.

    \n
  2. \n
  3. \n

    Option menu. Some graphs have different ways of representing the results. In that case click on this sign to bring up the menu to choose from. Alternatively, right-click or control-click within the graph.

    \n
  4. \n
  5. \n

    Title bar. This area shows the current selection (see below). Click on this area to drag the graph around.

    \n
  6. \n
  7. \n

    Slots. These are the places where you can define the parameters of the analysis. Depending on the graph, different combinations of slots are shown. On a pink slot you can drag a categorical field. On a blue slot you can drag a numerical slot. Parameters can be swapped by dragging from one slot to another one ( of the same graph, and of the same color ).

    \n
  8. \n
  9. \n

    Resize box. Click on this box and drag to resize the graph.

    \n
  10. \n
\n

To change the type of a graph, drag the icon of the new type onto the graph. The new analysis will retain the parameters and selection of the previous one.

\n

Selection

\n

Every analysis can be restricted to a part of the data only. The set of observations (records) currently processed by a graph is named the selection, and is displayed in the title bar .\nInitially, the selection consists of all the observations, and the title is blank.

\n
Selection based on a categorical field
\n\n

Conversely, the selection of an existing graph can be changed by dragging a pie slice onto its\ntitle. This allows to conduct successively the same analysis on different parts of the data.

\n
Selection based on a numerical field
\n\n
Combining selections
\n

Dragging a slice to the title of a graph which already has a selection will combine the two\nsets.

\n

If the two variables are the same, the resulting selection will be the union of the two sets. Example: a pie graph splits the data into Apples, Pears, Peaches, and Apricots. If you drag the apple slice to the title of another graph, the selection will be Apples. If you then drag the peach slice to the title of the graph, the selection will be Apples + Peaches

\n

If the two variables are not the same, the resulting selection will be the intersection of the two sets. Example : a pie graph splits the data into Apples, Pears, Peaches and Apricots. If you drag the apple slice to the title of another graph, the selection will be Apples. If you change the variable defining the pie to split the data into Organic and Non-Organic, and drag the Organic\nslice to the title of the second graph, the selection will be Apples AND Organic.

\n

Conversions

\n

When loading the data, the Explorer identifies fields containing only numbers as numeric, and all others fields as categorical. Sometimes it is desirable to change this. Several possibilities exist.

\n\n

Original data:

\n\n\n\n\n\n\n
IDCOLOR
1Blue
2Red
3Green
4Red
\n

Data after the conversion

\n\n\n\n\n\n\n
IDBlueRedGreen
1100
2010
3001
4010
\n\n

Original data :

\n\n\n\n\n\n
IDCOLORHEIGHTWIDTHDEPTH
1Blue1422511
2Red1751216
3Green1094814
\n

Data after the pivot :

\n\n\n\n\n\n\n\n\n\n\n\n
IDCOLORPIVOTCOUNT
1BlueHEIGHT142
1BlueWIDTH25
1BlueDEPTH11
2RedHEIGHT175
2RedWIDTH12
2RedDEPTH16
3GreenHEIGHT109
3GreenWIDTH48
3GreenDEPTH14

Units

\"balloons\"

Tools

Here are the various tools proposed by the toolbar at the bottom of the screen :

\"graph\"

Types of analysis

In the browser

The Explorer can also be executed in any modern browser. Open app/index.html,\npaste the data from the clipboard, and click OK.

Credits

The Explorer takes advantage of some very useful npm modules :

Contact

jfbouzereau@netcourrier.com

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
", "readmeFetchedAt": "2022-05-10T00:07:47.116Z" }, "expresslrs-configurator": { "readmeCleaned": "

ExpressLRS Configurator

\n

\"Release\"\n\"License\"\n\"Chat\"\n\"Open

\n

ExpressLRS Configurator is a cross-platform build & configuration tool for the\nExpressLRS - open source RC link for RC applications.

\n

Need help? Confused? Join the Community!

\n\n

Support ExpressLRS

\n

Supporting ExpressLRS is as easy as contributing a feature, either code or just a fleshed out idea. Coding not your thing? Testing a Pull Request using the convenient Configurator tab and providing feedback is essential as well. We're all working together.

\n

If you don't have the time to contribute in that way, consider making a small donation. Donations are used to buy test equipment, software licenses, and certificates needed to further the project and make it securely accessible. ExpressLRS accepts donations through Open Collective, which provides recognition of donors and transparency on how that support is utilized.

\n

\"Open

\n

Quick Start Guide

\n

If you have hardware that you want to flash, please refer to our guides on the website, and our FAQ

\n

Installation

\n

We provide a standalone program for 64bit Windows, Linux and Mac.

\n

Download the installer from Releases page.

\n

Notes

\n

Windows

\n

The minimum required version of windows is Windows 8.

\n

macOS

\n

Changes to the security model used in the latest versions of MacOS X 10.14 (Mojave) and 10.15 (Catalina)\nmean that the operating system will show an error message ('\"ExpressLRS Configurator.app\" cannot be openend because the developer cannot be verified') when trying to install the application.

\n

To work around this, click ExpressLRS Configurator.app while pressing control key, and click Open. In the popup, you'll be able to forcefully open the application. (you may need to try this twice.)

\n

Alternatively, run the following command in a terminal after installing:

\n
sudo xattr -rd com.apple.quarantine /Applications/ExpressLRS\\ Configurator.app\n
\n

Linux

\n

Linux users have to install udev rules for PlatformIO supported boards/devices. The latest version of rules may be found\nat https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules

\n

This file must be placed at /etc/udev/rules.d/99-platformio-udev.rules (preferred location) or\n/lib/udev/rules.d/99-platformio-udev.rules (required on some broken systems).

\n

Please open system Terminal and type:

\n
# Recommended\ncurl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules\n\n# OR, manually download and copy this file to destination folder\nsudo cp 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules
\n

Restart \"udev\" management tool:

\n
sudo service udev restart\n# or\nsudo udevadm control --reload-rules\nsudo udevadm trigger
\n

Ubuntu/Debian users may need to add own \"username\" to the \"dialout\" group if they are not \"root\", doing this issuing:

\n
sudo usermod -a -G dialout $USER\nsudo usermod -a -G plugdev $USER\n
\n

Similarly, Arch users may need to add their user to the “uucp” group

\n
sudo usermod -a -G uucp $USER\nsudo usermod -a -G lock $USER
\n
Ubuntu 18.XX / Older Debian installs troubleshooting
\n

On Ubuntu 18.XX you are not able to get recent git version by default, and some other system dependencies are missing.

\n

Read more about this in issue #26.

\n

To work around that you can manually install required packages:

\n
= 2.25\nsudo add-apt-repository ppa:git-core/ppa\nsudo apt update\nsudo apt install git\">
# install missing sys packages\nsudo apt update\nsudo apt-get install gconf2 gconf-service python3-distutils\n\n# install git version >= 2.25\nsudo add-apt-repository ppa:git-core/ppa\nsudo apt update\nsudo apt install git\n
\n

Architecture

\n
api-server |\n| | | |\n| | V |\n| | platformio |\n|_ _ _ _ _ _ _ _ _ _|_ _ _ _ _ | _ _ _ _|\n V\n ExpressLRS hardware\">
 - - - - - - - - - - - - - - - - - - - -\n|          ExpressLRS-Configurator      |\n|                   |                   |\n|     renderer      |        main       |\n|                   |                   |\n|   configurator <----->  api-server    |\n|                   |          |        |\n|                   |          V        |\n|                   |      platformio   |\n|_ _ _ _ _ _ _ _ _ _|_ _ _ _ _ | _ _ _ _|\n                               V\n                      ExpressLRS hardware\n
\n

This Electron application is split into two parts: a local API server that does all the work, and a UI layer. Both of\nthese application layers communicate within each other using Graphql protocol.

\n

Heavy use of TypeScript and @graphql-codegen/cli is made throughout the repository to ensure the datatypes transmitted\nbetween the API and UI layers are consistent at compile-time and Graphql ensuring the datatypes are consistent at\nruntime.

\n

Starting Development

\n

Prerequisites

\n\n

Start the app in the dev environment:

\n
yarn install --frozen-lockfile\nyarn start
\n

In order to simulate WI-FI devices on your local network you can start application with\nMULTICAST_DNS_SIMULATOR_ENABLED environment variable:

\n
npx cross-env MULTICAST_DNS_SIMULATOR_ENABLED=true yarn start\n
\n

Other useful cli commands

\n

Generate TypeScript types from Graphql schema and Queries located in src/ui/gql/queries:

\n
yarn run gql-codegen
\n

Screenshots

\n

\"Main

\n

\"Compile

\n

Credits

\n\n

Legal disclaimer

\n

The use and operation of this type of device may require a license, and some countries may forbid its use. It is\nentirely up to the end user to ensure compliance with local regulations. This is experimental software / hardware and\nthere is no guarantee of stability or reliability. USE AT YOUR OWN RISK.

\n

\"Join

\n
", "readmeOriginal": "

ExpressLRS Configurator

\n

\"Release\"\n\"License\"\n\"Chat\"\n\"Open

\n

ExpressLRS Configurator is a cross-platform build & configuration tool for the\nExpressLRS - open source RC link for RC applications.

\n

Need help? Confused? Join the Community!

\n\n

Support ExpressLRS

\n

Supporting ExpressLRS is as easy as contributing a feature, either code or just a fleshed out idea. Coding not your thing? Testing a Pull Request using the convenient Configurator tab and providing feedback is essential as well. We're all working together.

\n

If you don't have the time to contribute in that way, consider making a small donation. Donations are used to buy test equipment, software licenses, and certificates needed to further the project and make it securely accessible. ExpressLRS accepts donations through Open Collective, which provides recognition of donors and transparency on how that support is utilized.

\n

\"Open

\n

Quick Start Guide

\n

If you have hardware that you want to flash, please refer to our guides on the website, and our FAQ

\n

Installation

\n

We provide a standalone program for 64bit Windows, Linux and Mac.

\n

Download the installer from Releases page.

\n

Notes

\n

Windows

\n

The minimum required version of windows is Windows 8.

\n

macOS

\n

Changes to the security model used in the latest versions of MacOS X 10.14 (Mojave) and 10.15 (Catalina)\nmean that the operating system will show an error message ('\"ExpressLRS Configurator.app\" cannot be openend because the developer cannot be verified') when trying to install the application.

\n

To work around this, click ExpressLRS Configurator.app while pressing control key, and click Open. In the popup, you'll be able to forcefully open the application. (you may need to try this twice.)

\n

Alternatively, run the following command in a terminal after installing:

\n
sudo xattr -rd com.apple.quarantine /Applications/ExpressLRS\\ Configurator.app\n
\n

Linux

\n

Linux users have to install udev rules for PlatformIO supported boards/devices. The latest version of rules may be found\nat https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules

\n

This file must be placed at /etc/udev/rules.d/99-platformio-udev.rules (preferred location) or\n/lib/udev/rules.d/99-platformio-udev.rules (required on some broken systems).

\n

Please open system Terminal and type:

\n
# Recommended\ncurl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules\n\n# OR, manually download and copy this file to destination folder\nsudo cp 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules
\n

Restart \"udev\" management tool:

\n
sudo service udev restart\n# or\nsudo udevadm control --reload-rules\nsudo udevadm trigger
\n

Ubuntu/Debian users may need to add own \"username\" to the \"dialout\" group if they are not \"root\", doing this issuing:

\n
sudo usermod -a -G dialout $USER\nsudo usermod -a -G plugdev $USER\n
\n

Similarly, Arch users may need to add their user to the “uucp” group

\n
sudo usermod -a -G uucp $USER\nsudo usermod -a -G lock $USER
\n
Ubuntu 18.XX / Older Debian installs troubleshooting
\n

On Ubuntu 18.XX you are not able to get recent git version by default, and some other system dependencies are missing.

\n

Read more about this in issue #26.

\n

To work around that you can manually install required packages:

\n
# install missing sys packages\nsudo apt update\nsudo apt-get install gconf2 gconf-service python3-distutils\n\n# install git version >= 2.25\nsudo add-apt-repository ppa:git-core/ppa\nsudo apt update\nsudo apt install git\n
\n

Architecture

\n
 - - - - - - - - - - - - - - - - - - - -\n|          ExpressLRS-Configurator      |\n|                   |                   |\n|     renderer      |        main       |\n|                   |                   |\n|   configurator <----->  api-server    |\n|                   |          |        |\n|                   |          V        |\n|                   |      platformio   |\n|_ _ _ _ _ _ _ _ _ _|_ _ _ _ _ | _ _ _ _|\n                               V\n                      ExpressLRS hardware\n
\n

This Electron application is split into two parts: a local API server that does all the work, and a UI layer. Both of\nthese application layers communicate within each other using Graphql protocol.

\n

Heavy use of TypeScript and @graphql-codegen/cli is made throughout the repository to ensure the datatypes transmitted\nbetween the API and UI layers are consistent at compile-time and Graphql ensuring the datatypes are consistent at\nruntime.

\n

Starting Development

\n

Prerequisites

\n\n

Start the app in the dev environment:

\n
yarn install --frozen-lockfile\nyarn start
\n

In order to simulate WI-FI devices on your local network you can start application with\nMULTICAST_DNS_SIMULATOR_ENABLED environment variable:

\n
npx cross-env MULTICAST_DNS_SIMULATOR_ENABLED=true yarn start\n
\n

Other useful cli commands

\n

Generate TypeScript types from Graphql schema and Queries located in src/ui/gql/queries:

\n
yarn run gql-codegen
\n

Screenshots

\n

\"Main

\n

\"Compile

\n

Credits

\n\n

Legal disclaimer

\n

The use and operation of this type of device may require a license, and some countries may forbid its use. It is\nentirely up to the end user to ensure compliance with local regulations. This is experimental software / hardware and\nthere is no guarantee of stability or reliability. USE AT YOUR OWN RISK.

\n

\"Join

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.148Z" }, "extraterm": { "readmeCleaned": "

\"Extraterm

\n

The swiss army chainsaw of terminal emulators

\n

Main website: extraterm.org

\n

\"Build

\n

About

\n

Extraterm is an open source project to build a terminal emulator and expand it with new features to support modern workflows and do more than just act like a glorified teletype.

\n

More background information is in the Why document.

\n\n

\"Directly

\n

See the Features and Screenshots

\n

The primary developer is Simon Edwards. Extraterm logos were designed and provided by Gabriel Harel.

\n

Features

\n\n

See the more detailed features list.

\n

News

\n

News is here

\n

Download

\n

Extraterm is available in two flavours: the classic Extraterm is based on Electron, and the lighter faster Qt based version which is the future of Extraterm but is in development and lacking features. Both can run on Linux, Windows, and macOS.

\n\n

Both can be installed at the same time, without problems.

\n

⚠️ Extraterm is in development and roughly 'beta' in quality. It is generally stable, but don't be too surprised if you encounter a few bugs. Use at your own risk. ⚠️

\n

With that out of the way, the primary author does use it as their main terminal emulator on a daily basis. The basics are in place and it will run most common terminal applications such as vi, emacs and joe without problems and even more demanding applications such as midnight commander.

\n

Nightly builds of the master branch can be downloaded here.

\n

Further Information

\n\n
", "readmeOriginal": "

\"Extraterm

\n

The swiss army chainsaw of terminal emulators

\n

Main website: extraterm.org

\n

\"Build

\n

About

\n

Extraterm is an open source project to build a terminal emulator and expand it with new features to support modern workflows and do more than just act like a glorified teletype.

\n

More background information is in the Why document.

\n\n

\"Directly

\n

See the Features and Screenshots

\n

The primary developer is Simon Edwards. Extraterm logos were designed and provided by Gabriel Harel.

\n

Features

\n\n

See the more detailed features list.

\n

News

\n

News is here

\n

Download

\n

Extraterm is available in two flavours: the classic Extraterm is based on Electron, and the lighter faster Qt based version which is the future of Extraterm but is in development and lacking features. Both can run on Linux, Windows, and macOS.

\n\n

Both can be installed at the same time, without problems.

\n

⚠️ Extraterm is in development and roughly 'beta' in quality. It is generally stable, but don't be too surprised if you encounter a few bugs. Use at your own risk. ⚠️

\n

With that out of the way, the primary author does use it as their main terminal emulator on a daily basis. The basics are in place and it will run most common terminal applications such as vi, emacs and joe without problems and even more demanding applications such as midnight commander.

\n

Nightly builds of the master branch can be downloaded here.

\n

Further Information

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:47.202Z" }, "f-curator": { "readmeCleaned": "

F-Curator

\n

\n \n\t \"F-Curator\"\n \n

\n\t \n\t \n

\n
\n

\n

F-Curator is an offline application that comes at you all day long and curates your own web favorites. Based on Electron and React technology.

\n
\n\n
\n

Packages

\n

\"Mac\" Mac

\n

\"Windows\" Windows

\n

Getting Started

\n

Official Website

\n

Video Overview

\n

\"quick

\n

Features

\n\n

File Structures

\n
/\n├── README.md\n├── LICENSE\n├── tsconfig.json\n├── babel.config.js\n├── package-lock.json\n├── package.json\n├── package/      ·············· Available packages\n├── db/           ·············· Local database\n├── main/         ·············· Main Process Modules\n├── renderer/     ·············· Renderer Process Modules\n├── dist/\n├── src/\n├── test/  \n├── public/  \n│   └── index.html \n├── build/  \n│   └── config.js\n└──
\n

How To Use

\n

To clone and run this repository. From your command line:

\n
$ npm start
\n

APP Development Mode

\n

\"workflow\"

\n

You will need to have node setup on your machine. That will output the built distributables to ./dist/* .

\n

Step 1. Use NPM (Locate your current directory of project, and enter the following command.) or download the latest version from Github. For nodejs you have to install some dependencies.

\n
$ sudo npm install f-curator
\n

Or clone the repo to get all source files including build scripts:

\n
$ git clone git://github.com/xizon/f-curator.git
\n

Step 2. First, using an absolute path into your \"f-curator/\" folder directory.

\n
$ cd /{your_directory}/f-curator
\n

Step 3. Before doing all dev stuff make sure you have Node 10+ installed. After that, run the following code in the main directory to install the node module dependencies.

\n
$ sudo npm install
\n

Step 4. Commonly used commands:

\n

Debug application. It can be checked separately as TypeScript without compiling and packaging behavior.

\n
$ npm run check
\n

Step 5. When you’re ready to deploy to production, create a minified bundle with:

\n
$ npm run build
\n

Step 6. When you have done, this will spin up a server that can be accessed at

\n
http://localhost:8080
\n

Step 7. Run the app in development mode

\n
$ npm run dev
\n
\n

💡 Note:

\n

If you upgrade the version of Node, please execute the following code:

\n
$ sudo npm install\n$ sudo npm rebuild node-sass
\n
\n

Changelog

\n

= 1.3.3 (January 30, 2022) =

\n\n

= 1.3.1 (January 26, 2022) =

\n\n

= 1.3.0 (January 22, 2022) =

\n\n

= 1.2.1 (January 20, 2022) =

\n\n

= 1.2.0 (January 18, 2022) =

\n\n

= 1.0.1 (January 14, 2022) =

\n\n

= 1.0.0 (January 3, 2022) =

\n\n

Contributing

\n\n

Supported development environment

\n\n

Licensing

\n

Licensed under the MIT.

\n
", "readmeOriginal": "

F-Curator

\n

\n \n\t \"F-Curator\"\n \n

\n\t \n\t \n

\n
\n

\n

F-Curator is an offline application that comes at you all day long and curates your own web favorites. Based on Electron and React technology.

\n
\n\n
\n

Packages

\n

\"Mac\" Mac

\n

\"Windows\" Windows

\n

Getting Started

\n

Official Website

\n

Video Overview

\n

\"quick

\n

Features

\n\n

File Structures

\n
/\n├── README.md\n├── LICENSE\n├── tsconfig.json\n├── babel.config.js\n├── package-lock.json\n├── package.json\n├── package/      ·············· Available packages\n├── db/           ·············· Local database\n├── main/         ·············· Main Process Modules\n├── renderer/     ·············· Renderer Process Modules\n├── dist/\n├── src/\n├── test/  \n├── public/  \n│   └── index.html \n├── build/  \n│   └── config.js\n└──
\n

How To Use

\n

To clone and run this repository. From your command line:

\n
$ npm start
\n

APP Development Mode

\n

\"workflow\"

\n

You will need to have node setup on your machine. That will output the built distributables to ./dist/* .

\n

Step 1. Use NPM (Locate your current directory of project, and enter the following command.) or download the latest version from Github. For nodejs you have to install some dependencies.

\n
$ sudo npm install f-curator
\n

Or clone the repo to get all source files including build scripts:

\n
$ git clone git://github.com/xizon/f-curator.git
\n

Step 2. First, using an absolute path into your \"f-curator/\" folder directory.

\n
$ cd /{your_directory}/f-curator
\n

Step 3. Before doing all dev stuff make sure you have Node 10+ installed. After that, run the following code in the main directory to install the node module dependencies.

\n
$ sudo npm install
\n

Step 4. Commonly used commands:

\n

Debug application. It can be checked separately as TypeScript without compiling and packaging behavior.

\n
$ npm run check
\n

Step 5. When you’re ready to deploy to production, create a minified bundle with:

\n
$ npm run build
\n

Step 6. When you have done, this will spin up a server that can be accessed at

\n
http://localhost:8080
\n

Step 7. Run the app in development mode

\n
$ npm run dev
\n
\n

💡 Note:

\n

If you upgrade the version of Node, please execute the following code:

\n
$ sudo npm install\n$ sudo npm rebuild node-sass
\n
\n

Changelog

\n

= 1.3.3 (January 30, 2022) =

\n\n

= 1.3.1 (January 26, 2022) =

\n\n

= 1.3.0 (January 22, 2022) =

\n\n

= 1.2.1 (January 20, 2022) =

\n\n

= 1.2.0 (January 18, 2022) =

\n\n

= 1.0.1 (January 14, 2022) =

\n\n

= 1.0.0 (January 3, 2022) =

\n\n

Contributing

\n\n

Supported development environment

\n\n

Licensing

\n

Licensed under the MIT.

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.309Z" }, "ferdi": { "readmeCleaned": "

\n \n \"Ferdi\"\n \n

\n

\n \n \"Download\"\n \n

\n

\n \"Preview\"\n

\n

Ferdi

\n

\n\"Build\n\n\n\"Contributors\"\n\n

\n
\n

🤴🏽 Hard-fork of Franz, adding awesome features and removing unwanted ones.

\n
\n

Ferdi is a desktop app that helps you organize how you use your favourite apps by combining them into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additional features and doesn't restrict its usage! Furthermore, Ferdi is compatible with your existing Franz account, so you can continue right where you left off. Please find out more about Ferdi and its features on getferdi.com.

\n

Download

\n

👉 getferdi.com/download

\n

Assets made available via GitHub releases.

\n

Find answers to frequently asked questions on getferdi.com/faq.

\n

Contributing

\n

Please read the contributing guidelines to setup your development machine and proceed.

\n

Sponsors

\n

\n \n \n \n

\n

\n \n \n \n

\n
", "readmeOriginal": "

\n \n \"Ferdi\"\n \n

\n

\n \n \"Download\"\n \n

\n

\n \"Preview\"\n

\n

Ferdi

\n

\n\"Build\n\n\n\"Contributors\"\n\n

\n
\n

🤴🏽 Hard-fork of Franz, adding awesome features and removing unwanted ones.

\n
\n

Ferdi is a desktop app that helps you organize how you use your favourite apps by combining them into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additional features and doesn't restrict its usage! Furthermore, Ferdi is compatible with your existing Franz account, so you can continue right where you left off. Please find out more about Ferdi and its features on getferdi.com.

\n

Download

\n

👉 getferdi.com/download

\n

Assets made available via GitHub releases.

\n

Find answers to frequently asked questions on getferdi.com/faq.

\n

Contributing

\n

Please read the contributing guidelines to setup your development machine and proceed.

\n

Sponsors

\n

\n \n \n \n

\n

\n \n \n \n

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.349Z" }, "fairshare": { "readmeCleaned": "

\"Contributors\"\n\"Stargazers\"\n\"Issues\"\n\"MIT\n\"DOI\"\n\"Curated

\n\n
\n

\n \n \"Logo\"\n \n

FAIR data and software sharing made easy

\n

\n Your one-stop tool for rapidly curating and sharing biomedical research data and software according to applicable FAIR guidelines
\n
\n
\n Explore our documentation »\n
\n
\n Report Issue\n ·\n Submit feedback \n

\n

\n\n

Table of Contents

\n\n

About

\n

FAIRshare is a cross-platform desktop software that allows researchers to easily organize and share their biomedical research data according to applicable FAIR guidelines. In our first phase of development we are implementing a process for making biomedical research software FAIR and also working on supporting the FAIRification of COVID-19 and other infectious disease related research data (immunology, genomics, epidemiology, etc.). Learn more about FAIRshare, its impact, the development timeline, and related resources on our group's website at https://fairdataihub.org/fairshare.

\n

\n \"interface\"\n
\n A screenshot of the user interface of FAIRshare. \n \n

\n

Downloading FAIRshare

\n

FAIRshare is distributed as an easy-to-install desktop application for Windows, Mac OS, and Ubuntu. Follow the instructions provided in our dedicated documentation to download the version suitable for your operating system.

\n

All our releases are also accessible in the releases tab.

\n

Documentation

\n

See the FAIRshare documentation for details about each features.

\n

Issues and Feedback

\n

To report any issues with the software, suggest improvements, or request a new feature, please open a new issue via the Issues tab. Provide adequate information (operating system, steps leading to error, screenshots) so we can help you efficiently. Alternatively, you could also use our feedback form.

\n

Using the Source Code

\n

If you want to use the source code, contribute, modify FAIRshare to better suit your needs, or compile it for an operating system not mentioned above, please follow the instructions provided in the developer guide of our documentation.

\n

License

\n

FAIRshare is distributed under the MIT License. See LICENSE for more information.

\n

Privacy Policy

\n

FAIRshare uses Google Analytics to track user interactions with the application. Tracking is anonymous and no identifying personal information is collected. Tracking is implemented as part to report usage statistics to the funders of FAIRshare. Tracking is also used to identify errors and subsequently improve user experience. To learn more about what is tracked and how we use Google Analytics within FAIRshare, please read our Privacy Policy.

\n

Acknowledgements

\n\n
", "readmeOriginal": "

\"Contributors\"\n\"Stargazers\"\n\"Issues\"\n\"MIT\n\"DOI\"\n\"Curated

\n\n
\n

\n \n \"Logo\"\n \n

FAIR data and software sharing made easy

\n

\n Your one-stop tool for rapidly curating and sharing biomedical research data and software according to applicable FAIR guidelines
\n
\n
\n Explore our documentation »\n
\n
\n Report Issue\n ·\n Submit feedback \n

\n

\n\n

Table of Contents

\n\n

About

\n

FAIRshare is a cross-platform desktop software that allows researchers to easily organize and share their biomedical research data according to applicable FAIR guidelines. In our first phase of development we are implementing a process for making biomedical research software FAIR and also working on supporting the FAIRification of COVID-19 and other infectious disease related research data (immunology, genomics, epidemiology, etc.). Learn more about FAIRshare, its impact, the development timeline, and related resources on our group's website at https://fairdataihub.org/fairshare.

\n

\n \"interface\"\n
\n A screenshot of the user interface of FAIRshare. \n \n

\n

Downloading FAIRshare

\n

FAIRshare is distributed as an easy-to-install desktop application for Windows, Mac OS, and Ubuntu. Follow the instructions provided in our dedicated documentation to download the version suitable for your operating system.

\n

All our releases are also accessible in the releases tab.

\n

Documentation

\n

See the FAIRshare documentation for details about each features.

\n

Issues and Feedback

\n

To report any issues with the software, suggest improvements, or request a new feature, please open a new issue via the Issues tab. Provide adequate information (operating system, steps leading to error, screenshots) so we can help you efficiently. Alternatively, you could also use our feedback form.

\n

Using the Source Code

\n

If you want to use the source code, contribute, modify FAIRshare to better suit your needs, or compile it for an operating system not mentioned above, please follow the instructions provided in the developer guide of our documentation.

\n

License

\n

FAIRshare is distributed under the MIT License. See LICENSE for more information.

\n

Privacy Policy

\n

FAIRshare uses Google Analytics to track user interactions with the application. Tracking is anonymous and no identifying personal information is collected. Tracking is implemented as part to report usage statistics to the funders of FAIRshare. Tracking is also used to identify errors and subsequently improve user experience. To learn more about what is tracked and how we use Google Analytics within FAIRshare, please read our Privacy Policy.

\n

Acknowledgements

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:47.364Z" }, "fifo": { "readmeCleaned": "

\n \n

\n
\n

Fifo Browser

\n

\"Build

\n

\"Downloads\"

\n

Fifo is a modern web browser, built on top of modern web technologies such as Electron and React that is mean't to be secure. It's a more, optimized, more updated fork of Wexond. This browser is meant for office work, gaming, research and is a secure private browser. Fifo aims to be cross platform.\nFIFO (Fly In Fly Out for your data.)

\n

Table of Contents:

\n\n

Motivation

\n

Building a custom browser would be way to hard, therefor, we forked Wexond as our base, we are theng going to extend from there.\nFifo has branched off Wexond and we are on our way of desiging our own graphics and icons.

\n

Features

\n
    \n
  • AntiAd - Browse the web without any ads and don't let websites to track you. Thanks to the 'AntiAd' (Fifo Service) powered by Cliqz, websites can load even 8 times faster!
  • \n
  • Chromium without Google services and low resources usage - Since Fifo uses Electron under the hood which is based on only several and the most important Chromium components, it's not bloated with redundant Google tracking services and others.
  • \n
  • Fast and fluent UI - The animations are really smooth and their timings are perfectly balanced.
  • \n
  • Highly customizable new tab page - Customize almost an every aspect of the new tab page!
  • \n
  • Customizable browser UI - Choose whether Fifo should have compact or normal UI.
  • \n
  • Tab groups - Easily group tabs, so it's hard to get lost.
  • \n
  • Scrollable tabs - Scroll between your tabs.
  • \n
  • Support Chrome extensions - From version < 1.2.0 80% of chrome extenions are compatible and work with Fifo.
  • \n
\n

Other basic features

\n
    \n
  • Downloads popup with currently downloaded items
  • \n
  • History manager
  • \n
  • Simple menu
  • \n
  • Perfect Incognito Mode!
  • \n
  • Bookmarks bar & manager
  • \n
  • Settings
  • \n
  • Find in page
  • \n
  • Dark and light theme
  • \n
  • Omnibox with autocomplete algorithm similar to Chromium
  • \n
  • State of the art tab system
  • \n
  • Newest code
  • \n
  • Optimization
  • \n
  • Extensions
  • \n
  • Updates
  • \n
  • Security Security SECURITY!
  • \n
\n

What can I expect to see in future updates?

\n
    \n
  • More security Features
  • \n
  • AutoComplete
  • \n
  • AutoFill
  • \n
\n

Screenshots

\n

These images are from =>0.1.0 and are outdated.

\n

\"alt

\n

UI normal variant:\n\"image\"

\n

UI compact variant:\n\"image\"\n\"image\"

\n

Downloads

\n\n

Contributing

\n

If you have found any bugs or just want to see some new features in Fifo, feel free to open an issue. Every suggestion is very valuable for us, as they help us improve the browsing experience. Also, please don't hesitate to open a pull request. This is really important to us and for the further development of this project.

\n

By opening a pull request, you agree to the conditions of the Contributor License Agreement.

\n

Development

\n

Running

\n

Before running Fifo, please ensure you have latest Node.js and [YARN] installed on your machine. You can use NPM but it IS NOT recommended.

\n

Windows

\n

Make sure you have build tools installed. You can install them by running this command as administrator:

\n
$ npm i -g windows-build-tools
\n

Yarn:

\n
$ yarn install --save --legacy-peer-deps # Install needed depedencies.\n$ yarn build # Compile Fifo code and rebuild modules.\n$ yarn dev # Run Fifo in development mode
\n

NPM: Not recommended

\n
$ npm install --save --legacy-peer-deps # Install needed depedencies. If you can, please, use yarn install.\n$ npm run build # Compile Fifo code and rebuild modules.\n$ npm run dev # Run Fifo in development mode
\n

More commands

\n
$ yarn compile-win32 # Package Fifo for Windows\n$ yarn compile-linux # Package Fifo for Linux\n$ yarn compile-darwin # Package Fifo for macOS\n$ yarn lint # Runs linter\n$ yarn lint-fix # Runs linter and automatically applies fixes\n$ yarn copyright # Generates auto headers for copyright.
\n

More commands can be found in package.json.

\n

Documentation

\n

Guides and the API reference are located in docs directory.

\n

License

\n

This browser isn't mean to be rebranded/redistrubted, please follow the LICENSE.MD.\nNever remove credits in headers.\n(sentialx@gmail.com) wrote original base code. (Wexond).\nBy sending a Pull Request, you agree that your code may be relicensed or sublicensed.

\n

\"FOSSA

\n
\n
", "readmeOriginal": "

\n \n

\n
\n

Fifo Browser

\n

\"Build

\n

\"Downloads\"

\n

Fifo is a modern web browser, built on top of modern web technologies such as Electron and React that is mean't to be secure. It's a more, optimized, more updated fork of Wexond. This browser is meant for office work, gaming, research and is a secure private browser. Fifo aims to be cross platform.\nFIFO (Fly In Fly Out for your data.)

\n

Table of Contents:

\n\n

Motivation

\n

Building a custom browser would be way to hard, therefor, we forked Wexond as our base, we are theng going to extend from there.\nFifo has branched off Wexond and we are on our way of desiging our own graphics and icons.

\n

Features

\n
    \n
  • AntiAd - Browse the web without any ads and don't let websites to track you. Thanks to the 'AntiAd' (Fifo Service) powered by Cliqz, websites can load even 8 times faster!
  • \n
  • Chromium without Google services and low resources usage - Since Fifo uses Electron under the hood which is based on only several and the most important Chromium components, it's not bloated with redundant Google tracking services and others.
  • \n
  • Fast and fluent UI - The animations are really smooth and their timings are perfectly balanced.
  • \n
  • Highly customizable new tab page - Customize almost an every aspect of the new tab page!
  • \n
  • Customizable browser UI - Choose whether Fifo should have compact or normal UI.
  • \n
  • Tab groups - Easily group tabs, so it's hard to get lost.
  • \n
  • Scrollable tabs - Scroll between your tabs.
  • \n
  • Support Chrome extensions - From version < 1.2.0 80% of chrome extenions are compatible and work with Fifo.
  • \n
\n

Other basic features

\n
    \n
  • Downloads popup with currently downloaded items
  • \n
  • History manager
  • \n
  • Simple menu
  • \n
  • Perfect Incognito Mode!
  • \n
  • Bookmarks bar & manager
  • \n
  • Settings
  • \n
  • Find in page
  • \n
  • Dark and light theme
  • \n
  • Omnibox with autocomplete algorithm similar to Chromium
  • \n
  • State of the art tab system
  • \n
  • Newest code
  • \n
  • Optimization
  • \n
  • Extensions
  • \n
  • Updates
  • \n
  • Security Security SECURITY!
  • \n
\n

What can I expect to see in future updates?

\n
    \n
  • More security Features
  • \n
  • AutoComplete
  • \n
  • AutoFill
  • \n
\n

Screenshots

\n

These images are from =>0.1.0 and are outdated.

\n

\"alt

\n

UI normal variant:\n\"image\"

\n

UI compact variant:\n\"image\"\n\"image\"

\n

Downloads

\n\n

Contributing

\n

If you have found any bugs or just want to see some new features in Fifo, feel free to open an issue. Every suggestion is very valuable for us, as they help us improve the browsing experience. Also, please don't hesitate to open a pull request. This is really important to us and for the further development of this project.

\n

By opening a pull request, you agree to the conditions of the Contributor License Agreement.

\n

Development

\n

Running

\n

Before running Fifo, please ensure you have latest Node.js and [YARN] installed on your machine. You can use NPM but it IS NOT recommended.

\n

Windows

\n

Make sure you have build tools installed. You can install them by running this command as administrator:

\n
$ npm i -g windows-build-tools
\n

Yarn:

\n
$ yarn install --save --legacy-peer-deps # Install needed depedencies.\n$ yarn build # Compile Fifo code and rebuild modules.\n$ yarn dev # Run Fifo in development mode
\n

NPM: Not recommended

\n
$ npm install --save --legacy-peer-deps # Install needed depedencies. If you can, please, use yarn install.\n$ npm run build # Compile Fifo code and rebuild modules.\n$ npm run dev # Run Fifo in development mode
\n

More commands

\n
$ yarn compile-win32 # Package Fifo for Windows\n$ yarn compile-linux # Package Fifo for Linux\n$ yarn compile-darwin # Package Fifo for macOS\n$ yarn lint # Runs linter\n$ yarn lint-fix # Runs linter and automatically applies fixes\n$ yarn copyright # Generates auto headers for copyright.
\n

More commands can be found in package.json.

\n

Documentation

\n

Guides and the API reference are located in docs directory.

\n

License

\n

This browser isn't mean to be rebranded/redistrubted, please follow the LICENSE.MD.\nNever remove credits in headers.\n(sentialx@gmail.com) wrote original base code. (Wexond).\nBy sending a Pull Request, you agree that your code may be relicensed or sublicensed.

\n

\"FOSSA

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:47.495Z" }, "final-countdown": { "readmeCleaned": "

The Final Countdown

\n

The Final Countdown is a desktop application that uses demographic information, health metrics, and the World Population API to generate a running clock counting down to the precise moment you'll drop dead. Make every second count.

\n

The application logic is written in JavaScript and rendered with the Electron framework.

\n

\"launch

\n

Start Timer

\n

Download the app!

\n

OR

\n

To get the application up and running locally on your machine, you'll need to have the following installed on your system:

\n\n

Then follow these steps:

\n
    \n
  1. Fork and clone the repo onto your machine
  2. \n
  3. cd into the project folder and run npm install to download the required dependencies.
  4. \n
  5. With grunt running, run npm start
  6. \n
\n

Clock Example:

\n

\"clock

\n

Built With

\n\n

Credits

\n\n
", "readmeOriginal": "

The Final Countdown

\n

The Final Countdown is a desktop application that uses demographic information, health metrics, and the World Population API to generate a running clock counting down to the precise moment you'll drop dead. Make every second count.

\n

The application logic is written in JavaScript and rendered with the Electron framework.

\n

\"launch

\n

Start Timer

\n

Download the app!

\n

OR

\n

To get the application up and running locally on your machine, you'll need to have the following installed on your system:

\n\n

Then follow these steps:

\n
    \n
  1. Fork and clone the repo onto your machine
  2. \n
  3. cd into the project folder and run npm install to download the required dependencies.
  4. \n
  5. With grunt running, run npm start
  6. \n
\n

Clock Example:

\n

\"clock

\n

Built With

\n\n

Credits

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:47.532Z" }, "flat": { "readmeCleaned": "
\n \n
\n
\n \"GitHub\"\n \"GitHub\n \"GitHub\n \n \"GitHub\n \n
\n \n \"Twitter\n \n \n \"Slack\n \n
\n
\n

Agora Flat

\n

Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.

\n

中文

\n \n
\n

Features

\n\n

Quickstart

\n

You can build and run the Flat client without a server. This repository includes the following projects:

\n\n

Installation

\n
\n

If you don't have pnpm installed:

\n
npm i -g pnpm
\n
\n

Clone or fork this project, at project root run:

\n
pnpm i
\n

Build and run Flat Electron client

\n

Run the following commands at the root of the repository to build and run Flat Electron client.

\n
pnpm start
\n

You can use one of the following methods to package your executable:

\n\n

Build and run Flat Web client

\n

Run the following command at the root of the repository to build and run Flat web client.

\n
pnpm start:web
\n

Alternatively, run the following command:

\n
cd ./web/flat-web/ && pnpm start
\n

UI and business logic are separated in Flat. You can view and develop Flat components UI via Storybook. You can either visit the (Online address) or run pnpm storybook at the root of the repository to run Storybook locally.

\n

References

\n\n

Related Projects

\n\n

Contributing

\n

Writing code is great, but there are many other ways to make meaningful contributions to the project:

\n\n

For more info about how to contribute, see CONTRIBUTING.md

\n

Code Contributors

\n

Thank you to all the people who already contributed to Flat!

\n

\n

Disclaimer

\n

You may use Flat for commercial purposes but please note that we do not accept customizational commercial requirements and deployment supports. Nor do we offer customer supports for commercial usage. Please head to Flexible Classroom for such requirements.

\n

License

\n

Copyright © Agora Corporation. All rights reserved.

\n

Licensed under the MIT license.

\n

When using the Flat or other GitHub logos, be sure to follow the GitHub logo guidelines.

\n
", "readmeOriginal": "
\n \n
\n
\n \"GitHub\"\n \"GitHub\n \"GitHub\n \n \"GitHub\n \n
\n \n \"Twitter\n \n \n \"Slack\n \n
\n
\n

Agora Flat

\n

Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.

\n

中文

\n \n
\n

Features

\n\n

Quickstart

\n

You can build and run the Flat client without a server. This repository includes the following projects:

\n\n

Installation

\n
\n

If you don't have pnpm installed:

\n
npm i -g pnpm
\n
\n

Clone or fork this project, at project root run:

\n
pnpm i
\n

Build and run Flat Electron client

\n

Run the following commands at the root of the repository to build and run Flat Electron client.

\n
pnpm start
\n

You can use one of the following methods to package your executable:

\n\n

Build and run Flat Web client

\n

Run the following command at the root of the repository to build and run Flat web client.

\n
pnpm start:web
\n

Alternatively, run the following command:

\n
cd ./web/flat-web/ && pnpm start
\n

UI and business logic are separated in Flat. You can view and develop Flat components UI via Storybook. You can either visit the (Online address) or run pnpm storybook at the root of the repository to run Storybook locally.

\n

References

\n\n

Related Projects

\n\n

Contributing

\n

Writing code is great, but there are many other ways to make meaningful contributions to the project:

\n\n

For more info about how to contribute, see CONTRIBUTING.md

\n

Code Contributors

\n

Thank you to all the people who already contributed to Flat!

\n

\n

Disclaimer

\n

You may use Flat for commercial purposes but please note that we do not accept customizational commercial requirements and deployment supports. Nor do we offer customer supports for commercial usage. Please head to Flexible Classroom for such requirements.

\n

License

\n

Copyright © Agora Corporation. All rights reserved.

\n

Licensed under the MIT license.

\n

When using the Flat or other GitHub logos, be sure to follow the GitHub logo guidelines.

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.652Z" }, "fishing-funds": { "readmeCleaned": "

\n\n

\n

Fishing Funds

\n

\"GitHub\n\"fishing-funds\"\n\"GitHub\n\"GitHub\n\"Codacy\n\"Build\"\n\"GitHub\n\"GitHub\n\"GitHub\n\"QQ群\"\n\"QQ群\"\n\"GitHub\"

\n
\n

基金,大盘,股票,虚拟货币状态栏显示小应用,基于 Electron 开发,支持 MacOS,Windows,Linux 客户端,数据源来自天天基金,蚂蚁基金,爱基金,腾讯证券,新浪基金等

\n
\n

软件截图

\n\n

\n\n\n

\n\n

项目介绍

\n\n

数据源

\n
\n

注意 ⚠️:不同的数据源可能会有反爬机制,刷新时的请求速度会有所差异\n强烈建议使用天天基金的数据源,最快同时估值也最准确

\n
\n\n

下载使用

\n
\n

注意 ⚠️:由于 MacOS 不允许打开未经 Apple 公证的程序,如果出现软件无法打开请进行以下操作 或参考这里

\n
\n
进入 「设置」- 「安全性与隐私」- 「通用」- 「允许从以下位置下载的App」-「仍然打开」
\n\n

讨论交流

\n\n

系统代理

\n

由于众所周知的原因,部分货币接口无法访问,Fishing Funds 支持 http 代理访问 已适配系统代理访问

\n\n

导入导出

\n

Fishing Funds 右键菜单支持导入导出基金 JSON 配置方便备份

\n
// 字段说明\ninterface FundSetting {\n  code: string; // 基金代码(必填)\n  name?: string; // 基金名称\n  cyfe?: number; // 持有份额\n  cbj?: number; // 持仓成本价\n}
\n

例子:

\n
[\n  {\n    \"code\": \"320007\",\n    \"name\": \"诺按成长混合\",\n    \"cyfe\": 1000.0,\n    \"cbj\": 1.6988\n  },\n  {\n    \"code\": \"161725\",\n    \"name\": \"招商中证白酒指数(LOF)\",\n    \"cyfe\": 1000.0,\n    \"cbj\": 1.4896\n  }\n]
\n

支持作者

\n

作者利用空闲时间开发不易,您的支持可以给本项目的开发和完善提供巨大的动力,感谢对本软件的喜爱和认可:)

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
微信支付宝
\n

收录网站

\n\n

感谢

\n\n

许可证

\n\n

Star Charts

\n

\"Stargazers

\n
", "readmeOriginal": "

\n\n

\n

Fishing Funds

\n

\"GitHub\n\"fishing-funds\"\n\"GitHub\n\"GitHub\n\"Codacy\n\"Build\"\n\"GitHub\n\"GitHub\n\"GitHub\n\"QQ群\"\n\"QQ群\"\n\"GitHub\"

\n
\n

基金,大盘,股票,虚拟货币状态栏显示小应用,基于 Electron 开发,支持 MacOS,Windows,Linux 客户端,数据源来自天天基金,蚂蚁基金,爱基金,腾讯证券,新浪基金等

\n
\n

软件截图

\n\n

\n\n\n

\n\n

项目介绍

\n\n

数据源

\n
\n

注意 ⚠️:不同的数据源可能会有反爬机制,刷新时的请求速度会有所差异\n强烈建议使用天天基金的数据源,最快同时估值也最准确

\n
\n\n

下载使用

\n
\n

注意 ⚠️:由于 MacOS 不允许打开未经 Apple 公证的程序,如果出现软件无法打开请进行以下操作 或参考这里

\n
\n
进入 「设置」- 「安全性与隐私」- 「通用」- 「允许从以下位置下载的App」-「仍然打开」
\n\n

讨论交流

\n\n

系统代理

\n

由于众所周知的原因,部分货币接口无法访问,Fishing Funds 支持 http 代理访问 已适配系统代理访问

\n\n

导入导出

\n

Fishing Funds 右键菜单支持导入导出基金 JSON 配置方便备份

\n
// 字段说明\ninterface FundSetting {\n  code: string; // 基金代码(必填)\n  name?: string; // 基金名称\n  cyfe?: number; // 持有份额\n  cbj?: number; // 持仓成本价\n}
\n

例子:

\n
[\n  {\n    \"code\": \"320007\",\n    \"name\": \"诺按成长混合\",\n    \"cyfe\": 1000.0,\n    \"cbj\": 1.6988\n  },\n  {\n    \"code\": \"161725\",\n    \"name\": \"招商中证白酒指数(LOF)\",\n    \"cyfe\": 1000.0,\n    \"cbj\": 1.4896\n  }\n]
\n

支持作者

\n

作者利用空闲时间开发不易,您的支持可以给本项目的开发和完善提供巨大的动力,感谢对本软件的喜爱和认可:)

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
微信支付宝
\n

收录网站

\n\n

感谢

\n\n

许可证

\n\n

Star Charts

\n

\"Stargazers

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.681Z" }, "flawesome": { "readmeCleaned": "

Flawesome (An Organiser With Diary Workflow) (v0.2.3 Pre-Release)

\n

Flawesome is a cross platform modern productivity tool that will help you organise your day-today work and thoughts.\n
\nAll the three application components i.e. The Notebook, The Sticky Notes and The Todolist are driven by the Calendar.

\n

\"Application

\n

\"Application

\n

\"Application

\n

Download

\n

Flawesome v0.2.3 Pre-Release For Linux (.deb)

\n

Flawesome v0.2.3 Pre-Release For Linux (.AppImage)

\n

Flawesome v0.2.3 Pre-Release For Windows 64-Bit

\n

Go to Releases to see all the releases.

\n

** Currently I have only generated the package for Linux and Windows, soon it will be available for macos.

\n

Build the setup yourself:

\n
** Prequisite: Git, Node, Yarn package manager\n
\n\n
$ git clone https://github.com/ashishBharadwaj/flawesome.git
\n\n
$ yarn install
\n\n
$ yarn build
\n\n
$ yarn package
\n

License

\n
GNU General Public License v3.0 (c) 2020 Ashish Bharadwaj J\nRefer to License.md file for details\n
\n
", "readmeOriginal": "

Flawesome (An Organiser With Diary Workflow) (v0.2.3 Pre-Release)

\n

Flawesome is a cross platform modern productivity tool that will help you organise your day-today work and thoughts.\n
\nAll the three application components i.e. The Notebook, The Sticky Notes and The Todolist are driven by the Calendar.

\n

\"Application

\n

\"Application

\n

\"Application

\n

Download

\n

Flawesome v0.2.3 Pre-Release For Linux (.deb)

\n

Flawesome v0.2.3 Pre-Release For Linux (.AppImage)

\n

Flawesome v0.2.3 Pre-Release For Windows 64-Bit

\n

Go to Releases to see all the releases.

\n

** Currently I have only generated the package for Linux and Windows, soon it will be available for macos.

\n

Build the setup yourself:

\n
** Prequisite: Git, Node, Yarn package manager\n
\n\n
$ git clone https://github.com/ashishBharadwaj/flawesome.git
\n\n
$ yarn install
\n\n
$ yarn build
\n\n
$ yarn package
\n

License

\n
GNU General Public License v3.0 (c) 2020 Ashish Bharadwaj J\nRefer to License.md file for details\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:47.744Z" }, "flbmusic": { "readmeCleaned": "

This Repo has been migrated to this new repo where all updates will be made

\n

\"Logo\"

\n

FLB Music

\n

A Beautiful🌹 and Feature Rich💎 Cross Platform Music Player and Downloader.\nVisit 🔗https://flbmusic.xyz to download

\n

Features 🔩

\n\n

Screenshots 😎

\n

​\n\"albums\"\n\"albums\"\n\"artists\"\n\"artists\"\n\"equalizer\"\n\"folders\"\n\"folders\"\n\"home\"\n\"home\"\n\"Playlists\"\n\"Playlists\"

\n

Tech Stack

\n

Client App: Vue, Vuex, Typescript, Electron

\n

Server: Node, Express

\n

Run Locally 🏃‍♂️

\n

Clone the project

\n
  git clone https://github.com/Patrick-web/FLB-Music-Player-Official
\n

Go to the project directory

\n
  cd FLB-Music-Player-Official
\n

Install dependencies

\n
  npm install
\n

Run

\n
  npm start
\n

Contributing

\n

Contributions are always welcome!

\n

See contributing.md for ways to get started.

\n

Please adhere to this project's code of conduct.

\n

Feedback

\n

If you have any feedback, please reach out to us at https://t.me/flbmusiccommunity

\n
", "readmeOriginal": "

This Repo has been migrated to this new repo where all updates will be made

\n

\"Logo\"

\n

FLB Music

\n

A Beautiful🌹 and Feature Rich💎 Cross Platform Music Player and Downloader.\nVisit 🔗https://flbmusic.xyz to download

\n

Features 🔩

\n\n

Screenshots 😎

\n

​\n\"albums\"\n\"albums\"\n\"artists\"\n\"artists\"\n\"equalizer\"\n\"folders\"\n\"folders\"\n\"home\"\n\"home\"\n\"Playlists\"\n\"Playlists\"

\n

Tech Stack

\n

Client App: Vue, Vuex, Typescript, Electron

\n

Server: Node, Express

\n

Run Locally 🏃‍♂️

\n

Clone the project

\n
  git clone https://github.com/Patrick-web/FLB-Music-Player-Official
\n

Go to the project directory

\n
  cd FLB-Music-Player-Official
\n

Install dependencies

\n
  npm install
\n

Run

\n
  npm start
\n

Contributing

\n

Contributions are always welcome!

\n

See contributing.md for ways to get started.

\n

Please adhere to this project's code of conduct.

\n

Feedback

\n

If you have any feedback, please reach out to us at https://t.me/flbmusiccommunity

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.836Z" }, "fluent-reader": { "readmeCleaned": "

\n \n

\n

Fluent Reader

\n

A modern desktop RSS reader

\n

\n \n \n \n

\n
\n

Download

\n

For Windows 10 users, the recommended way of installation is through Microsoft Store.\nThis enables auto-update and experimental ARM64 support.\nmacOS users can also get Fluent Reader from the Mac App Store.

\n

If you are using Linux or an older version of Windows, you can get Fluent Reader from GitHub releases.

\n

Mobile App

\n

The repo of the mobile version of this app can be found here.

\n

Features

\n

\n \n

\n\n

Support for other RSS services are under fundraising.

\n

Development

\n

Contribute

\n

Help make Fluent Reader better by reporting bugs or opening feature requests through GitHub issues.

\n

You can also help internationalize the app by providing translations into additional languages.\nRefer to the repo of react-intl-universal to get started on internationalization.

\n

If you enjoy using this app, consider supporting its development by donating through GitHub Sponsors, Paypal, or Alipay.

\n

Build from source

\n
# Install dependencies\nnpm install\n\n# Compile ts & dependencies\nnpm run build\n\n# Start the application\nnpm run electron\n\n# Generate certificate for signature\nelectron-builder create-self-signed-cert\n# Package the app for Windows\nnpm run package-win\n
\n

Developed with

\n\n

License

\n

BSD

\n
", "readmeOriginal": "

\n \n

\n

Fluent Reader

\n

A modern desktop RSS reader

\n

\n \n \n \n

\n
\n

Download

\n

For Windows 10 users, the recommended way of installation is through Microsoft Store.\nThis enables auto-update and experimental ARM64 support.\nmacOS users can also get Fluent Reader from the Mac App Store.

\n

If you are using Linux or an older version of Windows, you can get Fluent Reader from GitHub releases.

\n

Mobile App

\n

The repo of the mobile version of this app can be found here.

\n

Features

\n

\n \n

\n\n

Support for other RSS services are under fundraising.

\n

Development

\n

Contribute

\n

Help make Fluent Reader better by reporting bugs or opening feature requests through GitHub issues.

\n

You can also help internationalize the app by providing translations into additional languages.\nRefer to the repo of react-intl-universal to get started on internationalization.

\n

If you enjoy using this app, consider supporting its development by donating through GitHub Sponsors, Paypal, or Alipay.

\n

Build from source

\n
# Install dependencies\nnpm install\n\n# Compile ts & dependencies\nnpm run build\n\n# Start the application\nnpm run electron\n\n# Generate certificate for signature\nelectron-builder create-self-signed-cert\n# Package the app for Windows\nnpm run package-win\n
\n

Developed with

\n\n

License

\n

BSD

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.914Z" }, "focused-task": { "readmeCleaned": "

Focused Task

\n

\"Focused

\n

MacOS menu bar app that helps you focus on a single task.\nBy splitting it into smaller todos and keeping all related information about it in one place.\nThe app is designed to get out of your way. Everything can be done via a shortcut.

\n

It is built with Electron and uses React and Redux.

\n

\n

🍿 See it in action 🎥

\n

Features

\n\n

Download

\n

👉 Download latest version 👈

\n

Development

\n

Installation

\n

Have yarn installed

\n
./bin/bootstrap\n
\n

Running

\n
yarn dev\n
\n
", "readmeOriginal": "

Focused Task

\n

\"Focused

\n

MacOS menu bar app that helps you focus on a single task.\nBy splitting it into smaller todos and keeping all related information about it in one place.\nThe app is designed to get out of your way. Everything can be done via a shortcut.

\n

It is built with Electron and uses React and Redux.

\n

\n

🍿 See it in action 🎥

\n

Features

\n\n

Download

\n

👉 Download latest version 👈

\n

Development

\n

Installation

\n

Have yarn installed

\n
./bin/bootstrap\n
\n

Running

\n
yarn dev\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:47.918Z" }, "fog": { "readmeCleaned": "

Project Status

\n

The app is considered complete. It fulfils its goal and has (to my knowledge) been stable and bug-free for several years. On Apple Silicon Macs, it is deprecated in favour of the iOS Overcast app. On Intel Macs it should continue to work for the foreseeable future. The repository is archived to denote that breaks due to external forces (such as Electron bugs or Overcast site changes) won’t be proactively addressed.

\n
\n

\"Fog Fog

\n

\"Fog

\n

Unofficial Overcast podcast app.

\n
\n

Control playback with keyboard media keys, even when not the frontmost app.

\n
\n
\n

Navigate episodes with and (or j and k).

\n
\n
\n

Keyboard shortcuts: pauses and resumes; rewinds; fast-forwards; goes back to home; deletes the current episode or podcast; saves the current episode.

\n
\n
\n

“Permalink” opens in default browser.

\n
\n
\n

“Share link” and “Share link with timestamp” copy link directly to the clipboard.

\n
\n
\n

Automatically go back to home when episode ends.

\n
\n
\n

Go to specific episode by giving its URL on the command line.

\n
\n
\n

Tweaked user experience when copying and hovering over links.

\n
\n

\"Fog\"Fog

\n

Install

\n

Download the latest version.

\n

Development

\n

Built with Electron.

\n
Commands
\n\n

Currently, only macOS is supported. I do not intend to officially support other platforms in the near future since I cannot consistently and reliably test on them, but am willing to add support if someone wants to collaborate in doing the legwork.

\n

License

\n

The Unlicense (Public Domain, essentially)

\n
", "readmeOriginal": "

Project Status

\n

The app is considered complete. It fulfils its goal and has (to my knowledge) been stable and bug-free for several years. On Apple Silicon Macs, it is deprecated in favour of the iOS Overcast app. On Intel Macs it should continue to work for the foreseeable future. The repository is archived to denote that breaks due to external forces (such as Electron bugs or Overcast site changes) won’t be proactively addressed.

\n
\n

\"Fog Fog

\n

\"Fog

\n

Unofficial Overcast podcast app.

\n
\n

Control playback with keyboard media keys, even when not the frontmost app.

\n
\n
\n

Navigate episodes with and (or j and k).

\n
\n
\n

Keyboard shortcuts: pauses and resumes; rewinds; fast-forwards; goes back to home; deletes the current episode or podcast; saves the current episode.

\n
\n
\n

“Permalink” opens in default browser.

\n
\n
\n

“Share link” and “Share link with timestamp” copy link directly to the clipboard.

\n
\n
\n

Automatically go back to home when episode ends.

\n
\n
\n

Go to specific episode by giving its URL on the command line.

\n
\n
\n

Tweaked user experience when copying and hovering over links.

\n
\n

\"Fog\"Fog

\n

Install

\n

Download the latest version.

\n

Development

\n

Built with Electron.

\n
Commands
\n\n

Currently, only macOS is supported. I do not intend to officially support other platforms in the near future since I cannot consistently and reliably test on them, but am willing to add support if someone wants to collaborate in doing the legwork.

\n

License

\n

The Unlicense (Public Domain, essentially)

\n
", "readmeFetchedAt": "2022-05-10T00:07:47.962Z" }, "frame": { "readmeCleaned": "

\n
\n \"Frame\"\n
\n
\n F R A M E\n
\n
\n

\n

System-wide Web3 for macOS, Windows and Linux 🎉

\n
\n
\n Features ⁃\n Downloads ⁃\n Related\n
\n
\n

\n

Frame is a native web3 interface that lets you sign data, securely manage accounts and transparently interact with dapps via web3 protocols like Ethereum and IPFS!

\n

Features

\n\n

Talks

\n\n

Downloads

\n\n

Run Source

\n
# Clone\n› git clone https://github.com/floating/frame\n\n# Install\n› npm run setup\n\n# Run\n› npm run prod
\n

On Windows: Run npm install --global --production windows-build-tools as administrator before running the demo. You can find more info about this here: https://github.com/felixrieseberg/windows-build-tools.

\n

On Ubuntu: Run sudo apt-get install build-essential libudev-dev before running the demo.

\n

Build Apps

\n
› npm run bundle # Create app bundle\n› npm run build # Build apps for current platform
\n

Connect to Frame natively

\n

Frame exposes system-wide JSON-RPC endpoints ws://127.0.0.1:1248 and http://127.0.0.1:1248 that you can connect to from any app. We recommend using eth-provider to create a connection const provider = ethProvider('frame') as eth-provider will handle any connection edge cases across browsers and environments

\n

Frame's injected provider

\n

Frame also has a browser extension for injecting a Frame-connected EIP-1193 provider into web apps as window.ethereum. This can be used to inject a connection when an app does not provide the option to connect to Frame natively.

\n

Related

\n\n

\n

\n
\n Website ⁃\n Blog ⁃\n Twitter ⁃\n Chat\n
\n\n
", "readmeOriginal": "

\n
\n \"Frame\"\n
\n
\n F R A M E\n
\n
\n

\n

System-wide Web3 for macOS, Windows and Linux 🎉

\n
\n
\n Features ⁃\n Downloads ⁃\n Related\n
\n
\n

\n

Frame is a native web3 interface that lets you sign data, securely manage accounts and transparently interact with dapps via web3 protocols like Ethereum and IPFS!

\n

Features

\n\n

Talks

\n\n

Downloads

\n\n

Run Source

\n
# Clone\n› git clone https://github.com/floating/frame\n\n# Install\n› npm run setup\n\n# Run\n› npm run prod
\n

On Windows: Run npm install --global --production windows-build-tools as administrator before running the demo. You can find more info about this here: https://github.com/felixrieseberg/windows-build-tools.

\n

On Ubuntu: Run sudo apt-get install build-essential libudev-dev before running the demo.

\n

Build Apps

\n
› npm run bundle # Create app bundle\n› npm run build # Build apps for current platform
\n

Connect to Frame natively

\n

Frame exposes system-wide JSON-RPC endpoints ws://127.0.0.1:1248 and http://127.0.0.1:1248 that you can connect to from any app. We recommend using eth-provider to create a connection const provider = ethProvider('frame') as eth-provider will handle any connection edge cases across browsers and environments

\n

Frame's injected provider

\n

Frame also has a browser extension for injecting a Frame-connected EIP-1193 provider into web apps as window.ethereum. This can be used to inject a connection when an app does not provide the option to connect to Frame natively.

\n

Related

\n\n

\n

\n
\n Website ⁃\n Blog ⁃\n Twitter ⁃\n Chat\n
\n\n
", "readmeFetchedAt": "2022-05-10T00:07:48.081Z" }, "gdevelop": { "readmeCleaned": "

\"GDevelop

\n

GDevelop is a full-featured, no-code, open-source game development software. You can build games for mobile, desktop and the web. GDevelop is fast and easy to use: the game logic is built up using an intuitive and powerful event-based system.

\n

\"The

\n

Getting started

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
I want to...🚀 What to do
Download GDevelop to make gamesGo to GDevelop website to download the app!
Contribute to the editorDownload Node.js and follow this README.
Create/improve an extensionDownload Node.js and follow this README.
Help to translate GDevelopGo on the GDevelop project on Crowdin.
\n
\n

Are you interested in contributing to GDevelop for the first time? Take a look at the list of good first issues, good first contributions or the \"🏐 not too hard\" cards on the Roadmap.

\n
\n

Overview of the architecture

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Directoryℹ️ Description
CoreGDevelop core library, containing common tools to implement the IDE and work with GDevelop games.
GDJSThe game engine, written in TypeScript, using PixiJS (WebGL), powering all GDevelop games.
GDevelop.jsBindings of Core, GDJS and Extensions to JavaScript (with WebAssembly), used by the IDE.
newIDEThe game editor, written in JavaScript with React, Electron and PixiJS.
ExtensionsExtensions for the game engine, providing objects, behaviors, events and new features.
\n

To learn more about GDevelop Architecture, read the architecture overview here.

\n

Pre-generated documentation of the Core library, C++ and TypeScript game engines is available here.

\n

Status of the tests and builds: \"macOS \"Fast \"All \"Windows \"https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg\"

\n

Links

\n

Community

\n\n

Development Roadmap

\n\n

Games made with GDevelop

\n\n

\"Some

\n

License

\n\n

Games exported with GDevelop are based on the GDevelop game engine (see Core and GDJS folders): this engine is distributed under the MIT license so that you can distribute, sell or do anything with the games you created with GDevelop. In particular, you are not forced to make your game open-source.

\n
", "readmeOriginal": "

\"GDevelop

\n

GDevelop is a full-featured, no-code, open-source game development software. You can build games for mobile, desktop and the web. GDevelop is fast and easy to use: the game logic is built up using an intuitive and powerful event-based system.

\n

\"The

\n

Getting started

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
I want to...🚀 What to do
Download GDevelop to make gamesGo to GDevelop website to download the app!
Contribute to the editorDownload Node.js and follow this README.
Create/improve an extensionDownload Node.js and follow this README.
Help to translate GDevelopGo on the GDevelop project on Crowdin.
\n
\n

Are you interested in contributing to GDevelop for the first time? Take a look at the list of good first issues, good first contributions or the \"🏐 not too hard\" cards on the Roadmap.

\n
\n

Overview of the architecture

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Directoryℹ️ Description
CoreGDevelop core library, containing common tools to implement the IDE and work with GDevelop games.
GDJSThe game engine, written in TypeScript, using PixiJS (WebGL), powering all GDevelop games.
GDevelop.jsBindings of Core, GDJS and Extensions to JavaScript (with WebAssembly), used by the IDE.
newIDEThe game editor, written in JavaScript with React, Electron and PixiJS.
ExtensionsExtensions for the game engine, providing objects, behaviors, events and new features.
\n

To learn more about GDevelop Architecture, read the architecture overview here.

\n

Pre-generated documentation of the Core library, C++ and TypeScript game engines is available here.

\n

Status of the tests and builds: \"macOS \"Fast \"All \"Windows \"https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg\"

\n

Links

\n

Community

\n\n

Development Roadmap

\n\n

Games made with GDevelop

\n\n

\"Some

\n

License

\n\n

Games exported with GDevelop are based on the GDevelop game engine (see Core and GDJS folders): this engine is distributed under the MIT license so that you can distribute, sell or do anything with the games you created with GDevelop. In particular, you are not forced to make your game open-source.

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.139Z" }, "gaucho": { "readmeCleaned": "

Gaucho

\n

by @angrykoala
\n\"Build

\n
\n

The Minimalist Task Launcher

\n
\n

Gaucho is an open-source, customizable task launcher to run your apps, commands or scripts.\nConfigure your commands and run them in a non-intrusive interface. Say goodbye to dozens of terminals.\nCheck https://angrykoala.github.io/gaucho/ to get started.

\n

\"Gaucho

\n

As a developer, it is quite common to repeat the same commands over an over. Running an app, starting a server, compiling your code or building a front-end for example. Most of these are just background tasks that just need to be running, or executed from time to time. Typing the command is slow, and having a terminal per task consumes our precious screen real state. Gaucho provides a simple way to de-clutter your screen by bundling all of those tasks in a simple menu to run and stop these, quick, and simple.

\n

Just add a name, type a command as you would in your terminal, set any env variable or path needed and you are good to go!

\n

Features

\n\n

Download

\n

Gaucho is available for Windows, Mac and Linux.\nDownload here

\n

All releases available at https://github.com/angrykoala/gaucho/releases

\n

Gaucho is also available in the Snap store (Linux)

\n

\"Get

\n

If you need a different version, please, follow the development instructions to make your own build from the source code or leave an issue.

\n

Usage

\n
\n

Check the Official docs for the updated documentation

\n
\n

Gaucho allows you to configure tasks that can be grouped in suites. Each task can be configured by providing a name and command. Tasks can be executed independently, or the whole suite can be executed as once.

\n

Creating and Editing tasks

\n

By clicking the Edit button (top right corner). You'll enter the edit mode that allows you to create, delete, update and move tasks

\n

You can add new tasks to the current suite by clicking \"Add New Task\" at the bottom of the list. By clicking on a task name you'll be able to edit that task.

\n

While editing/creating a new tasks, you should add a name to the task and a command. The command can be any shell/terminal accepted command or an executable file. Optionally a path can be added as well, if no path is added, default user path will be used.

\n

The tasks can be deleted by clicking the Delete button. In this mode you can also move tasks (clicking on the drag handle), reorder suites, create suites (+ button), delete and rename suites and tasks (through the context menu)

\n

Development

\n

If you want to contribute to Gaucho, create a new different version of Gaucho, or compile it from source code, follow these instructions.

\n
\n

Check the Official docs for the updated intructions.

\n
\n

Clone/download source code from the GitHub. Make sure you have node and npm already installed in your system:

\n
    \n
  1. npm install to install electron and all the dependencies.
  2. \n
  3. npm run start-dev to run gaucho in dev mode with chrome dev tools enabled.
  4. \n
  5. npm run dist to build and package gaucho for your system. The artifacts are located in dist/.\n
      \n
    • If you encounter a problem while building, please, check Common Issues
    • \n
    \n
  6. \n
  7. npm run dist-all to build and package gaucho for all supported architectures and platforms, it will take a while.\n\n
  8. \n
  9. npm test to run the automated tests.\n
      \n
    • npm run eslint to run eslint to check code style.
    • \n
    • Please, ensure the tests and linter are passing before creating a pull requests. Add tests for your changes.
    • \n
    \n
  10. \n
\n\n

Release to snap (only for collaborators):

\n
    \n
  1. snapcraft login
  2. \n
  3. snapcraft upload Gaucho_0.6.0_amd64.snap --release=stable
  4. \n
\n

Contributing to Docs:

\n

Gaucho Docs can be found at https://angrykoala.github.io/gaucho/.They have been built using Docusaurus.

\n

Instructions:

\n

The docs branch is /docs.Modifications to Docs should be done against /docs branch.

\n

Commands for Development:

\n\n

Folders:

\n\n

Instructions to deploy (only for collaborators):

\n\n

Troubleshooting

\n

Check Troubleshooting Page

\n

Acknowledgments

\n\n

License

\n

Gaucho is being developed and maintained as Open-Source software by @angrykoala (https://github.com/angrykoala) licensed under GNU GENERAL PUBLIC LICENSE version 3

\n

The original source code can be found at: https://github.com/angrykoala/gaucho

\n
\n

You can find more information about Gaucho License here

\n
\n
", "readmeOriginal": "

Gaucho

\n

by @angrykoala
\n\"Build

\n
\n

The Minimalist Task Launcher

\n
\n

Gaucho is an open-source, customizable task launcher to run your apps, commands or scripts.\nConfigure your commands and run them in a non-intrusive interface. Say goodbye to dozens of terminals.\nCheck https://angrykoala.github.io/gaucho/ to get started.

\n

\"Gaucho

\n

As a developer, it is quite common to repeat the same commands over an over. Running an app, starting a server, compiling your code or building a front-end for example. Most of these are just background tasks that just need to be running, or executed from time to time. Typing the command is slow, and having a terminal per task consumes our precious screen real state. Gaucho provides a simple way to de-clutter your screen by bundling all of those tasks in a simple menu to run and stop these, quick, and simple.

\n

Just add a name, type a command as you would in your terminal, set any env variable or path needed and you are good to go!

\n

Features

\n\n

Download

\n

Gaucho is available for Windows, Mac and Linux.\nDownload here

\n

All releases available at https://github.com/angrykoala/gaucho/releases

\n

Gaucho is also available in the Snap store (Linux)

\n

\"Get

\n

If you need a different version, please, follow the development instructions to make your own build from the source code or leave an issue.

\n

Usage

\n
\n

Check the Official docs for the updated documentation

\n
\n

Gaucho allows you to configure tasks that can be grouped in suites. Each task can be configured by providing a name and command. Tasks can be executed independently, or the whole suite can be executed as once.

\n

Creating and Editing tasks

\n

By clicking the Edit button (top right corner). You'll enter the edit mode that allows you to create, delete, update and move tasks

\n

You can add new tasks to the current suite by clicking \"Add New Task\" at the bottom of the list. By clicking on a task name you'll be able to edit that task.

\n

While editing/creating a new tasks, you should add a name to the task and a command. The command can be any shell/terminal accepted command or an executable file. Optionally a path can be added as well, if no path is added, default user path will be used.

\n

The tasks can be deleted by clicking the Delete button. In this mode you can also move tasks (clicking on the drag handle), reorder suites, create suites (+ button), delete and rename suites and tasks (through the context menu)

\n

Development

\n

If you want to contribute to Gaucho, create a new different version of Gaucho, or compile it from source code, follow these instructions.

\n
\n

Check the Official docs for the updated intructions.

\n
\n

Clone/download source code from the GitHub. Make sure you have node and npm already installed in your system:

\n
    \n
  1. npm install to install electron and all the dependencies.
  2. \n
  3. npm run start-dev to run gaucho in dev mode with chrome dev tools enabled.
  4. \n
  5. npm run dist to build and package gaucho for your system. The artifacts are located in dist/.\n
      \n
    • If you encounter a problem while building, please, check Common Issues
    • \n
    \n
  6. \n
  7. npm run dist-all to build and package gaucho for all supported architectures and platforms, it will take a while.\n\n
  8. \n
  9. npm test to run the automated tests.\n
      \n
    • npm run eslint to run eslint to check code style.
    • \n
    • Please, ensure the tests and linter are passing before creating a pull requests. Add tests for your changes.
    • \n
    \n
  10. \n
\n\n

Release to snap (only for collaborators):

\n
    \n
  1. snapcraft login
  2. \n
  3. snapcraft upload Gaucho_0.6.0_amd64.snap --release=stable
  4. \n
\n

Contributing to Docs:

\n

Gaucho Docs can be found at https://angrykoala.github.io/gaucho/.They have been built using Docusaurus.

\n

Instructions:

\n

The docs branch is /docs.Modifications to Docs should be done against /docs branch.

\n

Commands for Development:

\n\n

Folders:

\n\n

Instructions to deploy (only for collaborators):

\n\n

Troubleshooting

\n

Check Troubleshooting Page

\n

Acknowledgments

\n\n

License

\n

Gaucho is being developed and maintained as Open-Source software by @angrykoala (https://github.com/angrykoala) licensed under GNU GENERAL PUBLIC LICENSE version 3

\n

The original source code can be found at: https://github.com/angrykoala/gaucho

\n
\n

You can find more information about Gaucho License here

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:48.205Z" }, "geeks-diary": { "readmeCleaned": "

Geek's Diary

\n

\"Build

\n

Geek's Diary is markdown editor with version control system integrated. It helps programmers to write TIL(Today I Learned).

\n

\"Main

\n

🚀 Beta releases

\n

You can download the installer from Github Releases.

\n

Currently, only macOS is supported. The official version (v1.0.0) will also support Windows.

\n

AutoUpdater is omitted from beta release. When a new version is released, you will need to update it manually.

\n

Features

\n

Mix markdown with code

\n

\"gd1\"

\n

A note in Geek's Diary is comprised of snippets (markdown, code). You can freely mix different snippet types within one note.

\n

Categorize your note with development stack

\n

\"gd2\"

\n

Geek's Diary is for programmers. You can categorize your note with numerous development stacks (from konpa/devicon).

\n

Contribute measurement

\n

\"gd3\"

\n

Geek's Diary measures contribution with commit counts in a day. You can look your contribution level with grass UI in calendar. Similar with github!

\n

Version Control System integrated

\n

\"gd4\"

\n

Control your version with powerful VCS -- We currently supports git. Geek's Diary tracks your file changes from workspace, and you can committed it.

\n

Sync with remote repository

\n

\"gd5\"

\n

Thanks to the integration of the version control system, you can sync your workspace with remote repository. Log in to github and sync your TILs.

\n

Plan

\n

These are v1.0.0 features.

\n\n

Development

\n

Requirements

\n\n

Project setup

\n

Fork the project on GitHub and clone your fork locally.

\n
git clone git@github.com:username/geeks-diary.git\ncd geeks-diary\n\ngit remote add upstream https://github.com/seokju-na/geeks-diary.git\ngit fetch upstream\n\nyarn install
\n

Starting

\n
yarn serve:browser:app\nyarn serve:browser:wizard\nyarn serve:main-process\n\n// After build completed.\n\nyarn start
\n

Test

\n
yarn test
\n

Contributing

\n

❤️ Thanks for your interest!

\n

If you have suggestions for how this project could be improved, or want to report a bug, open an issue! We'd love all and any contributions. If you have questions, too, we'd love to hear them.

\n

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

\n

License

\n

MIT Licensed

\n
", "readmeOriginal": "

Geek's Diary

\n

\"Build

\n

Geek's Diary is markdown editor with version control system integrated. It helps programmers to write TIL(Today I Learned).

\n

\"Main

\n

🚀 Beta releases

\n

You can download the installer from Github Releases.

\n

Currently, only macOS is supported. The official version (v1.0.0) will also support Windows.

\n

AutoUpdater is omitted from beta release. When a new version is released, you will need to update it manually.

\n

Features

\n

Mix markdown with code

\n

\"gd1\"

\n

A note in Geek's Diary is comprised of snippets (markdown, code). You can freely mix different snippet types within one note.

\n

Categorize your note with development stack

\n

\"gd2\"

\n

Geek's Diary is for programmers. You can categorize your note with numerous development stacks (from konpa/devicon).

\n

Contribute measurement

\n

\"gd3\"

\n

Geek's Diary measures contribution with commit counts in a day. You can look your contribution level with grass UI in calendar. Similar with github!

\n

Version Control System integrated

\n

\"gd4\"

\n

Control your version with powerful VCS -- We currently supports git. Geek's Diary tracks your file changes from workspace, and you can committed it.

\n

Sync with remote repository

\n

\"gd5\"

\n

Thanks to the integration of the version control system, you can sync your workspace with remote repository. Log in to github and sync your TILs.

\n

Plan

\n

These are v1.0.0 features.

\n\n

Development

\n

Requirements

\n\n

Project setup

\n

Fork the project on GitHub and clone your fork locally.

\n
git clone git@github.com:username/geeks-diary.git\ncd geeks-diary\n\ngit remote add upstream https://github.com/seokju-na/geeks-diary.git\ngit fetch upstream\n\nyarn install
\n

Starting

\n
yarn serve:browser:app\nyarn serve:browser:wizard\nyarn serve:main-process\n\n// After build completed.\n\nyarn start
\n

Test

\n
yarn test
\n

Contributing

\n

❤️ Thanks for your interest!

\n

If you have suggestions for how this project could be improved, or want to report a bug, open an issue! We'd love all and any contributions. If you have questions, too, we'd love to hear them.

\n

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

\n

License

\n

MIT Licensed

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.274Z" }, "geniemoji": { "readmeCleaned": "

\"Github\n\"GitHub\n\"GitHub\n\"PRs\n\"Open

\n

\"Geniemoji

\n

Geniemoji 🧞‍♂️

\n

The Emoji Genie

\n

What is Geniemoji?

\n

Geniemoji is an app that makes using emojis on desktop simpler than ever
\nIt works on operating systems including Windows, MacOS, and Linux!
\nIt is an open source, desktop app built using Electron
\nIts purpose is to serve you with the most relevant emojis based on your command!

\n

How does it work?

\n\n

This is Geniemoji 🧞‍♂️

\n

\"Geniemoji

\n
\n

Geniemoji lives in your menu bar 👆

\n
\n

\"Geniemoji

\n
\n

Geniemoji start page 👆

\n
\n

\"Geniemoji

\n
\n

Geniemoji emoji search 👆

\n
\n

\"Geniemoji

\n
\n

Geniemoji emoji search 👆

\n
\n

Using the app

\n\n

Check out Geniemoji on YouTube here

\n

Publication(s)

\n\n
", "readmeOriginal": "

\"Github\n\"GitHub\n\"GitHub\n\"PRs\n\"Open

\n

\"Geniemoji

\n

Geniemoji 🧞‍♂️

\n

The Emoji Genie

\n

What is Geniemoji?

\n

Geniemoji is an app that makes using emojis on desktop simpler than ever
\nIt works on operating systems including Windows, MacOS, and Linux!
\nIt is an open source, desktop app built using Electron
\nIts purpose is to serve you with the most relevant emojis based on your command!

\n

How does it work?

\n\n

This is Geniemoji 🧞‍♂️

\n

\"Geniemoji

\n
\n

Geniemoji lives in your menu bar 👆

\n
\n

\"Geniemoji

\n
\n

Geniemoji start page 👆

\n
\n

\"Geniemoji

\n
\n

Geniemoji emoji search 👆

\n
\n

\"Geniemoji

\n
\n

Geniemoji emoji search 👆

\n
\n

Using the app

\n\n

Check out Geniemoji on YouTube here

\n

Publication(s)

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:48.309Z" }, "geppetto": { "readmeCleaned": "

Geppetto

\n

\"Geppetto

\n

Geppetto is a free and open animation tool to create and embed webGL animations in a web site. This is the repository for the browser app to create the animations.

\n\n

Geppetto - NEXT

\n

This is the branch for the Geppetto Studio 'next' where the studio application will be turned into a PWA, saying goodbye to the electron app. For the electron app version, check the main branch.

\n

What is Geppetto?

\n

Geppetto consists of two parts. A web application to define animated images, and a JavaScript library to play them.

\n

How does it work?

\n

You need to create a texture file as .PNG. in Geppetto you will make layers from your texture, and compose them into your image. Next step is to add mutations to your layer tree to create motion. You can then create timelines to define multiple animations.

\n

These animations (the created .json file and your texture .png) can then be loaded using the geppetto player and embedded in a website or electron app.

\n

\"Screenshot:

\n

Available Scripts

\n

Yarn scripts to get started with this repo:

\n\n

Learn More

\n

You can learn more in the Create React App documentation.

\n

To learn React, check out the React documentation.

\n

Special thanks

\n\n

License

\n

MIT (c) Matthijs Groen

\n
", "readmeOriginal": "

Geppetto

\n

\"Geppetto

\n

Geppetto is a free and open animation tool to create and embed webGL animations in a web site. This is the repository for the browser app to create the animations.

\n\n

Geppetto - NEXT

\n

This is the branch for the Geppetto Studio 'next' where the studio application will be turned into a PWA, saying goodbye to the electron app. For the electron app version, check the main branch.

\n

What is Geppetto?

\n

Geppetto consists of two parts. A web application to define animated images, and a JavaScript library to play them.

\n

How does it work?

\n

You need to create a texture file as .PNG. in Geppetto you will make layers from your texture, and compose them into your image. Next step is to add mutations to your layer tree to create motion. You can then create timelines to define multiple animations.

\n

These animations (the created .json file and your texture .png) can then be loaded using the geppetto player and embedded in a website or electron app.

\n

\"Screenshot:

\n

Available Scripts

\n

Yarn scripts to get started with this repo:

\n\n

Learn More

\n

You can learn more in the Create React App documentation.

\n

To learn React, check out the React documentation.

\n

Special thanks

\n\n

License

\n

MIT (c) Matthijs Groen

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.383Z" }, "git-it": { "readmeCleaned": "

Git-it (Desktop App)

\n

\"Build\"\n\"js-standard-style\"\n\"Translations

\n

\"The\nGit-it is a desktop (Mac, Windows and Linux) app that teaches you how to use Git and GitHub on the command line.

\n

🚩The app includes translations in several languages: English, German, Spanish, French, Japanese, Korean, Kurdish, Polish, Portuguese, Ukrainian and traditional Chinese. 🚩\nDue to Code-Changes on handling translations, some translations are currently not visible as translated. The translations still need to be copied over to transifex, contributions are welcome! (see section 'Translations' and #77)

\n

The app was originally created by Jessica Lord (jlord) and it's current state is still strongly dependent on her Repositories and the operation of Reporobot on her servers. As the app seemed to be unmaintained, i (jotoeri) took it over and moved it to this organisation to update dependencies and content. It would just have been a pity to see such a great tutorial die. However, I would appreciate if Jessica wants to keep up this work together.

\n
\n

Hello future Forkers, Branchers and Pull Requesters!

\n

This application contains challenges for learning Git and GitHub—by using real Git and GitHub, not emulators. You'll be learning the awesome (and not so scary) command line and GitHub which means when you finish all of the challenges you'll have real repositories on your GitHub account and green squares on your contribution chart.

\n

\"contributions\"

\n

What to Install

\n

You will need this app, Git-it as well as a text editor. You'll also of course need Git and the first challenge in Git-it helps you get that set up. But if you want to get a head start, go for it! You'll continue to use Git and your text editor throughout your bright social coding future.

\n

As a part of the challenges you'll also create a (free) account on GitHub. If you've already got one, high-five!

\n

Git

\n

We recommend installing Git on your computer by installing the latest version from the Git website.

\n

Note—If you're using Windows, you should use the Git Shell app as your terminal—it is installed with Git. In Mac and Linux you can use the app Terminal, which is already on your computer.

\n

Text Editor

\n

I'm quite partial (I'm on the team!) but Atom is a great text editor (also free) and it is built on Electron.js, just like Git-it. Visit the website and download the version for your operating system. Sublime, Microsoft VS Code and Adobe Brackets are other options.

\n

Git-it

\n

You can view the releases section of this repository to find the download for your operating system. Click to download your version. Once it has downloaded to your default Downloads directory, unzip the folder and run the Git-it executable. The executables for Mac, Windows and Linux:

\n

\"executables\"

\n\n

Get Started!

\n

Open Git-it and click the button to begin the first challenge. Have your terminal and text editor open, too. Follow along with the instructions in each challenge and use the terminal or editor as instructed.

\n

When you've completed the steps in a challenge click 'Verify'. Depending on the challenge you may need to also select the folder you did your work in for Git-it to verify.

\n

Questions? Open an issue on this repository.

\n

Want to contribute or build locally? See the contributing documentation

\n
\n

Tips For Getting Started

\n

Code snippets often times look like $ some code-stuff --here. The dollar sign identifies the line as one a user would enter into the command line, but you don't actually include it when you type it into terminal. In this case, you'd actually just type some code-stuff --here.

\n

Variables are indicated by <VARIABLENAME> in code snippets. When you actually use the line of code, replace <VARIABLENAME>, with your variable. For instance to make a new folder in terminal the format is, mkdir <FOLDERNAME>, so if you wanted to make a folder named 'octocat', you'd type: mkdir octocat.

\n

Command line, terminal and bash all basically mean the same thing: the MS-DOS, Doogie Howser looking screen full of words and numbers. It's awesomely powerful and allows you to control your computer with text commands.

\n

You can do a lot of things from your terminal like delete, rename, copy or create files and folders; run scripts and send things back and forth between servers (like the ones storing things on GitHub.com) and your computer (also a server!).

\n

Translations

\n

You found some english text on the translated content? That might happen, if we changed some content on the english base but the appropriate translation is still missing. We are happy on every contribution, so feel free to head over to the Transifex Project to insert the right translations there! The next release will then be a bit more complete! ☺️🎉

\n
", "readmeOriginal": "

Git-it (Desktop App)

\n

\"Build\"\n\"js-standard-style\"\n\"Translations

\n

\"The\nGit-it is a desktop (Mac, Windows and Linux) app that teaches you how to use Git and GitHub on the command line.

\n

🚩The app includes translations in several languages: English, German, Spanish, French, Japanese, Korean, Kurdish, Polish, Portuguese, Ukrainian and traditional Chinese. 🚩\nDue to Code-Changes on handling translations, some translations are currently not visible as translated. The translations still need to be copied over to transifex, contributions are welcome! (see section 'Translations' and #77)

\n

The app was originally created by Jessica Lord (jlord) and it's current state is still strongly dependent on her Repositories and the operation of Reporobot on her servers. As the app seemed to be unmaintained, i (jotoeri) took it over and moved it to this organisation to update dependencies and content. It would just have been a pity to see such a great tutorial die. However, I would appreciate if Jessica wants to keep up this work together.

\n
\n

Hello future Forkers, Branchers and Pull Requesters!

\n

This application contains challenges for learning Git and GitHub—by using real Git and GitHub, not emulators. You'll be learning the awesome (and not so scary) command line and GitHub which means when you finish all of the challenges you'll have real repositories on your GitHub account and green squares on your contribution chart.

\n

\"contributions\"

\n

What to Install

\n

You will need this app, Git-it as well as a text editor. You'll also of course need Git and the first challenge in Git-it helps you get that set up. But if you want to get a head start, go for it! You'll continue to use Git and your text editor throughout your bright social coding future.

\n

As a part of the challenges you'll also create a (free) account on GitHub. If you've already got one, high-five!

\n

Git

\n

We recommend installing Git on your computer by installing the latest version from the Git website.

\n

Note—If you're using Windows, you should use the Git Shell app as your terminal—it is installed with Git. In Mac and Linux you can use the app Terminal, which is already on your computer.

\n

Text Editor

\n

I'm quite partial (I'm on the team!) but Atom is a great text editor (also free) and it is built on Electron.js, just like Git-it. Visit the website and download the version for your operating system. Sublime, Microsoft VS Code and Adobe Brackets are other options.

\n

Git-it

\n

You can view the releases section of this repository to find the download for your operating system. Click to download your version. Once it has downloaded to your default Downloads directory, unzip the folder and run the Git-it executable. The executables for Mac, Windows and Linux:

\n

\"executables\"

\n\n

Get Started!

\n

Open Git-it and click the button to begin the first challenge. Have your terminal and text editor open, too. Follow along with the instructions in each challenge and use the terminal or editor as instructed.

\n

When you've completed the steps in a challenge click 'Verify'. Depending on the challenge you may need to also select the folder you did your work in for Git-it to verify.

\n

Questions? Open an issue on this repository.

\n

Want to contribute or build locally? See the contributing documentation

\n
\n

Tips For Getting Started

\n

Code snippets often times look like $ some code-stuff --here. The dollar sign identifies the line as one a user would enter into the command line, but you don't actually include it when you type it into terminal. In this case, you'd actually just type some code-stuff --here.

\n

Variables are indicated by <VARIABLENAME> in code snippets. When you actually use the line of code, replace <VARIABLENAME>, with your variable. For instance to make a new folder in terminal the format is, mkdir <FOLDERNAME>, so if you wanted to make a folder named 'octocat', you'd type: mkdir octocat.

\n

Command line, terminal and bash all basically mean the same thing: the MS-DOS, Doogie Howser looking screen full of words and numbers. It's awesomely powerful and allows you to control your computer with text commands.

\n

You can do a lot of things from your terminal like delete, rename, copy or create files and folders; run scripts and send things back and forth between servers (like the ones storing things on GitHub.com) and your computer (also a server!).

\n

Translations

\n

You found some english text on the translated content? That might happen, if we changed some content on the english base but the appropriate translation is still missing. We are happy on every contribution, so feel free to head over to the Transifex Project to insert the right translations there! The next release will then be a bit more complete! ☺️🎉

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.471Z" }, "githoard": { "readmeCleaned": "
\n\"GitHoard\"\n
\n

\nGitHoard\n

\n

\nHoard git repositories with ease\n

\n

\n

\"Build/release\"

\n

\n

Overview

\n

The goal of GitHoard is to trivialize cloning repositories for future offline review.

\n

Often, the process of copy & pasting a repository to the command line breaks focus and flow, and other Git GUI's perpetuate this problem by requiring the selecting of a directory before starting the clone process.

\n

GitHoard solves this by overriding the HTTP protocols associated with GitHub (github-mac:// and github-win://) and Sourcetree (sourcetree://) as well as creating a new protocol (githoard://) then automatically cloning when a link using that protocol is clicked.

\n

Download

\n

Download the latest version from the releases page.

\n

Demo

\n

Install

\n

\"\"

\n

Get Addon

\n

\"\"

\n

See Changes

\n

\"\"

\n

Locate

\n

\"\"

\n

Destroy

\n

\"\"

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# serve with hot reload at localhost:9080\nnpm run electron:serve\n\n# build electron application for production\nnpm run electron:build\n\n\n# run unit & end-to-end tests\nnpm run test:unit\n\n# lint all JS/Vue component files in `src/`\nnpm run lint\n
\n

Related

\n

Want to clone stuff even quicker? Check out our Firefox browser addon

\n\n

Thanks & Love go out to

\n\n

License

\n

MIT

\n

Copyright © 2016-present, Beep Boop Bang Bang LLC

\n

GitHoard logo created by Beep Boop Bang Bang LLC.\nMakes use of Git Logo by Jason Long which is licensed under the Creative Commons Attribution 3.0 Unported License.\nSee https://git-scm.com/downloads/logos

\n
", "readmeOriginal": "
\n\"GitHoard\"\n
\n

\nGitHoard\n

\n

\nHoard git repositories with ease\n

\n

\n

\"Build/release\"

\n

\n

Overview

\n

The goal of GitHoard is to trivialize cloning repositories for future offline review.

\n

Often, the process of copy & pasting a repository to the command line breaks focus and flow, and other Git GUI's perpetuate this problem by requiring the selecting of a directory before starting the clone process.

\n

GitHoard solves this by overriding the HTTP protocols associated with GitHub (github-mac:// and github-win://) and Sourcetree (sourcetree://) as well as creating a new protocol (githoard://) then automatically cloning when a link using that protocol is clicked.

\n

Download

\n

Download the latest version from the releases page.

\n

Demo

\n

Install

\n

\"\"

\n

Get Addon

\n

\"\"

\n

See Changes

\n

\"\"

\n

Locate

\n

\"\"

\n

Destroy

\n

\"\"

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# serve with hot reload at localhost:9080\nnpm run electron:serve\n\n# build electron application for production\nnpm run electron:build\n\n\n# run unit & end-to-end tests\nnpm run test:unit\n\n# lint all JS/Vue component files in `src/`\nnpm run lint\n
\n

Related

\n

Want to clone stuff even quicker? Check out our Firefox browser addon

\n\n

Thanks & Love go out to

\n\n

License

\n

MIT

\n

Copyright © 2016-present, Beep Boop Bang Bang LLC

\n

GitHoard logo created by Beep Boop Bang Bang LLC.\nMakes use of Git Logo by Jason Long which is licensed under the Creative Commons Attribution 3.0 Unported License.\nSee https://git-scm.com/downloads/logos

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.534Z" }, "github-desktop": { "readmeCleaned": "

GitHub Desktop

\n

GitHub Desktop is an open source Electron-based\nGitHub app. It is written in TypeScript and\nuses React.

\n

\"GitHub

\n

Where can I get it?

\n

Download the official installer for your operating system:

\n\n

You can install this alongside your existing GitHub Desktop for Mac or GitHub\nDesktop for Windows application.

\n

Linux is not officially supported; however, you can find installers created for Linux from a fork of GitHub Desktop in the Community Releases section.

\n

NOTE: There is no current migration path to import your existing\nrepositories into the new application - you can drag-and-drop your repositories\nfrom disk onto the application to get started.

\n

Beta Channel

\n

Want to test out new features and get fixes before everyone else? Install the\nbeta channel to get access to early builds of Desktop:

\n\n

The release notes for the latest beta versions are available here.

\n

Community Releases

\n

There are several community-supported package managers that can be used to\ninstall GitHub Desktop:

\n\n

Installers for various Linux distributions can be found on the\nshiftkey/desktop fork.

\n

Arch Linux users can install the latest version from the\nAUR.

\n

Is GitHub Desktop right for me? What are the primary areas of focus?

\n

This document describes the focus of GitHub Desktop and who the product is most useful for.

\n

And to see what the team is working on currently and in the near future, check out the GitHub Desktop roadmap.

\n

I have a problem with GitHub Desktop

\n

Note: The GitHub Desktop Code of Conduct applies in all interactions relating to the GitHub Desktop project.

\n

First, please search the open issues\nand closed issues\nto see if your issue hasn't already been reported (it may also be fixed).

\n

There is also a list of known issues\nthat are being tracked against Desktop, and some of these issues have workarounds.

\n

If you can't find an issue that matches what you're seeing, open a new issue,\nchoose the right template and provide us with enough information to investigate\nfurther.

\n

The issue I reported isn't fixed yet. What can I do?

\n

If nobody has responded to your issue in a few days, you're welcome to respond to it with a friendly ping in the issue. Please do not respond more than a second time if nobody has responded. The GitHub Desktop maintainers are constrained in time and resources, and diagnosing individual configurations can be difficult and time consuming. While we'll try to at least get you pointed in the right direction, we can't guarantee we'll be able to dig too deeply into any one person's issue.

\n

How can I contribute to GitHub Desktop?

\n

The CONTRIBUTING.md document will help you get setup and\nfamiliar with the source. The documentation folder also contains more\nresources relevant to the project.

\n

If you're looking for something to work on, check out the help wanted label.

\n

More Resources

\n

See desktop.github.com for more product-oriented\ninformation about GitHub Desktop.

\n

See our getting started documentation for more information on how to set up, authenticate, and configure GitHub Desktop.

\n

License

\n

MIT

\n

The MIT license grant is not for GitHub's trademarks, which include the logo\ndesigns. GitHub reserves all trademark and copyright rights in and to all\nGitHub trademarks. GitHub's logos include, for instance, the stylized\nInvertocat designs that include \"logo\" in the file title in the following\nfolder: logos.

\n

GitHub® and its stylized versions and the Invertocat mark are GitHub's\nTrademarks or registered Trademarks. When using GitHub's logos, be sure to\nfollow the GitHub logo guidelines.

\n
", "readmeOriginal": "

GitHub Desktop

\n

GitHub Desktop is an open source Electron-based\nGitHub app. It is written in TypeScript and\nuses React.

\n

\"GitHub

\n

Where can I get it?

\n

Download the official installer for your operating system:

\n\n

You can install this alongside your existing GitHub Desktop for Mac or GitHub\nDesktop for Windows application.

\n

Linux is not officially supported; however, you can find installers created for Linux from a fork of GitHub Desktop in the Community Releases section.

\n

NOTE: There is no current migration path to import your existing\nrepositories into the new application - you can drag-and-drop your repositories\nfrom disk onto the application to get started.

\n

Beta Channel

\n

Want to test out new features and get fixes before everyone else? Install the\nbeta channel to get access to early builds of Desktop:

\n\n

The release notes for the latest beta versions are available here.

\n

Community Releases

\n

There are several community-supported package managers that can be used to\ninstall GitHub Desktop:

\n\n

Installers for various Linux distributions can be found on the\nshiftkey/desktop fork.

\n

Arch Linux users can install the latest version from the\nAUR.

\n

Is GitHub Desktop right for me? What are the primary areas of focus?

\n

This document describes the focus of GitHub Desktop and who the product is most useful for.

\n

And to see what the team is working on currently and in the near future, check out the GitHub Desktop roadmap.

\n

I have a problem with GitHub Desktop

\n

Note: The GitHub Desktop Code of Conduct applies in all interactions relating to the GitHub Desktop project.

\n

First, please search the open issues\nand closed issues\nto see if your issue hasn't already been reported (it may also be fixed).

\n

There is also a list of known issues\nthat are being tracked against Desktop, and some of these issues have workarounds.

\n

If you can't find an issue that matches what you're seeing, open a new issue,\nchoose the right template and provide us with enough information to investigate\nfurther.

\n

The issue I reported isn't fixed yet. What can I do?

\n

If nobody has responded to your issue in a few days, you're welcome to respond to it with a friendly ping in the issue. Please do not respond more than a second time if nobody has responded. The GitHub Desktop maintainers are constrained in time and resources, and diagnosing individual configurations can be difficult and time consuming. While we'll try to at least get you pointed in the right direction, we can't guarantee we'll be able to dig too deeply into any one person's issue.

\n

How can I contribute to GitHub Desktop?

\n

The CONTRIBUTING.md document will help you get setup and\nfamiliar with the source. The documentation folder also contains more\nresources relevant to the project.

\n

If you're looking for something to work on, check out the help wanted label.

\n

More Resources

\n

See desktop.github.com for more product-oriented\ninformation about GitHub Desktop.

\n

See our getting started documentation for more information on how to set up, authenticate, and configure GitHub Desktop.

\n

License

\n

MIT

\n

The MIT license grant is not for GitHub's trademarks, which include the logo\ndesigns. GitHub reserves all trademark and copyright rights in and to all\nGitHub trademarks. GitHub's logos include, for instance, the stylized\nInvertocat designs that include \"logo\" in the file title in the following\nfolder: logos.

\n

GitHub® and its stylized versions and the Invertocat mark are GitHub's\nTrademarks or registered Trademarks. When using GitHub's logos, be sure to\nfollow the GitHub logo guidelines.

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.544Z" }, "gitify": { "readmeCleaned": "

Gitify \"github\" \"codecov\" \"downloads\"

\n
\n

GitHub Notifications on your menu bar. Available on macOS, Windows and Linux. Gitify Mobile has been deprecated in favour of the official GitHub mobile app.

\n
\n

\"Gitify\"

\n

Download

\n

You can download Gitify for free from the website www.gitify.io or install it via Homebrew Cask.

\n
brew install --cask gitify
\n

Gitify supports macOS, Windows and Linux.

\n

Prerequisites & Libraries

\n\n

Installation

\n
yarn install\n
\n

Development

\n

Optional: If you prefer to use your own OAuth credentials, you can do so by passing them as environment variables when bundling the app. This is optional as the app has some default \"development\" keys (use at your own discretion).

\n
OAUTH_CLIENT_ID=\"123\" OAUTH_CLIENT_SECRET=\"456789\" yarn build\n
\n

To watch for changes(webpack) in the src directory:

\n
yarn run watch\n
\n

To run the electron app:

\n
yarn start\n
\n

Releases

\n

The release process is automated. Follow the steps below.

\n
    \n
  1. Create a new draft release. Set the tag version to something with the format of v1.2.3. Save as a draft.
  2. \n
  3. Once everything is merged to main, create a branch that starts with release/vX.X.X (ie. release/v1.2.3).
  4. \n
  5. In the same branch, bump the version of the app in the package.json file and open a PR. GitHub Actions will build, sign and upload the release assets for each commit to that branch as long as a branch is named like release/vX.X.X and there is a draft release with the same version number(package.json).
  6. \n
  7. Merge your release branch into main.
  8. \n
  9. Publish the draft release once you've added notes to it and all assets are there.
  10. \n
\n

Tests

\n

There are 2 checks - one for prettier and one for the unit tests with jest.

\n
// Run prettier to check\nyarn run prettier:check\n\n// Run linter & unit tests with coverage\nyarn run test\n\n// Run jest directly - allows to pass arguments like `--watch`\nyarn run jest\n
\n

FAQ

\n

My notifications aren't showing?

\n

Some organisations require applications to request access before allowing access to any data (including notifications) about their repositories.

\n

To check if Gitify is approved by your organisation you can go to https://github.com/settings/applications, then click on Gitify and scroll to Organization access.

\n

Something looks wrong - How can I debug?

\n

You can debug Gitify by pressing alt + command + I. This will open the dev tools and then you can see any logs, network requests etc.

\n

Contributing

\n
    \n
  1. Fork it!
  2. \n
  3. Create your feature branch: git checkout -b my-new-feature
  4. \n
  5. Commit your changes: git commit -am 'Add some feature'
  6. \n
  7. Push to the branch: git push origin my-new-feature
  8. \n
  9. Submit a pull request
  10. \n
  11. Make sure tests are passing
  12. \n
\n

License

\n

Gitify is licensed under the MIT Open Source license. For more information, see the LICENSE file in this repository.

\n
", "readmeOriginal": "

Gitify \"github\" \"codecov\" \"downloads\"

\n
\n

GitHub Notifications on your menu bar. Available on macOS, Windows and Linux. Gitify Mobile has been deprecated in favour of the official GitHub mobile app.

\n
\n

\"Gitify\"

\n

Download

\n

You can download Gitify for free from the website www.gitify.io or install it via Homebrew Cask.

\n
brew install --cask gitify
\n

Gitify supports macOS, Windows and Linux.

\n

Prerequisites & Libraries

\n\n

Installation

\n
yarn install\n
\n

Development

\n

Optional: If you prefer to use your own OAuth credentials, you can do so by passing them as environment variables when bundling the app. This is optional as the app has some default \"development\" keys (use at your own discretion).

\n
OAUTH_CLIENT_ID=\"123\" OAUTH_CLIENT_SECRET=\"456789\" yarn build\n
\n

To watch for changes(webpack) in the src directory:

\n
yarn run watch\n
\n

To run the electron app:

\n
yarn start\n
\n

Releases

\n

The release process is automated. Follow the steps below.

\n
    \n
  1. Create a new draft release. Set the tag version to something with the format of v1.2.3. Save as a draft.
  2. \n
  3. Once everything is merged to main, create a branch that starts with release/vX.X.X (ie. release/v1.2.3).
  4. \n
  5. In the same branch, bump the version of the app in the package.json file and open a PR. GitHub Actions will build, sign and upload the release assets for each commit to that branch as long as a branch is named like release/vX.X.X and there is a draft release with the same version number(package.json).
  6. \n
  7. Merge your release branch into main.
  8. \n
  9. Publish the draft release once you've added notes to it and all assets are there.
  10. \n
\n

Tests

\n

There are 2 checks - one for prettier and one for the unit tests with jest.

\n
// Run prettier to check\nyarn run prettier:check\n\n// Run linter & unit tests with coverage\nyarn run test\n\n// Run jest directly - allows to pass arguments like `--watch`\nyarn run jest\n
\n

FAQ

\n

My notifications aren't showing?

\n

Some organisations require applications to request access before allowing access to any data (including notifications) about their repositories.

\n

To check if Gitify is approved by your organisation you can go to https://github.com/settings/applications, then click on Gitify and scroll to Organization access.

\n

Something looks wrong - How can I debug?

\n

You can debug Gitify by pressing alt + command + I. This will open the dev tools and then you can see any logs, network requests etc.

\n

Contributing

\n
    \n
  1. Fork it!
  2. \n
  3. Create your feature branch: git checkout -b my-new-feature
  4. \n
  5. Commit your changes: git commit -am 'Add some feature'
  6. \n
  7. Push to the branch: git push origin my-new-feature
  8. \n
  9. Submit a pull request
  10. \n
  11. Make sure tests are passing
  12. \n
\n

License

\n

Gitify is licensed under the MIT Open Source license. For more information, see the LICENSE file in this repository.

\n
", "readmeFetchedAt": "2022-05-10T00:07:48.668Z" }, "gitmoji": { "readmeCleaned": "

\n\t\n\t\t\"gitmoji\"\n\t\n

\n

\n\t\n\t\t\"Build\n\t\n\t\n\t\t\"Gitmoji\"\n\t\n

\n

About

\n

Gitmoji is an initiative to standardize and explain the use of emojis on GitHub commit messages.

\n

Using emojis on commit messages provides an easy way of identifying the purpose or intention of a commit with only looking at the emojis used. As there are a lot of different emojis I found the need of creating a guide that can help to use emojis easier.

\n

The gitmojis are published on the following package in order to be used as a dependency 📦.

\n

Using gitmoji-cli

\n

To use gitmojis from your command line install gitmoji-cli. A gitmoji interactive client for using emojis on commit messages.

\n
npm i -g gitmoji-cli
\n

Example of usage

\n

In case you need some ideas to integrate gitmoji in your project, here's a practical way to use it:

\n
[scope?][:?] \">
<intention> [scope?][:?] <message>\n
\n\n

Contributing to gitmoji

\n

Contributing to gitmoji is a piece of 🍰, read the contributing guidelines. You can discuss emojis using the issues section. To add a new emoji to the list create an issue and send a pull request, see how to send a pull request and add a gitmoji.

\n

Spread the word

\n

Are you using Gitmoji on your project? Set the Gitmoji badge on top of your readme using this code:

\n
\n "Gitmoji"\n\">
<a href=\"https://gitmoji.dev\">\n  <img src=\"https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square\" alt=\"Gitmoji\">\n</a>
\n

License

\n

The code is available under the MIT license.

\n
", "readmeOriginal": "

\n\t\n\t\t\"gitmoji\"\n\t\n

\n

\n\t\n\t\t\"Build\n\t\n\t\n\t\t\"Gitmoji\"\n\t\n

\n

About

\n

Gitmoji is an initiative to standardize and explain the use of emojis on GitHub commit messages.

\n

Using emojis on commit messages provides an easy way of identifying the purpose or intention of a commit with only looking at the emojis used. As there are a lot of different emojis I found the need of creating a guide that can help to use emojis easier.

\n

The gitmojis are published on the following package in order to be used as a dependency 📦.

\n

Using gitmoji-cli

\n

To use gitmojis from your command line install gitmoji-cli. A gitmoji interactive client for using emojis on commit messages.

\n
npm i -g gitmoji-cli
\n

Example of usage

\n

In case you need some ideas to integrate gitmoji in your project, here's a practical way to use it:

\n
<intention> [scope?][:?] <message>\n
\n\n

Contributing to gitmoji

\n

Contributing to gitmoji is a piece of 🍰, read the contributing guidelines. You can discuss emojis using the issues section. To add a new emoji to the list create an issue and send a pull request, see how to send a pull request and add a gitmoji.

\n

Spread the word

\n

Are you using Gitmoji on your project? Set the Gitmoji badge on top of your readme using this code:

\n
<a href=\"https://gitmoji.dev\">\n  <img src=\"https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square\" alt=\"Gitmoji\">\n</a>
\n

License

\n

The code is available under the MIT license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:53.651Z" }, "glyphr-studio": { "readmeCleaned": "

Glyphr Studio Desktop

\n

Desktop application for Glyphr Studio built in Electron!

\n

Download

\n

macOS

\n

Download the .dmg file.

\n

Windows 7+

\n

Download the .exe file.

\n

Linux

\n

Download the .AppImage, .deb, or .snap file

\n

How to run from source

\n

Be sure to have Node.js and git installed.

\n

Then:

\n
git clone https://github.com/glyphr-studio/Glyphr-Studio-Desktop.git\ncd Glyphr-Studio-Desktop\nnpm i\nnpm start\n
\n

Build

\n

Builds are constructed with electron-builder.

\n

Be sure to have Node.js and git installed. Linux/Mac users who wish to do builds for Windows will need to have WINE installed. Mac users who wish to do builds for Windows will need to XQuartz installed in order to run WINE. It is recommended that Mac users install both Wine and XQuartz via Homebrew.

\n

First, be sure to run:

\n
git clone https://github.com/glyphr-studio/Glyphr-Studio-Desktop.git\ncd Glyphr-Studio-Desktop\nnpm i\n
\n

Then:

\n

To build package zips use:

\n
npm run pack\n
\n

To build full distributions use:

\n
npm run dist\n
\n

Troubleshooting

\n

Ubuntu users may need to sudo apt install libgconf-2-4 in order to run the app.

\n
", "readmeOriginal": "

Glyphr Studio Desktop

\n

Desktop application for Glyphr Studio built in Electron!

\n

Download

\n

macOS

\n

Download the .dmg file.

\n

Windows 7+

\n

Download the .exe file.

\n

Linux

\n

Download the .AppImage, .deb, or .snap file

\n

How to run from source

\n

Be sure to have Node.js and git installed.

\n

Then:

\n
git clone https://github.com/glyphr-studio/Glyphr-Studio-Desktop.git\ncd Glyphr-Studio-Desktop\nnpm i\nnpm start\n
\n

Build

\n

Builds are constructed with electron-builder.

\n

Be sure to have Node.js and git installed. Linux/Mac users who wish to do builds for Windows will need to have WINE installed. Mac users who wish to do builds for Windows will need to XQuartz installed in order to run WINE. It is recommended that Mac users install both Wine and XQuartz via Homebrew.

\n

First, be sure to run:

\n
git clone https://github.com/glyphr-studio/Glyphr-Studio-Desktop.git\ncd Glyphr-Studio-Desktop\nnpm i\n
\n

Then:

\n

To build package zips use:

\n
npm run pack\n
\n

To build full distributions use:

\n
npm run dist\n
\n

Troubleshooting

\n

Ubuntu users may need to sudo apt install libgconf-2-4 in order to run the app.

\n
", "readmeFetchedAt": "2022-05-10T00:07:53.663Z" }, "glue": { "readmeCleaned": "
\n \n

Glue

\n Data pipeline and automation tool.\n \"Screenshot\"\n
\n

For more information see the website: gluedata.io

\n
", "readmeOriginal": "
\n \n

Glue

\n Data pipeline and automation tool.\n \"Screenshot\"\n
\n

For more information see the website: gluedata.io

\n
", "readmeFetchedAt": "2022-05-10T00:07:53.713Z" }, "google-assistant-unofficial-desktop-client": { "readmeCleaned": "

Google Assistant Unofficial Desktop Client

\n

\"Build\"\n\"Downloads\"\n\"Issues\"\n\"License\"\n\"Top\n\"Last\n\"Commits\n\"Milestone

\n

\"G

\n

Google Assistant Unofficial Desktop Client is a cross-platform desktop client for Google Assistant based on Google Assistant SDK.

\n
\n

Note:

\n

The \"Google Assistant Unofficial Desktop Client\" is under development. So, if you find any bugs or have any suggestion, feel free to post an issue or a pull request.

\n
\n

Inspiration

\n

The design is inspired by Google Assistant in Chrome OS and comes in both Light Mode (beta) and Dark Mode 😉.

\n

\"G

\n

Download

\n

You can build the assistant on your machine if you prefer (see How to Build). If you don't want to build the project for yourself, you can download the Assistant Setup/Installer for the respective platform from here (releases). You can download from other official sources as well.

\n

Windows (using winget)

\n
\n

If you are on Windows 11, chances are you have winget pre-installed.\nIf you are on older version of Windows (Windows 10) and don't have it installed, check out\nInstall Winget\ndocumentation section to learn how to install it.

\n
\n

Stable versions:

\n
winget install "g-assist" -e\">
PS> winget install \"g-assist\" -e
\n

🧪 Preview Versions (Pre-release versions):

\n
winget install "g-assist-preview" -e\">
PS> winget install \"g-assist-preview\" -e
\n

MacOS (using brew)

\n
\n

Visit brew.sh to learn how to install brew if you don't have it\ninstalled on your machine.

\n
\n
$ brew install --cask google-assistant
\n

Linux (using snap)

\n
\n

Some linux distros like Ubuntu, KDE Neon, Manjaro, Zorin OS, etc. come pre-installed with\nsnap. For distros without out-of-the-box support for snaps, visit Installing snapd\ndocumentation page.

\n
\n

Manually download from the Snapstore:

\n

\"Get

\n

Stable versions:

\n
$ sudo snap install g-assist
\n

🧪 Preview versions (Pre-release versions):

\n

If you want to install release candidates:

\n
$ sudo snap install g-assist --candidate
\n

If you want to install beta versions:

\n
$ sudo snap install g-assist --beta
\n

Getting Started

\n

In order to use the client, you must have a \"Key File\" and \"Token\" for authentication which you can get by going through Device Registration process. You can go through the wiki given below to get started.

\n

\"Setup Authentication for Google Assistant Unofficial Desktop Client\" Wiki (For both Device Registration & Authentication help):

\n
\n

https://github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client/wiki/Setup-Authentication-for-Google-Assistant-Unofficial-Desktop-Client

\n
\n

Other References

\n

If you want a user friendly registration method, use Device Registration UI:

\n
\n

https://developers.google.com/assistant/sdk/guides/library/python/embed/config-dev-project-and-account

\n
\n

If you want to use a CLI tool to complete the Device Registration and Authentication process manually, read the following:

\n
\n

https://developers.google.com/assistant/sdk/reference/device-registration/register-device-manual

\n
\n

After you have registered your device and downloaded the required authentication files, you can head on to Settings and set the \"Key File Path\" and \"Saved Tokens Path\" to the location where the respective files are located.

\n

Want to Contribute?

\n

You are more than welcome to contribute to all kinds of contributions:

\n\n

Before you start, we highly recommend you check the Google Assistant Unofficial Desktop Client's contributing guidelines.

\n

Default Keyboard Shortcut

\n\n

Note: Keyboard shortcut is configurable in the settings

\n

Other Libraries Used

\n\n
", "readmeOriginal": "

Google Assistant Unofficial Desktop Client

\n

\"Build\"\n\"Downloads\"\n\"Issues\"\n\"License\"\n\"Top\n\"Last\n\"Commits\n\"Milestone

\n

\"G

\n

Google Assistant Unofficial Desktop Client is a cross-platform desktop client for Google Assistant based on Google Assistant SDK.

\n
\n

Note:

\n

The \"Google Assistant Unofficial Desktop Client\" is under development. So, if you find any bugs or have any suggestion, feel free to post an issue or a pull request.

\n
\n

Inspiration

\n

The design is inspired by Google Assistant in Chrome OS and comes in both Light Mode (beta) and Dark Mode 😉.

\n

\"G

\n

Download

\n

You can build the assistant on your machine if you prefer (see How to Build). If you don't want to build the project for yourself, you can download the Assistant Setup/Installer for the respective platform from here (releases). You can download from other official sources as well.

\n

Windows (using winget)

\n
\n

If you are on Windows 11, chances are you have winget pre-installed.\nIf you are on older version of Windows (Windows 10) and don't have it installed, check out\nInstall Winget\ndocumentation section to learn how to install it.

\n
\n

Stable versions:

\n
PS> winget install \"g-assist\" -e
\n

🧪 Preview Versions (Pre-release versions):

\n
PS> winget install \"g-assist-preview\" -e
\n

MacOS (using brew)

\n
\n

Visit brew.sh to learn how to install brew if you don't have it\ninstalled on your machine.

\n
\n
$ brew install --cask google-assistant
\n

Linux (using snap)

\n
\n

Some linux distros like Ubuntu, KDE Neon, Manjaro, Zorin OS, etc. come pre-installed with\nsnap. For distros without out-of-the-box support for snaps, visit Installing snapd\ndocumentation page.

\n
\n

Manually download from the Snapstore:

\n

\"Get

\n

Stable versions:

\n
$ sudo snap install g-assist
\n

🧪 Preview versions (Pre-release versions):

\n

If you want to install release candidates:

\n
$ sudo snap install g-assist --candidate
\n

If you want to install beta versions:

\n
$ sudo snap install g-assist --beta
\n

Getting Started

\n

In order to use the client, you must have a \"Key File\" and \"Token\" for authentication which you can get by going through Device Registration process. You can go through the wiki given below to get started.

\n

\"Setup Authentication for Google Assistant Unofficial Desktop Client\" Wiki (For both Device Registration & Authentication help):

\n
\n

https://github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client/wiki/Setup-Authentication-for-Google-Assistant-Unofficial-Desktop-Client

\n
\n

Other References

\n

If you want a user friendly registration method, use Device Registration UI:

\n
\n

https://developers.google.com/assistant/sdk/guides/library/python/embed/config-dev-project-and-account

\n
\n

If you want to use a CLI tool to complete the Device Registration and Authentication process manually, read the following:

\n
\n

https://developers.google.com/assistant/sdk/reference/device-registration/register-device-manual

\n
\n

After you have registered your device and downloaded the required authentication files, you can head on to Settings and set the \"Key File Path\" and \"Saved Tokens Path\" to the location where the respective files are located.

\n

Want to Contribute?

\n

You are more than welcome to contribute to all kinds of contributions:

\n\n

Before you start, we highly recommend you check the Google Assistant Unofficial Desktop Client's contributing guidelines.

\n

Default Keyboard Shortcut

\n\n

Note: Keyboard shortcut is configurable in the settings

\n

Other Libraries Used

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:53.751Z" }, "graphiql": { "readmeCleaned": "

GraphiQL.app

\n

\"Build

\n

A light, Electron-based wrapper around GraphiQL.

\n

Provides a tabbed interface for editing and testing GraphQL queries/mutations with GraphiQL.

\n

macOS installation

\n

If you have Homebrew installed on macOS:

\n
brew install --cask graphiql\n
\n

Alternately, download the binary from the Releases tab.

\n

Linux installation

\n

The graphiql-app uses the AppImage format for its Linux version. You download it from the Electron app directory (click the \"Download for Linux\"-button) or from the Releases tab.

\n

Either way, you will get a .AppImage binary. Put it in a safe place and make it executable:

\n
chmod +x graphiql-app-0.7.2-x86_64.AppImage\n
\n

Then simply execute the app. It will ask whether to add shortcuts to your desktop and menus for easy access in the future.

\n

Getting started developing

\n\n
", "readmeOriginal": "

GraphiQL.app

\n

\"Build

\n

A light, Electron-based wrapper around GraphiQL.

\n

Provides a tabbed interface for editing and testing GraphQL queries/mutations with GraphiQL.

\n

macOS installation

\n

If you have Homebrew installed on macOS:

\n
brew install --cask graphiql\n
\n

Alternately, download the binary from the Releases tab.

\n

Linux installation

\n

The graphiql-app uses the AppImage format for its Linux version. You download it from the Electron app directory (click the \"Download for Linux\"-button) or from the Releases tab.

\n

Either way, you will get a .AppImage binary. Put it in a safe place and make it executable:

\n
chmod +x graphiql-app-0.7.2-x86_64.AppImage\n
\n

Then simply execute the app. It will ask whether to add shortcuts to your desktop and menus for easy access in the future.

\n

Getting started developing

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:53.824Z" }, "google-chat-electron": { "readmeCleaned": "

Desktop app for Google Chat

\n

\"latest-tag\"\n\"downloads\"\n\"homebrew\"\n\"release-linux\"\n\"release-mac\"\n\"release-windows\"\n\"snapcraft\"

\n

An unofficial desktop app for Google Chat built\nwith Electron

\n

Motivation

\n\n

Installation (Linux)

\n\n
sudo snap install google-chat-electron\n\n# grant permissions \nsudo snap connect google-chat-electron:home :home\nsudo snap connect google-chat-electron:removable-media :removable-media
\n\n
sudo apt install ~/path/to/google-chat-electron-xxx-amd64.deb
\n\n

Uninstall (Linux)

\n\n
sudo snap remove google-chat-electron
\n

or if installed via debian package

\n
sudo apt-get remove --purge google-chat-electron
\n\n

Installation (Mac)

\n\n

or

\n\n
sudo xattr -rd com.apple.quarantine ~/Applications/google-chat-electron.app
\n\n

Uninstall (Mac)

\n\n

Installation Windows

\n\n
winget install --id=ankurk91.GoogleChatElectron  -e
\n

Supported Platforms

\n

The app should work on all x64 and Apple ARM platforms, but due to lack of time; we test on most popular only.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OS/PlatformVersion
Ubuntu GNOME20.x
Linux Mint Cinnamon20.x
MacOS10.15, 11
Windows7, 10, 11
\n

Major features

\n\n

Acknowledgements

\n\n

Disclaimer

\n

This desktop app is just a wrapper which starts a chromium instance locally and runs the actual web-app in it. All\nrights to the Google Chat product is reserved by\nGoogle Inc.\nThis desktop client has no way to access none of your data.

\n

\"Snap

\n

License

\n

GNU GPLv3 License

\n
", "readmeOriginal": "

Desktop app for Google Chat

\n

\"latest-tag\"\n\"downloads\"\n\"homebrew\"\n\"release-linux\"\n\"release-mac\"\n\"release-windows\"\n\"snapcraft\"

\n

An unofficial desktop app for Google Chat built\nwith Electron

\n

Motivation

\n\n

Installation (Linux)

\n\n
sudo snap install google-chat-electron\n\n# grant permissions \nsudo snap connect google-chat-electron:home :home\nsudo snap connect google-chat-electron:removable-media :removable-media
\n\n
sudo apt install ~/path/to/google-chat-electron-xxx-amd64.deb
\n\n

Uninstall (Linux)

\n\n
sudo snap remove google-chat-electron
\n

or if installed via debian package

\n
sudo apt-get remove --purge google-chat-electron
\n\n

Installation (Mac)

\n\n

or

\n\n
sudo xattr -rd com.apple.quarantine ~/Applications/google-chat-electron.app
\n\n

Uninstall (Mac)

\n\n

Installation Windows

\n\n
winget install --id=ankurk91.GoogleChatElectron  -e
\n

Supported Platforms

\n

The app should work on all x64 and Apple ARM platforms, but due to lack of time; we test on most popular only.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OS/PlatformVersion
Ubuntu GNOME20.x
Linux Mint Cinnamon20.x
MacOS10.15, 11
Windows7, 10, 11
\n

Major features

\n\n

Acknowledgements

\n\n

Disclaimer

\n

This desktop app is just a wrapper which starts a chromium instance locally and runs the actual web-app in it. All\nrights to the Google Chat product is reserved by\nGoogle Inc.\nThis desktop client has no way to access none of your data.

\n

\"Snap

\n

License

\n

GNU GPLv3 License

\n
", "readmeFetchedAt": "2022-05-10T00:07:53.926Z" }, "graviton-editor": { "readmeCleaned": "

\n\t\n\t
\n\tgraviton.netlify.app\n

\n

\"License:\n\"GitHub\n\"Commits\"\n\"GitHub\n\"Open\n\"Discord

\n

Graviton is a Code Editor, for Desktop or as server service (WIP).

\n

See this to run / compile it, by yourself. (There aren't any releases of the new version)

\n

NOTE: Graviton is being rewritten, if you are searching for the old version (v2.3.0) go to this other branch. Learn more about here.

\n

🏥 Rewrite Changes

\n\n

See TODO

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PackageDescriptionVersion
gveditor-coreGraviton core engine\"\"
gveditor-core-apiGraviton API for extensions\"\"
gveditor-core-denoDeno runtime for Graviton extensionsWIP
extensions/gitGraviton Core Git ExtensionWIP
desktopDesktop web-based appWIP
serverHTTP Core + web app servedWIP
@gveditor/webWeb frontend\"\"
@gveditor/languagesLanguage translations\"\"
\n

📑 Goals

\n\n

📣 Community

\n\n

🎁 Donating

\n

Feel free to donate in any way you want, if you want to support this project :)

\n\n

Donators

\n\n

MIT License

\n
", "readmeOriginal": "

\n\t\n\t
\n\tgraviton.netlify.app\n

\n

\"License:\n\"GitHub\n\"Commits\"\n\"GitHub\n\"Open\n\"Discord

\n

Graviton is a Code Editor, for Desktop or as server service (WIP).

\n

See this to run / compile it, by yourself. (There aren't any releases of the new version)

\n

NOTE: Graviton is being rewritten, if you are searching for the old version (v2.3.0) go to this other branch. Learn more about here.

\n

🏥 Rewrite Changes

\n\n

See TODO

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PackageDescriptionVersion
gveditor-coreGraviton core engine\"\"
gveditor-core-apiGraviton API for extensions\"\"
gveditor-core-denoDeno runtime for Graviton extensionsWIP
extensions/gitGraviton Core Git ExtensionWIP
desktopDesktop web-based appWIP
serverHTTP Core + web app servedWIP
@gveditor/webWeb frontend\"\"
@gveditor/languagesLanguage translations\"\"
\n

📑 Goals

\n\n

📣 Community

\n\n

🎁 Donating

\n

Feel free to donate in any way you want, if you want to support this project :)

\n\n

Donators

\n\n

MIT License

\n
", "readmeFetchedAt": "2022-05-10T00:07:53.981Z" }, "gsubs": { "readmeCleaned": "

\n \"gSubs
\n
\n

\n

\n
\n \"banner\"\n
\n

INTRODUCTION
\n

Meet gSubs.
A desktop app that finds you the perfect subtitle match for your videos. Simply download now and drag and drop videos to get started.\n gSubs is multi-platform, open-source, and built entirely on web technology.

\n

Download gSubs

\n

\n \n \n \n \n \n \n

\n

\n
\n

💡 Key Features

\n

The following features made what gSubs is today and many more features will be, hopefully added with the support of great open source community in the future.\n
\n

\n

Drag & Drop

\n

Just drag and drop the video files that you want to search subtitle for and gSubs will do it's job. No more browsing and selecting videos from the mysteries directories that you don't know.

\n

Multiple Files

\n

gSubs supports multiple files input, meaning you can drag and drop as many files as you want and gSubs will find subtitles for each and every file. You have an entire season with dozen of episodes? gSubs gets your subtitles for the entire season in one time.

\n

Search Subtitles

\n

You don't have a video file but just want to donwload your favourite movies or series subtitles? Don't worry, gSubs consists of the search function where you can input any queries for search. gSubs will give you the results according to the language that has been set.

\n

10 Languages

\n

gSubs are capable of finding you subtitles for 10 languages which are English, Español, Français, Italiano, Nederlands, Polski, Português, Român, Svenska and Türkçe. Many more languages will be added soon.

\n

Auto Update

\n

gSubs have auto update feature included in it. This means you don't have to manually download the latest release every time. gSubs downloads and installs the latest release automatically.

\n
\n

⚡️ Contributing

\n

gSubs is completely open-source. If you'd like to help out by adding features, working on bug fixes,\nor assisting in other parts of development, here's how to get started:

\n
To begin working locally:
\n
    \n
  1. Fork this repository to your\nown GitHub account
  2. \n
  3. Clone it to your\nlocal device: git clone git@github.com:sanjevirau/gsubs.git
  4. \n
  5. Install the dependencies: npm install
  6. \n
  7. Run the app by starting electron, building the code and watch for changes:\nnpm start\n
    To build for production (should not generally be used):
    \n
  8. \n
  9. Build the actual app for Windows: npm run dist
  10. \n
  11. gSubs can also be build into Mac and Linux by change the dist script to build -wlm --config in the package.json file and then building the app using npm run dist
  12. \n
\n

We does give you credits for your contributions. Every contributors name will be shown in our contributors page at gSubs Contributors.

\n
\n

📦 Sources

\n

gSubs currently uses 2 sources to gather subtitles. When user drag and drop the video files, gSubs looks into SubDB source first followed by OpenSubtitles source. We hope to add more sources in the future.

\n
Standard sources:
\n\n
\n

🌟 Special Thanks

\n

We would like to thank the following great beings and projects for assisting and giving us the motivation to build gSubs directly or indirectly.

\n\n

and to all the great beings who are helping building great things to make our life easier at GitHub.

\n
\n

Donation

\n

If this project helps you in any way making your life easier, you can give us some donation to get gSubs released in Mac OS and Linux.\n

\n

\n \n

\n
\n

🔑 License

\n

This project is licensed under\nMIT ©\nCholaware

\n
", "readmeOriginal": "

\n \"gSubs
\n
\n

\n

\n
\n \"banner\"\n
\n

INTRODUCTION
\n

Meet gSubs.
A desktop app that finds you the perfect subtitle match for your videos. Simply download now and drag and drop videos to get started.\n gSubs is multi-platform, open-source, and built entirely on web technology.

\n

Download gSubs

\n

\n \n \n \n \n \n \n

\n

\n
\n

💡 Key Features

\n

The following features made what gSubs is today and many more features will be, hopefully added with the support of great open source community in the future.\n
\n

\n

Drag & Drop

\n

Just drag and drop the video files that you want to search subtitle for and gSubs will do it's job. No more browsing and selecting videos from the mysteries directories that you don't know.

\n

Multiple Files

\n

gSubs supports multiple files input, meaning you can drag and drop as many files as you want and gSubs will find subtitles for each and every file. You have an entire season with dozen of episodes? gSubs gets your subtitles for the entire season in one time.

\n

Search Subtitles

\n

You don't have a video file but just want to donwload your favourite movies or series subtitles? Don't worry, gSubs consists of the search function where you can input any queries for search. gSubs will give you the results according to the language that has been set.

\n

10 Languages

\n

gSubs are capable of finding you subtitles for 10 languages which are English, Español, Français, Italiano, Nederlands, Polski, Português, Român, Svenska and Türkçe. Many more languages will be added soon.

\n

Auto Update

\n

gSubs have auto update feature included in it. This means you don't have to manually download the latest release every time. gSubs downloads and installs the latest release automatically.

\n
\n

⚡️ Contributing

\n

gSubs is completely open-source. If you'd like to help out by adding features, working on bug fixes,\nor assisting in other parts of development, here's how to get started:

\n
To begin working locally:
\n
    \n
  1. Fork this repository to your\nown GitHub account
  2. \n
  3. Clone it to your\nlocal device: git clone git@github.com:sanjevirau/gsubs.git
  4. \n
  5. Install the dependencies: npm install
  6. \n
  7. Run the app by starting electron, building the code and watch for changes:\nnpm start\n
    To build for production (should not generally be used):
    \n
  8. \n
  9. Build the actual app for Windows: npm run dist
  10. \n
  11. gSubs can also be build into Mac and Linux by change the dist script to build -wlm --config in the package.json file and then building the app using npm run dist
  12. \n
\n

We does give you credits for your contributions. Every contributors name will be shown in our contributors page at gSubs Contributors.

\n
\n

📦 Sources

\n

gSubs currently uses 2 sources to gather subtitles. When user drag and drop the video files, gSubs looks into SubDB source first followed by OpenSubtitles source. We hope to add more sources in the future.

\n
Standard sources:
\n\n
\n

🌟 Special Thanks

\n

We would like to thank the following great beings and projects for assisting and giving us the motivation to build gSubs directly or indirectly.

\n\n

and to all the great beings who are helping building great things to make our life easier at GitHub.

\n
\n

Donation

\n

If this project helps you in any way making your life easier, you can give us some donation to get gSubs released in Mac OS and Linux.\n

\n

\n \n

\n
\n

🔑 License

\n

This project is licensed under\nMIT ©\nCholaware

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.062Z" }, "harmony": { "readmeCleaned": "

Harmony

\n

\n\"Harmony\n

\n

\n\"Total\n

\n\n

Download

\n

Download Harmony from the website.

\n

Reporting issues

\n

Please indicate your operating system, Harmony's version and if you can, steps to reproduce the bug.

\n

Also, please include the log of Harmony (Cmd/Ctrl + Alt + i, console tab).

\n

Altough you can submit feature requests, keep in mind that I only prioritize requests coming from paying users.

\n

Where is the source code?

\n

Harmony used to be an open-source software. It is now a free-to-evaluate software, but you need a license for continued use.

\n

I explain this decision here.

\n

You can still access the source code prior to the 0.5.0 release on this repo.

\n

\"Metrics

\n
", "readmeOriginal": "

Harmony

\n

\n\"Harmony\n

\n

\n\"Total\n

\n\n

Download

\n

Download Harmony from the website.

\n

Reporting issues

\n

Please indicate your operating system, Harmony's version and if you can, steps to reproduce the bug.

\n

Also, please include the log of Harmony (Cmd/Ctrl + Alt + i, console tab).

\n

Altough you can submit feature requests, keep in mind that I only prioritize requests coming from paying users.

\n

Where is the source code?

\n

Harmony used to be an open-source software. It is now a free-to-evaluate software, but you need a license for continued use.

\n

I explain this decision here.

\n

You can still access the source code prior to the 0.5.0 release on this repo.

\n

\"Metrics

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.065Z" }, "hbbatchbeast": { "readmeCleaned": "

HBBatchBeast for HandBrake and FFmpeg/FFprobe (Windows, macOS, Linux & Docker)

\n

\"Reddit\" \"paypal\" \"Discord\" \"Docker\"

\n

\nSetup/Installation\n

\n

\"Screenshot\"

\n

Demo video - https://youtu.be/mHMXfInoqfE

\n

Discord: https://discord.gg/X4khmE96hS

\n

A free GUI application for HandBrake and FFmpeg/FFprobe on Windows, macOS and Linux (+ Linux Docker image) with an emphasis on multi HandBrake/FFmpeg instance batch conversion (including recursive folder scans and folder watching). The destination folder structure is kept the same as the source folder structure. Media in subfolders is also converted. Multiple folders can be monitored and different conversion presets can be specified for each folder. Also included:

\n

-Remote monitoring feature to monitor batch file conversions in any browser

\n

-Basic h265 benchmarking

\n

-Health check feature which can scan for corrupt video files using HandBrake (quick scan) or FFmpeg (thorough scan), although this is not always accurate. Attempt repair file feature included too.

\n

This is a standalone program on Windows but requires HandBrakeCLI to be installed on Linux and Mac. For a server application with similar functionality please see Tdarr.

\n

Settings help is available by pressing the blue ? diamond icons spread throughout the program:

\n

\"Screenshot\"

\n

The program scans the source folders for all files. It then compares the source folder files with the destination folder files to see if any of the source files exist in the destination folder already. If not, the program queues the files for conversion.

\n

4 worker modules (default number) then work through the conversion queue. If periodic scanning is enabled then the program will run at the chosen interval.

\n

After it a bit more testing it seems that weird things can happen if you monitor a folder which is being downloaded to. It seems sometimes conversions start before a file has fully downloaded. To solve this, I recommend using a temporary download folder before moving completed files into your HBBB source folder.

\n

If you use a download program which has an 'incomplete downloads' folder etc, do not put that folder inside your main source folder else you may end up converting each file twice.

\n

The program won't work properly if you put the destination folder in a folder inside the source folder because the program is recreating the source folder structure inside the destination folder. It will cause an infinite loop of creating more and more sub-folders each time you run the program. So it will NOT work properly if you do something like this:

\n

Source:

\n

D:\\Videos

\n

Destination:

\n

D:\\Videos\\Converted

\n

It will work properly if you do something like this etc:

\n

Source:

\n

D:\\Videos

\n

Destination:

\n

D:\\Converted

\n
", "readmeOriginal": "

HBBatchBeast for HandBrake and FFmpeg/FFprobe (Windows, macOS, Linux & Docker)

\n

\"Reddit\" \"paypal\" \"Discord\" \"Docker\"

\n

\nSetup/Installation\n

\n

\"Screenshot\"

\n

Demo video - https://youtu.be/mHMXfInoqfE

\n

Discord: https://discord.gg/X4khmE96hS

\n

A free GUI application for HandBrake and FFmpeg/FFprobe on Windows, macOS and Linux (+ Linux Docker image) with an emphasis on multi HandBrake/FFmpeg instance batch conversion (including recursive folder scans and folder watching). The destination folder structure is kept the same as the source folder structure. Media in subfolders is also converted. Multiple folders can be monitored and different conversion presets can be specified for each folder. Also included:

\n

-Remote monitoring feature to monitor batch file conversions in any browser

\n

-Basic h265 benchmarking

\n

-Health check feature which can scan for corrupt video files using HandBrake (quick scan) or FFmpeg (thorough scan), although this is not always accurate. Attempt repair file feature included too.

\n

This is a standalone program on Windows but requires HandBrakeCLI to be installed on Linux and Mac. For a server application with similar functionality please see Tdarr.

\n

Settings help is available by pressing the blue ? diamond icons spread throughout the program:

\n

\"Screenshot\"

\n

The program scans the source folders for all files. It then compares the source folder files with the destination folder files to see if any of the source files exist in the destination folder already. If not, the program queues the files for conversion.

\n

4 worker modules (default number) then work through the conversion queue. If periodic scanning is enabled then the program will run at the chosen interval.

\n

After it a bit more testing it seems that weird things can happen if you monitor a folder which is being downloaded to. It seems sometimes conversions start before a file has fully downloaded. To solve this, I recommend using a temporary download folder before moving completed files into your HBBB source folder.

\n

If you use a download program which has an 'incomplete downloads' folder etc, do not put that folder inside your main source folder else you may end up converting each file twice.

\n

The program won't work properly if you put the destination folder in a folder inside the source folder because the program is recreating the source folder structure inside the destination folder. It will cause an infinite loop of creating more and more sub-folders each time you run the program. So it will NOT work properly if you do something like this:

\n

Source:

\n

D:\\Videos

\n

Destination:

\n

D:\\Videos\\Converted

\n

It will work properly if you do something like this etc:

\n

Source:

\n

D:\\Videos

\n

Destination:

\n

D:\\Converted

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.256Z" }, "hashtag": { "readmeCleaned": "

\n \n

\n

Overview

\n

HashTag is a minimalist mirosoftware that hash some text. This application should mainly be used by developers who want to quickly hash something. It can also keep in memory your previous hashes in order to save some time during your development process. Currently, their are 3 algorithms : MD5, SHA-256 and Bcrypt.

\n

Installation

\n

⚠️ Currently, this software is only available for Windows (Linux and MacOS are not supported)
\n
\nYou can either download it from GitHub using the latest release, from the Electron apps website or from the Softpedia website.\n
\nOnce done, double click on HashTag.exe and it be ready to use.

\n

Run HashTag locally

\n
    \n
  1. Clone the repository
  2. \n
\n
$ git clone https://github.com/MrAnyx/HashTag.git
\n
\n
    \n
  1. Install the dependencies
  2. \n
\n
$ npm install
\n
\n
    \n
  1. Run the application
  2. \n
\n
$ npm start
\n
\n
    \n
  1. Build the application
  2. \n
\n
$ npm run build
\n

Issue

\n

If you find a security issue or any other kind of issue, feel free to create an issue by clicking here.\nSame thing for the pull requests and feature requests.

\n

Development and maintenance

\n

Today, everything is made by MrAnyx

\n

Support 👍

\n

If you like this project or if you want to support me, you can simply smash the like button, just to let me know.

\n

Preview

\n

\n \n

\n

\n \n

\n

License

\n

Currently, this project is under the GPL-3.0 license.

\n
", "readmeOriginal": "

\n \n

\n

Overview

\n

HashTag is a minimalist mirosoftware that hash some text. This application should mainly be used by developers who want to quickly hash something. It can also keep in memory your previous hashes in order to save some time during your development process. Currently, their are 3 algorithms : MD5, SHA-256 and Bcrypt.

\n

Installation

\n

⚠️ Currently, this software is only available for Windows (Linux and MacOS are not supported)
\n
\nYou can either download it from GitHub using the latest release, from the Electron apps website or from the Softpedia website.\n
\nOnce done, double click on HashTag.exe and it be ready to use.

\n

Run HashTag locally

\n
    \n
  1. Clone the repository
  2. \n
\n
$ git clone https://github.com/MrAnyx/HashTag.git
\n
\n
    \n
  1. Install the dependencies
  2. \n
\n
$ npm install
\n
\n
    \n
  1. Run the application
  2. \n
\n
$ npm start
\n
\n
    \n
  1. Build the application
  2. \n
\n
$ npm run build
\n

Issue

\n

If you find a security issue or any other kind of issue, feel free to create an issue by clicking here.\nSame thing for the pull requests and feature requests.

\n

Development and maintenance

\n

Today, everything is made by MrAnyx

\n

Support 👍

\n

If you like this project or if you want to support me, you can simply smash the like button, just to let me know.

\n

Preview

\n

\n \n

\n

\n \n

\n

License

\n

Currently, this project is under the GPL-3.0 license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.278Z" }, "healthi": { "readmeCleaned": "

Healthi

\n

Check your laptops's battery health.

\n

\n\t\"Downloads\"\n\t\"Code\n

\n

\n \"\"\n \"\"\n
\n \"\"\n

\n

Download

\n

macOS

\n

You can download the latest release or install it with homebrew cask: brew install --cask healthi.

\n

Linux

\n

If you're on Debian you can download a .deb file from the latest release.

\n

If you want other packages to be available open a pull request to include it. The targets are inside package.json > build > linux > target.

\n

Develop

\n
npm install\nnpm run dev  # Start app and watch for changes\nnpm test
\n

Build

\n

macOS/Debian

\n
npm run icns # generate icons from res/icon.svg (requires inkscape)\nnpm run dist # build app into dist/ folder
\n

Contribute

\n

You can open an issue to report any bug or improvement.

\n

Also, you could fix/improve it yourself:

\n
    \n
  1. You can either have an idea to improve the app or search for an issue
  2. \n
  3. Fork the repo
  4. \n
  5. Code your changes and try them npm start
  6. \n
  7. Run the tests npm test
  8. \n
  9. Submit your pull request
  10. \n
\n

Author

\n

© 2019 Pablo Varela

\n

Special thanks to the contributors

\n
", "readmeOriginal": "

Healthi

\n

Check your laptops's battery health.

\n

\n\t\"Downloads\"\n\t\"Code\n

\n

\n \"\"\n \"\"\n
\n \"\"\n

\n

Download

\n

macOS

\n

You can download the latest release or install it with homebrew cask: brew install --cask healthi.

\n

Linux

\n

If you're on Debian you can download a .deb file from the latest release.

\n

If you want other packages to be available open a pull request to include it. The targets are inside package.json > build > linux > target.

\n

Develop

\n
npm install\nnpm run dev  # Start app and watch for changes\nnpm test
\n

Build

\n

macOS/Debian

\n
npm run icns # generate icons from res/icon.svg (requires inkscape)\nnpm run dist # build app into dist/ folder
\n

Contribute

\n

You can open an issue to report any bug or improvement.

\n

Also, you could fix/improve it yourself:

\n
    \n
  1. You can either have an idea to improve the app or search for an issue
  2. \n
  3. Fork the repo
  4. \n
  5. Code your changes and try them npm start
  6. \n
  7. Run the tests npm test
  8. \n
  9. Submit your pull request
  10. \n
\n

Author

\n

© 2019 Pablo Varela

\n

Special thanks to the contributors

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.348Z" }, "graphql-playground": { "readmeCleaned": "

\n

\"npm\n\"graphql\"

\n
\n

SECURITY WARNING: both graphql-playground-html and all four (4) of it's middleware dependents until graphql-playground-html@1.6.22 were subject to an XSS Reflection attack vulnerability only to unsanitized user input strings to the functions therein. This was resolved in graphql-playground-html@^1.6.22. More Information CVE-2020-4038

\n
\n

Future of this repository: See this issue for details.

\n
\n

GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).

\n

\"\"

\n

Installation

\n
$ brew install --cask graphql-playground
\n

Features

\n\n

Security Details

\n
\n

NOTE: only unsanitized user input to the functions in these packages is vulnerable to the recently reported XSS Reflection attack.

\n
\n

Impact

\n
\n

Impacted are any and all unsanitized user-defined input to:\n-renderPlaygroundPage()\n-koaPlayground()\n-expressPlayground()\n-koaPlayground()\n-`lambdaPlayground()

\n
\n
\n

If you used static values, such as graphql-playground-electron does in it's webpack config, as well as the most common middleware implementations out there, they were not vulnerable to the attack.

\n
\n

The only reason this vulnerability exists is because we are using template strings in renderPlaygroundPage() with potentially unsanitized user defined variables. This allows an attacker to inject html and javascript into the page.

\n\n

Common examples may be user-defined path parameters, query string, unsanitized UI provided values in database, etc., that are used to build template strings or passed directly to a renderPlaygroundPage() or the matching middleware function equivalent listed above.

\n

Impacted Packages

\n

All versions of these packages are impacted until the ones specified below, which are now safe for user defined input:

\n\n

More Information

\n

See the security docs for more details on how your implementation might be impacted by this vulnerability. It contains safe examples, unsafe examples, workarounds, and more details.

\n

We've also provided 'an example of the xss using the express middleware

\n

FAQ

\n

How is this different from GraphiQL?

\n

GraphQL Playground uses components of GraphiQL under the hood but is meant as a more powerful GraphQL IDE enabling better (local) development workflows. Compared to GraphiQL, the GraphQL Playground ships with the following additional features:

\n\n

See the following question for more additonal features.

\n

What's the difference between the desktop app and the web version?

\n

The desktop app is the same as the web version but includes these additional features:

\n\n

How does GraphQL Bin work?

\n

You can easily share your Playgrounds with others by clicking on the \"Share\" button and sharing the generated link. You can think about GraphQL Bin like Pastebin for your GraphQL queries including the context (endpoint, HTTP headers, open tabs etc).

\n\n \"\"\n\n
\n

You can also find the announcement blog post here.

\n
\n

Settings

\n

In the top right corner of the Playground window you can click on the settings icon.\nThese are the settings currently available:

\n
{\n  'editor.cursorShape': 'line', // possible values: 'line', 'block', 'underline'\n  'editor.fontFamily': `'Source Code Pro', 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace`,\n  'editor.fontSize': 14,\n  'editor.reuseHeaders': true, // new tab reuses headers from last tab\n  'editor.theme': 'dark', // possible values: 'dark', 'light'\n  'general.betaUpdates': false,\n  'prettier.printWidth': 80,\n  'prettier.tabWidth': 2,\n  'prettier.useTabs': false,\n  'request.credentials': 'omit', // possible values: 'omit', 'include', 'same-origin'\n  'schema.polling.enable': true, // enables automatic schema polling\n  'schema.polling.endpointFilter': '*localhost*', // endpoint filter for schema polling\n  'schema.polling.interval': 2000, // schema polling interval in ms\n  'schema.disableComments': boolean,\n  'tracing.hideTracingResponse': true,\n  'tracing.tracingSupported': true, // set false to remove x-apollo-tracing header from Schema fetch requests\n}
\n

Usage

\n

Properties

\n

The React component <Playground /> and all middlewares expose the following options:

\n\n
interface ISettings {\n  'editor.cursorShape': 'line' | 'block' | 'underline'\n  'editor.fontFamily': string\n  'editor.fontSize': number\n  'editor.reuseHeaders': boolean\n  'editor.theme': 'dark' | 'light'\n  'general.betaUpdates': boolean\n  'prettier.printWidth': number\n  'prettier.tabWidth': number\n  'prettier.useTabs': boolean\n  'request.credentials': 'omit' | 'include' | 'same-origin'\n  'request.globalHeaders': { [key: string]: string }\n  'schema.polling.enable': boolean\n  'schema.polling.endpointFilter': string\n  'schema.polling.interval': number\n  'schema.disableComments': boolean\n  'tracing.hideTracingResponse': boolean\n  'tracing.tracingSupported': boolean\n}
\n\n
interface Tab {\n  endpoint: string\n  query: string\n  name?: string\n  variables?: string\n  responses?: string[]\n  headers?: { [key: string]: string }\n}
\n

In addition to this, the React app provides some more properties:

\n\n

createApolloLink is only available in the React Component and not the middlewares, because the content must be serializable as it is being printed into a HTML template.

\n

As HTML Page

\n

If you simply want to render the Playground HTML on your own, for example when implementing a GraphQL Server, there are 2 options for you:

\n
    \n
  1. The bare minimum HTML needed to render the Playground
  2. \n
  3. The Playground HTML with full loading animation
  4. \n
\n

Note: In case you do not want to serve assets from a CDN (like jsDelivr) and instead use a local copy, you will need to install graphql-playground-react from npm, and then replace all instances of //cdn.jsdelivr.net/npm with ./node_modules. An example can be found here

\n

As React Component

\n

Install

\n
yarn add graphql-playground-react
\n

Use

\n

GraphQL Playground provides a React component responsible for rendering the UI and Session management.\nThere are 3 dependencies needed in order to run the graphql-playground-react React component.

\n
    \n
  1. Open Sans and Source Code Pro fonts
  2. \n
  3. Rendering the <Playground /> component
  4. \n
\n

The GraphQL Playground requires React 16.

\n

Including Fonts (1.)

\n
\">
<link\n  href=\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Source+Code+Pro:400,700\"\n  rel=\"stylesheet\"\n/>
\n

Including stylesheet and the component (2., 3.)

\n
\n \n ,\n document.body,\n)\">
import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { Playground, store } from 'graphql-playground-react'\n\nReactDOM.render(\n  <Provider store={store}>\n    <Playground endpoint='https://api.graph.cool/simple/v1/swapi' />\n  </Provider>,\n  document.body,\n)
\n

As Server Middleware

\n

Install

\n
# Pick the one that matches your server framework\nyarn add graphql-playground-middleware-express  # for Express or Connect\nyarn add graphql-playground-middleware-hapi\nyarn add graphql-playground-middleware-koa\nyarn add graphql-playground-middleware-lambda
\n

Usage with example

\n

We have a full example for each of the frameworks below:

\n\n

As serverless handler

\n

Install

\n
yarn add graphql-playground-middleware-lambda
\n

Usage

\n

handler.js

\n
import lambdaPlayground from 'graphql-playground-middleware-lambda'\n// or using require()\n// const lambdaPlayground = require('graphql-playground-middleware-lambda').default\n\nexports.graphqlHandler = function graphqlHandler(event, context, callback) {\n  function callbackFilter(error, output) {\n    // eslint-disable-next-line no-param-reassign\n    output.headers['Access-Control-Allow-Origin'] = '*'\n    callback(error, output)\n  }\n\n  const handler = graphqlLambda({ schema: myGraphQLSchema })\n  return handler(event, context, callbackFilter)\n}\n\nexports.playgroundHandler = lambdaPlayground({\n  endpoint: '/dev/graphql',\n})
\n

serverless.yml

\n
functions:\n  graphql:\n    handler: handler.graphqlHandler\n    events:\n      - http:\n          path: graphql\n          method: post\n          cors: true\n  playground:\n    handler: handler.playgroundHandler\n    events:\n      - http:\n          path: playground\n          method: get\n          cors: true
\n

Security Issue

\n

There is an XSS Reflection Vulnerability when using these middlewares with unsanitized user input before

\n

Development

\n
$ cd packages/graphql-playground-react\n$ yarn\n$ yarn start
\n

Open\nlocalhost:3000/localDev.html?endpoint=https://api.graph.cool/simple/v1/swapi for local development!

\n

Contributing to this project

\n

This repository is managed by EasyCLA. Project participants must sign the free (GraphQL Specification Membership agreement before making a contribution. You only need to do this one time, and it can be signed by individual contributors or their employers.

\n

To initiate the signature process please open a PR against this repo. The EasyCLA bot will block the merge if we still need a membership agreement from you.

\n

You can find detailed information here. If you have issues, please email operations@graphql.org.

\n

If your company benefits from GraphQL and you would like to provide essential financial support for the systems and people that power our community, please also consider membership in the GraphQL Foundation.

\n

Custom Theme

\n

From graphql-playground-react@1.7.0 on you can provide a codeTheme property to the React Component to customize your color theme.\nThese are the available options:

\n
export interface EditorColours {\n  property: string\n  comment: string\n  punctuation: string\n  keyword: string\n  def: string\n  qualifier: string\n  attribute: string\n  number: string\n  string: string\n  builtin: string\n  string2: string\n  variable: string\n  meta: string\n  atom: string\n  ws: string\n  selection: string\n  cursorColor: string\n  editorBackground: string\n  resultBackground: string\n  leftDrawerBackground: string\n  rightDrawerBackground: string\n}
\n

Versions

\n

This is repository is a \"mono repo\" and contains multiple packages using Yarn workspaces. Please be aware that versions are not synchronised between packages. The versions of the release page refer to the electron app.

\n

Packages

\n

In the folder packages you'll find the following packages:

\n\n\n

Help & Community \"Discord\"

\n

Join our Discord Server if you run into issues or have questions. We love talking to you!

\n

\"Prisma\"

\n
", "readmeOriginal": "

\n

\"npm\n\"graphql\"

\n
\n

SECURITY WARNING: both graphql-playground-html and all four (4) of it's middleware dependents until graphql-playground-html@1.6.22 were subject to an XSS Reflection attack vulnerability only to unsanitized user input strings to the functions therein. This was resolved in graphql-playground-html@^1.6.22. More Information CVE-2020-4038

\n
\n

Future of this repository: See this issue for details.

\n
\n

GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).

\n

\"\"

\n

Installation

\n
$ brew install --cask graphql-playground
\n

Features

\n\n

Security Details

\n
\n

NOTE: only unsanitized user input to the functions in these packages is vulnerable to the recently reported XSS Reflection attack.

\n
\n

Impact

\n
\n

Impacted are any and all unsanitized user-defined input to:\n-renderPlaygroundPage()\n-koaPlayground()\n-expressPlayground()\n-koaPlayground()\n-`lambdaPlayground()

\n
\n
\n

If you used static values, such as graphql-playground-electron does in it's webpack config, as well as the most common middleware implementations out there, they were not vulnerable to the attack.

\n
\n

The only reason this vulnerability exists is because we are using template strings in renderPlaygroundPage() with potentially unsanitized user defined variables. This allows an attacker to inject html and javascript into the page.

\n\n

Common examples may be user-defined path parameters, query string, unsanitized UI provided values in database, etc., that are used to build template strings or passed directly to a renderPlaygroundPage() or the matching middleware function equivalent listed above.

\n

Impacted Packages

\n

All versions of these packages are impacted until the ones specified below, which are now safe for user defined input:

\n\n

More Information

\n

See the security docs for more details on how your implementation might be impacted by this vulnerability. It contains safe examples, unsafe examples, workarounds, and more details.

\n

We've also provided 'an example of the xss using the express middleware

\n

FAQ

\n

How is this different from GraphiQL?

\n

GraphQL Playground uses components of GraphiQL under the hood but is meant as a more powerful GraphQL IDE enabling better (local) development workflows. Compared to GraphiQL, the GraphQL Playground ships with the following additional features:

\n\n

See the following question for more additonal features.

\n

What's the difference between the desktop app and the web version?

\n

The desktop app is the same as the web version but includes these additional features:

\n\n

How does GraphQL Bin work?

\n

You can easily share your Playgrounds with others by clicking on the \"Share\" button and sharing the generated link. You can think about GraphQL Bin like Pastebin for your GraphQL queries including the context (endpoint, HTTP headers, open tabs etc).

\n\n \"\"\n\n
\n

You can also find the announcement blog post here.

\n
\n

Settings

\n

In the top right corner of the Playground window you can click on the settings icon.\nThese are the settings currently available:

\n
{\n  'editor.cursorShape': 'line', // possible values: 'line', 'block', 'underline'\n  'editor.fontFamily': `'Source Code Pro', 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace`,\n  'editor.fontSize': 14,\n  'editor.reuseHeaders': true, // new tab reuses headers from last tab\n  'editor.theme': 'dark', // possible values: 'dark', 'light'\n  'general.betaUpdates': false,\n  'prettier.printWidth': 80,\n  'prettier.tabWidth': 2,\n  'prettier.useTabs': false,\n  'request.credentials': 'omit', // possible values: 'omit', 'include', 'same-origin'\n  'schema.polling.enable': true, // enables automatic schema polling\n  'schema.polling.endpointFilter': '*localhost*', // endpoint filter for schema polling\n  'schema.polling.interval': 2000, // schema polling interval in ms\n  'schema.disableComments': boolean,\n  'tracing.hideTracingResponse': true,\n  'tracing.tracingSupported': true, // set false to remove x-apollo-tracing header from Schema fetch requests\n}
\n

Usage

\n

Properties

\n

The React component <Playground /> and all middlewares expose the following options:

\n\n
interface ISettings {\n  'editor.cursorShape': 'line' | 'block' | 'underline'\n  'editor.fontFamily': string\n  'editor.fontSize': number\n  'editor.reuseHeaders': boolean\n  'editor.theme': 'dark' | 'light'\n  'general.betaUpdates': boolean\n  'prettier.printWidth': number\n  'prettier.tabWidth': number\n  'prettier.useTabs': boolean\n  'request.credentials': 'omit' | 'include' | 'same-origin'\n  'request.globalHeaders': { [key: string]: string }\n  'schema.polling.enable': boolean\n  'schema.polling.endpointFilter': string\n  'schema.polling.interval': number\n  'schema.disableComments': boolean\n  'tracing.hideTracingResponse': boolean\n  'tracing.tracingSupported': boolean\n}
\n\n
interface Tab {\n  endpoint: string\n  query: string\n  name?: string\n  variables?: string\n  responses?: string[]\n  headers?: { [key: string]: string }\n}
\n

In addition to this, the React app provides some more properties:

\n\n

createApolloLink is only available in the React Component and not the middlewares, because the content must be serializable as it is being printed into a HTML template.

\n

As HTML Page

\n

If you simply want to render the Playground HTML on your own, for example when implementing a GraphQL Server, there are 2 options for you:

\n
    \n
  1. The bare minimum HTML needed to render the Playground
  2. \n
  3. The Playground HTML with full loading animation
  4. \n
\n

Note: In case you do not want to serve assets from a CDN (like jsDelivr) and instead use a local copy, you will need to install graphql-playground-react from npm, and then replace all instances of //cdn.jsdelivr.net/npm with ./node_modules. An example can be found here

\n

As React Component

\n

Install

\n
yarn add graphql-playground-react
\n

Use

\n

GraphQL Playground provides a React component responsible for rendering the UI and Session management.\nThere are 3 dependencies needed in order to run the graphql-playground-react React component.

\n
    \n
  1. Open Sans and Source Code Pro fonts
  2. \n
  3. Rendering the <Playground /> component
  4. \n
\n

The GraphQL Playground requires React 16.

\n

Including Fonts (1.)

\n
<link\n  href=\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Source+Code+Pro:400,700\"\n  rel=\"stylesheet\"\n/>
\n

Including stylesheet and the component (2., 3.)

\n
import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { Playground, store } from 'graphql-playground-react'\n\nReactDOM.render(\n  <Provider store={store}>\n    <Playground endpoint='https://api.graph.cool/simple/v1/swapi' />\n  </Provider>,\n  document.body,\n)
\n

As Server Middleware

\n

Install

\n
# Pick the one that matches your server framework\nyarn add graphql-playground-middleware-express  # for Express or Connect\nyarn add graphql-playground-middleware-hapi\nyarn add graphql-playground-middleware-koa\nyarn add graphql-playground-middleware-lambda
\n

Usage with example

\n

We have a full example for each of the frameworks below:

\n\n

As serverless handler

\n

Install

\n
yarn add graphql-playground-middleware-lambda
\n

Usage

\n

handler.js

\n
import lambdaPlayground from 'graphql-playground-middleware-lambda'\n// or using require()\n// const lambdaPlayground = require('graphql-playground-middleware-lambda').default\n\nexports.graphqlHandler = function graphqlHandler(event, context, callback) {\n  function callbackFilter(error, output) {\n    // eslint-disable-next-line no-param-reassign\n    output.headers['Access-Control-Allow-Origin'] = '*'\n    callback(error, output)\n  }\n\n  const handler = graphqlLambda({ schema: myGraphQLSchema })\n  return handler(event, context, callbackFilter)\n}\n\nexports.playgroundHandler = lambdaPlayground({\n  endpoint: '/dev/graphql',\n})
\n

serverless.yml

\n
functions:\n  graphql:\n    handler: handler.graphqlHandler\n    events:\n      - http:\n          path: graphql\n          method: post\n          cors: true\n  playground:\n    handler: handler.playgroundHandler\n    events:\n      - http:\n          path: playground\n          method: get\n          cors: true
\n

Security Issue

\n

There is an XSS Reflection Vulnerability when using these middlewares with unsanitized user input before

\n

Development

\n
$ cd packages/graphql-playground-react\n$ yarn\n$ yarn start
\n

Open\nlocalhost:3000/localDev.html?endpoint=https://api.graph.cool/simple/v1/swapi for local development!

\n

Contributing to this project

\n

This repository is managed by EasyCLA. Project participants must sign the free (GraphQL Specification Membership agreement before making a contribution. You only need to do this one time, and it can be signed by individual contributors or their employers.

\n

To initiate the signature process please open a PR against this repo. The EasyCLA bot will block the merge if we still need a membership agreement from you.

\n

You can find detailed information here. If you have issues, please email operations@graphql.org.

\n

If your company benefits from GraphQL and you would like to provide essential financial support for the systems and people that power our community, please also consider membership in the GraphQL Foundation.

\n

Custom Theme

\n

From graphql-playground-react@1.7.0 on you can provide a codeTheme property to the React Component to customize your color theme.\nThese are the available options:

\n
export interface EditorColours {\n  property: string\n  comment: string\n  punctuation: string\n  keyword: string\n  def: string\n  qualifier: string\n  attribute: string\n  number: string\n  string: string\n  builtin: string\n  string2: string\n  variable: string\n  meta: string\n  atom: string\n  ws: string\n  selection: string\n  cursorColor: string\n  editorBackground: string\n  resultBackground: string\n  leftDrawerBackground: string\n  rightDrawerBackground: string\n}
\n

Versions

\n

This is repository is a \"mono repo\" and contains multiple packages using Yarn workspaces. Please be aware that versions are not synchronised between packages. The versions of the release page refer to the electron app.

\n

Packages

\n

In the folder packages you'll find the following packages:

\n\n\n

Help & Community \"Discord\"

\n

Join our Discord Server if you run into issues or have questions. We love talking to you!

\n

\"Prisma\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.426Z" }, "heads-tails": { "readmeCleaned": "

SmartHoldem Heads or Tails

\n

The SmartHoldem platform Game Client

\n

\"3_HOT98_26_10_2019\"

\n

Heads or Tails” is a multiplayer game, based on the DPOS blockchain with instant payments, built-in wallet and exchange platform for popular cryptocurrencies. Statistics of your games and a chat are also available.

\n

You can start a new game with your own stake or choose an existing one by choosing one “Heads” or “Tails” side of the coin.\nThe game of “Heads or tails” is still insanely popular worldwide.\nThe history of many peoples carefully keeps the rules of the “Heads or tails” game. It was called differently from one country to another. The name of the game often depended on what was depicted on the coin.

\n

One could find players on loud Eastern bazaars, under the moonlight of the Great Silk Road or on Her Majesty’s ship, fell calm somewhere in the Mediterranean Sea.\nAnd now, the most popular game of “Heads or tails” is on the blockchain.\nThe information about every side of the coin is encrypted and saved in the blockchain. The game is played strictly between the players.\nYou can transfer or send cryptocurrency to your address or to the exchange market using your profile. The statistics of your games and a chat are also available.

\n

CHANGELOG https://github.com/SmartHoldemDAPPs/heads-tails/blob/master/CHANGELOG.md

\n
", "readmeOriginal": "

SmartHoldem Heads or Tails

\n

The SmartHoldem platform Game Client

\n

\"3_HOT98_26_10_2019\"

\n

Heads or Tails” is a multiplayer game, based on the DPOS blockchain with instant payments, built-in wallet and exchange platform for popular cryptocurrencies. Statistics of your games and a chat are also available.

\n

You can start a new game with your own stake or choose an existing one by choosing one “Heads” or “Tails” side of the coin.\nThe game of “Heads or tails” is still insanely popular worldwide.\nThe history of many peoples carefully keeps the rules of the “Heads or tails” game. It was called differently from one country to another. The name of the game often depended on what was depicted on the coin.

\n

One could find players on loud Eastern bazaars, under the moonlight of the Great Silk Road or on Her Majesty’s ship, fell calm somewhere in the Mediterranean Sea.\nAnd now, the most popular game of “Heads or tails” is on the blockchain.\nThe information about every side of the coin is encrypted and saved in the blockchain. The game is played strictly between the players.\nYou can transfer or send cryptocurrency to your address or to the exchange market using your profile. The statistics of your games and a chat are also available.

\n

CHANGELOG https://github.com/SmartHoldemDAPPs/heads-tails/blob/master/CHANGELOG.md

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.496Z" }, "helioslauncher": { "readmeCleaned": "

\"aventium

\n

Helios Launcher

\n

(formerly Electron Launcher)

\n

\"gh \"downloads\" \"winter-is-coming\"

\n

Join modded servers without worrying about installing Java, Forge, or other mods. We'll handle that for you.

\n

\"Screenshot\n\"Screenshot

\n

Features

\n\n

This is not an exhaustive list. Download and install the launcher to gauge all it can do!

\n

Need Help? Check the wiki.

\n

Like the project? Leave a star on the repository!

\n

Downloads

\n

You can download from GitHub Releases

\n

Latest Release

\n

\"\"

\n

Latest Pre-Release

\n

\"\"

\n

Supported Platforms

\n

If you download from the Releases tab, select the installer for your system.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformFile
Windows x64Helios-Launcher-setup-VERSION.exe
macOS x64Helios-Launcher-setup-VERSION-x64.dmg
macOS arm64Helios-Launcher-setup-VERSION-arm64.dmg
Linux x64Helios-Launcher-setup-VERSION.AppImage
\n

Console

\n

To open the console, use the following keybind.

\n
ctrl + shift + i
\n

Ensure that you have the console tab selected. Do not paste anything into the console unless you are 100% sure of what it will do. Pasting the wrong thing can expose sensitive information.

\n

Export Output to a File

\n

If you want to export the console output, simply right click anywhere on the console and click Save as..

\n

\"console

\n

Development

\n

This section details the setup of a basic developmentment environment.

\n

Getting Started

\n

System Requirements

\n\n
\n

Clone and Install Dependencies

\n
git clone https://github.com/dscalzi/HeliosLauncher.git\n> cd HeliosLauncher\n> npm install\">
> git clone https://github.com/dscalzi/HeliosLauncher.git\n> cd HeliosLauncher\n> npm install
\n
\n

Launch Application

\n
npm start\">
> npm start
\n
\n

Build Installers

\n

To build for your current platform.

\n
npm run dist\">
> npm run dist
\n

Build for a specific platform.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformCommand
Windows x64npm run dist:win
macOSnpm run dist:mac
Linux x64npm run dist:linux
\n

Builds for macOS may not work on Windows/Linux and vice-versa.

\n
\n

Visual Studio Code

\n

All development of the launcher should be done using Visual Studio Code.

\n

Paste the following into .vscode/launch.json

\n
{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Debug Main Process\",\n      \"type\": \"node\",\n      \"request\": \"launch\",\n      \"cwd\": \"${workspaceFolder}\",\n      \"program\": \"${workspaceFolder}/node_modules/electron/cli.js\",\n      \"args\" : [\".\"],\n      \"outputCapture\": \"std\"\n    },\n    {\n      \"name\": \"Debug Renderer Process\",\n      \"type\": \"chrome\",\n      \"request\": \"launch\",\n      \"runtimeExecutable\": \"${workspaceFolder}/node_modules/.bin/electron\",\n      \"windows\": {\n        \"runtimeExecutable\": \"${workspaceFolder}/node_modules/.bin/electron.cmd\"\n      },\n      \"runtimeArgs\": [\n        \"${workspaceFolder}/.\",\n        \"--remote-debugging-port=9222\"\n      ],\n      \"webRoot\": \"${workspaceFolder}\"\n    }\n  ]\n}
\n

This adds two debug configurations.

\n

Debug Main Process

\n

This allows you to debug Electron's main process. You can debug scripts in the renderer process by opening the DevTools Window.

\n

Debug Renderer Process

\n

This allows you to debug Electron's renderer process. This requires you to install the Debugger for Chrome extension.

\n

Note that you cannot open the DevTools window while using this debug configuration. Chromium only allows one debugger, opening another will crash the program.

\n
\n

Note on Third-Party Usage

\n

Please give credit to the original author and provide a link to the original source. This is free software, please do at least this much.

\n

For instructions on setting up Microsoft Authentication, see https://github.com/dscalzi/HeliosLauncher/blob/master/docs/MicrosoftAuth.md.

\n
\n

Resources

\n\n

The best way to contact the developers is on Discord.

\n

\"discord\"

\n
\n

See you ingame.

\n
", "readmeOriginal": "

\"aventium

\n

Helios Launcher

\n

(formerly Electron Launcher)

\n

\"gh \"downloads\" \"winter-is-coming\"

\n

Join modded servers without worrying about installing Java, Forge, or other mods. We'll handle that for you.

\n

\"Screenshot\n\"Screenshot

\n

Features

\n\n

This is not an exhaustive list. Download and install the launcher to gauge all it can do!

\n

Need Help? Check the wiki.

\n

Like the project? Leave a star on the repository!

\n

Downloads

\n

You can download from GitHub Releases

\n

Latest Release

\n

\"\"

\n

Latest Pre-Release

\n

\"\"

\n

Supported Platforms

\n

If you download from the Releases tab, select the installer for your system.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformFile
Windows x64Helios-Launcher-setup-VERSION.exe
macOS x64Helios-Launcher-setup-VERSION-x64.dmg
macOS arm64Helios-Launcher-setup-VERSION-arm64.dmg
Linux x64Helios-Launcher-setup-VERSION.AppImage
\n

Console

\n

To open the console, use the following keybind.

\n
ctrl + shift + i
\n

Ensure that you have the console tab selected. Do not paste anything into the console unless you are 100% sure of what it will do. Pasting the wrong thing can expose sensitive information.

\n

Export Output to a File

\n

If you want to export the console output, simply right click anywhere on the console and click Save as..

\n

\"console

\n

Development

\n

This section details the setup of a basic developmentment environment.

\n

Getting Started

\n

System Requirements

\n\n
\n

Clone and Install Dependencies

\n
> git clone https://github.com/dscalzi/HeliosLauncher.git\n> cd HeliosLauncher\n> npm install
\n
\n

Launch Application

\n
> npm start
\n
\n

Build Installers

\n

To build for your current platform.

\n
> npm run dist
\n

Build for a specific platform.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformCommand
Windows x64npm run dist:win
macOSnpm run dist:mac
Linux x64npm run dist:linux
\n

Builds for macOS may not work on Windows/Linux and vice-versa.

\n
\n

Visual Studio Code

\n

All development of the launcher should be done using Visual Studio Code.

\n

Paste the following into .vscode/launch.json

\n
{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Debug Main Process\",\n      \"type\": \"node\",\n      \"request\": \"launch\",\n      \"cwd\": \"${workspaceFolder}\",\n      \"program\": \"${workspaceFolder}/node_modules/electron/cli.js\",\n      \"args\" : [\".\"],\n      \"outputCapture\": \"std\"\n    },\n    {\n      \"name\": \"Debug Renderer Process\",\n      \"type\": \"chrome\",\n      \"request\": \"launch\",\n      \"runtimeExecutable\": \"${workspaceFolder}/node_modules/.bin/electron\",\n      \"windows\": {\n        \"runtimeExecutable\": \"${workspaceFolder}/node_modules/.bin/electron.cmd\"\n      },\n      \"runtimeArgs\": [\n        \"${workspaceFolder}/.\",\n        \"--remote-debugging-port=9222\"\n      ],\n      \"webRoot\": \"${workspaceFolder}\"\n    }\n  ]\n}
\n

This adds two debug configurations.

\n

Debug Main Process

\n

This allows you to debug Electron's main process. You can debug scripts in the renderer process by opening the DevTools Window.

\n

Debug Renderer Process

\n

This allows you to debug Electron's renderer process. This requires you to install the Debugger for Chrome extension.

\n

Note that you cannot open the DevTools window while using this debug configuration. Chromium only allows one debugger, opening another will crash the program.

\n
\n

Note on Third-Party Usage

\n

Please give credit to the original author and provide a link to the original source. This is free software, please do at least this much.

\n

For instructions on setting up Microsoft Authentication, see https://github.com/dscalzi/HeliosLauncher/blob/master/docs/MicrosoftAuth.md.

\n
\n

Resources

\n\n

The best way to contact the developers is on Discord.

\n

\"discord\"

\n
\n

See you ingame.

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.561Z" }, "heroic": { "readmeCleaned": "

Heroic Games Launcher

\n

\"Discord\" \"GitHub \"GitHub \"GPLv3 \"Patreon\" \"Donate\" \"kofi\"

\n

Heroic is an Open Source Game Launcher for Linux, Windows and MacOS (for both Native and Windows Games using Crossover).\nRight now it supports launching games from the Epic Games Store using Legendary and GOG Games using our custom implementation with gogdl.\nHeroic is built with Web Technologies like: TypeScript, React, NodeJS and Electron.

\n

Index

\n\n

How to use it

\n\n

Features available right now

\n\n

Planned features

\n\n

Language Support

\n\n

Help with Translations Here

\n

Installation

\n

Any OS (development environment)

\n
    \n
  1. Download Yarn and Node.js
  2. \n
  3. Download the dependencies with yarn
  4. \n
  5. Go to the debug tab on vscode and start the two tasks, 'Start renderer process' and 'Debug main process' or yarn react-start && yarn electron
  6. \n
\n

Building with VS Code

\n
    \n
  1. Download Yarn and Node.js
  2. \n
  3. Download the dependencies with yarn
  4. \n
  5. Open the tasks. Select \"Build with [your OS]\"
  6. \n
\n

Development Using a Container

\n

If you would prefer, we have a docker container defined to develop / build Heroic with (a potential reason being to avoid loading tons of dependencies on your host filesystem). There are two methods, based on whether you use VS Code.

\n

VS Code

\n

There is a .devcontainer directory containing a definition that VS Code will recognize for automatically opening your local Heroic directory in a container in VS Code.

\n

NOTE: this requires that you install the 'Remote - Containers' extension.

\n
    \n
  1. Open the root of your local Heroic directory in VS Code.
  2. \n
  3. You should get a prompt in the bottom right to build and open the project in the dev container.
  4. \n
  5. If the above prompt does not occur, on the bottom left, there is a green icon that should be there if the remote extension is installed. Click on it, and select \"Reopen in container\".
  6. \n
  7. The bottom left green icon should now say: \"Dev Container: Heroic Games Launcher\".
  8. \n
\n

After the container's package manager runs, open a new terminal session and you should be able to run bash commands from within the container. Any yarn dist builds should also now show up on your host filesystem.

\n

Manually Building the Docker Image

\n

If you don't use VS Code or don't want it integrated with the container, you can build and run the container manually using either Docker or Podman.

\n
    \n
  1. From the root of your local Heroic directory, run:
  2. \n
\n
docker build -t heroicdevcontainer -f Dockerfile .\n
\n
    \n
  1. Assuming all went well, you can now enter the container:
  2. \n
\n
docker run -it -v ./:/tmp/heroic localhost/heroicdevcontainer:latest\n
\n
    \n
  1. The above command will mount your local Heroic dir to /tmp/heroic in the container (unless you used a different path).
  2. \n
\n
cd /tmp/heoric\n
\n

And you should be good to go, code and build away!

\n

Linux

\n

Flatpak

\n

Heroic is available on Flathub, so should be on most distros when using Software Centers like Pop_OS! Store or Discover.\nBut can also be accessed here

\n

Debian, Ubuntu and Derivatives

\n

Download the heroic_x.x.x_amd64.deb from the Releases section

\n
sudo dpkg -i heroic_x.x.x_amd64.deb
\n

Debian (third party apt repository)

\n

You can add the MAD Linux apt repository:

\n
bash <(wget -O- https://raw.githubusercontent.com/Heroic-Games-Launcher/HeroicGamesLauncher/main/madrepo.sh)\n
\n

If you need support on it, get access to MAD Linux Guilded server.

\n

Maybe you want to boost the download speed on updates with apt-fast:

\n
sudo add-apt-repository -y ppa:apt-fast/stable\nsudo apt install -y apt-fast\napt-fast install -y heroic\n
\n

Arch (AUR)

\n

\"AUR

\n

AUR page: https://aur.archlinux.org/packages/heroic-games-launcher-bin/

\n

To install it manually use:

\n
git clone https://aur.archlinux.org/heroic-games-launcher-bin.git\n\ncd heroic-games-launcher-bin\n\nmakepkg --cleanbuild --syncdeps --install --clean --rmdeps
\n

Otherwise you can install it via your prefered AUR helper, e.g. yay.

\n

Fedora

\n

Heroic for Fedora is available on the COPR repo or as the binary on the releases page.

\n

Other Distributions (AppImage and TAR.XZ)

\n

Download the heroic-x.x.x.AppImage or heroic-x.x.x.tar.xz from the Releases section.\nMake sure you have Curl and Gawk, normally it comes with most distros but check for them if you have any issue.

\n

To make the AppImage it executable use:

\n
chmod +x heroic-x.x.x.AppImage
\n

To run it use:

\n
./heroic-x.x.x.AppImage
\n

For the tar.xz file, you need first to extract it somewhere, enter the folder and run:

\n
chmod +x heroic
\n

To run it use:

\n
./heroic
\n

Windows

\n

If you use WinGet, just type: winget install HeroicGamesLauncher.HeroicGamesLauncher. otherwise\ndownload Heroic.Setup.x.x.x.exe or the Portable Heroic-x.x.x.exe file and run it. It will install it to the start menu and desktop, use those to run it.

\n

macOS

\n

If you use Homebrew, just type: brew install --cask heroic. Otherwise, download Heroic-x.x.x.dmg and move the Heroic App to the Applications folder.

\n

Build binaries locally (All platforms)

\n\n
git clone https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher.git\n\ncd HeroicGamesLauncher
\n\n
yarn\n\nyarn dist {package to create} (eg: deb, pacman, tar.xz, rpm, AppImage)
\n\n
yarn.cmd (or npm install)\n\nyarn.cmd (or npm run) dist-win
\n\n
yarn (or npm install)\n\nyarn (or npm run) dist-mac
\n

Screenshots

\n

\"epic\"\n\"gog\"\n\"login\"\n\"stores\"\n\"wine-manager\"\n\"gamepage\"

\n

\"jump\"

\n
", "readmeOriginal": "

Heroic Games Launcher

\n

\"Discord\" \"GitHub \"GitHub \"GPLv3 \"Patreon\" \"Donate\" \"kofi\"

\n

Heroic is an Open Source Game Launcher for Linux, Windows and MacOS (for both Native and Windows Games using Crossover).\nRight now it supports launching games from the Epic Games Store using Legendary and GOG Games using our custom implementation with gogdl.\nHeroic is built with Web Technologies like: TypeScript, React, NodeJS and Electron.

\n

Index

\n\n

How to use it

\n\n

Features available right now

\n\n

Planned features

\n\n

Language Support

\n\n

Help with Translations Here

\n

Installation

\n

Any OS (development environment)

\n
    \n
  1. Download Yarn and Node.js
  2. \n
  3. Download the dependencies with yarn
  4. \n
  5. Go to the debug tab on vscode and start the two tasks, 'Start renderer process' and 'Debug main process' or yarn react-start && yarn electron
  6. \n
\n

Building with VS Code

\n
    \n
  1. Download Yarn and Node.js
  2. \n
  3. Download the dependencies with yarn
  4. \n
  5. Open the tasks. Select \"Build with [your OS]\"
  6. \n
\n

Development Using a Container

\n

If you would prefer, we have a docker container defined to develop / build Heroic with (a potential reason being to avoid loading tons of dependencies on your host filesystem). There are two methods, based on whether you use VS Code.

\n

VS Code

\n

There is a .devcontainer directory containing a definition that VS Code will recognize for automatically opening your local Heroic directory in a container in VS Code.

\n

NOTE: this requires that you install the 'Remote - Containers' extension.

\n
    \n
  1. Open the root of your local Heroic directory in VS Code.
  2. \n
  3. You should get a prompt in the bottom right to build and open the project in the dev container.
  4. \n
  5. If the above prompt does not occur, on the bottom left, there is a green icon that should be there if the remote extension is installed. Click on it, and select \"Reopen in container\".
  6. \n
  7. The bottom left green icon should now say: \"Dev Container: Heroic Games Launcher\".
  8. \n
\n

After the container's package manager runs, open a new terminal session and you should be able to run bash commands from within the container. Any yarn dist builds should also now show up on your host filesystem.

\n

Manually Building the Docker Image

\n

If you don't use VS Code or don't want it integrated with the container, you can build and run the container manually using either Docker or Podman.

\n
    \n
  1. From the root of your local Heroic directory, run:
  2. \n
\n
docker build -t heroicdevcontainer -f Dockerfile .\n
\n
    \n
  1. Assuming all went well, you can now enter the container:
  2. \n
\n
docker run -it -v ./:/tmp/heroic localhost/heroicdevcontainer:latest\n
\n
    \n
  1. The above command will mount your local Heroic dir to /tmp/heroic in the container (unless you used a different path).
  2. \n
\n
cd /tmp/heoric\n
\n

And you should be good to go, code and build away!

\n

Linux

\n

Flatpak

\n

Heroic is available on Flathub, so should be on most distros when using Software Centers like Pop_OS! Store or Discover.\nBut can also be accessed here

\n

Debian, Ubuntu and Derivatives

\n

Download the heroic_x.x.x_amd64.deb from the Releases section

\n
sudo dpkg -i heroic_x.x.x_amd64.deb
\n

Debian (third party apt repository)

\n

You can add the MAD Linux apt repository:

\n
bash <(wget -O- https://raw.githubusercontent.com/Heroic-Games-Launcher/HeroicGamesLauncher/main/madrepo.sh)\n
\n

If you need support on it, get access to MAD Linux Guilded server.

\n

Maybe you want to boost the download speed on updates with apt-fast:

\n
sudo add-apt-repository -y ppa:apt-fast/stable\nsudo apt install -y apt-fast\napt-fast install -y heroic\n
\n

Arch (AUR)

\n

\"AUR

\n

AUR page: https://aur.archlinux.org/packages/heroic-games-launcher-bin/

\n

To install it manually use:

\n
git clone https://aur.archlinux.org/heroic-games-launcher-bin.git\n\ncd heroic-games-launcher-bin\n\nmakepkg --cleanbuild --syncdeps --install --clean --rmdeps
\n

Otherwise you can install it via your prefered AUR helper, e.g. yay.

\n

Fedora

\n

Heroic for Fedora is available on the COPR repo or as the binary on the releases page.

\n

Other Distributions (AppImage and TAR.XZ)

\n

Download the heroic-x.x.x.AppImage or heroic-x.x.x.tar.xz from the Releases section.\nMake sure you have Curl and Gawk, normally it comes with most distros but check for them if you have any issue.

\n

To make the AppImage it executable use:

\n
chmod +x heroic-x.x.x.AppImage
\n

To run it use:

\n
./heroic-x.x.x.AppImage
\n

For the tar.xz file, you need first to extract it somewhere, enter the folder and run:

\n
chmod +x heroic
\n

To run it use:

\n
./heroic
\n

Windows

\n

If you use WinGet, just type: winget install HeroicGamesLauncher.HeroicGamesLauncher. otherwise\ndownload Heroic.Setup.x.x.x.exe or the Portable Heroic-x.x.x.exe file and run it. It will install it to the start menu and desktop, use those to run it.

\n

macOS

\n

If you use Homebrew, just type: brew install --cask heroic. Otherwise, download Heroic-x.x.x.dmg and move the Heroic App to the Applications folder.

\n

Build binaries locally (All platforms)

\n\n
git clone https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher.git\n\ncd HeroicGamesLauncher
\n\n
yarn\n\nyarn dist {package to create} (eg: deb, pacman, tar.xz, rpm, AppImage)
\n\n
yarn.cmd (or npm install)\n\nyarn.cmd (or npm run) dist-win
\n\n
yarn (or npm install)\n\nyarn (or npm run) dist-mac
\n

Screenshots

\n

\"epic\"\n\"gog\"\n\"login\"\n\"stores\"\n\"wine-manager\"\n\"gamepage\"

\n

\"jump\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.568Z" }, "hexo-client": { "readmeCleaned": "

hexo-client

\n
\n

Hexo桌面客户端

\n
\n\n

QQ群

\n

欢迎加入HexoClient用户群交流。

\n\n

\"\"

\n

功能简介

\n\n

功能预览

\n

\"\"\n\"\"\n\"\"\n\"\"\n\"\"

\n

下载地址

\n

https://github.com/gaoyoubo/hexo-client/releases

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# dev\nnpm run electron:serve\n\n# build electron application for production\nnpm run electron:build
\n

Thanks for Jetbrains Open Source

\n

\"image.png\"

\n
", "readmeOriginal": "

hexo-client

\n
\n

Hexo桌面客户端

\n
\n\n

QQ群

\n

欢迎加入HexoClient用户群交流。

\n\n

\"\"

\n

功能简介

\n\n

功能预览

\n

\"\"\n\"\"\n\"\"\n\"\"\n\"\"

\n

下载地址

\n

https://github.com/gaoyoubo/hexo-client/releases

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# dev\nnpm run electron:serve\n\n# build electron application for production\nnpm run electron:build
\n

Thanks for Jetbrains Open Source

\n

\"image.png\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.675Z" }, "homura": { "readmeCleaned": "

Homura · \"Build \"Dependency \"DevDependency \"Github

\n

An elegant rss reader.

\n

\n

Features

\n\n

Maintainers

\n\n

License

\n

MIT © Homura

\n
", "readmeOriginal": "

Homura · \"Build \"Dependency \"DevDependency \"Github

\n

An elegant rss reader.

\n

\n

Features

\n\n

Maintainers

\n\n

License

\n

MIT © Homura

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.705Z" }, "i18n-manager": { "readmeCleaned": "

\"i18n-manager\"

\n

\"CI\"\n\"Codacy\n\"Known\n\"GitHub\n\"GitHub

\n
\n

WARNING!

\n

This project has entered on looking for new owner stage.

\n

Developing this tool has being great, but recently I (@gilmarsquinelato) am not contributing too much with it, and I don't think it's fair to the people that are\nusing this tool, so I am stopping to contribute with this tool and happy to transfer the project to the people that really wants to keep maintaining it.

\n

Thank you!

\n
\n

This app was developed with the objective to help the developers to manage the app translations.

\n

Any type of contributions are welcome.

\n

Features

\n\n

Current plugins and their supported extensions

\n\n

Feature requests and/or pull requests with new plugins are welcomed 🙂

\n

If you want to test the features, you can open the testData folder!

\n

Projects using i18n Manager

\n\n

Screenshots

\n

\"\"

\n

\"\"

\n

\"\"

\n

Developing

\n

yarn start

\n

Building

\n

yarn build

\n

Contributors

\n

logo designed by @reallinfo

\n
", "readmeOriginal": "

\"i18n-manager\"

\n

\"CI\"\n\"Codacy\n\"Known\n\"GitHub\n\"GitHub

\n
\n

WARNING!

\n

This project has entered on looking for new owner stage.

\n

Developing this tool has being great, but recently I (@gilmarsquinelato) am not contributing too much with it, and I don't think it's fair to the people that are\nusing this tool, so I am stopping to contribute with this tool and happy to transfer the project to the people that really wants to keep maintaining it.

\n

Thank you!

\n
\n

This app was developed with the objective to help the developers to manage the app translations.

\n

Any type of contributions are welcome.

\n

Features

\n\n

Current plugins and their supported extensions

\n\n

Feature requests and/or pull requests with new plugins are welcomed 🙂

\n

If you want to test the features, you can open the testData folder!

\n

Projects using i18n Manager

\n\n

Screenshots

\n

\"\"

\n

\"\"

\n

\"\"

\n

Developing

\n

yarn start

\n

Building

\n

yarn build

\n

Contributors

\n

logo designed by @reallinfo

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.812Z" }, "i5sing": { "readmeCleaned": "

i5SING

\n

\n \n \"Travis\"\n \n \n \"Linux\"\n \n \n \"MacOS\"\n \n \n \"Windows\"\n \n

\n

中国原创音乐基地5sing PC版。爱生活,爱音乐,爱5SING。

\n

Support Platform

\n\n

\"i5sing首页\"

\n

News

\n

来试试这些更好的效率工具与音乐软件,6 款 Windows 的良心国产软件推荐

\n

几个小众的原创音乐网站,不少抖音神曲出自这里

\n

腾讯柠檬精选

\n

Download

\n

https://github.com/i5sing/i5SING/releases/

\n

Development

\n
$ yarn \n\n$ yarn start
\n

Build

\n
$ yarn run make
\n

Feedback

\n

If you any questions, use Issues.

\n

License

\n

MIT licensed.

\n
", "readmeOriginal": "

i5SING

\n

\n \n \"Travis\"\n \n \n \"Linux\"\n \n \n \"MacOS\"\n \n \n \"Windows\"\n \n

\n

中国原创音乐基地5sing PC版。爱生活,爱音乐,爱5SING。

\n

Support Platform

\n\n

\"i5sing首页\"

\n

News

\n

来试试这些更好的效率工具与音乐软件,6 款 Windows 的良心国产软件推荐

\n

几个小众的原创音乐网站,不少抖音神曲出自这里

\n

腾讯柠檬精选

\n

Download

\n

https://github.com/i5sing/i5SING/releases/

\n

Development

\n
$ yarn \n\n$ yarn start
\n

Build

\n
$ yarn run make
\n

Feedback

\n

If you any questions, use Issues.

\n

License

\n

MIT licensed.

\n
", "readmeFetchedAt": "2022-05-10T00:07:54.817Z" }, "image-shrinker": { "readmeCleaned": "

Image Shrinker

\n

Image Shrinker is a tool to minify images and graphics using the best available libraries for image processing: pngquant, mozjpg, SVGO and Gifsicle. Built with web technologies in Electron

\n

\"Screenrecording

\n

How to use

\n

Drag your image file onto the Image Shrinker window and it will saved in the same or in a predefined folder as reduced image.\nThe original graphic will be not replaced.

\n

Download and Installation on macOS

\n

Download Image Shrinker here:
\nhttps://github.com/stefansl/image-shrinker/releases/download/v1.6.5/image-shrinker-1.6.5.dmg

\n

Unpack and copy or drag the app into your macOS application folder.\nFor uninstalling, just drop the app into the bin.

\n

Build your own

\n

Get the repo

\n
git clone https://github.com/stefansl/image-shrinker.git
\n

Install dependencies

\n
$ cd image-shrinker\n$ npm install
\n

Generate your macOS package

\n
electron-builder build --mac
\n

Generate your Linux package

\n
electron-builder build --linux
\n

Generate your Windows package

\n
electron-builder build --win
\n

Notice: I did not test Windows and Linux. Feel free to commit a pull request.

\n

Credits

\n

Thank you, guys!

\n\n
", "readmeOriginal": "

Image Shrinker

\n

Image Shrinker is a tool to minify images and graphics using the best available libraries for image processing: pngquant, mozjpg, SVGO and Gifsicle. Built with web technologies in Electron

\n

\"Screenrecording

\n

How to use

\n

Drag your image file onto the Image Shrinker window and it will saved in the same or in a predefined folder as reduced image.\nThe original graphic will be not replaced.

\n

Download and Installation on macOS

\n

Download Image Shrinker here:
\nhttps://github.com/stefansl/image-shrinker/releases/download/v1.6.5/image-shrinker-1.6.5.dmg

\n

Unpack and copy or drag the app into your macOS application folder.\nFor uninstalling, just drop the app into the bin.

\n

Build your own

\n

Get the repo

\n
git clone https://github.com/stefansl/image-shrinker.git
\n

Install dependencies

\n
$ cd image-shrinker\n$ npm install
\n

Generate your macOS package

\n
electron-builder build --mac
\n

Generate your Linux package

\n
electron-builder build --linux
\n

Generate your Windows package

\n
electron-builder build --win
\n

Notice: I did not test Windows and Linux. Feel free to commit a pull request.

\n

Credits

\n

Thank you, guys!

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.068Z" }, "image-optimizer": { "readmeCleaned": "

\n \n

\n

Image Optimizer

\n

\n \"GitHub\n \"GitHub\n \"GitHub\"\n

\n

\n Built with Electron, Vue & Vite.\n

\n

A free and open source tool for optimizing images and vector graphics.

\n

\n \n

\n

Core libs

\n\n

Download and Installation on macOS

\n

Go to Releases get the latest build, download and install.

\n

Development

\n
# install dependencies\nyarn\n# serve with hot reload\nyarn dev
\n

Build

\n
# build application for production\nyarn build
\n

Related

\n\n

Copyright (c) 2021-present, Anton Reshetov.

\n
", "readmeOriginal": "

\n \n

\n

Image Optimizer

\n

\n \"GitHub\n \"GitHub\n \"GitHub\"\n

\n

\n Built with Electron, Vue & Vite.\n

\n

A free and open source tool for optimizing images and vector graphics.

\n

\n \n

\n

Core libs

\n\n

Download and Installation on macOS

\n

Go to Releases get the latest build, download and install.

\n

Development

\n
# install dependencies\nyarn\n# serve with hot reload\nyarn dev
\n

Build

\n
# build application for production\nyarn build
\n

Related

\n\n

Copyright (c) 2021-present, Anton Reshetov.

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.085Z" }, "horen": { "readmeCleaned": "

Horen

\n

Horen 是一个用 React 和 electron 打造的本地音乐播放器,正在不断开发中

\n

\"preview-gif\"

\n

预览图

\n

曲库界面

\n

\"preview-library\"

\n

设置界面

\n

\"preview-setting\"

\n

专辑预览

\n

\"preview-album\"

\n

播放列表

\n

\"preview-queue\"

\n

正在播放(歌词显示)

\n

\"preview-play-show\"

\n

功能进度

\n\n

优化

\n\n

开发

\n
git clone https://github.com/kevinjobs/Horen.git\n\ncd Horen\n\n# then\nnpm install\n\n# start the app\nnpm run start\n\n# build the app\nnpm run build\n\n# package\nnpm run dist
\n

LICENSE

\n

Apache License Version 2.0

\n
", "readmeOriginal": "

Horen

\n

Horen 是一个用 React 和 electron 打造的本地音乐播放器,正在不断开发中

\n

\"preview-gif\"

\n

预览图

\n

曲库界面

\n

\"preview-library\"

\n

设置界面

\n

\"preview-setting\"

\n

专辑预览

\n

\"preview-album\"

\n

播放列表

\n

\"preview-queue\"

\n

正在播放(歌词显示)

\n

\"preview-play-show\"

\n

功能进度

\n\n

优化

\n\n

开发

\n
git clone https://github.com/kevinjobs/Horen.git\n\ncd Horen\n\n# then\nnpm install\n\n# start the app\nnpm run start\n\n# build the app\nnpm run build\n\n# package\nnpm run dist
\n

LICENSE

\n

Apache License Version 2.0

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.096Z" }, "hyper": { "readmeCleaned": "

\"\"

\n

\n \n \n \n

\n

\"Node\n\"Changelog

\n

For more details, head to: https://hyper.is

\n

Project goals

\n

The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards. In the beginning, our focus will be primarily around speed, stability and the development of the correct API for extension authors.

\n

In the future, we anticipate the community will come up with innovative additions to enhance what could be the simplest, most powerful and well-tested interface for productivity.

\n

Usage

\n

Download the latest release!

\n

Linux

\n

Arch and derivatives

\n

Hyper is available in the AUR. Use an AUR package manager e.g. paru

\n
paru -S hyper
\n

NixOS

\n

Hyper is available as Nix package, to install the app run this command:

\n
nix-env -i hyper
\n

macOS

\n

Use Homebrew Cask to download the app by running these commands:

\n
brew update\nbrew install --cask hyper
\n

Windows

\n

Use chocolatey to install the app by running the following command (package information can be found here):

\n
choco install hyper
\n

Note: The version available on Homebrew Cask, Chocolatey, Snapcraft or the AUR may not be the latest. Please consider downloading it from here if that's the case.

\n

Contribute

\n

Regardless of the platform you are working on, you will need to have Yarn installed. If you have never installed Yarn before, you can find out how at: https://yarnpkg.com/en/docs/install.

\n
    \n
  1. Install necessary packages:
  2. \n
\n\n
    \n
  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. \n
  3. Install the dependencies: yarn
  4. \n
  5. Build the code and watch for changes: yarn run dev
  6. \n
  7. To run hyper
  8. \n
\n\n

To make sure that your code works in the finished application, you can generate the binaries like this:

\n
yarn run dist
\n

After that, you will see the binary in the ./dist folder!

\n

Known issues that can happen during development

\n
Error building node-pty
\n

If after building during development you get an alert dialog related to node-pty issues,\nmake sure its build process is working correctly by running yarn run rebuild-node-pty.

\n

If you are on macOS, this typically is related to Xcode issues (like not having agreed\nto the Terms of Service by running sudo xcodebuild after a fresh Xcode installation).

\n
Error with C++ on macOS when running yarn
\n

If you are getting compiler errors when running yarn add the environment variable export CXX=clang++

\n
Error with codesign on macOS when running yarn run dist
\n

If you have issues in the codesign step when running yarn run dist on macOS, you can temporarily disable code signing locally by setting\nexport CSC_IDENTITY_AUTO_DISCOVERY=false for the current terminal session.

\n

Related Repositories

\n\n
", "readmeOriginal": "

\"\"

\n

\n \n \n \n

\n

\"Node\n\"Changelog

\n

For more details, head to: https://hyper.is

\n

Project goals

\n

The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards. In the beginning, our focus will be primarily around speed, stability and the development of the correct API for extension authors.

\n

In the future, we anticipate the community will come up with innovative additions to enhance what could be the simplest, most powerful and well-tested interface for productivity.

\n

Usage

\n

Download the latest release!

\n

Linux

\n

Arch and derivatives

\n

Hyper is available in the AUR. Use an AUR package manager e.g. paru

\n
paru -S hyper
\n

NixOS

\n

Hyper is available as Nix package, to install the app run this command:

\n
nix-env -i hyper
\n

macOS

\n

Use Homebrew Cask to download the app by running these commands:

\n
brew update\nbrew install --cask hyper
\n

Windows

\n

Use chocolatey to install the app by running the following command (package information can be found here):

\n
choco install hyper
\n

Note: The version available on Homebrew Cask, Chocolatey, Snapcraft or the AUR may not be the latest. Please consider downloading it from here if that's the case.

\n

Contribute

\n

Regardless of the platform you are working on, you will need to have Yarn installed. If you have never installed Yarn before, you can find out how at: https://yarnpkg.com/en/docs/install.

\n
    \n
  1. Install necessary packages:
  2. \n
\n\n
    \n
  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. \n
  3. Install the dependencies: yarn
  4. \n
  5. Build the code and watch for changes: yarn run dev
  6. \n
  7. To run hyper
  8. \n
\n\n

To make sure that your code works in the finished application, you can generate the binaries like this:

\n
yarn run dist
\n

After that, you will see the binary in the ./dist folder!

\n

Known issues that can happen during development

\n
Error building node-pty
\n

If after building during development you get an alert dialog related to node-pty issues,\nmake sure its build process is working correctly by running yarn run rebuild-node-pty.

\n

If you are on macOS, this typically is related to Xcode issues (like not having agreed\nto the Terms of Service by running sudo xcodebuild after a fresh Xcode installation).

\n
Error with C++ on macOS when running yarn
\n

If you are getting compiler errors when running yarn add the environment variable export CXX=clang++

\n
Error with codesign on macOS when running yarn run dist
\n

If you have issues in the codesign step when running yarn run dist on macOS, you can temporarily disable code signing locally by setting\nexport CSC_IDENTITY_AUTO_DISCOVERY=false for the current terminal session.

\n

Related Repositories

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.133Z" }, "infinitex": { "readmeCleaned": "

Infinitex

\n

\"alt

\n

This is my first attempt to write a desktop app with electron and learn the fantastic reactjs library. The editor is far from complete but I use it personally and I wanted to open-source it so that others can help with it.

\n

The one part of the app is a LaTeX editor with search functionality and simplified bibliography and packages handling. The other part is a WYSIWYG editor based on quilljs. The simple part also supports encrypted documents.

\n

I have built it on Debian Linux and I tried on Windows but, like always, everything in there is crappy compared to Linux so I just dropped it. I still have not tested on mac but I plan on doing it soon. Otherwise I expect that the program will be fully functional for anyone who wants to develop it on their mac.

\n

URL for prebuild binaries with autoupdates.

\n

In order to run LaTeX you need to have an installed version of the interpeter like TeXlive, MacTex or MikTex.

\n

To start the process go to the folder, open a terminal there and press

\n
yarn && yarn preminify\nnpm start\n
\n

The file Infinitex.jsx is only used for react-dom. The app.jsx file separates the two environments and has width and height event listeners.\nThe grid.jsx file has the LaTeX editor and the editor.jsx file has the WYSIWYG.

\n

To build the minified js you press

\n
npm run minify\n
\n

To create the executable in a dist folder run (!Attention! This will trigger the minification which takes a lot of time)

\n
npm run dist\n
\n

Issues:

\n
    \n
  1. Compilation and configurations for Mac (probably works, will test soon) and Windows.
  2. \n
  3. Configure auto-updates (work on linux and windows).
  4. \n
  5. Detect latex change and move pdf to that page.
  6. \n
  7. Better memory handling of Ace editor.
  8. \n
  9. Open files with the app without the app being open
  10. \n
  11. Configure KaTeX to take both $math$ and $$math$$ and interpret them accordingly.
  12. \n
  13. Open formula module on math selection at simple.
  14. \n
\n

Roadmap:

\n
    \n
  1. Either move to Semantic UI or Material UI beta for performance.
  2. \n
  3. Integration with cloud servicesIPFS for collaboration (working on it).
  4. \n
\n
", "readmeOriginal": "

Infinitex

\n

\"alt

\n

This is my first attempt to write a desktop app with electron and learn the fantastic reactjs library. The editor is far from complete but I use it personally and I wanted to open-source it so that others can help with it.

\n

The one part of the app is a LaTeX editor with search functionality and simplified bibliography and packages handling. The other part is a WYSIWYG editor based on quilljs. The simple part also supports encrypted documents.

\n

I have built it on Debian Linux and I tried on Windows but, like always, everything in there is crappy compared to Linux so I just dropped it. I still have not tested on mac but I plan on doing it soon. Otherwise I expect that the program will be fully functional for anyone who wants to develop it on their mac.

\n

URL for prebuild binaries with autoupdates.

\n

In order to run LaTeX you need to have an installed version of the interpeter like TeXlive, MacTex or MikTex.

\n

To start the process go to the folder, open a terminal there and press

\n
yarn && yarn preminify\nnpm start\n
\n

The file Infinitex.jsx is only used for react-dom. The app.jsx file separates the two environments and has width and height event listeners.\nThe grid.jsx file has the LaTeX editor and the editor.jsx file has the WYSIWYG.

\n

To build the minified js you press

\n
npm run minify\n
\n

To create the executable in a dist folder run (!Attention! This will trigger the minification which takes a lot of time)

\n
npm run dist\n
\n

Issues:

\n
    \n
  1. Compilation and configurations for Mac (probably works, will test soon) and Windows.
  2. \n
  3. Configure auto-updates (work on linux and windows).
  4. \n
  5. Detect latex change and move pdf to that page.
  6. \n
  7. Better memory handling of Ace editor.
  8. \n
  9. Open files with the app without the app being open
  10. \n
  11. Configure KaTeX to take both $math$ and $$math$$ and interpret them accordingly.
  12. \n
  13. Open formula module on math selection at simple.
  14. \n
\n

Roadmap:

\n
    \n
  1. Either move to Semantic UI or Material UI beta for performance.
  2. \n
  3. Integration with cloud servicesIPFS for collaboration (working on it).
  4. \n
\n
", "readmeFetchedAt": "2022-05-10T00:07:55.307Z" }, "imagine": { "readmeCleaned": "

Imagine

\n

\"build\"

\n

Imagine is a desktop app for compression of PNG and JPEG, with a modern and friendly UI.

\n

Save for web.

\n

Install

\n

For Windows, macOS and Linux, download binaries from:

\n

https://github.com/meowtec/Imagine/releases

\n\n

国内用户从 GitHub 下载可能比较慢,可以使用国内加速

\n

Install on linux

\n

App for linux is distributed in AppImage format.\nInstall it with command line:

\n
chmod a+x Imagine-x.y.z-x86_64.AppImage # make executable\n./Imagine-x.y.z-x86_64.AppImage # install and run
\n

Screenshot (from legacy version)

\n

GIF(7.4M)

\n

\"\"

\n

Features

\n\n

Build and Contribute

\n
git clone https://github.com/meowtec/Imagine.git\nnpm install\nnpm run dev
\n

A PR with all checks passed is welcome.

\n

Before submit a PR, please run npm run test and make sure it success on your machine.

\n

Up to now, there are only 5 locales. To add a new locale, you can either submit a PR, or create an issue, or just send me an email(found in my profile).

\n

Built on

\n\n
", "readmeOriginal": "

Imagine

\n

\"build\"

\n

Imagine is a desktop app for compression of PNG and JPEG, with a modern and friendly UI.

\n

Save for web.

\n

Install

\n

For Windows, macOS and Linux, download binaries from:

\n

https://github.com/meowtec/Imagine/releases

\n\n

国内用户从 GitHub 下载可能比较慢,可以使用国内加速

\n

Install on linux

\n

App for linux is distributed in AppImage format.\nInstall it with command line:

\n
chmod a+x Imagine-x.y.z-x86_64.AppImage # make executable\n./Imagine-x.y.z-x86_64.AppImage # install and run
\n

Screenshot (from legacy version)

\n

GIF(7.4M)

\n

\"\"

\n

Features

\n\n

Build and Contribute

\n
git clone https://github.com/meowtec/Imagine.git\nnpm install\nnpm run dev
\n

A PR with all checks passed is welcome.

\n

Before submit a PR, please run npm run test and make sure it success on your machine.

\n

Up to now, there are only 5 locales. To add a new locale, you can either submit a PR, or create an issue, or just send me an email(found in my profile).

\n

Built on

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.320Z" }, "inboxer": { "readmeCleaned": "
\n

🚧 This project is deprecated! 🚧

\n

As you know Google is going to take down Inbox service.

\n

This project is not maintained anymore. Since Inbox is closed this project has to be closed as well. It just cannot operate normally without Inbox.

\n

You can find more information here.

\n
\n
\n \n

Inboxer

\n

\n \"Version\"\n \"Travis\n \"Platform\"\n \"Donate\n \"Donate\n \"Donate\n

\n
\n
\n

Unofficial, free and open-source Google Gmail Desktop App

\n
\n

Inboxer — started out as an unofficial Inbox by Gmail client for desktop platforms. However, Google plans to discontinue Inbox at the end of March 2019 (see official announcement). To keep Inboxer alive we have converted it to work with Gmail. Inboxer is now built on top of Gmail web-version. It has pleasant UI and supports useful keyboard shortcuts.

\n

Inboxer is highly inspired by these projects:

\n\n

Check out these ones as great examples of Electron applications. All of them are under the MIT license.

\n

Features

\n\n

All feature requests and contributions are welcome!

\n

Screenshot

\n\n

Installation

\n

Inboxer works well on macOS 10.9+, Linux and Windows 7+. You can download the latest version on Releases page or below.\nInboxer is also available through the nix package manager (see package in nix)

\n

macOS

\n

Download the .dmg file or install via Homebrew-Cask:

\n
$ brew cask install inboxer\n
\n

Linux

\n

Download the .AppImage* or .deb or .snap file.

\n

* — Notice, that the AppImage needs to be made executable after download.

\n

Windows

\n

Download the .exe file.

\n

Package Inboxer from source

\n

You'll need electron and npm installed in your system.\nDownload and extract the source code (.zip or .tar.gz file).\nInside the source code folder, run:

\n
$ npm install\n
\n

Then package the app with:

\n
$ npm run dist\n
\n

This builds packages for all architectures. Use dist:mac, dist:linux, or dist:win to package a single architecture. The packages will be found in the dist folder.

\n

Keyboard shortcuts

\n

Inboxer supports all Gmail keyboard shortcuts, system-specific keybindings and more. Additional keybindings are listed below:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DescriptionKeys
PreferencesCmd/Ctrl P
Compose MessageCmd/Ctrl N
Go to InboxCmd/Ctrl I
Go to SnoozedCmd/Ctrl S
Go to DoneCmd/Ctrl D
DraftsCmd/Ctrl Shift D
SentCmd/Ctrl Shift S
TrashAlt Shift T
SpamAlt Shift S
Open ContactsCmd/Ctrl Shift C
SearchCmd/Ctrl F
Toggle SidebarCmd/Ctrl /
Toggle \"Always on Top\"Cmd/Ctrl Shift T
Keyboard Shortcuts ReferenceShift / or ?
Toggle Developer ToolsOption Cmd I (macOS) or Ctrl Shift I
\n

Disclaimer

\n

This code is in no way affiliated with, authorised, maintained, sponsored or endorsed by Google or any of its affiliates or subsidiaries. This is an independent and unofficial Gmail app. Use it at your own risk.

\n

End User License Agreement

\n\n

Donate

\n

Hi! I work on this project in my spare time, beside my primary job. I hope enjoy using Inboxer, and if you do, please, support this project 🙏🏻.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Credit/Debit cardBitcoinEthereum
Donate with LiqPay1FrPrQb6ACTkbSBAz9PduJWrDFfq41Ggb40x6aF39C917359897ae6969Ad682C14110afe1a0a1
\n

I would appreciate your support! Thank you!

\n

License

\n

MIT © Denys Dovhan

\n\n
", "readmeOriginal": "
\n

🚧 This project is deprecated! 🚧

\n

As you know Google is going to take down Inbox service.

\n

This project is not maintained anymore. Since Inbox is closed this project has to be closed as well. It just cannot operate normally without Inbox.

\n

You can find more information here.

\n
\n
\n \n

Inboxer

\n

\n \"Version\"\n \"Travis\n \"Platform\"\n \"Donate\n \"Donate\n \"Donate\n

\n
\n
\n

Unofficial, free and open-source Google Gmail Desktop App

\n
\n

Inboxer — started out as an unofficial Inbox by Gmail client for desktop platforms. However, Google plans to discontinue Inbox at the end of March 2019 (see official announcement). To keep Inboxer alive we have converted it to work with Gmail. Inboxer is now built on top of Gmail web-version. It has pleasant UI and supports useful keyboard shortcuts.

\n

Inboxer is highly inspired by these projects:

\n\n

Check out these ones as great examples of Electron applications. All of them are under the MIT license.

\n

Features

\n\n

All feature requests and contributions are welcome!

\n

Screenshot

\n\n

Installation

\n

Inboxer works well on macOS 10.9+, Linux and Windows 7+. You can download the latest version on Releases page or below.\nInboxer is also available through the nix package manager (see package in nix)

\n

macOS

\n

Download the .dmg file or install via Homebrew-Cask:

\n
$ brew cask install inboxer\n
\n

Linux

\n

Download the .AppImage* or .deb or .snap file.

\n

* — Notice, that the AppImage needs to be made executable after download.

\n

Windows

\n

Download the .exe file.

\n

Package Inboxer from source

\n

You'll need electron and npm installed in your system.\nDownload and extract the source code (.zip or .tar.gz file).\nInside the source code folder, run:

\n
$ npm install\n
\n

Then package the app with:

\n
$ npm run dist\n
\n

This builds packages for all architectures. Use dist:mac, dist:linux, or dist:win to package a single architecture. The packages will be found in the dist folder.

\n

Keyboard shortcuts

\n

Inboxer supports all Gmail keyboard shortcuts, system-specific keybindings and more. Additional keybindings are listed below:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DescriptionKeys
PreferencesCmd/Ctrl P
Compose MessageCmd/Ctrl N
Go to InboxCmd/Ctrl I
Go to SnoozedCmd/Ctrl S
Go to DoneCmd/Ctrl D
DraftsCmd/Ctrl Shift D
SentCmd/Ctrl Shift S
TrashAlt Shift T
SpamAlt Shift S
Open ContactsCmd/Ctrl Shift C
SearchCmd/Ctrl F
Toggle SidebarCmd/Ctrl /
Toggle \"Always on Top\"Cmd/Ctrl Shift T
Keyboard Shortcuts ReferenceShift / or ?
Toggle Developer ToolsOption Cmd I (macOS) or Ctrl Shift I
\n

Disclaimer

\n

This code is in no way affiliated with, authorised, maintained, sponsored or endorsed by Google or any of its affiliates or subsidiaries. This is an independent and unofficial Gmail app. Use it at your own risk.

\n

End User License Agreement

\n\n

Donate

\n

Hi! I work on this project in my spare time, beside my primary job. I hope enjoy using Inboxer, and if you do, please, support this project 🙏🏻.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Credit/Debit cardBitcoinEthereum
Donate with LiqPay1FrPrQb6ACTkbSBAz9PduJWrDFfq41Ggb40x6aF39C917359897ae6969Ad682C14110afe1a0a1
\n

I would appreciate your support! Thank you!

\n

License

\n

MIT © Denys Dovhan

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.346Z" }, "instatron": { "readmeCleaned": "

\n \n
\n
\n

\n

\n \"Dependency\n \"devDependency\n \"MIT\n \"Current\n

\n

\n \"Paypal\"\n \"Patreon\"\n \"buymeacoffee\"\n

\n

Instatron - Instagram desktop uploader

\n

A simple Instagram desktop uploader & client app build with electron. Share your photos and images just like on your mobile phone!

\n

\n \n
\n
\n

\n

Table of contents

\n\n

Features

\n\n

Install

\n

Clone this repo

\n
git clone https://github.com/alexdevero/instatron.git\n
\n

Install dependencies

\n
npm install\n
\n

or

\n
yarn\n
\n

Usage

\n

Run the app

\n
npm run start\n
\n

or

\n
yarn run start\n
\n

Build the app

\n
npm run package\n
\n

or

\n
yarn run package\n
\n

Support this project

\n

I open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously,\nthis takes time. You can use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

\n

If you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:

\n\n

Thank you!

\n

Code of Conduct

\n

Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

\n

License

\n

MIT © Alex Devero.

\n\n
", "readmeOriginal": "

\n \n
\n
\n

\n

\n \"Dependency\n \"devDependency\n \"MIT\n \"Current\n

\n

\n \"Paypal\"\n \"Patreon\"\n \"buymeacoffee\"\n

\n

Instatron - Instagram desktop uploader

\n

A simple Instagram desktop uploader & client app build with electron. Share your photos and images just like on your mobile phone!

\n

\n \n
\n
\n

\n

Table of contents

\n\n

Features

\n\n

Install

\n

Clone this repo

\n
git clone https://github.com/alexdevero/instatron.git\n
\n

Install dependencies

\n
npm install\n
\n

or

\n
yarn\n
\n

Usage

\n

Run the app

\n
npm run start\n
\n

or

\n
yarn run start\n
\n

Build the app

\n
npm run package\n
\n

or

\n
yarn run package\n
\n

Support this project

\n

I open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously,\nthis takes time. You can use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

\n

If you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:

\n\n

Thank you!

\n

Code of Conduct

\n

Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

\n

License

\n

MIT © Alex Devero.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.386Z" }, "interactive-data-editor": { "readmeCleaned": "

Interactive Data Editor

\n

A Software to interactively edit data in a graphical manner.

\n

\"Version\"\n\"MIT\n\"interactive-data-editor\"\n\"interactive-data-editor\"
\n\"DOI\"\n\"Version\"
\n\"alt\nWe have all worked with data at some point of time. Now, depending on the source, sometimes the data may not be regular, smooth and uniform and requires refinement before applying for any practical use. This software lets you do that very easily and efficiently in a graphical way including many others useful data operation.

\n

👍 Features

\n
    \n
  1. Edit one or multiple points by dragging with mouse and keyboard keys.
  2. \n
  3. Automatically smooth data using spline and linear Kernel smoother.
  4. \n
  5. Fit any function to the data.
  6. \n
  7. Plot any 2D and gridded 3D data with LaTeX rendering support.
  8. \n
  9. Export images in five format in any resolution.
  10. \n
  11. Simultaneously work with multiple datasets.
  12. \n
  13. Fill missing values.
  14. \n
  15. Remove bad data points.
  16. \n
  17. Repeat or mirror data any required times.
  18. \n
  19. Filter data subject to a given condition.
  20. \n
  21. Swap data between two lines or surfaces.
  22. \n
  23. Supports undo/redo.
  24. \n
  25. Change sign of any selected part of the data.
  26. \n
  27. Spreadsheet editor with all basic excel like features including formula parsing.\n And many more...
  28. \n
\n

Download and installation

\n

The software is available as pre-built binaries for different platforms. Install the appropriate installer for your system available in releases section of this repo. Also available as snap for linux users.
\n\"Get

\n

🚀 Quick Reference

\n

For a quick reference, documentation and FAQs check out https://koushikphy.github.io/Interactive_Data_Editor/.

\n

Copyright and license

\n

Copyright © July 2020, Koushik Naskar. All rights reserved.\nLicensed under the MIT License.

\n

Citation

\n

If this software was helpful in your work, please cite this project as https://doi.org/10.5281/zenodo.3947507.

\n
", "readmeOriginal": "

Interactive Data Editor

\n

A Software to interactively edit data in a graphical manner.

\n

\"Version\"\n\"MIT\n\"interactive-data-editor\"\n\"interactive-data-editor\"
\n\"DOI\"\n\"Version\"
\n\"alt\nWe have all worked with data at some point of time. Now, depending on the source, sometimes the data may not be regular, smooth and uniform and requires refinement before applying for any practical use. This software lets you do that very easily and efficiently in a graphical way including many others useful data operation.

\n

👍 Features

\n
    \n
  1. Edit one or multiple points by dragging with mouse and keyboard keys.
  2. \n
  3. Automatically smooth data using spline and linear Kernel smoother.
  4. \n
  5. Fit any function to the data.
  6. \n
  7. Plot any 2D and gridded 3D data with LaTeX rendering support.
  8. \n
  9. Export images in five format in any resolution.
  10. \n
  11. Simultaneously work with multiple datasets.
  12. \n
  13. Fill missing values.
  14. \n
  15. Remove bad data points.
  16. \n
  17. Repeat or mirror data any required times.
  18. \n
  19. Filter data subject to a given condition.
  20. \n
  21. Swap data between two lines or surfaces.
  22. \n
  23. Supports undo/redo.
  24. \n
  25. Change sign of any selected part of the data.
  26. \n
  27. Spreadsheet editor with all basic excel like features including formula parsing.\n And many more...
  28. \n
\n

Download and installation

\n

The software is available as pre-built binaries for different platforms. Install the appropriate installer for your system available in releases section of this repo. Also available as snap for linux users.
\n\"Get

\n

🚀 Quick Reference

\n

For a quick reference, documentation and FAQs check out https://koushikphy.github.io/Interactive_Data_Editor/.

\n

Copyright and license

\n

Copyright © July 2020, Koushik Naskar. All rights reserved.\nLicensed under the MIT License.

\n

Citation

\n

If this software was helpful in your work, please cite this project as https://doi.org/10.5281/zenodo.3947507.

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.618Z" }, "invizi": { "readmeCleaned": "

Invizi

\n

\"Electron\n\"Electron\n\"Electron

\n

Invizi is a 100% open source, private and free cryptocurrency manager.

\n

With Invizi you can safely track and trade your digital assets - all your data is local, encrypted and never leaves your computer. Invizi is a public good and will always be free to use.

\n

\"invizi-dashboard\"

\n

Our mission is to empower people to manage their digital assets without compromising their privacy. We want to usher in a world without data breaches, predatory ad models, commoditization of user’s data and abuse of privacy.

\n

How to build and run from source

\n

Prerequisites

\n\n

1. Get the source

\n
git clone https://github.com/invizi/invizi.git
\n

2. Build

\n
cd invizi\n\n# install dependencies\nnpm install
\n

Build for Mac

\n
npm run build:mac
\n

Build for Windows

\n
npm run build:win
\n

Build for Linux

\n
npm run build:linux
\n

the executable will be placed in ./build folder

\n

Contributing

\n

There are many ways in which you can contribute:

\n\n

License

\n

Licensed under the GPLv3 license.

\n
", "readmeOriginal": "

Invizi

\n

\"Electron\n\"Electron\n\"Electron

\n

Invizi is a 100% open source, private and free cryptocurrency manager.

\n

With Invizi you can safely track and trade your digital assets - all your data is local, encrypted and never leaves your computer. Invizi is a public good and will always be free to use.

\n

\"invizi-dashboard\"

\n

Our mission is to empower people to manage their digital assets without compromising their privacy. We want to usher in a world without data breaches, predatory ad models, commoditization of user’s data and abuse of privacy.

\n

How to build and run from source

\n

Prerequisites

\n\n

1. Get the source

\n
git clone https://github.com/invizi/invizi.git
\n

2. Build

\n
cd invizi\n\n# install dependencies\nnpm install
\n

Build for Mac

\n
npm run build:mac
\n

Build for Windows

\n
npm run build:win
\n

Build for Linux

\n
npm run build:linux
\n

the executable will be placed in ./build folder

\n

Contributing

\n

There are many ways in which you can contribute:

\n\n

License

\n

Licensed under the GPLv3 license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.620Z" }, "infiniti-clips": { "readmeCleaned": "

\n \"Clips\"\n

\n

\"Github\n\"infiniti-clips\"\n\"infiniti-clips\"

\n

Clips is a free, open source hybrid clipboard application available for Windows and macOS.

\n

Clips powered by Google Drive synchronize your clipboard with multiple devices, and allows you to quickly search throw your clipboard history.

\n

Clips is MIT licensed.

\n

History

\n

Clips is a revision of Infiniti Clips.

\n

Codebase

\n

Clips is written completely in TypeScript, and built with Vue CLI Plugin Electron Builder.

\n

Clips makes extensive use of functional and reactive programming.

\n

Status

\n

You can find the current area of focus in Github Issues.

\n

Getting Started

\n

To setup Clips, all you need is

\n
$ git clone https://github.com/azure06/clips.git\n$ cd clips\n$ touch .env
\n

and finally

\n
$ npm install\n$ npm run electron:serve
\n

Note:

\n

Clips has been tested with Node v16.13.0 and npm 8.1.0\nRecently due to an issue with Electron Updater you may need to make some modifications to node_modules/electron-updater/out/AppUpdater.js file by changing const promises_1 = require(\"fs/promises\"); to const promises_1 = require(\"fs\").promises;

\n

Philosophy

\n

Work in progress.

\n

Project Management

\n

Work in progress.

\n

Technical

\n

Work in progress.

\n

Community

\n

Work in progress.

\n
", "readmeOriginal": "

\n \"Clips\"\n

\n

\"Github\n\"infiniti-clips\"\n\"infiniti-clips\"

\n

Clips is a free, open source hybrid clipboard application available for Windows and macOS.

\n

Clips powered by Google Drive synchronize your clipboard with multiple devices, and allows you to quickly search throw your clipboard history.

\n

Clips is MIT licensed.

\n

History

\n

Clips is a revision of Infiniti Clips.

\n

Codebase

\n

Clips is written completely in TypeScript, and built with Vue CLI Plugin Electron Builder.

\n

Clips makes extensive use of functional and reactive programming.

\n

Status

\n

You can find the current area of focus in Github Issues.

\n

Getting Started

\n

To setup Clips, all you need is

\n
$ git clone https://github.com/azure06/clips.git\n$ cd clips\n$ touch .env
\n

and finally

\n
$ npm install\n$ npm run electron:serve
\n

Note:

\n

Clips has been tested with Node v16.13.0 and npm 8.1.0\nRecently due to an issue with Electron Updater you may need to make some modifications to node_modules/electron-updater/out/AppUpdater.js file by changing const promises_1 = require(\"fs/promises\"); to const promises_1 = require(\"fs\").promises;

\n

Philosophy

\n

Work in progress.

\n

Project Management

\n

Work in progress.

\n

Technical

\n

Work in progress.

\n

Community

\n

Work in progress.

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.717Z" }, "insomnia": { "readmeCleaned": "

Insomnia API Client

\n

\"Slack\n\"license\"

\n

Insomnia is an open-source, cross-platform API client for GraphQL, REST, and gRPC.

\n

\"Insomnia

\n

Download

\n

Insomnia is available for Mac, Windows, and Linux and can be downloaded\nfrom the website.

\n

https://insomnia.rest/download

\n

Bugs and Feature Requests

\n

Have a bug or a feature request? First, read the\nissue guidelines and search for existing and\nclosed issues. If your problem or idea is not addressed yet, please open a new issue.

\n

For more generic product questions and feedback, join the Slack Team or email\nsupport@insomnia.rest

\n

Contributing

\n

Please read through our contributing guidelines and code of conduct. Included are directions for opening issues, coding standards, and notes on development.

\n

Documentation

\n

Check out our open-source Insomnia Documentation.

\n

Develop Insomnia

\n

Development on Insomnia can be done on Mac, Windows, or Linux as long as you have Node.js and Git. See the .nvmrc file located in the project for the correct Node version.

\n
\nInitial Dev Setup\n

This repository is structured as a monorepo and contains many Node.JS packages. Each package has its own set of commands, but the most common commands are available from the root package.json and can be accessed using the npm run ... command. Here are the only three commands you should need to start developing on the app.

\n
# Install and Link Dependencies\nnpm run bootstrap\n\n# Run Tests\nnpm test\n\n# Start App with Live Reload\nnpm run app-start
\n

Linux

\n

If you are on Linux, you may need to install the following supporting packages:

\n
\nUbuntu/Debian\n
# Update library\nsudo apt-get update\n\n# Install font configuration library & support\nsudo apt-get install libfontconfig-dev
\n
\n
\nFedora\n
# Install libcurl for node-libcurl\nsudo dnf install libcurl-devel
\n
\n

Also on Linux, if Electron is failing during the bootstrap process, run the following

\n
# Clear Electron install conflicts\nrm -rf ~/.cache/electron
\n

Windows

\n

If you are on Windows and have problems, you may need to install Windows Build Tools

\n
\n
\nEditor Requirements\n

You can use any editor you'd like, but make sure to have support/plugins for the following tools:

\n
    \n
  • ESLint – For catching syntax problems and common errors
  • \n
  • JSX Syntax – For React components
  • \n
\n
\n

Develop Inso CLI

\n\n

Plugins

\n

Search for, discover, and install plugins from the Insomnia Plugin Hub!

\n

Community Projects

\n\n

License

\n

MIT © Insomnia

\n
", "readmeOriginal": "

Insomnia API Client

\n

\"Slack\n\"license\"

\n

Insomnia is an open-source, cross-platform API client for GraphQL, REST, and gRPC.

\n

\"Insomnia

\n

Download

\n

Insomnia is available for Mac, Windows, and Linux and can be downloaded\nfrom the website.

\n

https://insomnia.rest/download

\n

Bugs and Feature Requests

\n

Have a bug or a feature request? First, read the\nissue guidelines and search for existing and\nclosed issues. If your problem or idea is not addressed yet, please open a new issue.

\n

For more generic product questions and feedback, join the Slack Team or email\nsupport@insomnia.rest

\n

Contributing

\n

Please read through our contributing guidelines and code of conduct. Included are directions for opening issues, coding standards, and notes on development.

\n

Documentation

\n

Check out our open-source Insomnia Documentation.

\n

Develop Insomnia

\n

Development on Insomnia can be done on Mac, Windows, or Linux as long as you have Node.js and Git. See the .nvmrc file located in the project for the correct Node version.

\n
\nInitial Dev Setup\n

This repository is structured as a monorepo and contains many Node.JS packages. Each package has its own set of commands, but the most common commands are available from the root package.json and can be accessed using the npm run ... command. Here are the only three commands you should need to start developing on the app.

\n
# Install and Link Dependencies\nnpm run bootstrap\n\n# Run Tests\nnpm test\n\n# Start App with Live Reload\nnpm run app-start
\n

Linux

\n

If you are on Linux, you may need to install the following supporting packages:

\n
\nUbuntu/Debian\n
# Update library\nsudo apt-get update\n\n# Install font configuration library & support\nsudo apt-get install libfontconfig-dev
\n
\n
\nFedora\n
# Install libcurl for node-libcurl\nsudo dnf install libcurl-devel
\n
\n

Also on Linux, if Electron is failing during the bootstrap process, run the following

\n
# Clear Electron install conflicts\nrm -rf ~/.cache/electron
\n

Windows

\n

If you are on Windows and have problems, you may need to install Windows Build Tools

\n
\n
\nEditor Requirements\n

You can use any editor you'd like, but make sure to have support/plugins for the following tools:

\n
    \n
  • ESLint – For catching syntax problems and common errors
  • \n
  • JSX Syntax – For React components
  • \n
\n
\n

Develop Inso CLI

\n\n

Plugins

\n

Search for, discover, and install plugins from the Insomnia Plugin Hub!

\n

Community Projects

\n\n

License

\n

MIT © Insomnia

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.740Z" }, "ioui": { "readmeCleaned": "

\"License:

\n

\n\n

\n

IOUI

\n

Welcome to IOUI(beta), a desktop app which provide you IONIC CLI in UI

\n\n

Requirements

\n\n

Download

\n

(Windows and Linux coming soon!)

\n

Mac: IOUI-1.0.0.dmg

\n

Main Features

\n\n

Future Goals

\n\n

How to Use

\n

MAC

\n

Download DMG file and install and use but we not support sudo feature so please in that directory where sudo not required soon we will give that feature.

\n

Resources

\n

Built with Electron and JS

\n

If you Like

\n

Give a ⭐️ if this App helped you!

\n

Authors: Shivang Pokar

\n
", "readmeOriginal": "

\"License:

\n

\n\n

\n

IOUI

\n

Welcome to IOUI(beta), a desktop app which provide you IONIC CLI in UI

\n\n

Requirements

\n\n

Download

\n

(Windows and Linux coming soon!)

\n

Mac: IOUI-1.0.0.dmg

\n

Main Features

\n\n

Future Goals

\n\n

How to Use

\n

MAC

\n

Download DMG file and install and use but we not support sudo feature so please in that directory where sudo not required soon we will give that feature.

\n

Resources

\n

Built with Electron and JS

\n

If you Like

\n

Give a ⭐️ if this App helped you!

\n

Authors: Shivang Pokar

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.853Z" }, "iptvnator": { "readmeCleaned": "

IPTVnator - IPTV Player Application

\n

\n \"IPTVnator\n

\n

\n \"Release\" \"GitHub \"Releases\" \"Codecov\" \"Twitter\"\n

\n

IPTVnator is a video player application that provides support for the playback of IPTV playlists (m3u, m3u8). The application allows to import playlists by using remote URLs or per file upload from the file system. Additionally there is a support of EPG information XMLTV-based which can be provided by URL.

\n

The application is a cross-platform and open source project based on Electron and Angular.

\n

⚠️ Note: IPTVnator doesn't provide any playlists or other digital content. The channels and pictures in the screenshots are for demonstration purposes only.

\n

\"IPTVnator:

\n

Features

\n\n

Screenshots:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welcome screen: Playlists overviewMain player interface with channels sidebar and video player
\"Welcome\"Sidebar
Welcome screen: Add playlist via file uploadWelcome screen: Add playlist via URL
\"Welcome\"Welcome
EPG Sidebar: TV guide on the right sideGeneral application settings
\"EPG:\"General
Playlist settings
\"Playlist
\n

Note: First version of the application which was developed as a PWA is available in an extra git branch.

\n

Download

\n

Download the latest version of the application for macOS, Windows and Linux from the release page.

\n

IPTVnator is also available as a snap package:

\n
$ sudo snap install iptvnator\n
\n

Also available as an Arch PKG, iptvnator-bin, in the AUR (using your favourite AUR-helper, .e.g. yay)

\n
$ yay -S iptvnator-bin\n
\n

\"Get

\n

\"Buy

\n

How to build

\n

Requirements: node.js with npm.

\n
    \n
  1. \n

    Clone this repository and install all project dependencies with:

    \n
    $ npm install\n
    \n
  2. \n
  3. \n

    To build the application on your local machine use one of the following commands:

    \n
    # linux\n$ npm run electron:build:linux\n
    \n
    #mac\n$ npm run electron:build:mac\n
    \n
    # windows\n$ npm run electron:build:windows\n
    \n
  4. \n
\n

This command will produce the distributable assets in the release folder based on the configuration from electron-builder which is stored in electron-builder.json and package.json. Check the API description of electron-builder and adapt the configuration if you need some special configuration for you environment.

\n

Note: Don’t expect that you can build app for all platforms on one platform. Read details

\n

Development

\n

The first thing to do is to install all the necessary dependencies:

\n
$ npm install\n
\n

To develop an application in PWA and Electron mode, you need to run the application with a command:

\n
$ npm run start\n
\n

The Electron version of the application will open in a separate window, and the PWA version will be available in the browser at http://localhost:4200.

\n

If you want to run only the angular app without electron, in this case you can use the command:

\n
$ npm run ng:serve\n
\n

Disclaimer

\n

IPTVnator doesn't provide any playlists or other digital content.

\n\n

\"All

\n\n
", "readmeOriginal": "

IPTVnator - IPTV Player Application

\n

\n \"IPTVnator\n

\n

\n \"Release\" \"GitHub \"Releases\" \"Codecov\" \"Twitter\"\n

\n

IPTVnator is a video player application that provides support for the playback of IPTV playlists (m3u, m3u8). The application allows to import playlists by using remote URLs or per file upload from the file system. Additionally there is a support of EPG information XMLTV-based which can be provided by URL.

\n

The application is a cross-platform and open source project based on Electron and Angular.

\n

⚠️ Note: IPTVnator doesn't provide any playlists or other digital content. The channels and pictures in the screenshots are for demonstration purposes only.

\n

\"IPTVnator:

\n

Features

\n\n

Screenshots:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welcome screen: Playlists overviewMain player interface with channels sidebar and video player
\"Welcome\"Sidebar
Welcome screen: Add playlist via file uploadWelcome screen: Add playlist via URL
\"Welcome\"Welcome
EPG Sidebar: TV guide on the right sideGeneral application settings
\"EPG:\"General
Playlist settings
\"Playlist
\n

Note: First version of the application which was developed as a PWA is available in an extra git branch.

\n

Download

\n

Download the latest version of the application for macOS, Windows and Linux from the release page.

\n

IPTVnator is also available as a snap package:

\n
$ sudo snap install iptvnator\n
\n

Also available as an Arch PKG, iptvnator-bin, in the AUR (using your favourite AUR-helper, .e.g. yay)

\n
$ yay -S iptvnator-bin\n
\n

\"Get

\n

\"Buy

\n

How to build

\n

Requirements: node.js with npm.

\n
    \n
  1. \n

    Clone this repository and install all project dependencies with:

    \n
    $ npm install\n
    \n
  2. \n
  3. \n

    To build the application on your local machine use one of the following commands:

    \n
    # linux\n$ npm run electron:build:linux\n
    \n
    #mac\n$ npm run electron:build:mac\n
    \n
    # windows\n$ npm run electron:build:windows\n
    \n
  4. \n
\n

This command will produce the distributable assets in the release folder based on the configuration from electron-builder which is stored in electron-builder.json and package.json. Check the API description of electron-builder and adapt the configuration if you need some special configuration for you environment.

\n

Note: Don’t expect that you can build app for all platforms on one platform. Read details

\n

Development

\n

The first thing to do is to install all the necessary dependencies:

\n
$ npm install\n
\n

To develop an application in PWA and Electron mode, you need to run the application with a command:

\n
$ npm run start\n
\n

The Electron version of the application will open in a separate window, and the PWA version will be available in the browser at http://localhost:4200.

\n

If you want to run only the angular app without electron, in this case you can use the command:

\n
$ npm run ng:serve\n
\n

Disclaimer

\n

IPTVnator doesn't provide any playlists or other digital content.

\n\n

\"All

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.878Z" }, "jamovi": { "readmeCleaned": "

jamovi

\n

jamovi is a free and open statistics package, which is easy to use, and designed to be familiar to users of SPSS. It provides a spreadsheet editor, and a range of statistical analyses. jamovi can provide R syntax for each analysis that is run, and additional analyses for jamovi can be developed using the R language.

\n

Come visit us at jamovi.org.

\n

running

\n

the easiest way to build and work on jamovi, is to build it as a docker container. clone this repo (and submodules), and then build it with:

\n
git clone https://github.com/jamovi/jamovi.git\ncd jamovi\ngit submodule update --init --recursive\ndocker-compose build\n
\n

once built, it can be run with:

\n
docker-compose up\n
\n

this launches an embedded web-server, and jamovi can be accessed with a web-browser at the url http://127.0.0.1:41337

\n
", "readmeOriginal": "

jamovi

\n

jamovi is a free and open statistics package, which is easy to use, and designed to be familiar to users of SPSS. It provides a spreadsheet editor, and a range of statistical analyses. jamovi can provide R syntax for each analysis that is run, and additional analyses for jamovi can be developed using the R language.

\n

Come visit us at jamovi.org.

\n

running

\n

the easiest way to build and work on jamovi, is to build it as a docker container. clone this repo (and submodules), and then build it with:

\n
git clone https://github.com/jamovi/jamovi.git\ncd jamovi\ngit submodule update --init --recursive\ndocker-compose build\n
\n

once built, it can be run with:

\n
docker-compose up\n
\n

this launches an embedded web-server, and jamovi can be accessed with a web-browser at the url http://127.0.0.1:41337

\n
", "readmeFetchedAt": "2022-05-10T00:07:55.908Z" }, "itch": { "readmeCleaned": "

itch

\n

\"MIT\n\"Built\n\"Build\n\"codecov\"\n\"Translation

\n

The goal of this project is to give you a desktop application that you can\ndownload and run games from itch.io with. Additionally you\nshould be able to update games and get notified when games are updated. The\ngoal is not to replace the itch.io website.

\n

Screenshots

\n

\"\"

\n

\"\"

\n

\"\"

\n

Downloads

\n

You can download it from https://itch.io/app, see Installing the app for\ndetailed instructions.

\n

If you'd like to develop the app instead, read the Getting Started page of the developer guide.

\n

About itch-setup

\n

itch-setup is the installer program for the itch app.

\n

It's a Go executable that runs on Windows, macOS and Linux, and downloads the latest\nversion of the app directly from https://itch.io.

\n

Although itch-setup is normally served from https://itch.io/app, the canonical\nsource to download it (e.g. for packaging purposes), is the following download server:

\n\n

broth is maintained by itch.io employees, and serves various packages related to the\nitch app.

\n

License

\n

itch is released under the MIT License, see the LICENSE file for details.

\n

Other relevant projects

\n

Here are some other apps people have started:

\n

Android

\n\n

iOS

\n\n
", "readmeOriginal": "

itch

\n

\"MIT\n\"Built\n\"Build\n\"codecov\"\n\"Translation

\n

The goal of this project is to give you a desktop application that you can\ndownload and run games from itch.io with. Additionally you\nshould be able to update games and get notified when games are updated. The\ngoal is not to replace the itch.io website.

\n

Screenshots

\n

\"\"

\n

\"\"

\n

\"\"

\n

Downloads

\n

You can download it from https://itch.io/app, see Installing the app for\ndetailed instructions.

\n

If you'd like to develop the app instead, read the Getting Started page of the developer guide.

\n

About itch-setup

\n

itch-setup is the installer program for the itch app.

\n

It's a Go executable that runs on Windows, macOS and Linux, and downloads the latest\nversion of the app directly from https://itch.io.

\n

Although itch-setup is normally served from https://itch.io/app, the canonical\nsource to download it (e.g. for packaging purposes), is the following download server:

\n\n

broth is maintained by itch.io employees, and serves various packages related to the\nitch app.

\n

License

\n

itch is released under the MIT License, see the LICENSE file for details.

\n

Other relevant projects

\n

Here are some other apps people have started:

\n

Android

\n\n

iOS

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:55.941Z" }, "jasper": { "readmeCleaned": "

Jasper

\n

A flexible and powerful issue reader for GitHub

\n\n

\"\"

\n

You will be able to read, track and discover many active issues very flexibly by using Jasper in GitHub. It is enabled by a powerful function called \"stream\" of Jasper.

\n

example repo:nodejs/node is:issue label:bug

\n

For Developers

\n

DEVELOP.md

\n

Internal TODO

\n\n
", "readmeOriginal": "

Jasper

\n

A flexible and powerful issue reader for GitHub

\n\n

\"\"

\n

You will be able to read, track and discover many active issues very flexibly by using Jasper in GitHub. It is enabled by a powerful function called \"stream\" of Jasper.

\n

example repo:nodejs/node is:issue label:bug

\n

For Developers

\n

DEVELOP.md

\n

Internal TODO

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:56.081Z" }, "juggernaut": { "readmeCleaned": "

\n
\n

Juggernaut utilizes the Lightning Network to provide end-to-end encrypted, onion-routed, censorship resistanst, peer-to-peer messaging with native payment capabilities.

\n
\n

\n

Install

\n

Download the latest release for your OS and follow the instructions below.

\n

macOS

\n

Double click the .dmg file and then drag Juggernaut.app into your Applications folder.

\n

Windows

\n

Just double click the .exe file to get started.

\n

Linux

\n

You must first make the file executable and then double click or run via cli ./file.AppImage

\n

Getting Help / Support

\n

If you are having problems with Juggernaut, please report the issue on Github or Telegram with screenshots and how to reproduce the issue.

\n

Requirements

\n\n

Running From Source

\n\n

Building From Source

\n

You can run yarn package to build an executable that will be output in the release directory.

\n

Running more than one instance while testing

\n

Currently the only way I've been able to do this for testing is to run one using yarn dev and the other using a built release from yarn package. If anyone knows how to run two separate instances of an electron app in development, please let me know!

\n

Maintainers

\n\n

License

\n

MIT © Juggernaut

\n

Contributors

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n
\"\"
John Cantrell

💻
\"\"
Ștefan D. Mihăilă

💻 🎨
\"\"
curly60e

📖
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeOriginal": "

\n
\n

Juggernaut utilizes the Lightning Network to provide end-to-end encrypted, onion-routed, censorship resistanst, peer-to-peer messaging with native payment capabilities.

\n
\n

\n

Install

\n

Download the latest release for your OS and follow the instructions below.

\n

macOS

\n

Double click the .dmg file and then drag Juggernaut.app into your Applications folder.

\n

Windows

\n

Just double click the .exe file to get started.

\n

Linux

\n

You must first make the file executable and then double click or run via cli ./file.AppImage

\n

Getting Help / Support

\n

If you are having problems with Juggernaut, please report the issue on Github or Telegram with screenshots and how to reproduce the issue.

\n

Requirements

\n\n

Running From Source

\n\n

Building From Source

\n

You can run yarn package to build an executable that will be output in the release directory.

\n

Running more than one instance while testing

\n

Currently the only way I've been able to do this for testing is to run one using yarn dev and the other using a built release from yarn package. If anyone knows how to run two separate instances of an electron app in development, please let me know!

\n

Maintainers

\n\n

License

\n

MIT © Juggernaut

\n

Contributors

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n
\"\"
John Cantrell

💻
\"\"
Ștefan D. Mihăilă

💻 🎨
\"\"
curly60e

📖
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.155Z" }, "joplin": { "readmeCleaned": "
\n

\"Donate \"Sponsor \"Become \"Donate

\n\n
\n

🌞 Joplin participates in Google Summer of Code 2022! More info on the announcement post. 🌞

\n
\n

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format.

\n

Notes exported from Evernote can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.

\n

The notes can be securely synchronised using end-to-end encryption with various cloud services including Nextcloud, Dropbox, OneDrive and Joplin Cloud.

\n

Full text search is available on all platforms to quickly find the information you need. The app can be customised using plugins and themes, and you can also easily create your own.

\n

The application is available for Windows, Linux, macOS, Android and iOS. A Web Clipper, to save web pages and screenshots from your browser, is also available for Firefox and Chrome.

\n
\n

Installation

\n

Three types of applications are available: for desktop (Windows, macOS and Linux), for mobile (Android and iOS) and for terminal (Windows, macOS, Linux and FreeBSD). All the applications have similar user interfaces and can synchronise with each other.

\n

Desktop applications

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operating SystemDownload
Windows (32 and 64-bit)\"Get
macOS\"Get
Linux\"Get
\n

On Windows, you may also use the Portable version. The portable application allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called \"JoplinProfile\" next to the executable file.

\n

On Linux, the recommended way is to use the following installation script as it will handle the desktop icon too:

\n
wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash
\n

Mobile applications

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operating SystemDownloadAlt. Download
Android\"Getor download the APK file: 64-bit 32-bit
iOS\"Get-
\n

Terminal application

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operating systemMethod
macOS, Linux, or Windows (via WSL)Important: First, install Node 12+.

NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin
sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin

By default, the application binary will be installed under ~/.joplin-bin. You may change this directory if needed. Alternatively, if your npm permissions are setup as described here (Option 2) then simply running npm -g install joplin would work.
\n

To start it, type joplin.

\n

For usage information, please refer to the full Joplin Terminal Application Documentation.

\n

Web Clipper

\n

The Web Clipper is a browser extension that allows you to save web pages and screenshots from your browser. For more information on how to install and use it, see the Web Clipper Help Page.

\n

Unofficial Alternative Distributions

\n

There are a number of unofficial alternative Joplin distributions. If you do not want to or cannot use appimages or any of the other officially supported releases then you may wish to consider these.

\n

However these come with a caveat in that they are not officially supported so certain issues may not be supportable by the main project. Rather support requests, bug reports and general advice would need to go to the maintainers of these distributions.

\n

A community maintained list of these distributions can be found here: Unofficial Joplin distributions

\n

Sponsors

\n\n

\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

avanderberg

c-nagy

cabottech

chr15m

chrootlogin

clmntsl

cuongtransc

dbrandonjohnson

fbloise

fourstepper

h4sh5

iamwillbar

Jesssullivan

joesfer

kianenigma

konishi-t

marcdw1289

maxtruxa

mcejp

nicholashead

piccobit

ravenscroftj

taskcruncher

thismarty

thomasbroussard
\n\n\n

Table of contents

\n\n\n

Features

\n\n

Importing

\n

Importing from Evernote

\n

Joplin was designed as a replacement for Evernote and so can import complete Evernote notebooks, as well as notes, tags, resources (attached files) and note metadata (such as author, geo-location, etc.) via ENEX files. In terms of data, the only two things that might slightly differ are:

\n\n

To import Evernote data, first export your Evernote notebooks to ENEX files as described here. Then follow these steps:

\n

In the desktop application, open File > Import > ENEX and select your file. The notes will be imported into a new separate notebook. If needed they can then be moved to a different notebook, or the notebook can be renamed, etc.

\n

In the terminal application, in command-line mode, type import /path/to/file.enex. This will import the notes into a new notebook named after the filename.

\n

Importing from Markdown files

\n

Joplin can import notes from plain Markdown file. You can either import a complete directory of Markdown files or individual files.

\n

In the desktop application:

\n\n

In the terminal application, in command-line mode, type import --format md /path/to/file.md or import --format md /path/to/directory/.

\n

Importing from other applications

\n

In general the way to import notes from any application into Joplin is to convert the notes to ENEX files (Evernote format) and to import these ENEX files into Joplin using the method above. Most note-taking applications support ENEX files so it should be relatively straightforward. For help about specific applications, see below:

\n\n

Exporting

\n

Joplin can export to the JEX format (Joplin Export file), which is a tar file that can contain multiple notes, notebooks, etc. This is a lossless format in that all the notes, but also metadata such as geo-location, updated time, tags, etc. are preserved. This format is convenient for backup purposes and can be re-imported into Joplin. A \"raw\" format is also available. This is the same as the JEX format except that the data is saved to a directory and each item represented by a single file.\nJoplin is also capable of exporting to a number of other formats including HTML and PDF which can be done for single notes, notebooks or everything.

\n

Synchronisation

\n

One of the goals of Joplin is to avoid being tied to any particular company or service, whether it is Evernote, Google or Microsoft. As such the synchronisation is designed without any hard dependency to any particular service. Most of the synchronisation process is done at an abstract level and access to external services, such as Nextcloud or Dropbox, is done via lightweight drivers. It is easy to support new services by creating simple drivers that provide a filesystem-like interface, i.e. the ability to read, write, delete and list items. It is also simple to switch from one service to another or to even sync to multiple services at once. Each note, notebook, tags, as well as the relation between items is transmitted as plain text files during synchronisation, which means the data can also be moved to a different application, can be easily backed up, inspected, etc.

\n

Currently, synchronisation is possible with Nextcloud, WebDAV, Dropbox, OneDrive or the local filesystem. To enable synchronisation please follow the instructions below. After that, the application will synchronise in the background whenever it is running, or you can click on \"Synchronise\" to start a synchronisation manually. Joplin will background sync automatically after any content change is made on the local application.

\n

If the terminal client has been installed, it is possible to also synchronise outside of the user interface by typing joplin sync from the terminal. This can be used to setup a cron script to synchronise at a regular interval. For example, this would do it every 30 minutes:

\n

*/30 * * * * /path/to/joplin sync

\n

Nextcloud synchronisation

\n

Nextcloud is a self-hosted, private cloud solution. It can store documents, images and videos but also calendars, passwords and countless other things and can sync them to your laptop or phone. As you can host your own Nextcloud server, you own both the data on your device and infrastructure used for synchronisation. As such it is a good fit for Joplin. The platform is also well supported and with a strong community, so it is likely to be around for a while - since it's open source anyway, it is not a service that can be closed, it can exist on a server for as long as one chooses.

\n

In the desktop application or mobile application, go to the Configuration screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally https://example.com/nextcloud/remote.php/webdav/Joplin (make sure to create the \"Joplin\" directory in Nextcloud), and set the username and password. If it does not work, please see this explanation for more details.

\n

In the terminal application, you will need to set the sync.target config variable and all the sync.5.path, sync.5.username and sync.5.password config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:

\n
:config sync.5.path https://example.com/nextcloud/remote.php/webdav/Joplin\n:config sync.5.username YOUR_USERNAME\n:config sync.5.password YOUR_PASSWORD\n:config sync.target 5\n
\n

If synchronisation does not work, please consult the logs in the app profile directory - it is often due to a misconfigured URL or password. The log should indicate what the exact issue is.

\n

WebDAV synchronisation

\n

Select the \"WebDAV\" synchronisation target and follow the same instructions as for Nextcloud above (for the terminal application you will need to select sync target 6 rather than 5)

\n

WebDAV-compatible services that are known to work with Joplin:

\n\n

Dropbox synchronisation

\n

When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.

\n

In the desktop application or mobile application, select \"Dropbox\" as the synchronisation target in the Configuration screen (it is selected by default). Then, to initiate the synchronisation process, click on the \"Synchronise\" button in the sidebar and follow the instructions.

\n

In the terminal application, to initiate the synchronisation process, type :sync. You will be asked to follow a link to authorise the application.

\n

OneDrive synchronisation

\n

When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.

\n

In the desktop application or mobile application, select \"OneDrive\" as the synchronisation target in the Configuration screen. Then, to initiate the synchronisation process, click on the \"Synchronise\" button in the sidebar and follow the instructions.

\n

In the terminal application, to initiate the synchronisation process, type :sync. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).

\n

S3 synchronisation

\n

As of Joplin 2.x.x, Joplin supports multiple S3 providers. We expose some options that will need to be configured depending on your provider of choice. We have tested with UpCloud, AWS, and Linode. others should work as well.

\n

In the desktop application or mobile application, select \"S3 (Beta)\" as the synchronisation target in the Configuration screen.

\n\n

While creating a new Bucket for Joplin, disable Bucket Versioning, enable Block all public access and enable Default encryption with Amazon S3 key (SSE-S3). Some providers do not expose these options, and it could create a syncing problem. Do attempt and report back so we can update the documentation appropriately.

\n

To add a Bucket Policy from the AWS S3 Web Console, navigate to the Permissions tab. Temporarily disable Block all public access to edit the Bucket policy, something along the lines of:

\n
{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                  \"s3:ListBucket\",\n                  \"s3:GetBucketLocation\",\n                  \"s3:GetObject\",\n                  \"s3:DeleteObject\",\n                  \"s3:DeleteObjectVersion\",\n                  \"s3:PutObject\"\n            ],\n            \"Resource\": [\n                \"arn:aws:s3:::joplin-bucket\",\n                \"arn:aws:s3:::joplin-bucket/*\"\n            ]\n        }\n    ]\n}\n
\n

Configuration settings for tested providers

\n

All providers will require a bucket, Access Key, and Secret Key.

\n

If you provide a configuration and you receive \"success!\" on the \"check config\" then your S3 sync should work for your provider. If you do not receive success, you may need to adjust your settings, or save them, restart the app, and attempt a sync. This may reveal more clear error messaging that will help you deduce the problem.

\n

AWS

\n\n

Linode

\n\n

UpCloud

\n\n

Encryption

\n

Joplin supports end-to-end encryption (E2EE) on all the applications. E2EE is a system where only the owner of the notes, notebooks, tags or resources can read them. It prevents potential eavesdroppers - including telecom providers, internet providers, and even the developers of Joplin from being able to access the data. Please see the End-To-End Encryption Tutorial for more information about this feature and how to enable it.

\n

For a more technical description, mostly relevant for development or to review the method being used, please see the Encryption specification.

\n

Note history

\n

The Joplin applications automatically save previous versions of your notes at regular intervals. These versions are synced across devices and can be viewed from the desktop application. To do so, click on the \"Information\" button on a note, then click on \"Previous version of this note\". From this screen you can view the previous versions of the note as well as restore any of them.

\n

This feature can be disabled from the \"Note history\" section in the Configuration screen, and it is also possible to change for how long the history of a note is saved.

\n

More information please see the Note History page.

\n

External text editor

\n

Joplin notes can be opened and edited using an external editor of your choice. It can be a simple text editor like Notepad++ or Sublime Text or an actual Markdown editor like Typora. In that case, images will also be displayed within the editor. To open the note in an external editor, click on the icon in the toolbar or press Ctrl+E (or Cmd+E). Your default text editor will be used to open the note. If needed, you can also specify the editor directly in the General Options, under \"Text editor command\".

\n

Attachments

\n

Any kind of file can be attached to a note. In Markdown, links to these files are represented as a simple ID to the attachment, clicking on this link will open the file in the default application. In the case of audio, video and pdf files, these will be displayed inline with the note and so can be viewed or played within Joplin.

\n

In the desktop application, files can be attached either by clicking the \"Attach file\" icon in the editor or via drag and drop. If you prefer to create a link to a local file instead, hold the ALT key while performing the drag and drop operation. You can also copy and paste images directly in the editor via Ctrl+V.

\n

Resources that are not attached to any note will be automatically deleted in accordance to the Note History settings.

\n

Important: Resources larger than 10 MB are not currently supported on mobile. They will crash the application when synchronising so it is recommended not to attach such resources at the moment. The issue is being looked at.

\n

Downloading attachments

\n

The way the attachments are downloaded during synchronisation can be customised in the Configuration screen, under \"Attachment download behaviour\". The default option (\"Always\") is to download all the attachments, all the time, so that the data is available even when the device is offline. There is also the option to download the attachments manually (option \"Manual\"), by clicking on it, or automatically (Option \"Auto\"), in which case the attachments are downloaded only when a note is opened. These options should help saving disk space and network bandwidth, especially on mobile.

\n

Notifications

\n

In the desktop and mobile apps, an alarm can be associated with any to-do. It will be triggered at the given time by displaying a notification. How the notification will be displayed depends on the operating system since each has a different way to handle this. Please see below for the requirements for the desktop applications:

\n\n

See documentation and flow chart for reporter choice

\n

On mobile, the alarms will be displayed using the built-in notification system.

\n

If for any reason the notifications do not work, please open an issue.

\n

Sub-notebooks

\n

Sub-notebooks allow organising multiple notebooks into a tree of notebooks. For example it can be used to regroup all the notebooks related to work, to family or to a particular project under a parent notebook.

\n

\"\"

\n\n

Markdown

\n

Joplin uses and renders a Github-flavoured Markdown with a few variations and additions. In particular it adds math formula support, interactive checkboxes and support for note links. Joplin also supports Markdown plugins which allow enabling and disabling various advanced Markdown features. Have a look at the Markdown Guide for more information.

\n

Custom CSS

\n

Rendered markdown can be customized by placing a userstyle file in the profile directory ~/.config/joplin-desktop/userstyle.css (This path might be different on your device - check at the top of the General page of the Configuration screen for the exact path). This file supports standard CSS syntax. Joplin must be restarted for the new css to be applied, please ensure that Joplin is not closing to the tray, but is actually exiting. Note that this file is used for both displaying the notes and printing the notes. Be aware how the CSS may look printed (for example, printing white text over a black background is usually not wanted).

\n

The whole UI can be customized by placing a custom editor style file in the profile directory ~/.config/joplin-desktop/userchrome.css.

\n

Important: userstyle.css and userchrome.css are provided for your convenience, but they are advanced settings, and styles you define may break from one version to the next. If you want to use them, please know that it might require regular development work from you to keep them working. The Joplin team cannot make a commitment to keep the application HTML structure stable.

\n

Plugins

\n

The desktop app has the ability to extend beyond its standard functionality by the way of plugins. These plugins adhere to the Joplin plugin API and can be installed & configured within the application via the Plugins page in the Configuration screen. This menu allows the manual installation of the plugin using the single 'Joplin Plugin Archive' (*.jpl) file. Once the application is reloaded the plugins will appear within the plugins menu where they can be toggled on/off or removed entirely.

\n

Plugins are currently maintained by the community in the Joplin Discourse 'plugins' category.

\n

For more information see Plugins

\n

Searching

\n

Joplin implements the SQLite Full Text Search (FTS4) extension. It means the content of all the notes is indexed in real time and search queries return results very fast. Both Simple FTS Queries and Full-Text Index Queries are supported. See below for the list of supported queries:

\n

One caveat of SQLite FTS is that it does not support languages which do not use Latin word boundaries (spaces, tabs, punctuation). To solve this issue, Joplin has a custom search mode, that does not use FTS, but still has all of its features (multi term search, filters, etc.). One of its drawbacks is that it can get slow on larger note collections. Also, the sorting of the results will be less accurate, as the ranking algorithm (BM25) is, for now, only implemented for FTS. Finally, in this mode there are no restrictions on using the * wildcard (swim*, *swim and ast*rix all work). This search mode is currently enabled if one of the following languages are detected:

\n\n

Supported queries

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Search typeDescriptionExample
Single wordReturns all the notes that contain this term.For example, searching for cat will return all the notes that contain this exact word. Note: it will not return the notes that contain the substring - thus, for \"cat\", notes that contain \"cataclysmic\" or \"prevaricate\" will not be returned.
Multiple wordReturns all the notes that contain all these words, but not necessarily next to each other.dog cat - will return any notes that contain the words \"dog\" and \"cat\" anywhere in the note, no necessarily in that order nor next to each other. It will not return results that contain \"dog\" or \"cat\" only.
PhraseAdd double quotes to return the notes that contain exactly this phrase.\"shopping list\" - will return the notes that contain these exact terms next to each other and in this order. It will not return for example a note that contains \"going shopping with my list\".
PrefixAdd a wildcard to return all the notes that contain a term with a specified prefix.swim* - will return all the notes that contain eg. \"swim\", but also \"swimming\", \"swimsuit\", etc. IMPORTANT: The wildcard can only be at the end - it will be ignored at the beginning of a word (eg. *swim) and will be treated as a literal asterisk in the middle of a word (eg. ast*rix)
Switch to basic searchOne drawback of Full Text Search is that it ignores most non-alphabetical characters. However in some cases you might want to search for this too. To do that, you can use basic search. You switch to this mode by prefixing your search with a slash /. This won't provide the benefits of FTS but it will allow searching exactly for what you need. Note that it can also be much slower, even extremely slow, depending on your query./\"- [ ]\" - will return all the notes that contain unchecked checkboxes.
\n

Search filters

\n

You can also use search filters to further restrict the search.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OperatorDescriptionExample
-If placed before a text term, it excludes the notes that contain that term. You can also place it before a filter to negate it.-spam searches for all notes without the word spam.
office -trash searches for all notes with the wordoffice and without the word trash.
any:Return notes that satisfy any/all of the required conditions. any:0 is the default, which means all conditions must be satisfied.any:1 cat dog will return notes that have the word cat or dog.
any:0 cat dog will return notes with both the words cat and dog.
title:
body:
Restrict your search to just the title or the body field.title:\"hello world\" searches for notes whose title contains hello and world.
title:hello -body:world searches for notes whose title contains hello and body does not contain world.
tag:Restrict the search to the notes with the specified tags.tag:office searches for all notes having tag office.
tag:office tag:important searches for all notes having both office and important tags.
tag:office -tag:spam searches for notes having tag office which do not have tag spam.
any:1 tag:office tag:spam searches for notes having tag office or tag spam.
tag:be*ful does a search with wildcards.
tag:* returns all notes with tags.
-tag:* returns all notes without tags.
notebook:Restrict the search to the specified notebook(s).notebook:books limits the search scope within books and all its subnotebooks.
notebook:wheel*time does a wildcard search.
created:
updated:
due:
Searches for notes created/updated on dates specified using YYYYMMDD format. You can also search relative to the current day, week, month, or year.created:20201218 will return notes created on or after December 18, 2020.
-updated:20201218 will return notes updated before December 18, 2020.
created:20200118 -created:20201215 will return notes created between January 18, 2020, and before December 15, 2020.
created:202001 -created:202003 will return notes created on or after January and before March 2020.
updated:1997 -updated:2020 will return all notes updated between the years 1997 and 2019.
created:day-2 searches for all notes created in the past two days.
updated:year-0 searches all notes updated in the current year.
-due:day+7 will return all todos which are due or will be due in the next seven days.
-due:day-5 searches all todos that are overdue for more than 5 days.
type:Restrict the search to either notes or todos.type:note to return all notes
type:todo to return all todos
iscompleted:Restrict the search to either completed or uncompleted todos.iscompleted:1 to return all completed todos
iscompleted:0 to return all uncompleted todos
latitude:
longitude:
altitude:
Filter by locationlatitude:40 -latitude:50 to return notes with latitude >= 40 and < 50
resource:Filter by attachment MIME typeresource:image/jpeg to return notes with a jpeg attachment.
-resource:application/pdf to return notes without a pdf attachment.
resource:image/* to return notes with any images.
sourceurl:Filter by source URLsourceurl:https://www.google.com
sourceurl:*joplinapp.org to perform a wildcard search.
id:Filter by note IDid:9cbc1b4f242043a9b8a50627508bccd5 return a note with the specified id
\n

Note: In the CLI client you have to escape the query using -- when using negated filters.\nEg. :search -- \"-tag:tag1\".

\n

The filters are implicitly connected by and/or connectives depending on the following rules:

\n\n

Incorrect search filters are interpreted as a phrase search, e.g. misspelled nootebook:Example or non-existing https://joplinapp.org.

\n

Search order

\n

Notes are sorted by \"relevance\". Currently it means the notes that contain the requested terms the most times are on top. For queries with multiple terms, it also matters how close to each other the terms are. This is a bit experimental so if you notice a search query that returns unexpected results, please report it in the forum, providing as many details as possible to replicate the issue.

\n

Goto Anything

\n

In the desktop application, press Ctrl+P or Cmd+P and type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name.

\n

Donations

\n

Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.

\n

Please see the donation page for information on how to support the development of Joplin.

\n

Community

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDescription
Support ForumThis is the main place for general discussion about Joplin, user support, software development questions, and to discuss new features. Also where the latest beta versions are released and discussed.
Twitter feedFollow us on Twitter
Mastodon feedFollow us on Mastodon
Patreon pageThe latest news are often posted there
Discord serverOur chat server
Sub-redditAlso a good place to get help
\n

Contributing

\n

Please see the guide for information on how to contribute to the development of Joplin: https://github.com/laurent22/joplin/blob/dev/CONTRIBUTING.md

\n

Localisation

\n

Joplin is currently available in the languages below. If you would like to contribute a new translation, it is quite straightforward, please follow these steps:

\n\n

This translation will apply to the three applications - desktop, mobile and terminal.

\n

To update a translation, follow the same steps as above but instead of getting the .pot file, get the .po file for your language from the table below.

\n

Current translations:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
 LanguagePo FileLast translatorPercent done
ArabicarWhaell O89%
Basqueeujuan.abasolo@ehu.eus25%
Bosnian (Bosna i Hercegovina)bs_BADerviš T.64%
Bulgarian (България)bg_BG50%
CatalancaXavi Ivars98%
Croatian (Hrvatska)hr_HRMilo Ivir100%
Czech (Česká republika)cs_CZMichal Stanke86%
Dansk (Danmark)da_DKERYpTION98%
Deutsch (Deutschland)de_DEMrKanister98%
Eesti Keel (Eesti)et_EE49%
English (United Kingdom)en_GB100%
English (United States of America)en_US100%
Español (España)es_ESFrancisco Mora98%
EsperantoeoMarton Paulo28%
Finnish (Suomi)fi_FImrkaato098%
Français (France)fr_FRLaurent Cozic100%
Galician (España)gl_ESMarcos Lans32%
Indonesian (Indonesia)id_IDeresytter88%
Italiano (Italia)it_ITAlbano Battistella86%
Magyar (Magyarország)hu_HUMagyari Balázs75%
Nederlands (België, Belgique, Belgien)nl_BE88%
Nederlands (Nederland)nl_NLMHolkamp98%
Norwegian (Norge, Noreg)nb_NOMats Estensen98%
PersianfaKourosh Firoozbakht62%
Polski (Polska)pl_PLkonhi81%
Português (Brasil)pt_BRRenato Nunes Bastos98%
Português (Portugal)pt_PTDiogo Caveiro81%
RomânăroCristi Duluta57%
Slovenian (Slovenija)sl_SIMartin Korelič90%
SvenskasvJonatan Nyberg98%
Thai (ประเทศไทย)th_TH41%
Tiếng Việtvi87%
Türkçe (Türkiye)tr_TRArda Kılıçdağı96%
Ukrainian (Україна)uk_UAVyacheslav Andreykiv80%
Ελληνικά (Ελλάδα)el_GRHarris Arvanitis98%
Русский (Россия)ru_RUSergey Segeda89%
српски језик (Србија)sr_RS72%
中文 (简体)zh_CNhoraceyoung98%
中文 (繁體)zh_TWSiderealArt87%
日本語 (日本)ja_JPgenneko98%
한국어koJi-Hyeon Gim86%
\n\n

Contributors

\n

Thank you to everyone who've contributed to Joplin's source code!

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

laurent22

tessus

CalebJohn

mic704b

roman-r-m

genneko

j-krl

tanrax

naviji

PackElend

rtmkrlv

fmrtn

potatogim

devonzuegel

anjulalk

gabcoh

matsest

abonte

Abijeet

ishantgupta777

JackGruber

Ardakilic

rabeehrz

coderrsid

foxmask

innocuo

Rahulm2310

readingsnail

mablin7

XarisA

jonath92

alexdevero

Runo-saduwa

marcosvega91

petrz12

rnbastos

ProgramFan

zblesk

vsimkus

moltenform

nishantwrp

zuphilip

Rishabh-malhotraa

metbril

WhiredPlanck

milotype

yaozeye

ylc395

RenatoXSR

RedDocMD

q1011

amitsin6h

Atalanttore

Mannivu

martonpaulo

mmahmoudian

rccavalcanti

ShaneKilkelly

sinkuu

stweil

conyx

anihm136

archont00

bradmcl

tfinnberg

amandamcg

marcushill

nathanleiby

RaphaelKimmig

Vaso3

sensor-freak

lkiThakur

infinity052

BartBucknill

mrwulf

chrisb86

chrmoritz

Daeraxa

Elaborendum

ethan42411

JOJ0

jalajcodes

jblunck

jdrobertso

Jesssullivan

jmontane

johanhammar

solariz

maicki

mjjzf

rt-oliveira

sebastienjust

sealch

StarFang208

Subhra264

SubodhDahal

TobiasDev

Whaell

jyuvaraj03

kowalskidev

alexchee

axq

barbowza

eresytter

lightray22

lscolombo

mrkaato

pf-siedler

ruuti

s1nceri7y

kornava

ShuiHuo

ikunya

Ahmad45123

bedwardly-down

dcaveiro

hexclover

2jaeyeol

thackeraaron

aaronxn

xUser5000

iamabhi222

Aksh-Konda

alanfortlink

AverageUser2

afischer211

a13xk

apankratov

teterkin

avanderberg

serenitatis

lex111

Alkindi42

Jumanjii

AlphaJack

Lord-Aman

richtwin567

ajilderda

adrynov

andrewperry

tekdel

anshuman9999

rasklaad

Technik-J

Shaxine

antonio-ramadas

heyapoorva

assimd

Atrate

Beowulf2

bimlas

brenobaptista

brttbndr

carlbordum

carlosedp

chaifeng

charles-e

cyy5358

Chillu1

Techwolf12

cloudtrends

idcristi

damienmascre

daniellandau

danil-tolkachev

darshani28

daukadolt

NeverMendel

dervist

diego-betto

erdody

domgoodwin

b4mboo

donbowman

sirnacnud

dflock

drobilica

educbraga

eduardokimmel

VodeniZeko

ei-ke

einverne

eodeluga

fathyar

fer22f

fpindado

FleischKarussel

talkdirty

gmaubach

gmag11

Jackymancs4

Glandos

vibraniumdev

gusbemacbe

HOLLYwyh

Fvbor

bennetthanna

harshitkathuria

Vistaus

ianjs

iahmedbacha

IrvinDominin

ishammahajan

ffadilaputra

JRaiden16

jacobherrington

jamesadjinwa

jrwrigh

jaredcrowe

volatilevar

innkuika

JoelRSimpson

joeltaylor

exic

JonathanPlasse

joesfer

joybinchen

kaustubhsh

y-usuzumi

xuhcc

kirtanprht

k0ur0x

kklas

xmlangel

troilus

lboullo0

dbinary

marc-bouvier

mvonmaltitz

mlkood

plextoriano

Marmo

mcejp

freaktechnik

martinkorelic

Petemir

matsair

mgroth0

silentmatt

maxs-test

MichBoi

MichipX

MrTraduttore

sanjarcode

Mustafa-ALD

NJannasch

zomglings

Frichetten

nicolas-suzuki

Ouvill

shorty2380

dist3r

rakleed

idle-code

bobchao

Diadlo

pranavmodx

R3dError

rajprakash00

rahil1304

rasulkireev

reinhart1010

Retew

ambrt

Derkades

fourstepper

rodgco

Ronnie76er

roryokane

ruzaq

szokesandor

SamuelBlickle

livingc0l0ur

bronson

semperor

shawnaxsom

SFoskitt

kcrt

xissy

tams

Tekki

ThatcherC

TheoDutch

tbroadley

Kriechi

tkilaker

Tim-Erwin

tcyrus

tobias-grasse

strobeltobias

kostegit

tbergeron

Ullas-Aithal

MyTheValentinus

vassudanagunta

vijayjoshi16

max-keviv

vandreykiv

WisdomCode

xsak

ymitsos

abolishallprivateproperty

aerotog

albertopasqualetto

asrient

bestlibre

boring10

cadolphs

colorchestra

cybertramp

dartero

delta-emil

doc75

dsp77

ebayer

elsiehupp

espinosa

exponentactivity

exprez135

fab4x

fabianski7

rasperepodvipodvert

gasolin

githubaccount073

hms5232

hydrandt

iamtalwinder

jabdoa2

jduar

jibedoubleve

johanvanheusden

jtagcat

konhi

krzysiekwie

lighthousebulb

luzpaz

majsterkovic

mak2002

nmiquan

nullpointer666

oscaretu

oskarsh

osso73

over-soul

pensierocrea

pomeloy

rhtenhove

rikanotank1

rxliuli

simonsan

stellarpower

suixinio

sumomo-99

xtatsux

taw00

tcassaert

victante

Voltinus

xcffl

yourcontact

zaoyifan

zawnk

zen-quo

zozolina123

xcession

paventyang

jackytsu

zhangmx
\n\n
", "readmeOriginal": "
\n

\"Donate \"Sponsor \"Become \"Donate

\n\n
\n

🌞 Joplin participates in Google Summer of Code 2022! More info on the announcement post. 🌞

\n
\n

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format.

\n

Notes exported from Evernote can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.

\n

The notes can be securely synchronised using end-to-end encryption with various cloud services including Nextcloud, Dropbox, OneDrive and Joplin Cloud.

\n

Full text search is available on all platforms to quickly find the information you need. The app can be customised using plugins and themes, and you can also easily create your own.

\n

The application is available for Windows, Linux, macOS, Android and iOS. A Web Clipper, to save web pages and screenshots from your browser, is also available for Firefox and Chrome.

\n
\n

Installation

\n

Three types of applications are available: for desktop (Windows, macOS and Linux), for mobile (Android and iOS) and for terminal (Windows, macOS, Linux and FreeBSD). All the applications have similar user interfaces and can synchronise with each other.

\n

Desktop applications

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operating SystemDownload
Windows (32 and 64-bit)\"Get
macOS\"Get
Linux\"Get
\n

On Windows, you may also use the Portable version. The portable application allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called \"JoplinProfile\" next to the executable file.

\n

On Linux, the recommended way is to use the following installation script as it will handle the desktop icon too:

\n
wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash
\n

Mobile applications

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operating SystemDownloadAlt. Download
Android\"Getor download the APK file: 64-bit 32-bit
iOS\"Get-
\n

Terminal application

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Operating systemMethod
macOS, Linux, or Windows (via WSL)Important: First, install Node 12+.

NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin
sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin

By default, the application binary will be installed under ~/.joplin-bin. You may change this directory if needed. Alternatively, if your npm permissions are setup as described here (Option 2) then simply running npm -g install joplin would work.
\n

To start it, type joplin.

\n

For usage information, please refer to the full Joplin Terminal Application Documentation.

\n

Web Clipper

\n

The Web Clipper is a browser extension that allows you to save web pages and screenshots from your browser. For more information on how to install and use it, see the Web Clipper Help Page.

\n

Unofficial Alternative Distributions

\n

There are a number of unofficial alternative Joplin distributions. If you do not want to or cannot use appimages or any of the other officially supported releases then you may wish to consider these.

\n

However these come with a caveat in that they are not officially supported so certain issues may not be supportable by the main project. Rather support requests, bug reports and general advice would need to go to the maintainers of these distributions.

\n

A community maintained list of these distributions can be found here: Unofficial Joplin distributions

\n

Sponsors

\n\n

\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

avanderberg

c-nagy

cabottech

chr15m

chrootlogin

clmntsl

cuongtransc

dbrandonjohnson

fbloise

fourstepper

h4sh5

iamwillbar

Jesssullivan

joesfer

kianenigma

konishi-t

marcdw1289

maxtruxa

mcejp

nicholashead

piccobit

ravenscroftj

taskcruncher

thismarty

thomasbroussard
\n\n\n

Table of contents

\n\n\n

Features

\n\n

Importing

\n

Importing from Evernote

\n

Joplin was designed as a replacement for Evernote and so can import complete Evernote notebooks, as well as notes, tags, resources (attached files) and note metadata (such as author, geo-location, etc.) via ENEX files. In terms of data, the only two things that might slightly differ are:

\n\n

To import Evernote data, first export your Evernote notebooks to ENEX files as described here. Then follow these steps:

\n

In the desktop application, open File > Import > ENEX and select your file. The notes will be imported into a new separate notebook. If needed they can then be moved to a different notebook, or the notebook can be renamed, etc.

\n

In the terminal application, in command-line mode, type import /path/to/file.enex. This will import the notes into a new notebook named after the filename.

\n

Importing from Markdown files

\n

Joplin can import notes from plain Markdown file. You can either import a complete directory of Markdown files or individual files.

\n

In the desktop application:

\n\n

In the terminal application, in command-line mode, type import --format md /path/to/file.md or import --format md /path/to/directory/.

\n

Importing from other applications

\n

In general the way to import notes from any application into Joplin is to convert the notes to ENEX files (Evernote format) and to import these ENEX files into Joplin using the method above. Most note-taking applications support ENEX files so it should be relatively straightforward. For help about specific applications, see below:

\n\n

Exporting

\n

Joplin can export to the JEX format (Joplin Export file), which is a tar file that can contain multiple notes, notebooks, etc. This is a lossless format in that all the notes, but also metadata such as geo-location, updated time, tags, etc. are preserved. This format is convenient for backup purposes and can be re-imported into Joplin. A \"raw\" format is also available. This is the same as the JEX format except that the data is saved to a directory and each item represented by a single file.\nJoplin is also capable of exporting to a number of other formats including HTML and PDF which can be done for single notes, notebooks or everything.

\n

Synchronisation

\n

One of the goals of Joplin is to avoid being tied to any particular company or service, whether it is Evernote, Google or Microsoft. As such the synchronisation is designed without any hard dependency to any particular service. Most of the synchronisation process is done at an abstract level and access to external services, such as Nextcloud or Dropbox, is done via lightweight drivers. It is easy to support new services by creating simple drivers that provide a filesystem-like interface, i.e. the ability to read, write, delete and list items. It is also simple to switch from one service to another or to even sync to multiple services at once. Each note, notebook, tags, as well as the relation between items is transmitted as plain text files during synchronisation, which means the data can also be moved to a different application, can be easily backed up, inspected, etc.

\n

Currently, synchronisation is possible with Nextcloud, WebDAV, Dropbox, OneDrive or the local filesystem. To enable synchronisation please follow the instructions below. After that, the application will synchronise in the background whenever it is running, or you can click on \"Synchronise\" to start a synchronisation manually. Joplin will background sync automatically after any content change is made on the local application.

\n

If the terminal client has been installed, it is possible to also synchronise outside of the user interface by typing joplin sync from the terminal. This can be used to setup a cron script to synchronise at a regular interval. For example, this would do it every 30 minutes:

\n

*/30 * * * * /path/to/joplin sync

\n

Nextcloud synchronisation

\n

Nextcloud is a self-hosted, private cloud solution. It can store documents, images and videos but also calendars, passwords and countless other things and can sync them to your laptop or phone. As you can host your own Nextcloud server, you own both the data on your device and infrastructure used for synchronisation. As such it is a good fit for Joplin. The platform is also well supported and with a strong community, so it is likely to be around for a while - since it's open source anyway, it is not a service that can be closed, it can exist on a server for as long as one chooses.

\n

In the desktop application or mobile application, go to the Configuration screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally https://example.com/nextcloud/remote.php/webdav/Joplin (make sure to create the \"Joplin\" directory in Nextcloud), and set the username and password. If it does not work, please see this explanation for more details.

\n

In the terminal application, you will need to set the sync.target config variable and all the sync.5.path, sync.5.username and sync.5.password config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:

\n
:config sync.5.path https://example.com/nextcloud/remote.php/webdav/Joplin\n:config sync.5.username YOUR_USERNAME\n:config sync.5.password YOUR_PASSWORD\n:config sync.target 5\n
\n

If synchronisation does not work, please consult the logs in the app profile directory - it is often due to a misconfigured URL or password. The log should indicate what the exact issue is.

\n

WebDAV synchronisation

\n

Select the \"WebDAV\" synchronisation target and follow the same instructions as for Nextcloud above (for the terminal application you will need to select sync target 6 rather than 5)

\n

WebDAV-compatible services that are known to work with Joplin:

\n\n

Dropbox synchronisation

\n

When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.

\n

In the desktop application or mobile application, select \"Dropbox\" as the synchronisation target in the Configuration screen (it is selected by default). Then, to initiate the synchronisation process, click on the \"Synchronise\" button in the sidebar and follow the instructions.

\n

In the terminal application, to initiate the synchronisation process, type :sync. You will be asked to follow a link to authorise the application.

\n

OneDrive synchronisation

\n

When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.

\n

In the desktop application or mobile application, select \"OneDrive\" as the synchronisation target in the Configuration screen. Then, to initiate the synchronisation process, click on the \"Synchronise\" button in the sidebar and follow the instructions.

\n

In the terminal application, to initiate the synchronisation process, type :sync. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).

\n

S3 synchronisation

\n

As of Joplin 2.x.x, Joplin supports multiple S3 providers. We expose some options that will need to be configured depending on your provider of choice. We have tested with UpCloud, AWS, and Linode. others should work as well.

\n

In the desktop application or mobile application, select \"S3 (Beta)\" as the synchronisation target in the Configuration screen.

\n\n

While creating a new Bucket for Joplin, disable Bucket Versioning, enable Block all public access and enable Default encryption with Amazon S3 key (SSE-S3). Some providers do not expose these options, and it could create a syncing problem. Do attempt and report back so we can update the documentation appropriately.

\n

To add a Bucket Policy from the AWS S3 Web Console, navigate to the Permissions tab. Temporarily disable Block all public access to edit the Bucket policy, something along the lines of:

\n
{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                  \"s3:ListBucket\",\n                  \"s3:GetBucketLocation\",\n                  \"s3:GetObject\",\n                  \"s3:DeleteObject\",\n                  \"s3:DeleteObjectVersion\",\n                  \"s3:PutObject\"\n            ],\n            \"Resource\": [\n                \"arn:aws:s3:::joplin-bucket\",\n                \"arn:aws:s3:::joplin-bucket/*\"\n            ]\n        }\n    ]\n}\n
\n

Configuration settings for tested providers

\n

All providers will require a bucket, Access Key, and Secret Key.

\n

If you provide a configuration and you receive \"success!\" on the \"check config\" then your S3 sync should work for your provider. If you do not receive success, you may need to adjust your settings, or save them, restart the app, and attempt a sync. This may reveal more clear error messaging that will help you deduce the problem.

\n

AWS

\n\n

Linode

\n\n

UpCloud

\n\n

Encryption

\n

Joplin supports end-to-end encryption (E2EE) on all the applications. E2EE is a system where only the owner of the notes, notebooks, tags or resources can read them. It prevents potential eavesdroppers - including telecom providers, internet providers, and even the developers of Joplin from being able to access the data. Please see the End-To-End Encryption Tutorial for more information about this feature and how to enable it.

\n

For a more technical description, mostly relevant for development or to review the method being used, please see the Encryption specification.

\n

Note history

\n

The Joplin applications automatically save previous versions of your notes at regular intervals. These versions are synced across devices and can be viewed from the desktop application. To do so, click on the \"Information\" button on a note, then click on \"Previous version of this note\". From this screen you can view the previous versions of the note as well as restore any of them.

\n

This feature can be disabled from the \"Note history\" section in the Configuration screen, and it is also possible to change for how long the history of a note is saved.

\n

More information please see the Note History page.

\n

External text editor

\n

Joplin notes can be opened and edited using an external editor of your choice. It can be a simple text editor like Notepad++ or Sublime Text or an actual Markdown editor like Typora. In that case, images will also be displayed within the editor. To open the note in an external editor, click on the icon in the toolbar or press Ctrl+E (or Cmd+E). Your default text editor will be used to open the note. If needed, you can also specify the editor directly in the General Options, under \"Text editor command\".

\n

Attachments

\n

Any kind of file can be attached to a note. In Markdown, links to these files are represented as a simple ID to the attachment, clicking on this link will open the file in the default application. In the case of audio, video and pdf files, these will be displayed inline with the note and so can be viewed or played within Joplin.

\n

In the desktop application, files can be attached either by clicking the \"Attach file\" icon in the editor or via drag and drop. If you prefer to create a link to a local file instead, hold the ALT key while performing the drag and drop operation. You can also copy and paste images directly in the editor via Ctrl+V.

\n

Resources that are not attached to any note will be automatically deleted in accordance to the Note History settings.

\n

Important: Resources larger than 10 MB are not currently supported on mobile. They will crash the application when synchronising so it is recommended not to attach such resources at the moment. The issue is being looked at.

\n

Downloading attachments

\n

The way the attachments are downloaded during synchronisation can be customised in the Configuration screen, under \"Attachment download behaviour\". The default option (\"Always\") is to download all the attachments, all the time, so that the data is available even when the device is offline. There is also the option to download the attachments manually (option \"Manual\"), by clicking on it, or automatically (Option \"Auto\"), in which case the attachments are downloaded only when a note is opened. These options should help saving disk space and network bandwidth, especially on mobile.

\n

Notifications

\n

In the desktop and mobile apps, an alarm can be associated with any to-do. It will be triggered at the given time by displaying a notification. How the notification will be displayed depends on the operating system since each has a different way to handle this. Please see below for the requirements for the desktop applications:

\n\n

See documentation and flow chart for reporter choice

\n

On mobile, the alarms will be displayed using the built-in notification system.

\n

If for any reason the notifications do not work, please open an issue.

\n

Sub-notebooks

\n

Sub-notebooks allow organising multiple notebooks into a tree of notebooks. For example it can be used to regroup all the notebooks related to work, to family or to a particular project under a parent notebook.

\n

\"\"

\n\n

Markdown

\n

Joplin uses and renders a Github-flavoured Markdown with a few variations and additions. In particular it adds math formula support, interactive checkboxes and support for note links. Joplin also supports Markdown plugins which allow enabling and disabling various advanced Markdown features. Have a look at the Markdown Guide for more information.

\n

Custom CSS

\n

Rendered markdown can be customized by placing a userstyle file in the profile directory ~/.config/joplin-desktop/userstyle.css (This path might be different on your device - check at the top of the General page of the Configuration screen for the exact path). This file supports standard CSS syntax. Joplin must be restarted for the new css to be applied, please ensure that Joplin is not closing to the tray, but is actually exiting. Note that this file is used for both displaying the notes and printing the notes. Be aware how the CSS may look printed (for example, printing white text over a black background is usually not wanted).

\n

The whole UI can be customized by placing a custom editor style file in the profile directory ~/.config/joplin-desktop/userchrome.css.

\n

Important: userstyle.css and userchrome.css are provided for your convenience, but they are advanced settings, and styles you define may break from one version to the next. If you want to use them, please know that it might require regular development work from you to keep them working. The Joplin team cannot make a commitment to keep the application HTML structure stable.

\n

Plugins

\n

The desktop app has the ability to extend beyond its standard functionality by the way of plugins. These plugins adhere to the Joplin plugin API and can be installed & configured within the application via the Plugins page in the Configuration screen. This menu allows the manual installation of the plugin using the single 'Joplin Plugin Archive' (*.jpl) file. Once the application is reloaded the plugins will appear within the plugins menu where they can be toggled on/off or removed entirely.

\n

Plugins are currently maintained by the community in the Joplin Discourse 'plugins' category.

\n

For more information see Plugins

\n

Searching

\n

Joplin implements the SQLite Full Text Search (FTS4) extension. It means the content of all the notes is indexed in real time and search queries return results very fast. Both Simple FTS Queries and Full-Text Index Queries are supported. See below for the list of supported queries:

\n

One caveat of SQLite FTS is that it does not support languages which do not use Latin word boundaries (spaces, tabs, punctuation). To solve this issue, Joplin has a custom search mode, that does not use FTS, but still has all of its features (multi term search, filters, etc.). One of its drawbacks is that it can get slow on larger note collections. Also, the sorting of the results will be less accurate, as the ranking algorithm (BM25) is, for now, only implemented for FTS. Finally, in this mode there are no restrictions on using the * wildcard (swim*, *swim and ast*rix all work). This search mode is currently enabled if one of the following languages are detected:

\n\n

Supported queries

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Search typeDescriptionExample
Single wordReturns all the notes that contain this term.For example, searching for cat will return all the notes that contain this exact word. Note: it will not return the notes that contain the substring - thus, for \"cat\", notes that contain \"cataclysmic\" or \"prevaricate\" will not be returned.
Multiple wordReturns all the notes that contain all these words, but not necessarily next to each other.dog cat - will return any notes that contain the words \"dog\" and \"cat\" anywhere in the note, no necessarily in that order nor next to each other. It will not return results that contain \"dog\" or \"cat\" only.
PhraseAdd double quotes to return the notes that contain exactly this phrase.\"shopping list\" - will return the notes that contain these exact terms next to each other and in this order. It will not return for example a note that contains \"going shopping with my list\".
PrefixAdd a wildcard to return all the notes that contain a term with a specified prefix.swim* - will return all the notes that contain eg. \"swim\", but also \"swimming\", \"swimsuit\", etc. IMPORTANT: The wildcard can only be at the end - it will be ignored at the beginning of a word (eg. *swim) and will be treated as a literal asterisk in the middle of a word (eg. ast*rix)
Switch to basic searchOne drawback of Full Text Search is that it ignores most non-alphabetical characters. However in some cases you might want to search for this too. To do that, you can use basic search. You switch to this mode by prefixing your search with a slash /. This won't provide the benefits of FTS but it will allow searching exactly for what you need. Note that it can also be much slower, even extremely slow, depending on your query./\"- [ ]\" - will return all the notes that contain unchecked checkboxes.
\n

Search filters

\n

You can also use search filters to further restrict the search.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OperatorDescriptionExample
-If placed before a text term, it excludes the notes that contain that term. You can also place it before a filter to negate it.-spam searches for all notes without the word spam.
office -trash searches for all notes with the wordoffice and without the word trash.
any:Return notes that satisfy any/all of the required conditions. any:0 is the default, which means all conditions must be satisfied.any:1 cat dog will return notes that have the word cat or dog.
any:0 cat dog will return notes with both the words cat and dog.
title:
body:
Restrict your search to just the title or the body field.title:\"hello world\" searches for notes whose title contains hello and world.
title:hello -body:world searches for notes whose title contains hello and body does not contain world.
tag:Restrict the search to the notes with the specified tags.tag:office searches for all notes having tag office.
tag:office tag:important searches for all notes having both office and important tags.
tag:office -tag:spam searches for notes having tag office which do not have tag spam.
any:1 tag:office tag:spam searches for notes having tag office or tag spam.
tag:be*ful does a search with wildcards.
tag:* returns all notes with tags.
-tag:* returns all notes without tags.
notebook:Restrict the search to the specified notebook(s).notebook:books limits the search scope within books and all its subnotebooks.
notebook:wheel*time does a wildcard search.
created:
updated:
due:
Searches for notes created/updated on dates specified using YYYYMMDD format. You can also search relative to the current day, week, month, or year.created:20201218 will return notes created on or after December 18, 2020.
-updated:20201218 will return notes updated before December 18, 2020.
created:20200118 -created:20201215 will return notes created between January 18, 2020, and before December 15, 2020.
created:202001 -created:202003 will return notes created on or after January and before March 2020.
updated:1997 -updated:2020 will return all notes updated between the years 1997 and 2019.
created:day-2 searches for all notes created in the past two days.
updated:year-0 searches all notes updated in the current year.
-due:day+7 will return all todos which are due or will be due in the next seven days.
-due:day-5 searches all todos that are overdue for more than 5 days.
type:Restrict the search to either notes or todos.type:note to return all notes
type:todo to return all todos
iscompleted:Restrict the search to either completed or uncompleted todos.iscompleted:1 to return all completed todos
iscompleted:0 to return all uncompleted todos
latitude:
longitude:
altitude:
Filter by locationlatitude:40 -latitude:50 to return notes with latitude >= 40 and < 50
resource:Filter by attachment MIME typeresource:image/jpeg to return notes with a jpeg attachment.
-resource:application/pdf to return notes without a pdf attachment.
resource:image/* to return notes with any images.
sourceurl:Filter by source URLsourceurl:https://www.google.com
sourceurl:*joplinapp.org to perform a wildcard search.
id:Filter by note IDid:9cbc1b4f242043a9b8a50627508bccd5 return a note with the specified id
\n

Note: In the CLI client you have to escape the query using -- when using negated filters.\nEg. :search -- \"-tag:tag1\".

\n

The filters are implicitly connected by and/or connectives depending on the following rules:

\n\n

Incorrect search filters are interpreted as a phrase search, e.g. misspelled nootebook:Example or non-existing https://joplinapp.org.

\n

Search order

\n

Notes are sorted by \"relevance\". Currently it means the notes that contain the requested terms the most times are on top. For queries with multiple terms, it also matters how close to each other the terms are. This is a bit experimental so if you notice a search query that returns unexpected results, please report it in the forum, providing as many details as possible to replicate the issue.

\n

Goto Anything

\n

In the desktop application, press Ctrl+P or Cmd+P and type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name.

\n

Donations

\n

Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.

\n

Please see the donation page for information on how to support the development of Joplin.

\n

Community

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDescription
Support ForumThis is the main place for general discussion about Joplin, user support, software development questions, and to discuss new features. Also where the latest beta versions are released and discussed.
Twitter feedFollow us on Twitter
Mastodon feedFollow us on Mastodon
Patreon pageThe latest news are often posted there
Discord serverOur chat server
Sub-redditAlso a good place to get help
\n

Contributing

\n

Please see the guide for information on how to contribute to the development of Joplin: https://github.com/laurent22/joplin/blob/dev/CONTRIBUTING.md

\n

Localisation

\n

Joplin is currently available in the languages below. If you would like to contribute a new translation, it is quite straightforward, please follow these steps:

\n\n

This translation will apply to the three applications - desktop, mobile and terminal.

\n

To update a translation, follow the same steps as above but instead of getting the .pot file, get the .po file for your language from the table below.

\n

Current translations:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
 LanguagePo FileLast translatorPercent done
ArabicarWhaell O89%
Basqueeujuan.abasolo@ehu.eus25%
Bosnian (Bosna i Hercegovina)bs_BADerviš T.64%
Bulgarian (България)bg_BG50%
CatalancaXavi Ivars98%
Croatian (Hrvatska)hr_HRMilo Ivir100%
Czech (Česká republika)cs_CZMichal Stanke86%
Dansk (Danmark)da_DKERYpTION98%
Deutsch (Deutschland)de_DEMrKanister98%
Eesti Keel (Eesti)et_EE49%
English (United Kingdom)en_GB100%
English (United States of America)en_US100%
Español (España)es_ESFrancisco Mora98%
EsperantoeoMarton Paulo28%
Finnish (Suomi)fi_FImrkaato098%
Français (France)fr_FRLaurent Cozic100%
Galician (España)gl_ESMarcos Lans32%
Indonesian (Indonesia)id_IDeresytter88%
Italiano (Italia)it_ITAlbano Battistella86%
Magyar (Magyarország)hu_HUMagyari Balázs75%
Nederlands (België, Belgique, Belgien)nl_BE88%
Nederlands (Nederland)nl_NLMHolkamp98%
Norwegian (Norge, Noreg)nb_NOMats Estensen98%
PersianfaKourosh Firoozbakht62%
Polski (Polska)pl_PLkonhi81%
Português (Brasil)pt_BRRenato Nunes Bastos98%
Português (Portugal)pt_PTDiogo Caveiro81%
RomânăroCristi Duluta57%
Slovenian (Slovenija)sl_SIMartin Korelič90%
SvenskasvJonatan Nyberg98%
Thai (ประเทศไทย)th_TH41%
Tiếng Việtvi87%
Türkçe (Türkiye)tr_TRArda Kılıçdağı96%
Ukrainian (Україна)uk_UAVyacheslav Andreykiv80%
Ελληνικά (Ελλάδα)el_GRHarris Arvanitis98%
Русский (Россия)ru_RUSergey Segeda89%
српски језик (Србија)sr_RS72%
中文 (简体)zh_CNhoraceyoung98%
中文 (繁體)zh_TWSiderealArt87%
日本語 (日本)ja_JPgenneko98%
한국어koJi-Hyeon Gim86%
\n\n

Contributors

\n

Thank you to everyone who've contributed to Joplin's source code!

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

laurent22

tessus

CalebJohn

mic704b

roman-r-m

genneko

j-krl

tanrax

naviji

PackElend

rtmkrlv

fmrtn

potatogim

devonzuegel

anjulalk

gabcoh

matsest

abonte

Abijeet

ishantgupta777

JackGruber

Ardakilic

rabeehrz

coderrsid

foxmask

innocuo

Rahulm2310

readingsnail

mablin7

XarisA

jonath92

alexdevero

Runo-saduwa

marcosvega91

petrz12

rnbastos

ProgramFan

zblesk

vsimkus

moltenform

nishantwrp

zuphilip

Rishabh-malhotraa

metbril

WhiredPlanck

milotype

yaozeye

ylc395

RenatoXSR

RedDocMD

q1011

amitsin6h

Atalanttore

Mannivu

martonpaulo

mmahmoudian

rccavalcanti

ShaneKilkelly

sinkuu

stweil

conyx

anihm136

archont00

bradmcl

tfinnberg

amandamcg

marcushill

nathanleiby

RaphaelKimmig

Vaso3

sensor-freak

lkiThakur

infinity052

BartBucknill

mrwulf

chrisb86

chrmoritz

Daeraxa

Elaborendum

ethan42411

JOJ0

jalajcodes

jblunck

jdrobertso

Jesssullivan

jmontane

johanhammar

solariz

maicki

mjjzf

rt-oliveira

sebastienjust

sealch

StarFang208

Subhra264

SubodhDahal

TobiasDev

Whaell

jyuvaraj03

kowalskidev

alexchee

axq

barbowza

eresytter

lightray22

lscolombo

mrkaato

pf-siedler

ruuti

s1nceri7y

kornava

ShuiHuo

ikunya

Ahmad45123

bedwardly-down

dcaveiro

hexclover

2jaeyeol

thackeraaron

aaronxn

xUser5000

iamabhi222

Aksh-Konda

alanfortlink

AverageUser2

afischer211

a13xk

apankratov

teterkin

avanderberg

serenitatis

lex111

Alkindi42

Jumanjii

AlphaJack

Lord-Aman

richtwin567

ajilderda

adrynov

andrewperry

tekdel

anshuman9999

rasklaad

Technik-J

Shaxine

antonio-ramadas

heyapoorva

assimd

Atrate

Beowulf2

bimlas

brenobaptista

brttbndr

carlbordum

carlosedp

chaifeng

charles-e

cyy5358

Chillu1

Techwolf12

cloudtrends

idcristi

damienmascre

daniellandau

danil-tolkachev

darshani28

daukadolt

NeverMendel

dervist

diego-betto

erdody

domgoodwin

b4mboo

donbowman

sirnacnud

dflock

drobilica

educbraga

eduardokimmel

VodeniZeko

ei-ke

einverne

eodeluga

fathyar

fer22f

fpindado

FleischKarussel

talkdirty

gmaubach

gmag11

Jackymancs4

Glandos

vibraniumdev

gusbemacbe

HOLLYwyh

Fvbor

bennetthanna

harshitkathuria

Vistaus

ianjs

iahmedbacha

IrvinDominin

ishammahajan

ffadilaputra

JRaiden16

jacobherrington

jamesadjinwa

jrwrigh

jaredcrowe

volatilevar

innkuika

JoelRSimpson

joeltaylor

exic

JonathanPlasse

joesfer

joybinchen

kaustubhsh

y-usuzumi

xuhcc

kirtanprht

k0ur0x

kklas

xmlangel

troilus

lboullo0

dbinary

marc-bouvier

mvonmaltitz

mlkood

plextoriano

Marmo

mcejp

freaktechnik

martinkorelic

Petemir

matsair

mgroth0

silentmatt

maxs-test

MichBoi

MichipX

MrTraduttore

sanjarcode

Mustafa-ALD

NJannasch

zomglings

Frichetten

nicolas-suzuki

Ouvill

shorty2380

dist3r

rakleed

idle-code

bobchao

Diadlo

pranavmodx

R3dError

rajprakash00

rahil1304

rasulkireev

reinhart1010

Retew

ambrt

Derkades

fourstepper

rodgco

Ronnie76er

roryokane

ruzaq

szokesandor

SamuelBlickle

livingc0l0ur

bronson

semperor

shawnaxsom

SFoskitt

kcrt

xissy

tams

Tekki

ThatcherC

TheoDutch

tbroadley

Kriechi

tkilaker

Tim-Erwin

tcyrus

tobias-grasse

strobeltobias

kostegit

tbergeron

Ullas-Aithal

MyTheValentinus

vassudanagunta

vijayjoshi16

max-keviv

vandreykiv

WisdomCode

xsak

ymitsos

abolishallprivateproperty

aerotog

albertopasqualetto

asrient

bestlibre

boring10

cadolphs

colorchestra

cybertramp

dartero

delta-emil

doc75

dsp77

ebayer

elsiehupp

espinosa

exponentactivity

exprez135

fab4x

fabianski7

rasperepodvipodvert

gasolin

githubaccount073

hms5232

hydrandt

iamtalwinder

jabdoa2

jduar

jibedoubleve

johanvanheusden

jtagcat

konhi

krzysiekwie

lighthousebulb

luzpaz

majsterkovic

mak2002

nmiquan

nullpointer666

oscaretu

oskarsh

osso73

over-soul

pensierocrea

pomeloy

rhtenhove

rikanotank1

rxliuli

simonsan

stellarpower

suixinio

sumomo-99

xtatsux

taw00

tcassaert

victante

Voltinus

xcffl

yourcontact

zaoyifan

zawnk

zen-quo

zozolina123

xcession

paventyang

jackytsu

zhangmx
\n\n
", "readmeFetchedAt": "2022-05-10T00:07:56.213Z" }, "jukeboks": { "readmeCleaned": "

Jukeboks

\n

Jukeboks is a fast viewer / player app, built on Electron.\nIn Jukeboks, you can preview images and movies while selecting files.

\n

Features

\n\n

Application's screen

\n

\"screen\"

\n

License

\n

Jukeboks is available under the ISC license.

\n
", "readmeOriginal": "

Jukeboks

\n

Jukeboks is a fast viewer / player app, built on Electron.\nIn Jukeboks, you can preview images and movies while selecting files.

\n

Features

\n\n

Application's screen

\n

\"screen\"

\n

License

\n

Jukeboks is available under the ISC license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.228Z" }, "kalk": { "readmeCleaned": "

\"kalk\"

\n

\"shot\"

\n
", "readmeOriginal": "

\"kalk\"

\n

\"shot\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.318Z" }, "kahla": { "readmeCleaned": "

\n \n

Kahla

\n

Kahla is a cross-platform business messaging app.

\n

\n

\"Build\n\"GitHub\n\"Maintainability\"\n\"npm\"\n\"Issues\"\n\"GitHub\n\"LICENSE\"

\n
\n

\n\"screenshot\"\n

\n

Try it here: web.kahla.app

\n

\"Get\n\"English

\n

Kahla currently targets Windows, Linux, macOS, Android, and iOS.

\n

Kahla is built with Angular 8 and typescript. And Kahla Server is built with .NET Core.

\n

For more document about Kahla project and Kahla API, please view document here.

\n

For our official website, please view here.

\n

How to develope

\n

Before starting

\n

To develope Kahla, you need to install the following components:

\n\n

We strongly suggest using Visual Studio Code to develope this project.

\n

Using Visual Studio Code to open the directory directly.

\n

How to run

\n

How to run in browser

\n

Excute following command in the root directory of this repository to restore all dependencies.

\n
$ npm install
\n

Excute following command to run and start a debugging server at localhost:8001.

\n
$ npm start
\n

How to run as desktop app

\n

Currently, we are using Electron to target Windows, Mac and Linux platform.

\n

Supports Windows 7+, Linux and macOS 10.9+.

\n
$ npm run electron
\n

How to publish

\n

How to publish to a web server

\n
ng build --prod
\n

How to publish for electron production version

\n

Please view here for Electron distribution document.

\n

Please view here for Electron builder document.

\n

Run:

\n
./publish.sh
\n

And you will publish the distributable version of Kahla desktop.

\n

Document

\n

For more info please view Kahla Wiki

\n

How to contribute

\n

There are many ways to contribute to the project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.

\n

Even if you have push rights on the repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean, and your personal workflow cruft out of sight.

\n

We're also interested in your feedback for the future of this project. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.

\n
", "readmeOriginal": "

\n \n

Kahla

\n

Kahla is a cross-platform business messaging app.

\n

\n

\"Build\n\"GitHub\n\"Maintainability\"\n\"npm\"\n\"Issues\"\n\"GitHub\n\"LICENSE\"

\n
\n

\n\"screenshot\"\n

\n

Try it here: web.kahla.app

\n

\"Get\n\"English

\n

Kahla currently targets Windows, Linux, macOS, Android, and iOS.

\n

Kahla is built with Angular 8 and typescript. And Kahla Server is built with .NET Core.

\n

For more document about Kahla project and Kahla API, please view document here.

\n

For our official website, please view here.

\n

How to develope

\n

Before starting

\n

To develope Kahla, you need to install the following components:

\n\n

We strongly suggest using Visual Studio Code to develope this project.

\n

Using Visual Studio Code to open the directory directly.

\n

How to run

\n

How to run in browser

\n

Excute following command in the root directory of this repository to restore all dependencies.

\n
$ npm install
\n

Excute following command to run and start a debugging server at localhost:8001.

\n
$ npm start
\n

How to run as desktop app

\n

Currently, we are using Electron to target Windows, Mac and Linux platform.

\n

Supports Windows 7+, Linux and macOS 10.9+.

\n
$ npm run electron
\n

How to publish

\n

How to publish to a web server

\n
ng build --prod
\n

How to publish for electron production version

\n

Please view here for Electron distribution document.

\n

Please view here for Electron builder document.

\n

Run:

\n
./publish.sh
\n

And you will publish the distributable version of Kahla desktop.

\n

Document

\n

For more info please view Kahla Wiki

\n

How to contribute

\n

There are many ways to contribute to the project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.

\n

Even if you have push rights on the repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean, and your personal workflow cruft out of sight.

\n

We're also interested in your feedback for the future of this project. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.465Z" }, "kankan": { "readmeCleaned": "

Kan Kan

\n

中文

\n

As yout can see, the image preview software of Mac OS has a terrible experience: it can't be zoomed in with the scroll wheel, and it doesn't support viewing all the pictures in the folder directly...
\nSo, I developed this software.
\nKankan is a Mac OS software to help you quickly look pictures. The experience is similar to win10's \"image\" and \"king of pictures\" apps.

\n

SCREENSHOT

\n

Day Mode
\n\"Day\nDark Mode
\n\"Dark

\n

WHAT WE HAVE

\n

1.Fully comply with the Mac OS native design language, and the UI is simple and generous
\n2.\"Dark mode\" is supported natively, which can be switched automatically or manually between \"light\" and \"dark\" themes
\n3.Enlarge image by wheeling support
\n4.Drag image support
\n5.Support browsing all images under the folder
\n6.Support previous, next and cycle browsing
\n7.Support setting wallpaper
\n8.Support to copy file name and path
\n9.Support for copying images

\n

More content will be added according to user feedback in the future...

\n

SUPPORTED IMAGE FORMATS

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
SuffixSupport
.jpg
.jpeg
.png
.bmp
.gif
.ico
\n

SHORTCUTS

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyFunction
↓,→Next
↑,←Previous
EscExit app
Double-clickOriginal size Fit to window
\n

BUTTON FUNCTIONS

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ButtonFunction
previous
next
Maximize to window size
Minimize to original size
Copy to clipboard
Set as wallpaper (Authorization is required to operate 'Finder')
Rotate picture counter-clockwise
Rotate picture clockwise
Change to the dark theme
\n

UPDATE

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
versiontimecontentdownload
0.2.02020.04.03first version,A small amount bugs-
0.2.32020.04.03Fix bugs, basically complete functions-
0.2.42020.04.16New features:
1. Add the magnification display.
2. Add the resolution display.
3. Add new original size function.
4. Modify some menus and button positions
-
0.2.52020.05.31New features:
1.Globalization support,3 languages supported:
zh-CN
en
en-US
More work needs yours help and feedback.
If you need support from other languages, please give me feedback !
2.Fix the bug that you can still right-click to open the menu in Hello page.
-
0.3.12020.08.09New features:
1. Add drag and drop support, drag the picture to the window to open it!
2. Fix the problem of scrollbar in Y-axis when browsing large images in version <= mac os 10.14.
3. Fix the bug that the welcome window cannot be moved.
-
*0.4.02021.07.02New feature: clockwise / counter-clockwise rotation of pictures supported0.4.0.dmg.zip
\n

THANKS TO

\n

Electron,This software is developed based on this project

\n

COPYRIGHT

\n

Liu Han

\n

FEEDBACK

\n

newham.cn@gmail.com

\n

BUY ME A COFFEE

\n

\"微信赞赏\"

\n
", "readmeOriginal": "

Kan Kan

\n

中文

\n

As yout can see, the image preview software of Mac OS has a terrible experience: it can't be zoomed in with the scroll wheel, and it doesn't support viewing all the pictures in the folder directly...
\nSo, I developed this software.
\nKankan is a Mac OS software to help you quickly look pictures. The experience is similar to win10's \"image\" and \"king of pictures\" apps.

\n

SCREENSHOT

\n

Day Mode
\n\"Day\nDark Mode
\n\"Dark

\n

WHAT WE HAVE

\n

1.Fully comply with the Mac OS native design language, and the UI is simple and generous
\n2.\"Dark mode\" is supported natively, which can be switched automatically or manually between \"light\" and \"dark\" themes
\n3.Enlarge image by wheeling support
\n4.Drag image support
\n5.Support browsing all images under the folder
\n6.Support previous, next and cycle browsing
\n7.Support setting wallpaper
\n8.Support to copy file name and path
\n9.Support for copying images

\n

More content will be added according to user feedback in the future...

\n

SUPPORTED IMAGE FORMATS

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
SuffixSupport
.jpg
.jpeg
.png
.bmp
.gif
.ico
\n

SHORTCUTS

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyFunction
↓,→Next
↑,←Previous
EscExit app
Double-clickOriginal size Fit to window
\n

BUTTON FUNCTIONS

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ButtonFunction
previous
next
Maximize to window size
Minimize to original size
Copy to clipboard
Set as wallpaper (Authorization is required to operate 'Finder')
Rotate picture counter-clockwise
Rotate picture clockwise
Change to the dark theme
\n

UPDATE

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
versiontimecontentdownload
0.2.02020.04.03first version,A small amount bugs-
0.2.32020.04.03Fix bugs, basically complete functions-
0.2.42020.04.16New features:
1. Add the magnification display.
2. Add the resolution display.
3. Add new original size function.
4. Modify some menus and button positions
-
0.2.52020.05.31New features:
1.Globalization support,3 languages supported:
zh-CN
en
en-US
More work needs yours help and feedback.
If you need support from other languages, please give me feedback !
2.Fix the bug that you can still right-click to open the menu in Hello page.
-
0.3.12020.08.09New features:
1. Add drag and drop support, drag the picture to the window to open it!
2. Fix the problem of scrollbar in Y-axis when browsing large images in version <= mac os 10.14.
3. Fix the bug that the welcome window cannot be moved.
-
*0.4.02021.07.02New feature: clockwise / counter-clockwise rotation of pictures supported0.4.0.dmg.zip
\n

THANKS TO

\n

Electron,This software is developed based on this project

\n

COPYRIGHT

\n

Liu Han

\n

FEEDBACK

\n

newham.cn@gmail.com

\n

BUY ME A COFFEE

\n

\"微信赞赏\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.485Z" }, "kap": { "readmeCleaned": "

\n \n

Kap

\n

An open-source screen recorder built with web technology

\n

\"Build \"XO

\n

\n

\"SWUbanner\"

\n

Get Kap

\n

Download the latest release:

\n\n

Or install with Homebrew-Cask:

\n
brew install --cask kap
\n

Contribute

\n

Read the contribution guide.

\n

Plugins

\n

For more info on how to create plugins, read the plugins docs.

\n

Dev builds

\n

Download main or builds for any other branch using: https://kap-artifacts.now.sh/<branch>. Note that these builds are unsupported and may have issues.

\n

Related Repositories

\n\n

Newsletter

\n

Subscribe

\n

Thanks

\n\n
", "readmeOriginal": "

\n \n

Kap

\n

An open-source screen recorder built with web technology

\n

\"Build \"XO

\n

\n

\"SWUbanner\"

\n

Get Kap

\n

Download the latest release:

\n\n

Or install with Homebrew-Cask:

\n
brew install --cask kap
\n

Contribute

\n

Read the contribution guide.

\n

Plugins

\n

For more info on how to create plugins, read the plugins docs.

\n

Dev builds

\n

Download main or builds for any other branch using: https://kap-artifacts.now.sh/<branch>. Note that these builds are unsupported and may have issues.

\n

Related Repositories

\n\n

Newsletter

\n

Subscribe

\n

Thanks

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:56.548Z" }, "jumpfm": { "readmeCleaned": "

\"Build \"Build

\n

About

\n

JumpFm is a cross platform1,2 dual panel file manager with builtin superpowers.

\n
\n

1\nWindows built is not tested at all, install it at your own risk

\n

2\nFor a Mac release see this fork

\n

<dev/>

\n

tl;dr.1,2

\n
git clone git@github.com:Gilad-Kutiel-App/jumpfm.git\nnpm i -g typescript electron\ncd jumpfm\nnpm i\ntsc -w\nsass --watch scss:css\nelectron .\n
\n
\n

1\nYou might want to change npm's default directory

\n

2\nUse different terminal for each of tsc -w, sass --watch scss:css, electron .

\n

More <dev/>

\n

JumpFm is an Electron based app.\nIt is written in TypeScript.\nTo hack the code all you need is node.js a\ndecent editor and a sass compiler.\nThis is how your terminal should looks like:

\n

\"\"

\n
", "readmeOriginal": "

\"Build \"Build

\n

About

\n

JumpFm is a cross platform1,2 dual panel file manager with builtin superpowers.

\n
\n

1\nWindows built is not tested at all, install it at your own risk

\n

2\nFor a Mac release see this fork

\n

<dev/>

\n

tl;dr.1,2

\n
git clone git@github.com:Gilad-Kutiel-App/jumpfm.git\nnpm i -g typescript electron\ncd jumpfm\nnpm i\ntsc -w\nsass --watch scss:css\nelectron .\n
\n
\n

1\nYou might want to change npm's default directory

\n

2\nUse different terminal for each of tsc -w, sass --watch scss:css, electron .

\n

More <dev/>

\n

JumpFm is an Electron based app.\nIt is written in TypeScript.\nTo hack the code all you need is node.js a\ndecent editor and a sass compiler.\nThis is how your terminal should looks like:

\n

\"\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.613Z" }, "katana": { "readmeCleaned": "

\"Katana

\n\n \"David\"\n\n\n \"Standard\n\n\n \"Known\n\n\n \"Release\"\n\n

Overview

\n

Katana is a simple, open-source screenshot utility for macOS that lives in your menubar.

\n

Downloads are available on the releases page.

\n

Features

\n\n
\n \"Katana\n
\n

Credits

\n

Application icons based off work by Gregory Thye

\n

License

\n

Katana is available under the GPL-3.0 license.

\n
", "readmeOriginal": "

\"Katana

\n\n \"David\"\n\n\n \"Standard\n\n\n \"Known\n\n\n \"Release\"\n\n

Overview

\n

Katana is a simple, open-source screenshot utility for macOS that lives in your menubar.

\n

Downloads are available on the releases page.

\n

Features

\n\n
\n \"Katana\n
\n

Credits

\n

Application icons based off work by Gregory Thye

\n

License

\n

Katana is available under the GPL-3.0 license.

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.691Z" }, "kaplan-desktop": { "readmeCleaned": "

Kaplan Desktop

\n
    \n
  1. Introduction
  2. \n
  3. Installation
  4. \n
  5. Links
  6. \n
\n

Introduction

\n

Hello. Welcome to the source repo for Kaplan Desktop. It’s been in the works for quite some time and it is exciting to go out and show it to fellow linguists. Please do not hesitate to reach out to contact@kaplan.pro should you have any inquiries.

\n

The documentation for the app itself is available here.

\n

Installation

\n

There are a few options:

\n
    \n
  1. Microsoft Store
  2. \n
  3. .exe, .deb, and .rpm releases
  4. \n
  5. Building from source (for advanced users)
  6. \n
\n

Microsoft Store

\n

The Microsoft Store page for Kaplan Desktop is located here.

\n

.exe, .deb, and .rpm

\n

The releases are available here.

\n

NB: Ubuntu users may experience a bug where they cannot run the .deb file, unless they save it in a directory other than the default download directory.

\n

Building from source

\n

This is by far the most efficient method and the steps are more or less the same for all operating systems.

\n
    \n
  1. \n

    Install Python 3, if it’s not installed on your computer.

    \n
  2. \n
  3. \n

    Get the source code from the repo.

    \n
  4. \n
  5. \n

    Navigate to /backend/ and create a Python 3 virtual environment.

    \n
  6. \n
  7. \n

    Activate the virtual environment.

    \n
  8. \n
  9. \n

    Update pip and install the required Python libraries:

    \n
  10. \n
\n
pip install --upgrade pip\n
\n
pip install -r requirements.txt\n
\n
pip install pyinstaller\n
\n
    \n
  1. Have pyinstaller build the backend Django server:
  2. \n
\n
pyinstaller --name=backend --hidden-import backend.urls --distpath ../app --clean --noconfirm manage.py\n
\n
    \n
  1. \n

    Install yarn.

    \n
  2. \n
  3. \n

    Navigate to /app/ and have yarn install the Nodejs libraries:

    \n
  4. \n
\n
yarn install\n
\n
    \n
  1. (Windows-specific step) Remove the following line from package.json
  2. \n
\n
\n

\"executableName\": \"kaplan-desktop\",

\n
\n
    \n
  1. Have yarn build the executable:
  2. \n
\n
yarn make\n
\n
    \n
  1. The resulting executable(s) will be under /app/out/
  2. \n
\n

Links:

\n
    \n
  1. Kaplan Homepage
  2. \n
  3. Docs
  4. \n
  5. Kaplan Desktop@Microsoft Store
  6. \n
  7. Kaplan Desktop@Sourceforce
  8. \n
\n
", "readmeOriginal": "

Kaplan Desktop

\n
    \n
  1. Introduction
  2. \n
  3. Installation
  4. \n
  5. Links
  6. \n
\n

Introduction

\n

Hello. Welcome to the source repo for Kaplan Desktop. It’s been in the works for quite some time and it is exciting to go out and show it to fellow linguists. Please do not hesitate to reach out to contact@kaplan.pro should you have any inquiries.

\n

The documentation for the app itself is available here.

\n

Installation

\n

There are a few options:

\n
    \n
  1. Microsoft Store
  2. \n
  3. .exe, .deb, and .rpm releases
  4. \n
  5. Building from source (for advanced users)
  6. \n
\n

Microsoft Store

\n

The Microsoft Store page for Kaplan Desktop is located here.

\n

.exe, .deb, and .rpm

\n

The releases are available here.

\n

NB: Ubuntu users may experience a bug where they cannot run the .deb file, unless they save it in a directory other than the default download directory.

\n

Building from source

\n

This is by far the most efficient method and the steps are more or less the same for all operating systems.

\n
    \n
  1. \n

    Install Python 3, if it’s not installed on your computer.

    \n
  2. \n
  3. \n

    Get the source code from the repo.

    \n
  4. \n
  5. \n

    Navigate to /backend/ and create a Python 3 virtual environment.

    \n
  6. \n
  7. \n

    Activate the virtual environment.

    \n
  8. \n
  9. \n

    Update pip and install the required Python libraries:

    \n
  10. \n
\n
pip install --upgrade pip\n
\n
pip install -r requirements.txt\n
\n
pip install pyinstaller\n
\n
    \n
  1. Have pyinstaller build the backend Django server:
  2. \n
\n
pyinstaller --name=backend --hidden-import backend.urls --distpath ../app --clean --noconfirm manage.py\n
\n
    \n
  1. \n

    Install yarn.

    \n
  2. \n
  3. \n

    Navigate to /app/ and have yarn install the Nodejs libraries:

    \n
  4. \n
\n
yarn install\n
\n
    \n
  1. (Windows-specific step) Remove the following line from package.json
  2. \n
\n
\n

\"executableName\": \"kaplan-desktop\",

\n
\n
    \n
  1. Have yarn build the executable:
  2. \n
\n
yarn make\n
\n
    \n
  1. The resulting executable(s) will be under /app/out/
  2. \n
\n

Links:

\n
    \n
  1. Kaplan Homepage
  2. \n
  3. Docs
  4. \n
  5. Kaplan Desktop@Microsoft Store
  6. \n
  7. Kaplan Desktop@Sourceforce
  8. \n
\n
", "readmeFetchedAt": "2022-05-10T00:07:56.716Z" }, "kappo": { "readmeCleaned": "

\"readme\"\n





\n\"screenshot\"

\n
", "readmeOriginal": "

\"readme\"\n





\n\"screenshot\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.762Z" }, "keycombiner": { "readmeCleaned": "
\n

\"logo\"

KeyCombiner

\n

An app to organize, learn, and practice keyboard shortcuts!

\n
\n \n

This repository serves as a public bug and request tracker, and as a Wiki for advanced users.

\n

It contains all user-requested features and all user-submitted bug reports. Issues that were not raised by users are not necessarily included.

\n

If you encountered a bug or have a feature request, please create an issue. Please also consider upvoting existing issues by adding a thumbs-up emoji or sharing your perspective in a comment.

\n

If you have a general question, you can contact us via mail or use GitHub Discussions.

\n

Either way, we will quickly get back to you.

\n\n
", "readmeOriginal": "
\n

\"logo\"

KeyCombiner

\n

An app to organize, learn, and practice keyboard shortcuts!

\n
\n \n

This repository serves as a public bug and request tracker, and as a Wiki for advanced users.

\n

It contains all user-requested features and all user-submitted bug reports. Issues that were not raised by users are not necessarily included.

\n

If you encountered a bug or have a feature request, please create an issue. Please also consider upvoting existing issues by adding a thumbs-up emoji or sharing your perspective in a comment.

\n

If you have a general question, you can contact us via mail or use GitHub Discussions.

\n

Either way, we will quickly get back to you.

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:56.836Z" }, "keeweb": { "readmeCleaned": "

Free cross-platform password manager compatible with KeePass

\n

This webapp is a browser and desktop password manager compatible with KeePass databases. It doesn't require any server or additional resources.\nThe app can run either in browser, or as a desktop app.

\n

\"screenshot\"

\n

Quick Links

\n

Apps: Web, Desktop
\nTimeline: Release Notes, TODO
\nOn one page: Features, FAQ
\nWebsite: keeweb.info
\nTwitter: kee_web
\nDonate: OpenCollective, GitHub

\n

Status

\n

The app is quite stable now. Basic stuff, as well as more advanced operations, should be rather reliable.

\n

Self-hosting

\n

Everything you need to host this app on your server is any static file server. The app is a single HTML file + a service worker (optionally; for offline access).\nYou can download the latest distribution files from gh-pages branch.

\n

If you are using Docker:

\n
    \n
  1. put your dh.pem, cert.pem, key.pem to /etc/nginx/external/
  2. \n
  3. run this script:
  4. \n
\n
docker run --name keeweb -d -p 443:443 -p 80:80 -v $EXT_DIR:/etc/nginx/external/ antelle/keeweb
\n

To make Dropbox work in your self-hosted app, go to this Wiki page.

\n

Building

\n

The easiest way to clone all KeeWeb repos is:

\n
curl https://raw.githubusercontent.com/keeweb/keeweb/develop/dev-env.sh | bash -
\n

The app can be built with grunt: grunt (html files will be in dist/).
\nDesktop apps are built with grunt desktop. This requires some magic and currently works only on CI,\nyou can find more details in the GitHub Actions workflow.

\n

To run the desktop (electron) app without building an installer, build the app with grunt and start it this way:

\n
npm run dev\nnpm run electron
\n

For debug build:

\n
    \n
  1. run npm run dev
  2. \n
  3. open http://localhost:8085
  4. \n
\n

To build desktop apps, use these goals, the result can be found in tmp:

\n
npm run dev-desktop-macos\nnpm run dev-desktop-windows\nnpm run dev-desktop-linux\n
\n

Contributing

\n

Please read contribution guidelines for pull requests.
\nHere's a list of issues where your help would be very welcome.\nAlso you can help by translating KeeWeb to your language.

\n

Other ways of contribution can be found on this page.

\n

Important notes for pull requests

\n\n

Donations

\n

KeeWeb is not free to develop. It takes time, requires paid code signing certificates and domains.
\nYou can help the project or say \"thank you\" with this button:
\n\"OpenCollective\"

\n

You can also sponsor the developer directly on GitHub.

\n

Please note: donation does not imply any type of service contract.

\n

Thank you

\n

Notable contributions to KeeWeb:

\n\n

License

\n

MIT

\n
", "readmeOriginal": "

Free cross-platform password manager compatible with KeePass

\n

This webapp is a browser and desktop password manager compatible with KeePass databases. It doesn't require any server or additional resources.\nThe app can run either in browser, or as a desktop app.

\n

\"screenshot\"

\n

Quick Links

\n

Apps: Web, Desktop
\nTimeline: Release Notes, TODO
\nOn one page: Features, FAQ
\nWebsite: keeweb.info
\nTwitter: kee_web
\nDonate: OpenCollective, GitHub

\n

Status

\n

The app is quite stable now. Basic stuff, as well as more advanced operations, should be rather reliable.

\n

Self-hosting

\n

Everything you need to host this app on your server is any static file server. The app is a single HTML file + a service worker (optionally; for offline access).\nYou can download the latest distribution files from gh-pages branch.

\n

If you are using Docker:

\n
    \n
  1. put your dh.pem, cert.pem, key.pem to /etc/nginx/external/
  2. \n
  3. run this script:
  4. \n
\n
docker run --name keeweb -d -p 443:443 -p 80:80 -v $EXT_DIR:/etc/nginx/external/ antelle/keeweb
\n

To make Dropbox work in your self-hosted app, go to this Wiki page.

\n

Building

\n

The easiest way to clone all KeeWeb repos is:

\n
curl https://raw.githubusercontent.com/keeweb/keeweb/develop/dev-env.sh | bash -
\n

The app can be built with grunt: grunt (html files will be in dist/).
\nDesktop apps are built with grunt desktop. This requires some magic and currently works only on CI,\nyou can find more details in the GitHub Actions workflow.

\n

To run the desktop (electron) app without building an installer, build the app with grunt and start it this way:

\n
npm run dev\nnpm run electron
\n

For debug build:

\n
    \n
  1. run npm run dev
  2. \n
  3. open http://localhost:8085
  4. \n
\n

To build desktop apps, use these goals, the result can be found in tmp:

\n
npm run dev-desktop-macos\nnpm run dev-desktop-windows\nnpm run dev-desktop-linux\n
\n

Contributing

\n

Please read contribution guidelines for pull requests.
\nHere's a list of issues where your help would be very welcome.\nAlso you can help by translating KeeWeb to your language.

\n

Other ways of contribution can be found on this page.

\n

Important notes for pull requests

\n\n

Donations

\n

KeeWeb is not free to develop. It takes time, requires paid code signing certificates and domains.
\nYou can help the project or say \"thank you\" with this button:
\n\"OpenCollective\"

\n

You can also sponsor the developer directly on GitHub.

\n

Please note: donation does not imply any type of service contract.

\n

Thank you

\n

Notable contributions to KeeWeb:

\n\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.922Z" }, "kinesis-ci": { "readmeCleaned": "

Kinesis-CI - Sample Project

\n

Important Note:\nSeptember 8th 2021 - This GitHub is no longer updated by the software vendor. Please use our rebranded site: https://github.com/WiiisdomOps

\n

Education and innovation is a sample project for users of the Kinesis CI tool for Tableau.\nKinesis CI is a test framework that adds automated testing and continuous integration capability to Tableau Server.\nFor more information on Kinesis CI, please visit http://kinesis-ci.com

\n

\"screenshot\"

\n

Concept

\n

This project is designed to give you an example for setting up your testing projects in Kinesis CI.

\n

It contains a collection of test cases for a Tableau Workbook – Education and Innovation,\nincluding the following test cases:

\n

Functional Testing

\n\n

Regression Testing

\n\n

Cross Environment Testing

\n\n

Performance Testing

\n\n

This example goes hand in hand with the documentation of Kinesis CI, which you can find under https://kinesis-ci.com/documents

\n

How to use this demo project?

\n
    \n
  1. \n

    Clone the repository in Kinesis Designer (File -> Clone Git Repository and enter https://github.com/Kinesis-CI/education-and-innovation.git) and open project.json. This project.json file contains key\ninformation to identify the individual test projects within this directory.\nAlternatively, you can use the Kinesis Command Line Interface and open the files in a text editor.

    \n
  2. \n
  3. \n

    Edit context variables to fit your environment. i.e. reference the Tableau Server you are using within your organization and use a database you have access to. For more information on context variables visit\nhttps://kinesis-ci.com/documents/#/context-variables

    \n
  4. \n
  5. \n

    In Load Data task tailor database reference to a database you would like to use. For detailed information visit https://kinesis-ci.com/documents/#/functional-test?id=load-data-task

    \n
  6. \n
  7. \n

    In Regression test, create a new Baseline from your Tableau Server to compare against. For more information on Regression tests visit https://kinesis-ci.com/documents/#/regression-test

    \n
  8. \n
  9. \n

    In Cross Environment test, update the target environment to fit your target environment you want to compare to your source environment. For more information on Cross Environment tests visit https://kinesis-ci.com/documents/#/cross-environment-test

    \n
  10. \n
\n

Directory layout

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
File TypeDescription
srcContains the Tableau source files that have been imported into the given Project
contextContains the JSON files that define your context variables. For more information on context variables refer to the documentation under https://kinesis-ci.com/documents/#/command-line-interface
testContains files related to the individual Tests that have been created within the Project
test/<TEST_NAME>/resourcesTest resources. These are typically data files (.csv) needed to load data into source systems (i.e. databases) or validate data to expected results
test/<TEST_NAME>/kinesis.jsonJSON files that describe the individual Test steps that have been created within the Project
project.jsonJSON file that contains the key information to identify the individual Projects. This is only needed for Kinesis Designer, but not to run tests from the Command Line Interface
\n

For more information on the Directory Layout please see https://kinesis-ci.com/documents/#/getting-started?id=create-new-project

\n

Integration with CI tools

\n

If you want to run tests automatically on a Continuous Integration Server, for example on Jenkins, TeamCity or any other similar tool, then you will need to install the Kinesis Command Line Interface to the server where your CI/CD server is running.

\n

Command Line Interface allows you to run previously created Kinesis tests and integrate it with the CI tool of your choice.

\n

For more information on the integration of Kinesis CI and Jenkins, please see https://kinesis-ci.com/documents/#/continuous-integration

\n
", "readmeOriginal": "

Kinesis-CI - Sample Project

\n

Important Note:\nSeptember 8th 2021 - This GitHub is no longer updated by the software vendor. Please use our rebranded site: https://github.com/WiiisdomOps

\n

Education and innovation is a sample project for users of the Kinesis CI tool for Tableau.\nKinesis CI is a test framework that adds automated testing and continuous integration capability to Tableau Server.\nFor more information on Kinesis CI, please visit http://kinesis-ci.com

\n

\"screenshot\"

\n

Concept

\n

This project is designed to give you an example for setting up your testing projects in Kinesis CI.

\n

It contains a collection of test cases for a Tableau Workbook – Education and Innovation,\nincluding the following test cases:

\n

Functional Testing

\n\n

Regression Testing

\n\n

Cross Environment Testing

\n\n

Performance Testing

\n\n

This example goes hand in hand with the documentation of Kinesis CI, which you can find under https://kinesis-ci.com/documents

\n

How to use this demo project?

\n
    \n
  1. \n

    Clone the repository in Kinesis Designer (File -> Clone Git Repository and enter https://github.com/Kinesis-CI/education-and-innovation.git) and open project.json. This project.json file contains key\ninformation to identify the individual test projects within this directory.\nAlternatively, you can use the Kinesis Command Line Interface and open the files in a text editor.

    \n
  2. \n
  3. \n

    Edit context variables to fit your environment. i.e. reference the Tableau Server you are using within your organization and use a database you have access to. For more information on context variables visit\nhttps://kinesis-ci.com/documents/#/context-variables

    \n
  4. \n
  5. \n

    In Load Data task tailor database reference to a database you would like to use. For detailed information visit https://kinesis-ci.com/documents/#/functional-test?id=load-data-task

    \n
  6. \n
  7. \n

    In Regression test, create a new Baseline from your Tableau Server to compare against. For more information on Regression tests visit https://kinesis-ci.com/documents/#/regression-test

    \n
  8. \n
  9. \n

    In Cross Environment test, update the target environment to fit your target environment you want to compare to your source environment. For more information on Cross Environment tests visit https://kinesis-ci.com/documents/#/cross-environment-test

    \n
  10. \n
\n

Directory layout

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
File TypeDescription
srcContains the Tableau source files that have been imported into the given Project
contextContains the JSON files that define your context variables. For more information on context variables refer to the documentation under https://kinesis-ci.com/documents/#/command-line-interface
testContains files related to the individual Tests that have been created within the Project
test/<TEST_NAME>/resourcesTest resources. These are typically data files (.csv) needed to load data into source systems (i.e. databases) or validate data to expected results
test/<TEST_NAME>/kinesis.jsonJSON files that describe the individual Test steps that have been created within the Project
project.jsonJSON file that contains the key information to identify the individual Projects. This is only needed for Kinesis Designer, but not to run tests from the Command Line Interface
\n

For more information on the Directory Layout please see https://kinesis-ci.com/documents/#/getting-started?id=create-new-project

\n

Integration with CI tools

\n

If you want to run tests automatically on a Continuous Integration Server, for example on Jenkins, TeamCity or any other similar tool, then you will need to install the Kinesis Command Line Interface to the server where your CI/CD server is running.

\n

Command Line Interface allows you to run previously created Kinesis tests and integrate it with the CI tool of your choice.

\n

For more information on the integration of Kinesis CI and Jenkins, please see https://kinesis-ci.com/documents/#/continuous-integration

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.967Z" }, "kube-dev-dashboard": { "readmeCleaned": "

Support my work. Buy me a coffee !

\n

\"Buy

\n

Kube Dev Dashboard

\n

Desktop Client for Kubernetes

\n

Monitor your kubernetes setup and perform actions right from a single window easily

\n

Features :

\n\n

Visit Additional Docs Here

\n

Contributing

\n

We encourage you to contribute to Kube Dev Dashboard.\nCheck the Contribution Guidelines

\n

Getting Started

\n

Clone the Repository

\n

Run yarn electron:serve

\n

Built using the following :

\n\n

Build

\n

yarn electron:build

\n
", "readmeOriginal": "

Support my work. Buy me a coffee !

\n

\"Buy

\n

Kube Dev Dashboard

\n

Desktop Client for Kubernetes

\n

Monitor your kubernetes setup and perform actions right from a single window easily

\n

Features :

\n\n

Visit Additional Docs Here

\n

Contributing

\n

We encourage you to contribute to Kube Dev Dashboard.\nCheck the Contribution Guidelines

\n

Getting Started

\n

Clone the Repository

\n

Run yarn electron:serve

\n

Built using the following :

\n\n

Build

\n

yarn electron:build

\n
", "readmeFetchedAt": "2022-05-10T00:07:56.995Z" }, "kube-forwarder": { "readmeCleaned": "

\n \n \"node\n \n \n \"electron\n \n \n \"vue\n \n

\n

Kube Forwarder

\n

Easy to use Kubernetes port forwarding manager

\n

\n Visit a Website ·\n Download for macOS ·\n Download for Windows ·\n Download for Linux\n ·\n Install with Homebrew\n

\n

\"Clusters

\n

Features

\n

Auto-reconnect

\n

Kube Forwarder watches for connection status and always tries reconnect on failure

\n

Multiple clusters support

\n

Bookmark and forward Kubernetes services from multiple clusters easily like never before

\n

Share bookmarks

\n

Use import and export functionality to share bookmarked services with your team or simply backup it

\n

Zero native dependencies

\n

Use port-forwarding without installing kubectl and avoid explanations to developers on how to use it

\n

Optional dependencies

\n\n

Functionality walk-through

\n

Add a cluster(s)

\n

Before you start forwarding internal resources to your local machine, you have to add cluster configuration.\nTo do this we have 3 different options in the app:

\n
    \n
  1. Auto-detection of ~/.kube/config file and parsing settings from it
  2. \n
  3. Manual adding of Kubernetes config by selecting a file(s)
  4. \n
  5. Manual adding of Kubernetes config by pasting a text
  6. \n
  7. Import of the JSON file that could be generated via Kube Forwarder export functionality
  8. \n
\n

When you add a new cluster via auto-detection (option 1) or manually using a file(a) selection (option 2), we could parse\nconfigs and if there are multiple contexts inside we will suggest you to add multiple clusters to the app.\nFew examples of yaml files we expect to have you could find there

\n

Also, you could add a cluster by filling a form manually (option 3). The form has the following fields:

\n\n

\"Screenshot

\n

Add a resource

\n

Kube Forwarder supports forwarding of all types of resources that supported by kubectl – Pod, Deployment, Service.

\n

We ask you to fill the form with the following fields:

\n

Cluster Name - pick a cluster from one of the added clusters.

\n

Namespace - the namespace of the resource you plan to forward.

\n

Kind – pick one of the options Pod, Deployment or Service.

\n

Name - name of the Pod, Deployment or Service.

\n

Alias - alternative name of the resource that will be displayed on the homepage(optional)

\n

Port Forwarding

\n\n

Use Custom Local Address - Check this and put an IP address or hostname into the text field to\nuse a different listen address. Putting each service on its own address avoids sharing/collisions between\nservices on cookies and port number. Specify a loopback address like 127.0.x.x or add entries to your\nhosts file like 127.0.1.1 dashboard.production.kbf and put the assigned name in this column. If blank or\nunchecked, localhost / 127.0.0.1 will be used.

\n

\"Port

\n

Import/Export

\n

Kube Forwarder allows you export cluster configuration in JSON that you could use to share with your team members or for the backup purpose. You could easily store it on Github. When you export cluster, you could export it with or without confidential information.

\n

\"Screenshot

\n

Install with Homebrew

\n
brew cask install kube-forwarder\n
\n

Contributing

\n

We encourage you to contribute to Kube Forwarder!

\n

We expect contributors to abide by our underlying code of conduct.\nAll conversations and discussions on GitHub (issues, pull requests)\nmust be respectful and harassment-free.

\n

This project was generated with electron-vue@8fae476 using vue-cli. Documentation about the original structure can be found here.

\n

How to contribute

\n
    \n
  1. Fork the project & clone locally. Follow the initial setup here.
  2. \n
  3. Create a branch, naming it either a feature or bug: git checkout -b feature/that-new-feature or bug/fixing-that-bug
  4. \n
  5. Code and commit your changes. Bonus points if you write a good commit message: git commit -m 'Add some feature'
  6. \n
  7. Push to the branch: git push origin feature/that-new-feature
  8. \n
  9. Create a pull request for your branch 🎉
  10. \n
\n

Getting started

\n

Prerequisites

\n\n

Installing

\n

Fork Kube Forwarder repository (https://github.com/pixel-point/kube-forwarder/fork)

\n
/kube-forwarder\n\n# install dependencies\nnpm install\n\n# prepare .env files\ncp .env.example .env\ncp .env.example .env.production\n\n# serve with hot reload in Electron Dev app\nnpm run dev\n\n# serve WEB version with hot reload at localhost:9081\nnpm run web\">
# Clone source code\ngit clone https://github.com/<your-username>/kube-forwarder\n\n# install dependencies\nnpm install\n\n# prepare .env files\ncp .env.example .env\ncp .env.example .env.production\n\n# serve with hot reload in Electron Dev app\nnpm run dev\n\n# serve WEB version with hot reload at localhost:9081\nnpm run web\n
\n

Build

\n

Build an application for production

\n
# Build a target for current OS\nnpm run build\n\n# Build a target for Windows\nnpm run build -- -- --win\n\n# Build a target for Linux\nnpm run build -- -- --linux\n\n# You can mix targets\nnpm run build -- -- --win --linux\n\n# You can build static and target separately\nnpm run build:dist\nnpm run build:target -- --win\n
\n

A built version will be appear in build directory.

\n

Running the tests

\n

We are using Cypress to run integration tests.\nThere are visual regression tests. It's important to run them inside docker\ncontainer to get same screenshots as in Drone CI.

\n
npm run test:cypress\n
\n

Or you can run it manually on a local machine.

\n
# Run the web version to test it\nnpm run web\n\n# Run this command in a separate terminal tab\nnpm run test:cypress:onhost\n\n# Or you can open Cypress GUI\nnpm run test:cypress:open\n
\n

Troubleshooting

\n

Q) Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 12.x\nA) npm rebuild node-sass

\n

Q) Error: spawn .../kube-forwarder/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron ENOENT\nA) Reinstall node_modules: rm -rf node_modules && npm i

\n

Release guide

\n

Configure environment

\n

Also, this steps could be used to configure CI environment.

\n
    \n
  1. Copy .env.example to .env.production and fill variables.
  2. \n
\n

Release steps

\n
    \n
  1. Update the version in package.json and Push to release branch.
  2. \n
  3. Run npm run release on a Mac computer to build packages. They will be automatically pushed to releases at Github.
  4. \n
  5. Go to Releases in the repository.\nMake sure that the created draft is OK and release it (Edit -> Release).
  6. \n
  7. Run cask-repair kube-forwarder to update the cask version.\n([https://github.com/Homebrew/homebrew-cask/blob/master/CONTRIBUTING.md#updating-a-cask](About cask-repair))
  8. \n
\n

Notes:

\n
    \n
  1. A release tag (for example: v1.0.3) will be added to GIT automatically by Github when you release your draft.
  2. \n
\n

Development tips

\n

Use tiffutil -cathidpicheck bg.png bg@2x.png -out bg.tiff to build a tiff\nbackground for .DMG

\n

Supported by

\n\n \n \n \n \n
\n\n
\n

License

\n

This project is licensed under the MIT License - see the LICENSE.md file for details

\n
", "readmeOriginal": "

\n \n \"node\n \n \n \"electron\n \n \n \"vue\n \n

\n

Kube Forwarder

\n

Easy to use Kubernetes port forwarding manager

\n

\n Visit a Website ·\n Download for macOS ·\n Download for Windows ·\n Download for Linux\n ·\n Install with Homebrew\n

\n

\"Clusters

\n

Features

\n

Auto-reconnect

\n

Kube Forwarder watches for connection status and always tries reconnect on failure

\n

Multiple clusters support

\n

Bookmark and forward Kubernetes services from multiple clusters easily like never before

\n

Share bookmarks

\n

Use import and export functionality to share bookmarked services with your team or simply backup it

\n

Zero native dependencies

\n

Use port-forwarding without installing kubectl and avoid explanations to developers on how to use it

\n

Optional dependencies

\n\n

Functionality walk-through

\n

Add a cluster(s)

\n

Before you start forwarding internal resources to your local machine, you have to add cluster configuration.\nTo do this we have 3 different options in the app:

\n
    \n
  1. Auto-detection of ~/.kube/config file and parsing settings from it
  2. \n
  3. Manual adding of Kubernetes config by selecting a file(s)
  4. \n
  5. Manual adding of Kubernetes config by pasting a text
  6. \n
  7. Import of the JSON file that could be generated via Kube Forwarder export functionality
  8. \n
\n

When you add a new cluster via auto-detection (option 1) or manually using a file(a) selection (option 2), we could parse\nconfigs and if there are multiple contexts inside we will suggest you to add multiple clusters to the app.\nFew examples of yaml files we expect to have you could find there

\n

Also, you could add a cluster by filling a form manually (option 3). The form has the following fields:

\n\n

\"Screenshot

\n

Add a resource

\n

Kube Forwarder supports forwarding of all types of resources that supported by kubectl – Pod, Deployment, Service.

\n

We ask you to fill the form with the following fields:

\n

Cluster Name - pick a cluster from one of the added clusters.

\n

Namespace - the namespace of the resource you plan to forward.

\n

Kind – pick one of the options Pod, Deployment or Service.

\n

Name - name of the Pod, Deployment or Service.

\n

Alias - alternative name of the resource that will be displayed on the homepage(optional)

\n

Port Forwarding

\n\n

Use Custom Local Address - Check this and put an IP address or hostname into the text field to\nuse a different listen address. Putting each service on its own address avoids sharing/collisions between\nservices on cookies and port number. Specify a loopback address like 127.0.x.x or add entries to your\nhosts file like 127.0.1.1 dashboard.production.kbf and put the assigned name in this column. If blank or\nunchecked, localhost / 127.0.0.1 will be used.

\n

\"Port

\n

Import/Export

\n

Kube Forwarder allows you export cluster configuration in JSON that you could use to share with your team members or for the backup purpose. You could easily store it on Github. When you export cluster, you could export it with or without confidential information.

\n

\"Screenshot

\n

Install with Homebrew

\n
brew cask install kube-forwarder\n
\n

Contributing

\n

We encourage you to contribute to Kube Forwarder!

\n

We expect contributors to abide by our underlying code of conduct.\nAll conversations and discussions on GitHub (issues, pull requests)\nmust be respectful and harassment-free.

\n

This project was generated with electron-vue@8fae476 using vue-cli. Documentation about the original structure can be found here.

\n

How to contribute

\n
    \n
  1. Fork the project & clone locally. Follow the initial setup here.
  2. \n
  3. Create a branch, naming it either a feature or bug: git checkout -b feature/that-new-feature or bug/fixing-that-bug
  4. \n
  5. Code and commit your changes. Bonus points if you write a good commit message: git commit -m 'Add some feature'
  6. \n
  7. Push to the branch: git push origin feature/that-new-feature
  8. \n
  9. Create a pull request for your branch 🎉
  10. \n
\n

Getting started

\n

Prerequisites

\n\n

Installing

\n

Fork Kube Forwarder repository (https://github.com/pixel-point/kube-forwarder/fork)

\n
# Clone source code\ngit clone https://github.com/<your-username>/kube-forwarder\n\n# install dependencies\nnpm install\n\n# prepare .env files\ncp .env.example .env\ncp .env.example .env.production\n\n# serve with hot reload in Electron Dev app\nnpm run dev\n\n# serve WEB version with hot reload at localhost:9081\nnpm run web\n
\n

Build

\n

Build an application for production

\n
# Build a target for current OS\nnpm run build\n\n# Build a target for Windows\nnpm run build -- -- --win\n\n# Build a target for Linux\nnpm run build -- -- --linux\n\n# You can mix targets\nnpm run build -- -- --win --linux\n\n# You can build static and target separately\nnpm run build:dist\nnpm run build:target -- --win\n
\n

A built version will be appear in build directory.

\n

Running the tests

\n

We are using Cypress to run integration tests.\nThere are visual regression tests. It's important to run them inside docker\ncontainer to get same screenshots as in Drone CI.

\n
npm run test:cypress\n
\n

Or you can run it manually on a local machine.

\n
# Run the web version to test it\nnpm run web\n\n# Run this command in a separate terminal tab\nnpm run test:cypress:onhost\n\n# Or you can open Cypress GUI\nnpm run test:cypress:open\n
\n

Troubleshooting

\n

Q) Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 12.x\nA) npm rebuild node-sass

\n

Q) Error: spawn .../kube-forwarder/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron ENOENT\nA) Reinstall node_modules: rm -rf node_modules && npm i

\n

Release guide

\n

Configure environment

\n

Also, this steps could be used to configure CI environment.

\n
    \n
  1. Copy .env.example to .env.production and fill variables.
  2. \n
\n

Release steps

\n
    \n
  1. Update the version in package.json and Push to release branch.
  2. \n
  3. Run npm run release on a Mac computer to build packages. They will be automatically pushed to releases at Github.
  4. \n
  5. Go to Releases in the repository.\nMake sure that the created draft is OK and release it (Edit -> Release).
  6. \n
  7. Run cask-repair kube-forwarder to update the cask version.\n([https://github.com/Homebrew/homebrew-cask/blob/master/CONTRIBUTING.md#updating-a-cask](About cask-repair))
  8. \n
\n

Notes:

\n
    \n
  1. A release tag (for example: v1.0.3) will be added to GIT automatically by Github when you release your draft.
  2. \n
\n

Development tips

\n

Use tiffutil -cathidpicheck bg.png bg@2x.png -out bg.tiff to build a tiff\nbackground for .DMG

\n

Supported by

\n\n \n \n \n \n
\n\n
\n

License

\n

This project is licensed under the MIT License - see the LICENSE.md file for details

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.107Z" }, "lax": { "readmeCleaned": "

\"Lax\"

\n

\"CI

\n\n

download

\n

download apps for macOS and Windows here!

\n

for other platforms, you'll have to build your own.

\n

dev

\n
$ npm install\n$ npm start
\n

to start this thing with react/redux devtools

\n
$ npm run dev
\n

to lint, check types, and run tests

\n
$ npm test
\n

while writing code, you might want to watch things

\n
# run tests when code changes\n$ npm run jest -- --watch\n\n# check types when code changes\n$ npm run flow -- --watch
\n

dist

\n

to build an executable for your OS

\n
$ npm run build
\n
", "readmeOriginal": "

\"Lax\"

\n

\"CI

\n\n

download

\n

download apps for macOS and Windows here!

\n

for other platforms, you'll have to build your own.

\n

dev

\n
$ npm install\n$ npm start
\n

to start this thing with react/redux devtools

\n
$ npm run dev
\n

to lint, check types, and run tests

\n
$ npm test
\n

while writing code, you might want to watch things

\n
# run tests when code changes\n$ npm run jest -- --watch\n\n# check types when code changes\n$ npm run flow -- --watch
\n

dist

\n

to build an executable for your OS

\n
$ npm run build
\n
", "readmeFetchedAt": "2022-05-10T00:07:57.214Z" }, "laravel-kit": { "readmeCleaned": "

\n \n

\n

Laravel Kit

\n
\n A simple and elegant desktop application for managing your Laravel applications.
\n Available for Windows, Linux and macOS.\n
\n
\n
\n \n \n \"Latest\n \n \n \n \"build\"\n \n \n \n \n \n
\n
\n

\n \n Website\n \n | \n \n Features\n \n | \n \n Installation\n \n | \n \n Contribution\n \n | \n \n Documentation\n \n

\n
\n
\n \n Built with ❤︎ by Tareque Md Hanif\n \n
\n

Features

\n\n

Installation

\n

PHP must be installed in your system.

\n

Windows

\n

Download the setup file (.exe) and install it. Updates will be checked automatically.

\n

macOS

\n

The recommended way to install on macOS is by using brew.

\n
brew install laravel-kit\n
\n

Or, download zip or dmg formats from the Releases page. Note that the dmg release is not code signed. Installation instructions for dmg

\n

Ubuntu and other derivatives

\n

Run these commands from the terminal:

\n
wget https://github.com/tmdh/laravel-kit/releases/download/v2.0.6/laravel-kit_2.0.6_amd64.deb\nsudo apt install ./laravel-kit_2.0.6_amd64.deb\n
\n

Other Linux distributions

\n

Only AppImage format is available for other Linux distributions. Download it from the Releases page. Proper methods will be added very soon.

\n

Screenshots

\n

🔆 themes 🌙

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LightDark
\"\"\"\"
\"\"\"\"
\n

Development

\n

Laravel Kit is made with Electron, Vue.js 2, Tailwind CSS and Vite.

\n
# For development,\n# Start development server with Vite\nyarn run dev:one\n# Start Electron\nyarn run dev:two\n\n# For production,\n# Build files with Vite\nyarn run prod\n# Make executable\nyarn run pack
\n

Documentation

\n

Go to Laravel Kit wiki.

\n
\n

Copyright © 2018-2021 by Tareque Md Hanif

\n
", "readmeOriginal": "

\n \n

\n

Laravel Kit

\n
\n A simple and elegant desktop application for managing your Laravel applications.
\n Available for Windows, Linux and macOS.\n
\n
\n
\n \n \n \"Latest\n \n \n \n \"build\"\n \n \n \n \n \n
\n
\n

\n \n Website\n \n | \n \n Features\n \n | \n \n Installation\n \n | \n \n Contribution\n \n | \n \n Documentation\n \n

\n
\n
\n \n Built with ❤︎ by Tareque Md Hanif\n \n
\n

Features

\n\n

Installation

\n

PHP must be installed in your system.

\n

Windows

\n

Download the setup file (.exe) and install it. Updates will be checked automatically.

\n

macOS

\n

The recommended way to install on macOS is by using brew.

\n
brew install laravel-kit\n
\n

Or, download zip or dmg formats from the Releases page. Note that the dmg release is not code signed. Installation instructions for dmg

\n

Ubuntu and other derivatives

\n

Run these commands from the terminal:

\n
wget https://github.com/tmdh/laravel-kit/releases/download/v2.0.6/laravel-kit_2.0.6_amd64.deb\nsudo apt install ./laravel-kit_2.0.6_amd64.deb\n
\n

Other Linux distributions

\n

Only AppImage format is available for other Linux distributions. Download it from the Releases page. Proper methods will be added very soon.

\n

Screenshots

\n

🔆 themes 🌙

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LightDark
\"\"\"\"
\"\"\"\"
\n

Development

\n

Laravel Kit is made with Electron, Vue.js 2, Tailwind CSS and Vite.

\n
# For development,\n# Start development server with Vite\nyarn run dev:one\n# Start Electron\nyarn run dev:two\n\n# For production,\n# Build files with Vite\nyarn run prod\n# Make executable\nyarn run pack
\n

Documentation

\n

Go to Laravel Kit wiki.

\n
\n

Copyright © 2018-2021 by Tareque Md Hanif

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.250Z" }, "knowte": { "readmeCleaned": "

\"Knowte\"

\n

Knowte

\n

Knowte is a note taking application that allows you to quickly and easily organize and find your notes. This version is written using Electron, Angular and Typescript. The original Knowte (for Windows), which is written in WPF and C#, remains available here.

\n

\"Release\"\n\"Issues\"\n\"Donate\"

\n

\"Buy

\n

\"Get

\n

Screenshot

\n

\"Knowte2screenshot\"

\n

Build prerequisites

\n\n

To install the prerequisites on Ubuntu:

\n

sudo apt install wine rpm libarchive-tools

\n

To install the prerequisites on Manjaro:

\n

sudo pacman -S wine rpm-tools

\n

Build instructions

\n
$ git clone https://github.com/digimezzo/knowte.git\n$ cd knowte\n$ npm install            # Download dependencies\n$ npm start              # Start Knowte\n$ npm run electron:windows   # Build for Windows\n$ npm run electron:linux     # Build for Linux\n$ npm run electron:mac       # Build for Mac
\n

Pacman installation notes

\n

The pacman package contains a dependency to package libappindicator-sharp, which is no longer distributed with Arch Linux. I cannot remove this dependency for now, because it is an issue in electron-builder (the packaging tool which is used in this project). It is, however, possible to install Knowte on Arch Linux or Manjaro using this command (replace x.y.z with the correct version number):

\n

$ sudo pacman -U Knowte-x.y.z.pacman --assume-installed libappindicator-sharp

\n
", "readmeOriginal": "

\"Knowte\"

\n

Knowte

\n

Knowte is a note taking application that allows you to quickly and easily organize and find your notes. This version is written using Electron, Angular and Typescript. The original Knowte (for Windows), which is written in WPF and C#, remains available here.

\n

\"Release\"\n\"Issues\"\n\"Donate\"

\n

\"Buy

\n

\"Get

\n

Screenshot

\n

\"Knowte2screenshot\"

\n

Build prerequisites

\n\n

To install the prerequisites on Ubuntu:

\n

sudo apt install wine rpm libarchive-tools

\n

To install the prerequisites on Manjaro:

\n

sudo pacman -S wine rpm-tools

\n

Build instructions

\n
$ git clone https://github.com/digimezzo/knowte.git\n$ cd knowte\n$ npm install            # Download dependencies\n$ npm start              # Start Knowte\n$ npm run electron:windows   # Build for Windows\n$ npm run electron:linux     # Build for Linux\n$ npm run electron:mac       # Build for Mac
\n

Pacman installation notes

\n

The pacman package contains a dependency to package libappindicator-sharp, which is no longer distributed with Arch Linux. I cannot remove this dependency for now, because it is an issue in electron-builder (the packaging tool which is used in this project). It is, however, possible to install Knowte on Arch Linux or Manjaro using this command (replace x.y.z with the correct version number):

\n

$ sudo pacman -U Knowte-x.y.z.pacman --assume-installed libappindicator-sharp

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.328Z" }, "last-hit": { "readmeCleaned": "

Last Hit

\n

\"Last

\n

\"codebeat\n\"Scrutinizer\"

\n\n

\"GitHub\n\"GitHub\n\"David\n\"David

\n

\"GitHub\n\"npm\n\"GitHub\n\"made-with-eletron\"

\n

\"GitHub\n\"GitHub\n\"Static\n\"GitHub\n\"GitHub\n\"GitHub

\n

Last Hit Replayer

\n

\"npm\n\"npm\"\n\"npm\"

\n

First UI automation testing tool design for all team members.

\n

\"Website\n\"Ask\n\"PRs

\n

last-hit-quick-start

\n

Last-hit is an automation testing solution aimed at development and operations teams.\nIt is focused on web test, gives you broad, deep and exact control over your web apps automation testing

\n

A quick guide to set up and start your first automation test with last-hit, a free test automation tool built on top of electron and puppeteer. You now can begin automation testing on web & mobile with the least amount of effort. Free download at site.

\n

Read full guideline here.

\n

Features:

\n\n

You can learn more about each of these features within the User Guide.

\n

To Use

\n

Install from the application

\n

Mac & Windows

\n

Download

\n

Linux

\n

Not supported yet. You can clone source code repo and package by yourself. We use Electron Builder.

\n

Install from source code

\n

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\ngit clone https://github.com/last-hit-aab/last-hit.git\n# Install dependencies\nnpm install\n# Go into the repository\ncd last-hit\n# Install dependencies\nnpm install\n# Go into the render folder\ncd render\n# Install dependencies\nnpm install\n# Back to the root directory of the repository\ncd ../\n# Run the app\nnpm run start
\n
\n

Note: If you want to use the Installation package,
\nPlease download Release Package,

\n
\n

Create your first Test Case

\n

Quick Start Guide

\n

Resources for Learning last-hit

\n\n

License

\n

Last-Hit is MIT licensed.

\n
", "readmeOriginal": "

Last Hit

\n

\"Last

\n

\"codebeat\n\"Scrutinizer\"

\n\n

\"GitHub\n\"GitHub\n\"David\n\"David

\n

\"GitHub\n\"npm\n\"GitHub\n\"made-with-eletron\"

\n

\"GitHub\n\"GitHub\n\"Static\n\"GitHub\n\"GitHub\n\"GitHub

\n

Last Hit Replayer

\n

\"npm\n\"npm\"\n\"npm\"

\n

First UI automation testing tool design for all team members.

\n

\"Website\n\"Ask\n\"PRs

\n

last-hit-quick-start

\n

Last-hit is an automation testing solution aimed at development and operations teams.\nIt is focused on web test, gives you broad, deep and exact control over your web apps automation testing

\n

A quick guide to set up and start your first automation test with last-hit, a free test automation tool built on top of electron and puppeteer. You now can begin automation testing on web & mobile with the least amount of effort. Free download at site.

\n

Read full guideline here.

\n

Features:

\n\n

You can learn more about each of these features within the User Guide.

\n

To Use

\n

Install from the application

\n

Mac & Windows

\n

Download

\n

Linux

\n

Not supported yet. You can clone source code repo and package by yourself. We use Electron Builder.

\n

Install from source code

\n

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\ngit clone https://github.com/last-hit-aab/last-hit.git\n# Install dependencies\nnpm install\n# Go into the repository\ncd last-hit\n# Install dependencies\nnpm install\n# Go into the render folder\ncd render\n# Install dependencies\nnpm install\n# Back to the root directory of the repository\ncd ../\n# Run the app\nnpm run start
\n
\n

Note: If you want to use the Installation package,
\nPlease download Release Package,

\n
\n

Create your first Test Case

\n

Quick Start Guide

\n

Resources for Learning last-hit

\n\n

License

\n

Last-Hit is MIT licensed.

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.420Z" }, "lazytype": { "readmeCleaned": "

\"Release\"\n\"Dependencies\"\n\"Downloads\"\n\"Last-Release\"\n\"Platforms\"

\n

Lazy Type

\n

A Software to create aliases for commands, applications to type in cmd, terminal. Just type the original command and type an alias for it. You can also assign a program for it. Browse through the directory to find the program or anything executable using the command line and you can create an alias for the same. Only Windows is supported for releases.

\n

\nDownload for Windows (x64) Download for Windows (x86)

\n

\"IMG

\n

Features

\n

Shortcut for Command/File

\n

Point a command either to an existing system command or to an executable file.

\n

Backup/Restore Utility

\n

Move all the commands to and fro a new/already configured system.

\n

Configuration Checkup Inbuilt

\n

Launch the utility from the app itself if there is a problem with the commands.

\n

Building/Testing

\n

You need g++ in your path to build/test the code. The code uses MINGW++ compiler. Also, electron must be installed globally in the system.

\n
npm install -g electron\ngit clone https://github.com/ngudbhav/lazyType.git\ncd lazyType\nnpm install\ng++ config.cpp -o ConfigUtility.exe resource.res\nnpm start
\n

Installing The App

\n
Full Windows install for 64-bit Windows.\nSetupx86.exe => Full Windows install for 32-bit Windows.\">
Setupx64.exe => Full Windows install for 64-bit Windows.\nSetupx86.exe => Full Windows install for 32-bit Windows.
\n

Contributing

\n

Big Kudos to Hitesh Peswani for his incredible UI contributions.

\n

We encourage you to contribute to Lazy Type!

\n

We expect contributors to abide by our underlying code of conduct.\nAll conversations and discussions on GitHub (issues, pull requests)\nmust be respectful and harassment-free.

\n

\"Buy

\n

License

\n

This project is licensed under the MIT License - see the LICENSE.md file for details.

\n
", "readmeOriginal": "

\"Release\"\n\"Dependencies\"\n\"Downloads\"\n\"Last-Release\"\n\"Platforms\"

\n

Lazy Type

\n

A Software to create aliases for commands, applications to type in cmd, terminal. Just type the original command and type an alias for it. You can also assign a program for it. Browse through the directory to find the program or anything executable using the command line and you can create an alias for the same. Only Windows is supported for releases.

\n

\nDownload for Windows (x64) Download for Windows (x86)

\n

\"IMG

\n

Features

\n

Shortcut for Command/File

\n

Point a command either to an existing system command or to an executable file.

\n

Backup/Restore Utility

\n

Move all the commands to and fro a new/already configured system.

\n

Configuration Checkup Inbuilt

\n

Launch the utility from the app itself if there is a problem with the commands.

\n

Building/Testing

\n

You need g++ in your path to build/test the code. The code uses MINGW++ compiler. Also, electron must be installed globally in the system.

\n
npm install -g electron\ngit clone https://github.com/ngudbhav/lazyType.git\ncd lazyType\nnpm install\ng++ config.cpp -o ConfigUtility.exe resource.res\nnpm start
\n

Installing The App

\n
Setupx64.exe => Full Windows install for 64-bit Windows.\nSetupx86.exe => Full Windows install for 32-bit Windows.
\n

Contributing

\n

Big Kudos to Hitesh Peswani for his incredible UI contributions.

\n

We encourage you to contribute to Lazy Type!

\n

We expect contributors to abide by our underlying code of conduct.\nAll conversations and discussions on GitHub (issues, pull requests)\nmust be respectful and harassment-free.

\n

\"Buy

\n

License

\n

This project is licensed under the MIT License - see the LICENSE.md file for details.

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.426Z" }, "lbry-desktop": { "readmeCleaned": "

\n

LBRY App

\n

This repo contains the UI code that powers the official LBRY desktop app. The LBRY app is a graphical browser for the decentralized content marketplace provided by the\nLBRY protocol. It is essentially the\nlbry daemon bundled with a UI using\nElectron.

\n \n \"npm\"\n \n \n \n \n \n \"Build\n \n \n \"GitHub\n \n

\n \n \"forthebadge\"\n \n \n \"forthebadge\"\n \n

\n

\"App

\n

Table of Contents

\n
    \n
  1. Install
  2. \n
  3. Usage
  4. \n
  5. Running from Source
  6. \n
  7. Contributing
  8. \n
  9. License
  10. \n
  11. Security
  12. \n
  13. Contact
  14. \n
\n

Install

\n

\"Windows\"\n\"Linux\"\n\"MacOS\"

\n

We provide installers for Windows, macOS (v10.12.4, Sierra, or greater), and Debian-based Linux. See community maintained builds section for alternative Linux installations.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
WindowsmacOSLinux
Latest Stable ReleaseDownloadDownloadDownload
Latest Pre-releaseDownloadDownloadDownload
\n

Our releases page also contains the latest\nrelease, pre-releases, and past builds.\nNote: If the deb fails to install using the Ubuntu Software Center, install manually via sudo dpkg -i <path to deb>. You'll need to run sudo apt-get install -f if this is the first time installing it to install dependencies

\n

To install from source or make changes to the application, continue to the next section below.

\n

Community maintained builds for Arch Linux and Flatpak are available, see below. These installs will need to be updated manually as the in-app update process only supports Debian installs at this time.\nNote: If coming from a deb install, the directory structure is different and you'll need to migrate data.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FlatpakArchNixpkgsARM/ARM64
Latest ReleaseFlatHub PageAUR PackageNixpkgsBuild Guide
Maintainers@kcSeb@kcSeb@Enderger@Madiator2011
\n

Usage

\n

Double click the installed application to interact with the LBRY network.

\n

Running from Source

\n

You can run the web version (lbry.tv), the electron app, or both at the same time.

\n

Prerequisites

\n\n
    \n
  1. Clone (or fork) this repository: git clone https://github.com/lbryio/lbry-desktop
  2. \n
  3. Change directory into the cloned repository: cd lbry-desktop
  4. \n
  5. If corepack is not enabled, run sudo corepack enable (the sudo is necessary for system-wide installation, if you use container, nvm etc... you might not be forced to use it)
  6. \n
  7. Install the dependencies: yarn
  8. \n
\n

Run the electron app

\n

yarn dev

\n\n

Resetting your Packages

\n

If the app isn't building, or yarn xxx commands aren't working you may need to just reset your node_modules. To do so you can run: rm -r node_modules && yarn or del /s /q node_modules && yarn on Windows.

\n

If you really think something might have gone wrong, you can force your repo to clear everything that doesn't match the repo with git reset --hard HEAD && git clean -fxd && git pull -r

\n

Contributing

\n

We ❤️ contributions from everyone and contributions to this project are encouraged, and compensated. We welcome bug reports, bug fixes and feedback is always appreciated. For more details, see CONTRIBUTING.md.

\n

\"contributions \"GitHub

\n

License

\n

This project is MIT licensed. For the full license, see LICENSE.

\n

Security

\n

We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is here if you need it. Previous versions up to v0.50.2 were signed by Sean Yesmunt.\nNew Releases are signed by Jessop Breth.

\n

Contact

\n

The primary contact for this project is @jessopb.

\n
", "readmeOriginal": "

\n

LBRY App

\n

This repo contains the UI code that powers the official LBRY desktop app. The LBRY app is a graphical browser for the decentralized content marketplace provided by the\nLBRY protocol. It is essentially the\nlbry daemon bundled with a UI using\nElectron.

\n \n \"npm\"\n \n \n \n \n \n \"Build\n \n \n \"GitHub\n \n

\n \n \"forthebadge\"\n \n \n \"forthebadge\"\n \n

\n

\"App

\n

Table of Contents

\n
    \n
  1. Install
  2. \n
  3. Usage
  4. \n
  5. Running from Source
  6. \n
  7. Contributing
  8. \n
  9. License
  10. \n
  11. Security
  12. \n
  13. Contact
  14. \n
\n

Install

\n

\"Windows\"\n\"Linux\"\n\"MacOS\"

\n

We provide installers for Windows, macOS (v10.12.4, Sierra, or greater), and Debian-based Linux. See community maintained builds section for alternative Linux installations.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
WindowsmacOSLinux
Latest Stable ReleaseDownloadDownloadDownload
Latest Pre-releaseDownloadDownloadDownload
\n

Our releases page also contains the latest\nrelease, pre-releases, and past builds.\nNote: If the deb fails to install using the Ubuntu Software Center, install manually via sudo dpkg -i <path to deb>. You'll need to run sudo apt-get install -f if this is the first time installing it to install dependencies

\n

To install from source or make changes to the application, continue to the next section below.

\n

Community maintained builds for Arch Linux and Flatpak are available, see below. These installs will need to be updated manually as the in-app update process only supports Debian installs at this time.\nNote: If coming from a deb install, the directory structure is different and you'll need to migrate data.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FlatpakArchNixpkgsARM/ARM64
Latest ReleaseFlatHub PageAUR PackageNixpkgsBuild Guide
Maintainers@kcSeb@kcSeb@Enderger@Madiator2011
\n

Usage

\n

Double click the installed application to interact with the LBRY network.

\n

Running from Source

\n

You can run the web version (lbry.tv), the electron app, or both at the same time.

\n

Prerequisites

\n\n
    \n
  1. Clone (or fork) this repository: git clone https://github.com/lbryio/lbry-desktop
  2. \n
  3. Change directory into the cloned repository: cd lbry-desktop
  4. \n
  5. If corepack is not enabled, run sudo corepack enable (the sudo is necessary for system-wide installation, if you use container, nvm etc... you might not be forced to use it)
  6. \n
  7. Install the dependencies: yarn
  8. \n
\n

Run the electron app

\n

yarn dev

\n\n

Resetting your Packages

\n

If the app isn't building, or yarn xxx commands aren't working you may need to just reset your node_modules. To do so you can run: rm -r node_modules && yarn or del /s /q node_modules && yarn on Windows.

\n

If you really think something might have gone wrong, you can force your repo to clear everything that doesn't match the repo with git reset --hard HEAD && git clean -fxd && git pull -r

\n

Contributing

\n

We ❤️ contributions from everyone and contributions to this project are encouraged, and compensated. We welcome bug reports, bug fixes and feedback is always appreciated. For more details, see CONTRIBUTING.md.

\n

\"contributions \"GitHub

\n

License

\n

This project is MIT licensed. For the full license, see LICENSE.

\n

Security

\n

We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is here if you need it. Previous versions up to v0.50.2 were signed by Sean Yesmunt.\nNew Releases are signed by Jessop Breth.

\n

Contact

\n

The primary contact for this project is @jessopb.

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.476Z" }, "lectrote": { "readmeCleaned": "

Lectrote

\n

\"Lectrote

\n

The IF interpreter in an Electron shell

\n\n

Lectrote packages up IF interpreters with the Chromium browser as a Mac/Win/Linux app.

\n

When launched, it prompts you to select a game file to play. You can play several games at the same time in separate windows. Your position is always autosaved; when you launch a game, your last play session will automatically be resumed.

\n

Lectrote currently supports:

\n\n

You can also use this package to construct a \"bound game\" -- an app which plays a single built-in game. This is a package containing Chromium, the interpreter, your game file, and perhaps some additional configuration. You can distribute this as a standalone game application; it's bulky but it lets people play your game.

\n

Linux note: Depending on your Linux configuration and how you install this package, you may have to add the --no-sandbox option when launching Lectrote.

\n

Glulx (Inform 7) support

\n

Because this relies on the Quixe interpreter, sound is not supported. It's also not as fast as a native interpreter.

\n

Z-code support

\n

Lectrote uses the ZVM interpreter for Z-machine support. (V3/4/5 and V8 only.)

\n

Hugo support

\n

The Hugo engine does not currently support autosave.

\n

TADS support

\n

The TADS 2/3 engine does not currently support autosave.

\n

Ink support

\n

This relies on the inkjs interpreter. It is a deliberately non-fancy presentation -- no attempt to slow-print the output or hide the choice list.

\n

License information

\n\n

For developers

\n

If you've just downloaded the source code for this puppy, it's easy to make a runnable version.

\n

First, you need to have the Node development tools installed. Everything relies on the npm command-line tool. See Installing Node.js via package manager.

\n

To fetch all the necessary Node packages and place them in a node_modules directory:

\n
npm install\n
\n

This command also fetches the Quixe submodule (which will live in the quixe directory). You must have git installed for this to work.

\n

Now just type

\n
npm start\n
\n

...to launch the app.

\n

When run this way, the app will show up named as \"Electron\", not \"Lectrote\".

\n

Packaging Lectrote

\n

The makedist.py script builds the zip files which you see on the release page. (Yes, it is silly to use a Python packaging script in a Node.js package. Maybe I'll rewrite it into Javascript. Later.)

\n
python3 makedist.py\n
\n

This creates build directories and then zip files in a dist directory. Add -b to only generate the build dirs; -z to transform existing build dirs into zip files.

\n

You can add arguments to narrow down the platforms you are building, e.g.:

\n
python3 makedist.py darwin\npython3 makedist.py win32\npython3 makedist.py linux\npython3 makedist.py win32-x64\n
\n

To build a universal (Intel/ARM) Mac binary, you must first build the Intel and ARM binaries. This command will build all three:

\n
python3 makedist.py darwin\n
\n

If you want to code-sign the Mac version, use the --macsign argument:

\n
python3 makedist.py darwin --macsign 'Developer ID Application: ...'\n
\n

You must be a registered Apple developer to do this. The argument must be the name of the \"Developer Id Application\" certificate in your keychain. Run the Keychain Access app to see this. If you don't have one, the easiest way to set it up is to run Xcode, open the Preferences, select Accounts, and hit Manage Certificates.

\n

Building a signed universal Mac version is unfortunately a pain in the butt. You must (a) build the darwin-x64 and darwin-arm64 versions unsigned; (b) build darwin-univ with the --macsign argument; (c) build the first two again with the --macsign argument. I may streamline this in the future.

\n

Packaging a bound game

\n

You will need to create a separate directory for your game's files. Copy package.json to the directory, adding or modifying these lines:

\n\n

(Do not change lectroteVersion; that should always show the Lectrote release that you built your bound app from.)

\n

To create a Mac DMG archive, you will also need a resources/pack-dmg-spec.json file. See samplegame/resources/pack-dmg-spec.json. You should update the \"title\", the \"dist/Adventure-$PLATFORM$\" paths under \"contents\", and (if you want) the \"background\" image which is used for the folder window.

\n

You may also copy any of Lectrote's content files to your game directory and customize them. You will probably want to customize about.html, for example.

\n

The samplegame directory in the Lectrote source demonstrates the layout. It will be simplest to clone that and alter it.

\n

Once your files are ready, do:

\n
python3 makedist.py --game GAMEDIR\n
\n

This will build and package apps for all platforms. (You can test this out of the box by using samplegame for the GAMEDIR.) As noted above, you can cut down the stages or targets with the -b, -z options or by naming platforms.

\n

You cannot launch a bound game by typing npm start. You have to package it, at least to the -b stage, and run it from the dist directory.

\n

Customizing your bound app

\n

As noted, you can copy play.html, el-glkote.css, or other Lectrote files into your gamedir and customize them. When packaging with the --game option, files found in the gamedir will replace normal Lectrote files.

\n

If you add new files (not replacing Lectrote files), be sure to list them in the lectroteExtraFiles array.

\n

You can extend the functionality of the app -- for example, adding or removing menu items. Add a Javascript file to your gamedir, and name it in your package.json file:

\n
\"lectroteMainExtension\": \"GAMEDIR/FILE.js\",\n
\n

(And add it to lectroteExtraFiles as well.)

\n

This file can define new functionality by exporting any of the following Javascript functions. For example, you could say:

\n
exports.launch = function() { ... }\n
\n\n

The main Lectrote module exports several functions you can use in your extension code. I have not yet documented them; see the main.js file.

\n

Style customizations for dark/light mode

\n

As of release 1.3.6 (August 2020), Lectrote supports OS dark theme. You should do the same for any windows you have added or customized.

\n

Look at about.html to see how this works. The evhan_darklight() function alters the document style; the onready() function now sets up a callback for this function. The <body> tag now has <body id=\"body\"> to support this, and several .DarkMode stanzas have been added to the CSS. You should copy these changes in your own about.html.

\n

When opening a window, use a backgroundColor line to set the loading color, minimizing flash:

\n
backgroundColor: (electron.nativeTheme.shouldUseDarkColors ? '#000' : '#FFF'),\n
\n

Then, in the dom-ready event, send a message to convey the OS theme:

\n
win.webContents.send('set-darklight-mode', electron.nativeTheme.shouldUseDarkColors);\n
\n

Also add a set_darklight_mode() routine to your extension code (see above). This routine should send the same message to all open windows.

\n

In the window, set up a handler for this message and adjust your body styles appropriately:

\n
require('electron').ipcRenderer.on('set-darklight-mode', function(ev, arg) {\n\t// arg is false for light mode, true for dark mode.\n});\n
\n

See about.html and if-card.html for examples of dark/light style handling.

\n

Be sure to test that your windows open with the appropriate theme (matching the OS theme), and also that they change dynamically when the OS theme changes.

\n
", "readmeOriginal": "

Lectrote

\n

\"Lectrote

\n

The IF interpreter in an Electron shell

\n\n

Lectrote packages up IF interpreters with the Chromium browser as a Mac/Win/Linux app.

\n

When launched, it prompts you to select a game file to play. You can play several games at the same time in separate windows. Your position is always autosaved; when you launch a game, your last play session will automatically be resumed.

\n

Lectrote currently supports:

\n\n

You can also use this package to construct a \"bound game\" -- an app which plays a single built-in game. This is a package containing Chromium, the interpreter, your game file, and perhaps some additional configuration. You can distribute this as a standalone game application; it's bulky but it lets people play your game.

\n

Linux note: Depending on your Linux configuration and how you install this package, you may have to add the --no-sandbox option when launching Lectrote.

\n

Glulx (Inform 7) support

\n

Because this relies on the Quixe interpreter, sound is not supported. It's also not as fast as a native interpreter.

\n

Z-code support

\n

Lectrote uses the ZVM interpreter for Z-machine support. (V3/4/5 and V8 only.)

\n

Hugo support

\n

The Hugo engine does not currently support autosave.

\n

TADS support

\n

The TADS 2/3 engine does not currently support autosave.

\n

Ink support

\n

This relies on the inkjs interpreter. It is a deliberately non-fancy presentation -- no attempt to slow-print the output or hide the choice list.

\n

License information

\n\n

For developers

\n

If you've just downloaded the source code for this puppy, it's easy to make a runnable version.

\n

First, you need to have the Node development tools installed. Everything relies on the npm command-line tool. See Installing Node.js via package manager.

\n

To fetch all the necessary Node packages and place them in a node_modules directory:

\n
npm install\n
\n

This command also fetches the Quixe submodule (which will live in the quixe directory). You must have git installed for this to work.

\n

Now just type

\n
npm start\n
\n

...to launch the app.

\n

When run this way, the app will show up named as \"Electron\", not \"Lectrote\".

\n

Packaging Lectrote

\n

The makedist.py script builds the zip files which you see on the release page. (Yes, it is silly to use a Python packaging script in a Node.js package. Maybe I'll rewrite it into Javascript. Later.)

\n
python3 makedist.py\n
\n

This creates build directories and then zip files in a dist directory. Add -b to only generate the build dirs; -z to transform existing build dirs into zip files.

\n

You can add arguments to narrow down the platforms you are building, e.g.:

\n
python3 makedist.py darwin\npython3 makedist.py win32\npython3 makedist.py linux\npython3 makedist.py win32-x64\n
\n

To build a universal (Intel/ARM) Mac binary, you must first build the Intel and ARM binaries. This command will build all three:

\n
python3 makedist.py darwin\n
\n

If you want to code-sign the Mac version, use the --macsign argument:

\n
python3 makedist.py darwin --macsign 'Developer ID Application: ...'\n
\n

You must be a registered Apple developer to do this. The argument must be the name of the \"Developer Id Application\" certificate in your keychain. Run the Keychain Access app to see this. If you don't have one, the easiest way to set it up is to run Xcode, open the Preferences, select Accounts, and hit Manage Certificates.

\n

Building a signed universal Mac version is unfortunately a pain in the butt. You must (a) build the darwin-x64 and darwin-arm64 versions unsigned; (b) build darwin-univ with the --macsign argument; (c) build the first two again with the --macsign argument. I may streamline this in the future.

\n

Packaging a bound game

\n

You will need to create a separate directory for your game's files. Copy package.json to the directory, adding or modifying these lines:

\n\n

(Do not change lectroteVersion; that should always show the Lectrote release that you built your bound app from.)

\n

To create a Mac DMG archive, you will also need a resources/pack-dmg-spec.json file. See samplegame/resources/pack-dmg-spec.json. You should update the \"title\", the \"dist/Adventure-$PLATFORM$\" paths under \"contents\", and (if you want) the \"background\" image which is used for the folder window.

\n

You may also copy any of Lectrote's content files to your game directory and customize them. You will probably want to customize about.html, for example.

\n

The samplegame directory in the Lectrote source demonstrates the layout. It will be simplest to clone that and alter it.

\n

Once your files are ready, do:

\n
python3 makedist.py --game GAMEDIR\n
\n

This will build and package apps for all platforms. (You can test this out of the box by using samplegame for the GAMEDIR.) As noted above, you can cut down the stages or targets with the -b, -z options or by naming platforms.

\n

You cannot launch a bound game by typing npm start. You have to package it, at least to the -b stage, and run it from the dist directory.

\n

Customizing your bound app

\n

As noted, you can copy play.html, el-glkote.css, or other Lectrote files into your gamedir and customize them. When packaging with the --game option, files found in the gamedir will replace normal Lectrote files.

\n

If you add new files (not replacing Lectrote files), be sure to list them in the lectroteExtraFiles array.

\n

You can extend the functionality of the app -- for example, adding or removing menu items. Add a Javascript file to your gamedir, and name it in your package.json file:

\n
\"lectroteMainExtension\": \"GAMEDIR/FILE.js\",\n
\n

(And add it to lectroteExtraFiles as well.)

\n

This file can define new functionality by exporting any of the following Javascript functions. For example, you could say:

\n
exports.launch = function() { ... }\n
\n\n

The main Lectrote module exports several functions you can use in your extension code. I have not yet documented them; see the main.js file.

\n

Style customizations for dark/light mode

\n

As of release 1.3.6 (August 2020), Lectrote supports OS dark theme. You should do the same for any windows you have added or customized.

\n

Look at about.html to see how this works. The evhan_darklight() function alters the document style; the onready() function now sets up a callback for this function. The <body> tag now has <body id=\"body\"> to support this, and several .DarkMode stanzas have been added to the CSS. You should copy these changes in your own about.html.

\n

When opening a window, use a backgroundColor line to set the loading color, minimizing flash:

\n
backgroundColor: (electron.nativeTheme.shouldUseDarkColors ? '#000' : '#FFF'),\n
\n

Then, in the dom-ready event, send a message to convey the OS theme:

\n
win.webContents.send('set-darklight-mode', electron.nativeTheme.shouldUseDarkColors);\n
\n

Also add a set_darklight_mode() routine to your extension code (see above). This routine should send the same message to all open windows.

\n

In the window, set up a handler for this message and adjust your body styles appropriately:

\n
require('electron').ipcRenderer.on('set-darklight-mode', function(ev, arg) {\n\t// arg is false for light mode, true for dark mode.\n});\n
\n

See about.html and if-card.html for examples of dark/light style handling.

\n

Be sure to test that your windows open with the appropriate theme (matching the OS theme), and also that they change dynamically when the OS theme changes.

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.603Z" }, "lepton": { "readmeCleaned": "
\n

To Lepton users around the world in more than 130 countries: We hope you all stay safe, healthy, and strong as we get through the COVID-19 pandemic. Lepton will continue to be free, as always. If you find this app helpful, we encourage you to make a donation to a local or global charity of your choice to help fight against the pandemic. Together, we can make the world a better place. ❤️

\n
\n\n

\"All

\n\n

\"\"

\n

\"Build\n\"Dependency\n\"MIT\n\"lepton\"

\n

Lepton is a lean code snippet manager powered by GitHub Gist. Check out the latest release.

\n

Features

\n\n

\"Screenshot\"

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Light ThemeDark Theme
\"Screenshot\"\"Screenshot\"
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OrganizeMarkdownJupyter Notebook
\"Screenshot\"\"Screenshot\"\"Screenshot\"
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Search (⇧ + Space)Immersive Mode (⌘/Ctrl + i)Dashboard (⌘/Ctrl + d)
\"Screenshot\"\"Screenshot\"\"Screenshot\"
\n

Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FunctionShortcutNote
New SnippetCmd/Ctrl + NCreate a snippet
Edit SnippetCmd/Ctrl + EEdit a snippet
Delete SnippetCmd/Ctrl + DelDelete selected snippet
SubmitCmd/Ctrl + SSubmit the changes from the editor
CancelCmd/Ctrl + ESCExit the editor without saving
SyncCmd/Ctrl + RSync with remote Gist server
Immersive ModeCmd/Ctrl + IToggle the Immersive mode
DashboardCmd/Ctrl + DToggle the dashboard
About PageCmd/Ctrl + ,Toggle the About page
SearchShift + SpaceToggle the search bar
\n

Customization

\n

Lepton's can be customized by <home_dir>/.leptonrc! You can find its exact path in the About page by Command/Ctrl + ,. Create the file if it does not exist.

\n\n

Check out the configuration docs to explore different customization options.

\n

Tech Stack

\n

\"Based

\n
    \n
  1. Framework: Electron
  2. \n
  3. Bundler: Webpack, Babel, electron-builder
  4. \n
  5. Language: ES6, Sass
  6. \n
  7. Library: React, Redux, Redux Thunk, Redux Form
  8. \n
  9. Lint: ESLint
  10. \n
\n

Installation

\n\n
brew install --cask lepton
\n\n
snap install lepton
\n

\"Based

\n

Development

\n

Install dependencies

\n
$ git clone https://github.com/hackjutsu/Lepton.git\n$ cd Lepton && yarn install
\n

Client ID/Secret

\n

Register your application, and put your client id and client secret in ./configs/account.js.

\n
,\n client_secret: \n}\">
module.exports = {\n  client_id: <your_client_id>,\n  client_secret: <your_client_secret>\n}
\n

Run

\n
$ yarn build && yarn start
\n

Build Installer App

\n
\n

Read electron-builder docs and check out the code signing wiki before building the installer app.

\n
\n

Build apps for macOS.

\n
$ yarn dist -m
\n

Build apps for Windows.

\n
$ yarn dist -w
\n

Build apps for Linux.

\n
\n

Need a running Docker daemon to build a snap package.

\n
\n
$ yarn dist -l
\n

Build apps for macOS, Windows and Linux.

\n
$ yarn dist -wml
\n

Build apps for the current OS with the current arch.

\n
$ yarn dist
\n

FAQ

\n

--> Wiki FAQ

\n

Contributors

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
CosmoX

💻 🎨 ⚠️ 🚧 📦 🤔
\"\"
Jiaye Wu

💻 🚧 🤔
\"\"
Danila

💻 🎨 🚧
\"\"
Meilin Zhan

💻 🤔 🚧
\"\"
lcgforever

💻
\"\"
Yuer Lee

📖 📦
\"\"
Su,Yen-Yun

📖
\"\"
Chen Tong

💻 🤔 🚧
\"\"
Jason Jiang

💻
\"\"
Alan Pope

📦
\"\"
Tony Xu

📦
\"\"
Tegan Churchill

💻
\"\"
Angie Wang

🎨
\"\"
Batuhan Bayrakci

💻
\"\"
Samuel Meuli

💻
\"\"
Alexandre Amado de Castro

💻
\"\"
Abner Soares Alves Junior

💻
\"\"
Sean

💻
\"\"
Ole

💻
\"\"
Gabriel Nicolas Avellaneda

💻 📖
\"\"
Dennis Ideler

💻 🤔 📖
\"\"
Anthony Attard

💻
\"\"
ArLE

💻
\"\"
Pol Maresma

💻
\"\"
PM Extra

💻
\"\"
Zava

💻
\"\"
Jason R Alexander

💻
\"\"
Sebastian Hojas

📖
\"\"
董雨航

💻
\"\"
sxyazi

📦
\n\n\n\n

License

\n

MIT © hackjutsu

\n
", "readmeOriginal": "
\n

To Lepton users around the world in more than 130 countries: We hope you all stay safe, healthy, and strong as we get through the COVID-19 pandemic. Lepton will continue to be free, as always. If you find this app helpful, we encourage you to make a donation to a local or global charity of your choice to help fight against the pandemic. Together, we can make the world a better place. ❤️

\n
\n\n

\"All

\n\n

\"\"

\n

\"Build\n\"Dependency\n\"MIT\n\"lepton\"

\n

Lepton is a lean code snippet manager powered by GitHub Gist. Check out the latest release.

\n

Features

\n\n

\"Screenshot\"

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Light ThemeDark Theme
\"Screenshot\"\"Screenshot\"
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OrganizeMarkdownJupyter Notebook
\"Screenshot\"\"Screenshot\"\"Screenshot\"
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Search (⇧ + Space)Immersive Mode (⌘/Ctrl + i)Dashboard (⌘/Ctrl + d)
\"Screenshot\"\"Screenshot\"\"Screenshot\"
\n

Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FunctionShortcutNote
New SnippetCmd/Ctrl + NCreate a snippet
Edit SnippetCmd/Ctrl + EEdit a snippet
Delete SnippetCmd/Ctrl + DelDelete selected snippet
SubmitCmd/Ctrl + SSubmit the changes from the editor
CancelCmd/Ctrl + ESCExit the editor without saving
SyncCmd/Ctrl + RSync with remote Gist server
Immersive ModeCmd/Ctrl + IToggle the Immersive mode
DashboardCmd/Ctrl + DToggle the dashboard
About PageCmd/Ctrl + ,Toggle the About page
SearchShift + SpaceToggle the search bar
\n

Customization

\n

Lepton's can be customized by <home_dir>/.leptonrc! You can find its exact path in the About page by Command/Ctrl + ,. Create the file if it does not exist.

\n\n

Check out the configuration docs to explore different customization options.

\n

Tech Stack

\n

\"Based

\n
    \n
  1. Framework: Electron
  2. \n
  3. Bundler: Webpack, Babel, electron-builder
  4. \n
  5. Language: ES6, Sass
  6. \n
  7. Library: React, Redux, Redux Thunk, Redux Form
  8. \n
  9. Lint: ESLint
  10. \n
\n

Installation

\n\n
brew install --cask lepton
\n\n
snap install lepton
\n

\"Based

\n

Development

\n

Install dependencies

\n
$ git clone https://github.com/hackjutsu/Lepton.git\n$ cd Lepton && yarn install
\n

Client ID/Secret

\n

Register your application, and put your client id and client secret in ./configs/account.js.

\n
module.exports = {\n  client_id: <your_client_id>,\n  client_secret: <your_client_secret>\n}
\n

Run

\n
$ yarn build && yarn start
\n

Build Installer App

\n
\n

Read electron-builder docs and check out the code signing wiki before building the installer app.

\n
\n

Build apps for macOS.

\n
$ yarn dist -m
\n

Build apps for Windows.

\n
$ yarn dist -w
\n

Build apps for Linux.

\n
\n

Need a running Docker daemon to build a snap package.

\n
\n
$ yarn dist -l
\n

Build apps for macOS, Windows and Linux.

\n
$ yarn dist -wml
\n

Build apps for the current OS with the current arch.

\n
$ yarn dist
\n

FAQ

\n

--> Wiki FAQ

\n

Contributors

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
CosmoX

💻 🎨 ⚠️ 🚧 📦 🤔
\"\"
Jiaye Wu

💻 🚧 🤔
\"\"
Danila

💻 🎨 🚧
\"\"
Meilin Zhan

💻 🤔 🚧
\"\"
lcgforever

💻
\"\"
Yuer Lee

📖 📦
\"\"
Su,Yen-Yun

📖
\"\"
Chen Tong

💻 🤔 🚧
\"\"
Jason Jiang

💻
\"\"
Alan Pope

📦
\"\"
Tony Xu

📦
\"\"
Tegan Churchill

💻
\"\"
Angie Wang

🎨
\"\"
Batuhan Bayrakci

💻
\"\"
Samuel Meuli

💻
\"\"
Alexandre Amado de Castro

💻
\"\"
Abner Soares Alves Junior

💻
\"\"
Sean

💻
\"\"
Ole

💻
\"\"
Gabriel Nicolas Avellaneda

💻 📖
\"\"
Dennis Ideler

💻 🤔 📖
\"\"
Anthony Attard

💻
\"\"
ArLE

💻
\"\"
Pol Maresma

💻
\"\"
PM Extra

💻
\"\"
Zava

💻
\"\"
Jason R Alexander

💻
\"\"
Sebastian Hojas

📖
\"\"
董雨航

💻
\"\"
sxyazi

📦
\n\n\n\n

License

\n

MIT © hackjutsu

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.703Z" }, "leafview": { "readmeCleaned": "

\"leaves\" LeafView

\n

\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub

\n

A minimalist image viewer based on Leaflet.js and Electron.

\n

\n

Image by Myriams-Fotos from Pixabay.

\n

👍 Features

\n\n

📥 Download

\n

You can download the latest version of LeafView from the releases page here:\nhttps://github.com/sprout2000/leafview/releases

\n

for Windows users

\n

see BUILD.md.

\n

📗 Usage

\n

⌨️ Keyboard Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyFunction
J or CmdOrCtrl+Next Image
K or CmdOrCtrl+Previous Image
+Zoom In
-Zoom Out
0Reset Zoom
Pan
\n

🖱️ Mouse Operations

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MouseFunction
DragPan
WheelZoom in/out
Double clickReset zoom
Right clickShow the context menu when available
\n

🌐 Supported Languages

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LanguageCode
English 🇺🇸 🇬🇧 🌎en
日本語 🇯🇵ja
繁体中文 🇹🇼zh_TW
Čeština 🇨🇿cs
Deutsch 🇩🇪 🇦🇹 🇨🇭de
Español 🇪🇸 🇲🇽 🇦🇷 🇺🇸es
Polski 🇵🇱pl
Русский 🇷🇺ru
Português 🇵🇹 🇧🇷pt
简体中文 🇨🇳zh_CN
اللغة العربيةar
Magyar nyelv 🇭🇺hu
\n

📜 Contributing

\n

You can easily contribute to this repository by providing translation files.

\n
    \n
  1. Create {your_LANG}.json in src/locales.
  2. \n
\n
  src\n  ├── @types\n  ├── createMenu.ts\n  ├── locales\n+ │   ├── cs.json\n  │   ├── en.json\n  │   └── ja.json\n  ├── main.ts\n  ├── preload.ts\n  ├── setLocales.ts\n  └── web
\n

src/locales/cs.json:

\n
{\n  \"File\": \"Soubor\",\n  \"Open...\": \"Otevřít...\",\n  \"Select an image\": \"Vybrat obrázek\",\n  \"Image files\": \"Soubory obrázku\",\n  \"Move to Trash\": \"Přesunout do koše\",\n  \"View\": \"Zobrazit\",\n  \"Next Image\": \"Následující obrázek\",\n  \"Prev Image\": \"Předchozí obrázek\",\n  \"Toggle Fullscreen\": \"Celá obrazovka\",\n  \"Toggle Developer Tools\": \"Zobrazit nástroje pro vývojáře\",\n  \"Toggle Menubar\": \"Přepnout lištu nabídek\",\n  \"Toggle Dark Mode\": \"Přepínání tmavého režimu\",\n  \"Window\": \"Okno\",\n  \"Minimize\": \"Minimalizovat\",\n  \"Maximize\": \"Maximalizovat\",\n  \"Zoom\": \"Přiblížit\",\n  \"Bring All to Front\": \"Přenést vše do popředí\",\n  \"Close\": \"Storno\",\n  \"Help\": \"Nápověda\",\n  \"About\": \"O aplikaci LeafView\",\n  \"About LeafView\": \"O aplikaci LeafView\",\n  \"Support URL...\": \"URL podpory...\",\n  \"Hide LeafView\": \"Skrýt LeafView\",\n  \"Hide Others\": \"Skrýt ostatní\",\n  \"Show All\": \"Zobrazit vše\",\n  \"Quit\": \"Ukončit LeafView\",\n  \"Quit LeafView\": \"Ukončit LeafView\"\n}
\n
    \n
  1. Import the locale into src/setLocales.ts as follows:
  2. \n
\n
{\n i18next.init({\n lng: locale,\n fallbackLng: 'en',\n resources: {\n en: { translation: en },\n ja: { translation: ja },\n+ cs: { translation: cs },\n },\n });\n };\">
  import en from './locales/en.json';\n  import ja from './locales/ja.json';\n+ import cs from './locales/cs.json';\n\n  export const setLocales = (locale: string): void => {\n    i18next.init({\n      lng: locale,\n      fallbackLng: 'en',\n      resources: {\n        en: { translation: en },\n        ja: { translation: ja },\n+       cs: { translation: cs },\n      },\n    });\n  };
\n
    \n
  1. And then please send a pull request to this repository.
  2. \n
\n

🎉 Contributors

\n

Special Thanks to:

\n\n

©️ License

\n

Copyright (c) 2020 sprout2000 and other contributors

\n
", "readmeOriginal": "

\"leaves\" LeafView

\n

\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub

\n

A minimalist image viewer based on Leaflet.js and Electron.

\n

\n

Image by Myriams-Fotos from Pixabay.

\n

👍 Features

\n\n

📥 Download

\n

You can download the latest version of LeafView from the releases page here:\nhttps://github.com/sprout2000/leafview/releases

\n

for Windows users

\n

see BUILD.md.

\n

📗 Usage

\n

⌨️ Keyboard Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyFunction
J or CmdOrCtrl+Next Image
K or CmdOrCtrl+Previous Image
+Zoom In
-Zoom Out
0Reset Zoom
Pan
\n

🖱️ Mouse Operations

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MouseFunction
DragPan
WheelZoom in/out
Double clickReset zoom
Right clickShow the context menu when available
\n

🌐 Supported Languages

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LanguageCode
English 🇺🇸 🇬🇧 🌎en
日本語 🇯🇵ja
繁体中文 🇹🇼zh_TW
Čeština 🇨🇿cs
Deutsch 🇩🇪 🇦🇹 🇨🇭de
Español 🇪🇸 🇲🇽 🇦🇷 🇺🇸es
Polski 🇵🇱pl
Русский 🇷🇺ru
Português 🇵🇹 🇧🇷pt
简体中文 🇨🇳zh_CN
اللغة العربيةar
Magyar nyelv 🇭🇺hu
\n

📜 Contributing

\n

You can easily contribute to this repository by providing translation files.

\n
    \n
  1. Create {your_LANG}.json in src/locales.
  2. \n
\n
  src\n  ├── @types\n  ├── createMenu.ts\n  ├── locales\n+ │   ├── cs.json\n  │   ├── en.json\n  │   └── ja.json\n  ├── main.ts\n  ├── preload.ts\n  ├── setLocales.ts\n  └── web
\n

src/locales/cs.json:

\n
{\n  \"File\": \"Soubor\",\n  \"Open...\": \"Otevřít...\",\n  \"Select an image\": \"Vybrat obrázek\",\n  \"Image files\": \"Soubory obrázku\",\n  \"Move to Trash\": \"Přesunout do koše\",\n  \"View\": \"Zobrazit\",\n  \"Next Image\": \"Následující obrázek\",\n  \"Prev Image\": \"Předchozí obrázek\",\n  \"Toggle Fullscreen\": \"Celá obrazovka\",\n  \"Toggle Developer Tools\": \"Zobrazit nástroje pro vývojáře\",\n  \"Toggle Menubar\": \"Přepnout lištu nabídek\",\n  \"Toggle Dark Mode\": \"Přepínání tmavého režimu\",\n  \"Window\": \"Okno\",\n  \"Minimize\": \"Minimalizovat\",\n  \"Maximize\": \"Maximalizovat\",\n  \"Zoom\": \"Přiblížit\",\n  \"Bring All to Front\": \"Přenést vše do popředí\",\n  \"Close\": \"Storno\",\n  \"Help\": \"Nápověda\",\n  \"About\": \"O aplikaci LeafView\",\n  \"About LeafView\": \"O aplikaci LeafView\",\n  \"Support URL...\": \"URL podpory...\",\n  \"Hide LeafView\": \"Skrýt LeafView\",\n  \"Hide Others\": \"Skrýt ostatní\",\n  \"Show All\": \"Zobrazit vše\",\n  \"Quit\": \"Ukončit LeafView\",\n  \"Quit LeafView\": \"Ukončit LeafView\"\n}
\n
    \n
  1. Import the locale into src/setLocales.ts as follows:
  2. \n
\n
  import en from './locales/en.json';\n  import ja from './locales/ja.json';\n+ import cs from './locales/cs.json';\n\n  export const setLocales = (locale: string): void => {\n    i18next.init({\n      lng: locale,\n      fallbackLng: 'en',\n      resources: {\n        en: { translation: en },\n        ja: { translation: ja },\n+       cs: { translation: cs },\n      },\n    });\n  };
\n
    \n
  1. And then please send a pull request to this repository.
  2. \n
\n

🎉 Contributors

\n

Special Thanks to:

\n\n

©️ License

\n

Copyright (c) 2020 sprout2000 and other contributors

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.729Z" }, "lightgallery": { "readmeCleaned": "

lightGallery

\n

A modern, electron and nodejs based image viewer for Mac, Windows and Linux.\n\"lightgallery\"

\n

Main features

\n\n
Watch this repository. More features are coming
\n

Settings

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDefaultDescription
mode'lg-slide'Type of transition between images. lightGallery comes with lots of transition effects such as 'lg-slide', 'lg-fade', 'lg-zoom-in', 'lg-zoom-in-big', 'lg-zoom-out', 'lg-zoom-out-big', 'lg-zoom-out-in', 'lg-zoom-in-out', 'lg-soft-zoom', 'lg-scale-up', 'lg-slide-circular', 'lg-slide-circular-vertical', 'lg-slide-vertical', 'lg-slide-vertical-growth', 'lg-slide-skew-only', 'lg-slide-skew-only-rev', 'lg-slide-skew-only-y', 'lg-slide-skew-only-y-rev', 'lg-slide-skew', 'lg-slide-skew-rev', 'lg-slide-skew-cross', 'lg-slide-skew-cross-rev', 'lg-slide-skew-ver', 'lg-slide-skew-ver-rev', 'lg-slide-skew-ver-cross', 'lg-slide-skew-ver-cross-rev', 'lg-lollipop', 'lg-lollipop-rev', 'lg-rotate', 'lg-rotate-rev', 'lg-tube'
cssEasing'ease'Type of easing to be used for animations
speed600Transition duration (in ms).
hideBarsDelay6000Delay for hiding gallery controls in ms
useLeftfalseforce lightgallery to use css left property instead of transform.
closabletrueallows clicks on dimmer to close gallery.
looptrueIf false, will disable the ability to loop back to the beginning of the gallery when on the last element.
keyPresstrueEnable keyboard navigation
controlstrueIf false, prev/next buttons will not be displayed.
slideEndAnimatointrueEnable slideEnd animation
hideControlOnEndfalseIf true, prev/next button will be hidden on first/last image.
mousewheeltrueChange slide on mousewheel
preload1Number of preload slides. will exicute only after the current slide is fully loaded. ex:// you clicked on 4th image and if preload = 1 then 3rd slide and 5th slide will be loaded in the background after the 4th slide is fully loaded.. if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded
showAfterLoadtrueShow Content once it is fully loaded
countertrueWhether to show total number of images and index number of currently displayed image.
swipeThreshold50By setting the swipeThreshold (in px) you can set how far the user must swipe for the next/prev image.
enableDragtrueEnables desktop mouse drag support
thumbnailtrueEnable thumbnails for the gallery
animateThumbtrueEnable thumbnail animation.
currentPagerPosition'middle'Position of selected thumbnail. 'left' or 'middle' or 'right'
thumbWidth100Width of each thumbnails.
thumbContHeight100Height of the thumbnail container including padding and border
thumbMargin5Spacing between each thumbnails
toogleThumbtrueWhether to display thumbnail toggle button.
enableThumbDragtrueEnables desktop mouse drag support for thumbnails.
swipeThreshold50By setting the swipeThreshold (in px) you can set how far the user must swipe for the next/prev slide.
autoplaytrueEnable gallery autoplay
pause5000The time (in ms) between each auto transition.
progressBartrueEnable autoplay progress bar
fourceAutoplayfalseIf false autoplay will be stopped after first user action
autoplayControlstrueShow/hide autoplay controls.
pagertrueEnable/Disable pager
zoomtrueEnable/Disable zoom option
scale1Value of zoom should be incremented/decremented
\n

Development

\n

Project's folders

\n\n

Installation

\n
npm install\n
\n

It will also download Electron runtime, and install dependencies for second package.json file inside app folder.

\n

Starting the app

\n
npm start\n
\n

Making a release

\n

To make ready for distribution installer use command:

\n
npm run release\n
\n

It will start the packaging process for the operating system you are running this command on. The file which is ready for distribution will be outputted to releases directory.

\n

You can create Windows installer only when running on Windows, the same is true for Linux and OSX. So to generate all three installers you need all three operating systems.

\n

Other Projects

\n
LightGallery for web
\n
\n

A customizable, modular, responsive, lightbox gallery plugin.

\n
\n
jQuery lightslider
\n
\n

lightSlider is a lightweight responsive Content slider with carousel thumbnails navigation.

\n
\n
Angular flash
\n
\n

A simple lightweight flash message module for angularjs

\n
\n
ngclipboard
\n
\n

An angularjs directive to copy text to clipboard without using flash

\n
\n
Angular trix
\n
\n

A rich WYSIWYG text editor directive for angularjs.

\n
\n
ladda-angular
\n
\n

Ladda button directive for angularjs

\n
\n
Teamwave
\n
\n

Integrated Suite of Business Applications.. (Not an open source project but free for the first 1,000 Companies!)

\n
\n

Follow me on twitter @sachinchoolur for the latest news, updates about this project.

\n

Special thanks to Jakub Szwacz for electron boilerplate

\n

License

\n

MIT License

\n
", "readmeOriginal": "

lightGallery

\n

A modern, electron and nodejs based image viewer for Mac, Windows and Linux.\n\"lightgallery\"

\n

Main features

\n\n
Watch this repository. More features are coming
\n

Settings

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDefaultDescription
mode'lg-slide'Type of transition between images. lightGallery comes with lots of transition effects such as 'lg-slide', 'lg-fade', 'lg-zoom-in', 'lg-zoom-in-big', 'lg-zoom-out', 'lg-zoom-out-big', 'lg-zoom-out-in', 'lg-zoom-in-out', 'lg-soft-zoom', 'lg-scale-up', 'lg-slide-circular', 'lg-slide-circular-vertical', 'lg-slide-vertical', 'lg-slide-vertical-growth', 'lg-slide-skew-only', 'lg-slide-skew-only-rev', 'lg-slide-skew-only-y', 'lg-slide-skew-only-y-rev', 'lg-slide-skew', 'lg-slide-skew-rev', 'lg-slide-skew-cross', 'lg-slide-skew-cross-rev', 'lg-slide-skew-ver', 'lg-slide-skew-ver-rev', 'lg-slide-skew-ver-cross', 'lg-slide-skew-ver-cross-rev', 'lg-lollipop', 'lg-lollipop-rev', 'lg-rotate', 'lg-rotate-rev', 'lg-tube'
cssEasing'ease'Type of easing to be used for animations
speed600Transition duration (in ms).
hideBarsDelay6000Delay for hiding gallery controls in ms
useLeftfalseforce lightgallery to use css left property instead of transform.
closabletrueallows clicks on dimmer to close gallery.
looptrueIf false, will disable the ability to loop back to the beginning of the gallery when on the last element.
keyPresstrueEnable keyboard navigation
controlstrueIf false, prev/next buttons will not be displayed.
slideEndAnimatointrueEnable slideEnd animation
hideControlOnEndfalseIf true, prev/next button will be hidden on first/last image.
mousewheeltrueChange slide on mousewheel
preload1Number of preload slides. will exicute only after the current slide is fully loaded. ex:// you clicked on 4th image and if preload = 1 then 3rd slide and 5th slide will be loaded in the background after the 4th slide is fully loaded.. if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded
showAfterLoadtrueShow Content once it is fully loaded
countertrueWhether to show total number of images and index number of currently displayed image.
swipeThreshold50By setting the swipeThreshold (in px) you can set how far the user must swipe for the next/prev image.
enableDragtrueEnables desktop mouse drag support
thumbnailtrueEnable thumbnails for the gallery
animateThumbtrueEnable thumbnail animation.
currentPagerPosition'middle'Position of selected thumbnail. 'left' or 'middle' or 'right'
thumbWidth100Width of each thumbnails.
thumbContHeight100Height of the thumbnail container including padding and border
thumbMargin5Spacing between each thumbnails
toogleThumbtrueWhether to display thumbnail toggle button.
enableThumbDragtrueEnables desktop mouse drag support for thumbnails.
swipeThreshold50By setting the swipeThreshold (in px) you can set how far the user must swipe for the next/prev slide.
autoplaytrueEnable gallery autoplay
pause5000The time (in ms) between each auto transition.
progressBartrueEnable autoplay progress bar
fourceAutoplayfalseIf false autoplay will be stopped after first user action
autoplayControlstrueShow/hide autoplay controls.
pagertrueEnable/Disable pager
zoomtrueEnable/Disable zoom option
scale1Value of zoom should be incremented/decremented
\n

Development

\n

Project's folders

\n\n

Installation

\n
npm install\n
\n

It will also download Electron runtime, and install dependencies for second package.json file inside app folder.

\n

Starting the app

\n
npm start\n
\n

Making a release

\n

To make ready for distribution installer use command:

\n
npm run release\n
\n

It will start the packaging process for the operating system you are running this command on. The file which is ready for distribution will be outputted to releases directory.

\n

You can create Windows installer only when running on Windows, the same is true for Linux and OSX. So to generate all three installers you need all three operating systems.

\n

Other Projects

\n
LightGallery for web
\n
\n

A customizable, modular, responsive, lightbox gallery plugin.

\n
\n
jQuery lightslider
\n
\n

lightSlider is a lightweight responsive Content slider with carousel thumbnails navigation.

\n
\n
Angular flash
\n
\n

A simple lightweight flash message module for angularjs

\n
\n
ngclipboard
\n
\n

An angularjs directive to copy text to clipboard without using flash

\n
\n
Angular trix
\n
\n

A rich WYSIWYG text editor directive for angularjs.

\n
\n
ladda-angular
\n
\n

Ladda button directive for angularjs

\n
\n
Teamwave
\n
\n

Integrated Suite of Business Applications.. (Not an open source project but free for the first 1,000 Companies!)

\n
\n

Follow me on twitter @sachinchoolur for the latest news, updates about this project.

\n

Special thanks to Jakub Szwacz for electron boilerplate

\n

License

\n

MIT License

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.742Z" }, "linked": { "readmeCleaned": "

\"Project \"Project \"discord\"

\n

\"linked-banner\"

\n

Daily journaling without distraction

\n

An easy, distraction-free way to record your thoughts, declutter your mind and keep the things you want to remember. We all only have so much room in our brains for things. Let Linked be the place to put something you want to remember and let you free up space for deeper thinking.

\n

You can download linked here for free!

\n

Join the discord at https://discord.gg/uNjJzZvccr

\n

Features

\n\n

Upcoming

\n\n

💖 Sponsor

\n

The app will always be opensource and free - if you enjoy the app, please consider becoming a sponsor or leave a tip.

\n

Keyboard Shortcuts

\n
\n Keyboard Shortcuts\n

Search Cmd or Ctrl + K.

\n

Today Cmd or Ctrl + .

\n

Next Day Cmd or Ctrl + N

\n

Previous Day Cmd or Ctrl + P

\n

Next Week Cmd or Ctrl + Shift + N

\n

Previous Week Cmd or Ctrl + Shift + P

\n

Settings Cmd or Ctrl + ,

\n

Leave Settings Esc

\n

Exit Code Block Cmd or Ctrl + Enter

\n
\n

Contributing

\n

Please check Contributing.md first before opening a pull request please.

\n
\n How to run locally\n
    \n
  1. Check your node version, it must be v15 or newer
  2. \n
\n
node --version\n
\n
    \n
  1. Clone the repository (make sure you have git installed)
  2. \n
\n
git clone https://github.com/lostdesign/linked.git\n
\n
    \n
  1. Change to the newly downloaded directory
  2. \n
\n
cd linked/\n
\n
    \n
  1. Install project dependencies
  2. \n
\n
yarn\n
\n
    \n
  1. Start the application
  2. \n
\n
yarn electron:serve\n
\n
\n

Make sure to follow @uselinked on twitter to get the latest news about the project or feel free to check github discussions.

\n
", "readmeOriginal": "

\"Project \"Project \"discord\"

\n

\"linked-banner\"

\n

Daily journaling without distraction

\n

An easy, distraction-free way to record your thoughts, declutter your mind and keep the things you want to remember. We all only have so much room in our brains for things. Let Linked be the place to put something you want to remember and let you free up space for deeper thinking.

\n

You can download linked here for free!

\n

Join the discord at https://discord.gg/uNjJzZvccr

\n

Features

\n\n

Upcoming

\n\n

💖 Sponsor

\n

The app will always be opensource and free - if you enjoy the app, please consider becoming a sponsor or leave a tip.

\n

Keyboard Shortcuts

\n
\n Keyboard Shortcuts\n

Search Cmd or Ctrl + K.

\n

Today Cmd or Ctrl + .

\n

Next Day Cmd or Ctrl + N

\n

Previous Day Cmd or Ctrl + P

\n

Next Week Cmd or Ctrl + Shift + N

\n

Previous Week Cmd or Ctrl + Shift + P

\n

Settings Cmd or Ctrl + ,

\n

Leave Settings Esc

\n

Exit Code Block Cmd or Ctrl + Enter

\n
\n

Contributing

\n

Please check Contributing.md first before opening a pull request please.

\n
\n How to run locally\n
    \n
  1. Check your node version, it must be v15 or newer
  2. \n
\n
node --version\n
\n
    \n
  1. Clone the repository (make sure you have git installed)
  2. \n
\n
git clone https://github.com/lostdesign/linked.git\n
\n
    \n
  1. Change to the newly downloaded directory
  2. \n
\n
cd linked/\n
\n
    \n
  1. Install project dependencies
  2. \n
\n
yarn\n
\n
    \n
  1. Start the application
  2. \n
\n
yarn electron:serve\n
\n
\n

Make sure to follow @uselinked on twitter to get the latest news about the project or feel free to check github discussions.

\n
", "readmeFetchedAt": "2022-05-10T00:07:57.823Z" }, "local-mock-server": { "readmeCleaned": "

Local Mock Server

\n

Local Mock Server is a simple tool for creating mock server locally. With this you can create number of mock api's by configuring request method, request path, response status and JSON response body

\n

This app spins up a server locally and saves all the JSON data locally on your system(on Desktop)

\n

Uses

\n\n

ScreenShots

\n\n
", "readmeOriginal": "

Local Mock Server

\n

Local Mock Server is a simple tool for creating mock server locally. With this you can create number of mock api's by configuring request method, request path, response status and JSON response body

\n

This app spins up a server locally and saves all the JSON data locally on your system(on Desktop)

\n

Uses

\n\n

ScreenShots

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:57.917Z" }, "lightproxy": { "readmeCleaned": "

\"Build\"\n\"Build\n\"Stable\n\"Beta\n\"GitHub\n\"GitHub\n\"HitCount\"

\n

\n \n \n \n

\n

\nDownload\n|\nDocument\n|\nContribute\n|\n Introduction\n|\n介绍文章\n|\nFAQ\n

\n

\n\"LightProxy\n

\n

\n \n \n \n \n

\n
\n

📦 Out-of-box, fully automation with certificate install & system proxy setting

\n

🔋 Battery include, powerful hosts/proxy/capture based on whistle, what u need is just input /

\n

🔌 Hackable, you could write even Node.js for your proxy rule

\n
\n

Preview GIF

\n

\n \n

\n

Download

\n

macOS Version Download

\n

Windows Version Download

\n

Quick Start

\n

Take a quick start at: https://lightproxy.org/doc/getting-started

\n

How to contribute

\n

env

\n\n

dev

\n
git clone https://github.com/alibaba/lightproxy\ncd lightproxy\nyarn run install-deps\nyarn run dev
\n

For new contributors you can try to fix a 🏅send-a-PR

\n

Contributors

\n

\n \n \n \n

\n
\n

ICBU 端架构团队招聘\n❤️ 如果你擅长端技术,热爱开源,追求极致的用户体验和开发者体验,欢迎发简历到 xcodebuild+lp@gmail.com

\n
\n
", "readmeOriginal": "

\"Build\"\n\"Build\n\"Stable\n\"Beta\n\"GitHub\n\"GitHub\n\"HitCount\"

\n

\n \n \n \n

\n

\nDownload\n|\nDocument\n|\nContribute\n|\n Introduction\n|\n介绍文章\n|\nFAQ\n

\n

\n\"LightProxy\n

\n

\n \n \n \n \n

\n
\n

📦 Out-of-box, fully automation with certificate install & system proxy setting

\n

🔋 Battery include, powerful hosts/proxy/capture based on whistle, what u need is just input /

\n

🔌 Hackable, you could write even Node.js for your proxy rule

\n
\n

Preview GIF

\n

\n \n

\n

Download

\n

macOS Version Download

\n

Windows Version Download

\n

Quick Start

\n

Take a quick start at: https://lightproxy.org/doc/getting-started

\n

How to contribute

\n

env

\n\n

dev

\n
git clone https://github.com/alibaba/lightproxy\ncd lightproxy\nyarn run install-deps\nyarn run dev
\n

For new contributors you can try to fix a 🏅send-a-PR

\n

Contributors

\n

\n \n \n \n

\n
\n

ICBU 端架构团队招聘\n❤️ 如果你擅长端技术,热爱开源,追求极致的用户体验和开发者体验,欢迎发简历到 xcodebuild+lp@gmail.com

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:58.023Z" }, "logsnag": { "readmeCleaned": "

LogSnag Release

\n
", "readmeOriginal": "

LogSnag Release

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.027Z" }, "local-by-flywheel": { "readmeCleaned": "

ya# Local component library

\n

\"npm

\n

Welcome to the official component library for Local!

\n

What's included in this component library?

\n

We appreciate curious minds and that's a great question!\nTake a quick look at our living component documentation here.

\n

In additional to a quickly growing set of React components, we also have SVGs, SASS partials, and more to come!

\n

Installation

\n
    \n
  1. Clone and pull down the latest from the repo
  2. \n
  3. Install dependencies using yarn
  4. \n
\n

Storybook

\n

The quickest way to work on local-components is to leverage Storybook. Storybook is a\nlocal development area that works well with React components and supports hot-module reloading.

\n

To start Storybook, run yarn storybook.

\n

Developing within Local

\n

If you wish to work on local-components and see the changes within Local, you will need to do the following:

\n
    \n
  1. First run yarn build in local-components
  2. \n
  3. Next run yarn link (only needed one time or after unlinking)
  4. \n
  5. Switch to flywheel-local
  6. \n
  7. Then run nps components.link (only needed one time or after unlinking)
  8. \n
  9. Finally run nps build.dev
  10. \n
  11. Start Local
  12. \n
  13. Make any necessary changes in local-components. Note, Local does not support hot-module reloading in all locations\nso refreshing the UI in Local (Cmd + R) will likely be necessary.
  14. \n
\n

Running both Storybook and Watch at the same time

\n

If you wish to run both Storybook and the watcher for Local at the same time, you can run yarn start. Note, this particular\nscript spawns two instances of Webpack and is very resource intensive.

\n

Digging deeper

\n

The local-components library can be broken down into 3 main parts:

\n
    \n
  1. Components
  2. \n
  3. Styles
  4. \n
  5. SVGs
  6. \n
\n

Components

\n

These are the visual elements that make up both Local and its Add-ons.\nThere are currently 40+ React components in the library.\nEach component consists of a .tsx, index.js, README.md and optional .sass file.

\n

Try it out for yourself!

\n
    \n
  1. Make changes to the internals of a component through its .tsx and .sass files (they should live reload)
  2. \n
  3. Play around with the examples found in the README.md files
  4. \n
  5. Have an idea or bug fix? Submit a pull request.
  6. \n
\n
\n

Note: the entry point for all components and styles is index.ts.

\n
\n

Containers Wrapper

\n

Several components leverage the Container.tsx component to wrap their own implementation.\nContainer is a highly specialized component that can be toggled on (wraps contents in extra div) or toggled off (no extra div).\nIn addition, the Container wrapper adds convenience props that allow for easy one-off adjustments like adding 3px of margin without conflicting with the inner content's classes and styles.

\n
\n

Note: setting any of container's props will automatically toggle it on (disabled: false) thus wrapping the contents in the container wrapper.

\n
\n

Organization

\n

Components are organized by type. These type groups can be seen when running Storybook.

\n

Styles

\n

Suit CSS

\n

Naming is hard. And there's no perfect system.\nThat said, we have chosen Suit CSS for naming conventions.

\n
\n

Note: instead of dashes, local-components uses underscores due to a limitation of a legacy package.

\n
\n

CSS Modules

\n

The component library leverages CSS Modules to manage and scope styles.\nThese are considered local styles (not to be confused with the Local app 😉)\nScoped local styles are a beautiful thing that allow Local to isolate components, run Add-ons with multiple versions of local-components and avoid collisions.

\n

As wonderful as local styles are, there are instances where CSS needs to transcend a single component.\nFor that, we make use of global styles.\nGlobal styles should be familiar to most as that's what the web largely used for 20+ years.\nGlobal styles are intended to be used sparingly as they introduce a lot of challenges when scaling an app with a library of Add-ons and Environments.

\n

The following is an instance where a scoped component may use a combination of local and global styles to achieve a specific result:

\n
:global(.WindowsToolbar .DragRegion)
\n

This is something we try to avoid and are actively working to whittle down to the bare essentials.

\n

If you'd like to learn more about scoped styles, please check out CSS Modules here.

\n

SASS Partials, Mixins, and Functions

\n

There is an extensive sass system in use that many -- if not most -- components leverage.

\n
Partials
\n

If you search for the _partials directory, you will find variables, mixins, functions, and other shared resources.

\n
Variables
\n

If Local uses a color, it's defined as a variable within the _variables.scss file.\nIn addition, there are fonts, font sizes, font weights, and margin/padding preset values here.

\n
\n

Note: font sies and margin/padding uses t-shirt sizes to indicate relative sizing while adhering to strict design standards/values.

\n
\n
Themes
\n

Local has both light and dark modes. Since this impacts every single components, the _theme.scss file contains\nmixins that simplifies the implementation of these variations in a repeatable and predictable way.

\n

While you could leverage if-theme-light and if-theme-dark directly, most light/dark combinations follow a specific pattern and therefore have dedicated mixin.\nFor example, the theme-color-black-else-white mixin applies the color style of black (if light) otherwise white (if dark).\nAnother example, the theme-background-green-else-graydark mixin applies the background style of green (if light) otherwise graydark (if dark).

\n
\n

Note: light/dark mode styles are applied by toggling a class added to the html element (e.g. Theme__Light).

\n
\n

SVGs

\n

Coming soon!

\n

License

\n

MIT

\n
", "readmeOriginal": "

ya# Local component library

\n

\"npm

\n

Welcome to the official component library for Local!

\n

What's included in this component library?

\n

We appreciate curious minds and that's a great question!\nTake a quick look at our living component documentation here.

\n

In additional to a quickly growing set of React components, we also have SVGs, SASS partials, and more to come!

\n

Installation

\n
    \n
  1. Clone and pull down the latest from the repo
  2. \n
  3. Install dependencies using yarn
  4. \n
\n

Storybook

\n

The quickest way to work on local-components is to leverage Storybook. Storybook is a\nlocal development area that works well with React components and supports hot-module reloading.

\n

To start Storybook, run yarn storybook.

\n

Developing within Local

\n

If you wish to work on local-components and see the changes within Local, you will need to do the following:

\n
    \n
  1. First run yarn build in local-components
  2. \n
  3. Next run yarn link (only needed one time or after unlinking)
  4. \n
  5. Switch to flywheel-local
  6. \n
  7. Then run nps components.link (only needed one time or after unlinking)
  8. \n
  9. Finally run nps build.dev
  10. \n
  11. Start Local
  12. \n
  13. Make any necessary changes in local-components. Note, Local does not support hot-module reloading in all locations\nso refreshing the UI in Local (Cmd + R) will likely be necessary.
  14. \n
\n

Running both Storybook and Watch at the same time

\n

If you wish to run both Storybook and the watcher for Local at the same time, you can run yarn start. Note, this particular\nscript spawns two instances of Webpack and is very resource intensive.

\n

Digging deeper

\n

The local-components library can be broken down into 3 main parts:

\n
    \n
  1. Components
  2. \n
  3. Styles
  4. \n
  5. SVGs
  6. \n
\n

Components

\n

These are the visual elements that make up both Local and its Add-ons.\nThere are currently 40+ React components in the library.\nEach component consists of a .tsx, index.js, README.md and optional .sass file.

\n

Try it out for yourself!

\n
    \n
  1. Make changes to the internals of a component through its .tsx and .sass files (they should live reload)
  2. \n
  3. Play around with the examples found in the README.md files
  4. \n
  5. Have an idea or bug fix? Submit a pull request.
  6. \n
\n
\n

Note: the entry point for all components and styles is index.ts.

\n
\n

Containers Wrapper

\n

Several components leverage the Container.tsx component to wrap their own implementation.\nContainer is a highly specialized component that can be toggled on (wraps contents in extra div) or toggled off (no extra div).\nIn addition, the Container wrapper adds convenience props that allow for easy one-off adjustments like adding 3px of margin without conflicting with the inner content's classes and styles.

\n
\n

Note: setting any of container's props will automatically toggle it on (disabled: false) thus wrapping the contents in the container wrapper.

\n
\n

Organization

\n

Components are organized by type. These type groups can be seen when running Storybook.

\n

Styles

\n

Suit CSS

\n

Naming is hard. And there's no perfect system.\nThat said, we have chosen Suit CSS for naming conventions.

\n
\n

Note: instead of dashes, local-components uses underscores due to a limitation of a legacy package.

\n
\n

CSS Modules

\n

The component library leverages CSS Modules to manage and scope styles.\nThese are considered local styles (not to be confused with the Local app 😉)\nScoped local styles are a beautiful thing that allow Local to isolate components, run Add-ons with multiple versions of local-components and avoid collisions.

\n

As wonderful as local styles are, there are instances where CSS needs to transcend a single component.\nFor that, we make use of global styles.\nGlobal styles should be familiar to most as that's what the web largely used for 20+ years.\nGlobal styles are intended to be used sparingly as they introduce a lot of challenges when scaling an app with a library of Add-ons and Environments.

\n

The following is an instance where a scoped component may use a combination of local and global styles to achieve a specific result:

\n
:global(.WindowsToolbar .DragRegion)
\n

This is something we try to avoid and are actively working to whittle down to the bare essentials.

\n

If you'd like to learn more about scoped styles, please check out CSS Modules here.

\n

SASS Partials, Mixins, and Functions

\n

There is an extensive sass system in use that many -- if not most -- components leverage.

\n
Partials
\n

If you search for the _partials directory, you will find variables, mixins, functions, and other shared resources.

\n
Variables
\n

If Local uses a color, it's defined as a variable within the _variables.scss file.\nIn addition, there are fonts, font sizes, font weights, and margin/padding preset values here.

\n
\n

Note: font sies and margin/padding uses t-shirt sizes to indicate relative sizing while adhering to strict design standards/values.

\n
\n
Themes
\n

Local has both light and dark modes. Since this impacts every single components, the _theme.scss file contains\nmixins that simplifies the implementation of these variations in a repeatable and predictable way.

\n

While you could leverage if-theme-light and if-theme-dark directly, most light/dark combinations follow a specific pattern and therefore have dedicated mixin.\nFor example, the theme-color-black-else-white mixin applies the color style of black (if light) otherwise white (if dark).\nAnother example, the theme-background-green-else-graydark mixin applies the background style of green (if light) otherwise graydark (if dark).

\n
\n

Note: light/dark mode styles are applied by toggling a class added to the html element (e.g. Theme__Light).

\n
\n

SVGs

\n

Coming soon!

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.054Z" }, "lsdeer": { "readmeCleaned": "

Lsdeer file manager

\n

Website https://lsdeer.vercel.app/

\n

\"preview\nlsdeer is customisable file manager built with electron and react

\n

Scripts

\n\n
", "readmeOriginal": "

Lsdeer file manager

\n

Website https://lsdeer.vercel.app/

\n

\"preview\nlsdeer is customisable file manager built with electron and react

\n

Scripts

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:58.261Z" }, "losslesscut": { "readmeCleaned": "
\n\t
\n\t
\n

\"LosslessCut\"

\n

LosslessCut

\n The swiss army knife of lossless video/audio editing\n\t
\n \n \n\t
\n\t
\n Thanks to all my supporters\n\t
\n\t
\n

\"screenshot\"

\n\t
\n\t
\n
\n

LosslessCut aims to be the ultimate cross platform FFmpeg GUI for extremely fast and lossless operations on video, audio, subtitle and other related media files.\nThe main feature is lossless trimming and cutting of video and audio files, which is great for saving space by rough-cutting your large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard many gigabytes of data without doing a slow re-encode and thereby losing quality. Or you can add a music or subtitle track to your video without needing to encode. Everything is extremely fast because it does an almost direct data copy, fueled by the awesome FFmpeg which does all the grunt work.

\n

Features

\n\n

Example lossless use cases

\n\n

Export cut times as YouTube Chapters

\n
    \n
  1. Export with Merge and \"Create chapters from merged segments\" enabled
  2. \n
  3. Open the exported file and select \"Import chapters\" in the dialog
  4. \n
  5. File -> Export project -> YouTube Chapters
  6. \n
\n

Re-encode only the audio track, keeping the lossless video track

\n

First export each track as individual files. Then use Handbrake or similar to re-encode the audio file. Then use the Tools->Merge in LosslessCut to merge the original video stream with your Handbrake output (or drag it into your original LosslessCut video to include it as a new track.)

\n

Advanced multi-step workflows

\n

Tip: you can use LosslessCut in multiple passes in order to achieve separate trimming of individual tracks:

\n
    \n
  1. Open a file an export all tracks as individual files
  2. \n
  3. Open the exported track files independently and cut them as desired
  4. \n
  5. Add the track back to the video and combine them to one output video
  6. \n
\n

Download

\n

If you want to support my continued work on LosslessCut, and you want the advantage of a secure and simple installation process with automatic updates, consider getting it from your favorite store:

\n

\"Mac \"MS \"Snapcraft\"

\n

If you prefer to download the executables manually, this will of course always be free:

\n\n

If you find LosslessCut useful, I'm very thankful for donations.

\n

Difference between App Stores and Github download

\n

They have exactly the same in-app features, except for a few platform limitations. Apple doesn't allow opening VOB files with App Store apps. Apple App Store apps need to prompt for output directory. LosslessCut version in the App Stores is a few versions behind the GitHub version, because I want to be sure that the new versions work perfectly before releasing in the App Stores. GitHub version can contain new, untested features and may contain some bugs. I consider the newest GitHub versions to be a public \"beta\" test.

\n

Supported formats

\n

Since LosslessCut is based on Chromium and uses the HTML5 video player, not all FFmpeg supported formats will be supported smoothly.\nThe following formats/codecs should generally work: MP4, MOV, WebM, MKV, OGG, WAV, MP3, AAC, H264, Theora, VP8, VP9\nFor more information about supported formats / codecs, see https://www.chromium.org/audio-video.

\n

Unsupported files can still be converted to a supported format/codec from the File menu. (Try the \"fastest\" option first.) A low quality version of the file (with/without audio) will then be created and opened in the player. The actual cut/export operation will still be performed on the original file, so it will be lossless. This allows for potentially opening any file that FFmpeg is able to decode.

\n

Video demos

\n\n

Typical workflow

\n\n

Known issues & limitations

\n\n

Troubleshooting / FAQ

\n\n

If you have an issue you can check the developer tools for any errors or clues. Menu: Tools -> Toggle Developer Tools

\n

CSV import/export

\n\n

example.csv

\n
,56.9568,First segment starting at 0\n70,842.33,\"Another quoted label\"\n1234,,Last segment\n
\n

Command line interface (CLI)

\n

Note that these exampels assume that you have set up LosslessCut in your PATH environment. Alternatively you can run it like this:

\n
# First navigate to the folder containing the LosslessCut app\ncd /path/to/directory/containing/app\n# On Linux:\n./LosslessCut arguments\n# On Windows:\n./LosslessCut.exe arguments\n# On MacOS:\n./LosslessCut.app/Contents/MacOS/LosslessCut arguments\n
\n

Open one or more files:

\n
LosslessCut file1.mp4 file2.mkv
\n

Override settings (experimental)

\n

See available settings. Note that this is subject to change in newer versions. ⚠️ If you specify incorrect values it could corrupt your configuration file. You may use JSON or JSON5:

\n
LosslessCut --settings-json '{captureFormat:\"jpeg\", \"keyframeCut\":true}'
\n

Developing

\n

See the developer notes.

\n

Donate 🙈

\n

This project is maintained by me alone. The project will always remain free and open source, but if it's useful for you, consider supporting me. :) It will give me extra motivation to improve it. Or even better donate to ffmpeg because they are doing the world a big favor 🙏

\n

Paypal | crypto

\n

Articles

\n\n

Attributions

\n\n

More software

\n\n
\n

Made with ❤️ in 🇳🇴

\n

More apps by mifi.no

\n

Follow me on GitHub, YouTube, IG, Twitter for more awesome content!

\n
", "readmeOriginal": "
\n\t
\n\t
\n

\"LosslessCut\"

\n

LosslessCut

\n The swiss army knife of lossless video/audio editing\n\t
\n \n \n\t
\n\t
\n Thanks to all my supporters\n\t
\n\t
\n

\"screenshot\"

\n\t
\n\t
\n
\n

LosslessCut aims to be the ultimate cross platform FFmpeg GUI for extremely fast and lossless operations on video, audio, subtitle and other related media files.\nThe main feature is lossless trimming and cutting of video and audio files, which is great for saving space by rough-cutting your large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard many gigabytes of data without doing a slow re-encode and thereby losing quality. Or you can add a music or subtitle track to your video without needing to encode. Everything is extremely fast because it does an almost direct data copy, fueled by the awesome FFmpeg which does all the grunt work.

\n

Features

\n\n

Example lossless use cases

\n\n

Export cut times as YouTube Chapters

\n
    \n
  1. Export with Merge and \"Create chapters from merged segments\" enabled
  2. \n
  3. Open the exported file and select \"Import chapters\" in the dialog
  4. \n
  5. File -> Export project -> YouTube Chapters
  6. \n
\n

Re-encode only the audio track, keeping the lossless video track

\n

First export each track as individual files. Then use Handbrake or similar to re-encode the audio file. Then use the Tools->Merge in LosslessCut to merge the original video stream with your Handbrake output (or drag it into your original LosslessCut video to include it as a new track.)

\n

Advanced multi-step workflows

\n

Tip: you can use LosslessCut in multiple passes in order to achieve separate trimming of individual tracks:

\n
    \n
  1. Open a file an export all tracks as individual files
  2. \n
  3. Open the exported track files independently and cut them as desired
  4. \n
  5. Add the track back to the video and combine them to one output video
  6. \n
\n

Download

\n

If you want to support my continued work on LosslessCut, and you want the advantage of a secure and simple installation process with automatic updates, consider getting it from your favorite store:

\n

\"Mac \"MS \"Snapcraft\"

\n

If you prefer to download the executables manually, this will of course always be free:

\n\n

If you find LosslessCut useful, I'm very thankful for donations.

\n

Difference between App Stores and Github download

\n

They have exactly the same in-app features, except for a few platform limitations. Apple doesn't allow opening VOB files with App Store apps. Apple App Store apps need to prompt for output directory. LosslessCut version in the App Stores is a few versions behind the GitHub version, because I want to be sure that the new versions work perfectly before releasing in the App Stores. GitHub version can contain new, untested features and may contain some bugs. I consider the newest GitHub versions to be a public \"beta\" test.

\n

Supported formats

\n

Since LosslessCut is based on Chromium and uses the HTML5 video player, not all FFmpeg supported formats will be supported smoothly.\nThe following formats/codecs should generally work: MP4, MOV, WebM, MKV, OGG, WAV, MP3, AAC, H264, Theora, VP8, VP9\nFor more information about supported formats / codecs, see https://www.chromium.org/audio-video.

\n

Unsupported files can still be converted to a supported format/codec from the File menu. (Try the \"fastest\" option first.) A low quality version of the file (with/without audio) will then be created and opened in the player. The actual cut/export operation will still be performed on the original file, so it will be lossless. This allows for potentially opening any file that FFmpeg is able to decode.

\n

Video demos

\n\n

Typical workflow

\n\n

Known issues & limitations

\n\n

Troubleshooting / FAQ

\n\n

If you have an issue you can check the developer tools for any errors or clues. Menu: Tools -> Toggle Developer Tools

\n

CSV import/export

\n\n

example.csv

\n
,56.9568,First segment starting at 0\n70,842.33,\"Another quoted label\"\n1234,,Last segment\n
\n

Command line interface (CLI)

\n

Note that these exampels assume that you have set up LosslessCut in your PATH environment. Alternatively you can run it like this:

\n
# First navigate to the folder containing the LosslessCut app\ncd /path/to/directory/containing/app\n# On Linux:\n./LosslessCut arguments\n# On Windows:\n./LosslessCut.exe arguments\n# On MacOS:\n./LosslessCut.app/Contents/MacOS/LosslessCut arguments\n
\n

Open one or more files:

\n
LosslessCut file1.mp4 file2.mkv
\n

Override settings (experimental)

\n

See available settings. Note that this is subject to change in newer versions. ⚠️ If you specify incorrect values it could corrupt your configuration file. You may use JSON or JSON5:

\n
LosslessCut --settings-json '{captureFormat:\"jpeg\", \"keyframeCut\":true}'
\n

Developing

\n

See the developer notes.

\n

Donate 🙈

\n

This project is maintained by me alone. The project will always remain free and open source, but if it's useful for you, consider supporting me. :) It will give me extra motivation to improve it. Or even better donate to ffmpeg because they are doing the world a big favor 🙏

\n

Paypal | crypto

\n

Articles

\n\n

Attributions

\n\n

More software

\n\n
\n

Made with ❤️ in 🇳🇴

\n

More apps by mifi.no

\n

Follow me on GitHub, YouTube, IG, Twitter for more awesome content!

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.270Z" }, "lot-lot-of-things": { "readmeCleaned": "

LoT - Lot of Things

\n

Do you have a lot of things and you don't know where it is or if you have it at all?\nJust manage your things digitally, as individual as each thing is itself!

\n

Website: https://jisco.me/lot

\n

Light and Dark Theme

\n

\"themes\"

\n

Tutorial Video

\n
\n \n \n \n\n LoT-FirstSteps.mp4\n \n \n\n \n
\n\n

Version 1.1.0

\n\n

Version 1.0.0

\n\n
", "readmeOriginal": "

LoT - Lot of Things

\n

Do you have a lot of things and you don't know where it is or if you have it at all?\nJust manage your things digitally, as individual as each thing is itself!

\n

Website: https://jisco.me/lot

\n

Light and Dark Theme

\n

\"themes\"

\n

Tutorial Video

\n
\n \n \n \n\n LoT-FirstSteps.mp4\n \n \n\n \n
\n\n

Version 1.1.0

\n\n

Version 1.0.0

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:58.284Z" }, "lisk-hub": { "readmeCleaned": "

Lisk Desktop

\n

\"Build\n\"Coverage\n\"License:\n\"GitHub\n\"DeepScan\n\"PRs\n\"Discord\"\n\"GitHub\n\"GitHub

\n

Installation

\n

You can download the latest release from Lisk.com. The link automatically detects your operating system and downloads the correct app. Currently we are supporting the following operating systems:

\n\n

For Contributors

\n

Please see CONTRIBUTING_GUIDE.md for more information.

\n

Development

\n

Using Commercial Fonts

\n

Basier Circle and Gilroy used in the production version are commercial fonts. This repository only contains open fonts and uses Open Sans as a replacement for the commercial ones.

\n

If you have licensed copies of Basier Circle and Gilroy, you can add them to fonts folder. If you don't have the fonts, you need to remove lines 25 - 81 of type.css. After that, the build and dev npm scripts run without any errors.

\n

Setup environment

\n

The development environment currently depends on Node.js version 16 (lts/gallium). The below instructions assume nvm is being used to manage Node.js versions.

\n

Note:\nFor Windows users, make sure to set the correct msvs_version config for installing and packing the Lisk Desktop application.

\n
git clone https://github.com/LiskHQ/lisk-desktop.git\ncd lisk-desktop\nnvm install lts/erbium\nnpm ci\nnpm run dev\n
\n

Run on browser

\n

Open http://localhost:8080

\n

If you are actively developing in a specific route, and want to be automatically signed in every time you reload the page, please add the following input pairs to your localStorage:

\n

loginKey: a valid passphrase

\n

Add the above pair using the storage tab in your dev tools or via JavaScript command:

\n
localStorage.setItem('loginKey', 'wagon stock borrow episode laundry kitten salute link globe zero feed marble') // desired account passphrase\n
\n

When developing with hardware wallet, this will sign you in using the first account on the first connected hardware wallet:

\n
localStorage.setItem('hwWalletAutoLogin', true);\n
\n

You can use the same approach to define a desired network to which Lisk Desktop connects:

\n
localStorage.setItem('liskServiceUrl', 'http://localhost:4000') // desired node to log in into\n
\n

Build

\n

Production build

\n

To build the project simply run

\n
npm run build\n
\n

Under the hood, this script runs

\n
npm run build:prod\n
\n

to build the React app under src/ and

\n
npm run build:electron\n
\n

to build the electron app under app/ using webpack. You can run the above scripts individually if you're looking to see the changes solely on one of the two said applications.

\n

Run Electron

\n

If you have already built the application as described above, you can launch Electron using

\n
npm run start\n
\n

Run with parameters

\n

To launch a version which supports hardware wallets, you can run

\n
npm run dev:hw\n
\n

or to launch electron and receive live updates from already running webpack-dev-server on port 8080 and you can run

\n
LISK_DESKTOP_URL=\"http://localhost:8080\" DEBUG=true npm run start\n
\n

This comes with Redux dev tools.

\n

Distribution

\n

Windows

\n

Build package for Windows (on Windows in Git BASH).

\n
npm run pack:win\n
\n

macOS

\n

Build package for macOS (on macOs)

\n
npm run pack\n
\n

Linux

\n

Build package for Linux (on Linux).

\n
npm run pack\n
\n

Testing

\n

Unit tests

\n

Single run

\n
npm run test\n
\n

Run each time a file changes

\n
npm run test:live\n
\n

E2E tests

\n

In order to run e2e tests you need to install lisk-core as well as lisk-service.

\n

Setup Lisk Core

\n

Setup a lisk test node as described in Preparing Node headline under the tests section of Lisk Framework README.

\n

Setup Service

\n

Run Lisk Service against an already running local node as described in Preparing Node headline under the installation section of Lisk Service README.

\n

Run

\n

Start the development version of Lisk:

\n
npm run dev\n
\n

Apply blockchain snapshot

\n
./test/e2e-test-setup.sh ~/git/lisk/\n
\n

(replace ~/git/lisk/ with your path to lisk core)

\n

Run e2e tests

\n
npm run cypress:run\n
\n

React Storybook

\n

To launch storybook sandbox with components run

\n
npm run storybook\n
\n

and navigate to

\n

http://localhost:6006/

\n

Directory Layout

\n
├── __mocks__/                     # Modules used to mock dependencies for testing purpose.\n├── .storybook/                    # React storybooks reside here.\n├── app/                           # Electron based application that launces the react app.\n├── build/                         # Build specific materials.\n├── config/                        # Automation scripts (Webpack configurations, i18n scanner, etc)\n├── coverage/                      # Results of Jest test coverage.\n├── dist/                          # Platform specific built outputs.\n├── docs/                          # Project documentations such as contribution guides and development guidelines.\n├── i18n/                          # Localization files inluding setup scripts and translation json files.\n├── libs/                          # Modules which can be consumed individually in other projects.\n├── node_modules/                  # 3rd-party libraries and utilities.\n├── src/                           # Application source code.\n│   ├── app/                       # The bootstrap React application\n│   ├── assets/                    # Static files (images, fonts, etc)\n│   ├── components/                # React presentational components are located here.\n│   │   ├── screens/               # These are the component that represent screens with dedicated URL.\n│   │   ├── shared/                # These are the React components used at least in 2 other components (calendar, liskAmount, etc)\n│   │   └── toolbox/               # Basic elements with basic styles and functionality which are used in numerous places (button, input, etc)\n│   ├── constants/                 # Names, addresses, static configurations and other values used throughout the application\n│   ├── context/                   # React context configuration files\n│   ├── hooks/                     # React custom hooks\n│   ├── store/                     # Redux store resides here.\n│   │   ├── actions/               # Store actions reside here and are broken into script files dedicated to each system entity.\n│   │   ├── middlewares/           # All the Redux middlewares are places here and have their dedicated script files based on the system entities.\n│   │   ├── reducers/              # Redux reducers are located here. similar to actions and reducers, they are placed in script files named after the entity they represent.\n│   ├── utils/                     # Utility functions\n└──test/                           # E2E tests written with Cypress.io and Cucumber; also some helpers used by unit test that live in /src\n
\n

Contributors

\n

See contributors section.

\n

License

\n

Copyright © 2016-2021 Lisk Foundation

\n

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

\n

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

\n

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

\n
", "readmeOriginal": "

Lisk Desktop

\n

\"Build\n\"Coverage\n\"License:\n\"GitHub\n\"DeepScan\n\"PRs\n\"Discord\"\n\"GitHub\n\"GitHub

\n

Installation

\n

You can download the latest release from Lisk.com. The link automatically detects your operating system and downloads the correct app. Currently we are supporting the following operating systems:

\n\n

For Contributors

\n

Please see CONTRIBUTING_GUIDE.md for more information.

\n

Development

\n

Using Commercial Fonts

\n

Basier Circle and Gilroy used in the production version are commercial fonts. This repository only contains open fonts and uses Open Sans as a replacement for the commercial ones.

\n

If you have licensed copies of Basier Circle and Gilroy, you can add them to fonts folder. If you don't have the fonts, you need to remove lines 25 - 81 of type.css. After that, the build and dev npm scripts run without any errors.

\n

Setup environment

\n

The development environment currently depends on Node.js version 16 (lts/gallium). The below instructions assume nvm is being used to manage Node.js versions.

\n

Note:\nFor Windows users, make sure to set the correct msvs_version config for installing and packing the Lisk Desktop application.

\n
git clone https://github.com/LiskHQ/lisk-desktop.git\ncd lisk-desktop\nnvm install lts/erbium\nnpm ci\nnpm run dev\n
\n

Run on browser

\n

Open http://localhost:8080

\n

If you are actively developing in a specific route, and want to be automatically signed in every time you reload the page, please add the following input pairs to your localStorage:

\n

loginKey: a valid passphrase

\n

Add the above pair using the storage tab in your dev tools or via JavaScript command:

\n
localStorage.setItem('loginKey', 'wagon stock borrow episode laundry kitten salute link globe zero feed marble') // desired account passphrase\n
\n

When developing with hardware wallet, this will sign you in using the first account on the first connected hardware wallet:

\n
localStorage.setItem('hwWalletAutoLogin', true);\n
\n

You can use the same approach to define a desired network to which Lisk Desktop connects:

\n
localStorage.setItem('liskServiceUrl', 'http://localhost:4000') // desired node to log in into\n
\n

Build

\n

Production build

\n

To build the project simply run

\n
npm run build\n
\n

Under the hood, this script runs

\n
npm run build:prod\n
\n

to build the React app under src/ and

\n
npm run build:electron\n
\n

to build the electron app under app/ using webpack. You can run the above scripts individually if you're looking to see the changes solely on one of the two said applications.

\n

Run Electron

\n

If you have already built the application as described above, you can launch Electron using

\n
npm run start\n
\n

Run with parameters

\n

To launch a version which supports hardware wallets, you can run

\n
npm run dev:hw\n
\n

or to launch electron and receive live updates from already running webpack-dev-server on port 8080 and you can run

\n
LISK_DESKTOP_URL=\"http://localhost:8080\" DEBUG=true npm run start\n
\n

This comes with Redux dev tools.

\n

Distribution

\n

Windows

\n

Build package for Windows (on Windows in Git BASH).

\n
npm run pack:win\n
\n

macOS

\n

Build package for macOS (on macOs)

\n
npm run pack\n
\n

Linux

\n

Build package for Linux (on Linux).

\n
npm run pack\n
\n

Testing

\n

Unit tests

\n

Single run

\n
npm run test\n
\n

Run each time a file changes

\n
npm run test:live\n
\n

E2E tests

\n

In order to run e2e tests you need to install lisk-core as well as lisk-service.

\n

Setup Lisk Core

\n

Setup a lisk test node as described in Preparing Node headline under the tests section of Lisk Framework README.

\n

Setup Service

\n

Run Lisk Service against an already running local node as described in Preparing Node headline under the installation section of Lisk Service README.

\n

Run

\n

Start the development version of Lisk:

\n
npm run dev\n
\n

Apply blockchain snapshot

\n
./test/e2e-test-setup.sh ~/git/lisk/\n
\n

(replace ~/git/lisk/ with your path to lisk core)

\n

Run e2e tests

\n
npm run cypress:run\n
\n

React Storybook

\n

To launch storybook sandbox with components run

\n
npm run storybook\n
\n

and navigate to

\n

http://localhost:6006/

\n

Directory Layout

\n
├── __mocks__/                     # Modules used to mock dependencies for testing purpose.\n├── .storybook/                    # React storybooks reside here.\n├── app/                           # Electron based application that launces the react app.\n├── build/                         # Build specific materials.\n├── config/                        # Automation scripts (Webpack configurations, i18n scanner, etc)\n├── coverage/                      # Results of Jest test coverage.\n├── dist/                          # Platform specific built outputs.\n├── docs/                          # Project documentations such as contribution guides and development guidelines.\n├── i18n/                          # Localization files inluding setup scripts and translation json files.\n├── libs/                          # Modules which can be consumed individually in other projects.\n├── node_modules/                  # 3rd-party libraries and utilities.\n├── src/                           # Application source code.\n│   ├── app/                       # The bootstrap React application\n│   ├── assets/                    # Static files (images, fonts, etc)\n│   ├── components/                # React presentational components are located here.\n│   │   ├── screens/               # These are the component that represent screens with dedicated URL.\n│   │   ├── shared/                # These are the React components used at least in 2 other components (calendar, liskAmount, etc)\n│   │   └── toolbox/               # Basic elements with basic styles and functionality which are used in numerous places (button, input, etc)\n│   ├── constants/                 # Names, addresses, static configurations and other values used throughout the application\n│   ├── context/                   # React context configuration files\n│   ├── hooks/                     # React custom hooks\n│   ├── store/                     # Redux store resides here.\n│   │   ├── actions/               # Store actions reside here and are broken into script files dedicated to each system entity.\n│   │   ├── middlewares/           # All the Redux middlewares are places here and have their dedicated script files based on the system entities.\n│   │   ├── reducers/              # Redux reducers are located here. similar to actions and reducers, they are placed in script files named after the entity they represent.\n│   ├── utils/                     # Utility functions\n└──test/                           # E2E tests written with Cypress.io and Cucumber; also some helpers used by unit test that live in /src\n
\n

Contributors

\n

See contributors section.

\n

License

\n

Copyright © 2016-2021 Lisk Foundation

\n

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

\n

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

\n

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.368Z" }, "magiccap": { "readmeCleaned": "

\"MagicCap\"

\n

\n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n

\n

MagicCap is a image/GIF capture suite for Mac and Linux. You can get a precompiled copy from the releases page of this GitHub page. It has the following features:

\n\n

This is not for Windows!

\n

ShareX is amazing for that!

\n

Supported Uploaders

\n

MagicCap supports the following uploaders (this list will expand over time):

\n\n

Credit

\n

The following people have done a ton to help in the creation of MagicCap. If you have done something to help and want your name here, feel free to make a pull request. This is in alphabetical order, not the order of the work people have done:

\n\n

Building

\n

In order to download needed packages, run npm i. This will get all of the needed packages. You can then run one of the following commands:

\n\n

Mac Note

\n

If you are on Mac, you'll need to download XCode.

\n

More Information

\n

For more information on installation/configuration and compiling, please refer to the documentation.

\n
", "readmeOriginal": "

\"MagicCap\"

\n

\n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n

\n

MagicCap is a image/GIF capture suite for Mac and Linux. You can get a precompiled copy from the releases page of this GitHub page. It has the following features:

\n\n

This is not for Windows!

\n

ShareX is amazing for that!

\n

Supported Uploaders

\n

MagicCap supports the following uploaders (this list will expand over time):

\n\n

Credit

\n

The following people have done a ton to help in the creation of MagicCap. If you have done something to help and want your name here, feel free to make a pull request. This is in alphabetical order, not the order of the work people have done:

\n\n

Building

\n

In order to download needed packages, run npm i. This will get all of the needed packages. You can then run one of the following commands:

\n\n

Mac Note

\n

If you are on Mac, you'll need to download XCode.

\n

More Information

\n

For more information on installation/configuration and compiling, please refer to the documentation.

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.454Z" }, "mailspring": { "readmeCleaned": "

💌 Mailspring

\n

\"Travis\n\"AppVeyor

\n

Mailspring is a new version of Nylas Mail maintained by one of the original authors. It's faster, leaner, and shipping today! It replaces the JavaScript sync code in Nylas Mail with a new C++ sync engine based on Mailcore2. It uses roughly half the RAM and CPU of Nylas Mail and idles with almost zero \"CPU Wakes\", which translates to great battery life. It also has an entirely revamped composer and other great new features.

\n

Mailspring's UI is open source (GPLv3) and written in TypeScript with Electron and React - it's built on a plugin architecture and was designed to be easy to extend. Check out CONTRIBUTING.md to get started!

\n

Mailspring's sync engine is spawned by the Electron application and runs locally on your computer. It is open source (GPLv3) and written in C++ and C. For convenience, however, when you set up your development environment, Mailspring uses the latest version of the sync engine we've shipped for your platform so you don't need to pull sources or install its compile-time dependencies.

\n

\"Mailspring

\n

Features

\n

Mailspring comes packed with powerful features like Unified Inbox, Snooze, Send\nLater, Mail Rules, Templates and more. Mailspring Pro, which you can unlock\nwith a monthly subscription, adds even more features for people who send a ton\nof email: link tracking, read receipts, mailbox analytics, contact and company\nprofiles. All of these features run in the client - Mailspring does not send\nyour email credentials to the cloud. For a full list of features, check out\ngetmailspring.com.

\n

Download Mailspring

\n

You can download compiled versions of Mailspring for Windows, Mac OS X, and\nLinux (deb, rpm and snap) from\nhttps://getmailspring.com/download.

\n

Getting Help

\n

You can find community-based help and discussion with other Mailspring users on our\nDiscourse community.

\n

Contributing

\n

Mailspring is entirely open-source. Pull requests and contributions are\nwelcome! There are three ways to contribute: building a plugin, building a\ntheme, and submitting pull requests to the project itself. When you're getting\nstarted, you may want to join our\nDiscourse so you can ask questions and\nlearn from other people doing development.

\n

\"Contributor

\n

Running Mailspring from Source

\n

To install all dependencies and run Mailspring from its source code,\nrun the following commands from the root directory of the Mailspring repository:

\n
export npm_config_arch=x64 # If you are on an M1 / Apple Silicon Mac\nnpm install\nnpm start\n
\n

You can attach command line parameters by separating them using a double hyphen:

\n
npm start -- --help\n
\n

Building Mailspring

\n

To build Mailspring, you need to run the following command from the root directory\nof the Mailspring repository:

\n
npm run-script build\n
\n

Building A Plugin

\n

Plugins lie at the heart of Mailspring and give it its powerful features.\nBuilding your own plugins allows you to integrate the app with other tools,\nexperiment with new workflows, and more. Follow the Getting Started\nguide to write your first plugin in\nfive minutes.

\n\n

A plugin \"store\" like the Chrome Web Store is coming soon, and will make it\neasy for other users to discover plugins you create. (Right now, users need to\n\"sideload\" the plugins into the app by downloading them and copying them into\nplace.)

\n

You can share and browse Mailspring Plugins, and discuss plugin development\nwith other developers, on our\nDiscourse.

\n

Building a Theme

\n

The Mailspring user interface is styled using CSS, which means it's easy to\nmodify and extend. Mailspring comes stock with a few beautiful themes, and\nthere are many more which have been built by community developers. To start\ncreating a theme, clone the theme starter!

\n

If you are updating an existing Nylas theme for Mailspring here is a\nstep by step tutorial.\nNotice: as part of the update process you will probably need to import mailspring base variables.

\n

You can share and browse Mailspring Themes, and discuss theme development with other developers, on our Discourse.

\n

Localizing / Translating

\n

Mailspring (1.5.0 and above) supports localization. If you're a fluent speaker of\nanother language, we'd love your help improving translations. Check out the\nLOCALIZATION\nguide for more information. You can discuss localization and translation with\nother developers on our Discourse.

\n

Contributing to Mailspring Core

\n

Pull requests are always welcome - check out\nCONTRIBUTING\nfor more information about setting up the development environment, running\ntests locally, and submitting pull requests.

\n
", "readmeOriginal": "

💌 Mailspring

\n

\"Travis\n\"AppVeyor

\n

Mailspring is a new version of Nylas Mail maintained by one of the original authors. It's faster, leaner, and shipping today! It replaces the JavaScript sync code in Nylas Mail with a new C++ sync engine based on Mailcore2. It uses roughly half the RAM and CPU of Nylas Mail and idles with almost zero \"CPU Wakes\", which translates to great battery life. It also has an entirely revamped composer and other great new features.

\n

Mailspring's UI is open source (GPLv3) and written in TypeScript with Electron and React - it's built on a plugin architecture and was designed to be easy to extend. Check out CONTRIBUTING.md to get started!

\n

Mailspring's sync engine is spawned by the Electron application and runs locally on your computer. It is open source (GPLv3) and written in C++ and C. For convenience, however, when you set up your development environment, Mailspring uses the latest version of the sync engine we've shipped for your platform so you don't need to pull sources or install its compile-time dependencies.

\n

\"Mailspring

\n

Features

\n

Mailspring comes packed with powerful features like Unified Inbox, Snooze, Send\nLater, Mail Rules, Templates and more. Mailspring Pro, which you can unlock\nwith a monthly subscription, adds even more features for people who send a ton\nof email: link tracking, read receipts, mailbox analytics, contact and company\nprofiles. All of these features run in the client - Mailspring does not send\nyour email credentials to the cloud. For a full list of features, check out\ngetmailspring.com.

\n

Download Mailspring

\n

You can download compiled versions of Mailspring for Windows, Mac OS X, and\nLinux (deb, rpm and snap) from\nhttps://getmailspring.com/download.

\n

Getting Help

\n

You can find community-based help and discussion with other Mailspring users on our\nDiscourse community.

\n

Contributing

\n

Mailspring is entirely open-source. Pull requests and contributions are\nwelcome! There are three ways to contribute: building a plugin, building a\ntheme, and submitting pull requests to the project itself. When you're getting\nstarted, you may want to join our\nDiscourse so you can ask questions and\nlearn from other people doing development.

\n

\"Contributor

\n

Running Mailspring from Source

\n

To install all dependencies and run Mailspring from its source code,\nrun the following commands from the root directory of the Mailspring repository:

\n
export npm_config_arch=x64 # If you are on an M1 / Apple Silicon Mac\nnpm install\nnpm start\n
\n

You can attach command line parameters by separating them using a double hyphen:

\n
npm start -- --help\n
\n

Building Mailspring

\n

To build Mailspring, you need to run the following command from the root directory\nof the Mailspring repository:

\n
npm run-script build\n
\n

Building A Plugin

\n

Plugins lie at the heart of Mailspring and give it its powerful features.\nBuilding your own plugins allows you to integrate the app with other tools,\nexperiment with new workflows, and more. Follow the Getting Started\nguide to write your first plugin in\nfive minutes.

\n\n

A plugin \"store\" like the Chrome Web Store is coming soon, and will make it\neasy for other users to discover plugins you create. (Right now, users need to\n\"sideload\" the plugins into the app by downloading them and copying them into\nplace.)

\n

You can share and browse Mailspring Plugins, and discuss plugin development\nwith other developers, on our\nDiscourse.

\n

Building a Theme

\n

The Mailspring user interface is styled using CSS, which means it's easy to\nmodify and extend. Mailspring comes stock with a few beautiful themes, and\nthere are many more which have been built by community developers. To start\ncreating a theme, clone the theme starter!

\n

If you are updating an existing Nylas theme for Mailspring here is a\nstep by step tutorial.\nNotice: as part of the update process you will probably need to import mailspring base variables.

\n

You can share and browse Mailspring Themes, and discuss theme development with other developers, on our Discourse.

\n

Localizing / Translating

\n

Mailspring (1.5.0 and above) supports localization. If you're a fluent speaker of\nanother language, we'd love your help improving translations. Check out the\nLOCALIZATION\nguide for more information. You can discuss localization and translation with\nother developers on our Discourse.

\n

Contributing to Mailspring Core

\n

Pull requests are always welcome - check out\nCONTRIBUTING\nfor more information about setting up the development environment, running\ntests locally, and submitting pull requests.

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.532Z" }, "luna": { "readmeCleaned": "

Luna - npm management through a modern UI. Built with Electron 🌺

\n

\n \"Luna\"\n

\n

npm desktop manager for handling npm dependencies. Supported platforms: OS X Windows and Linux.

\n
\n

\"Build\n\"CodeFactor\"\n\"PRs\n\"NPM\n\"FOSSA\n\n\"License:\n\n\"Active

\n

Motivation

\n

Luna was created with main purpose to provide a flexible and modern UI for npm dependencies management. You can install, update and uninstall packages using a user interface build on latest web technologies.

\n

Features

\n\n

Screenshots

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n

How it works

\n

The Renderer Process architecture:

\n\n
\n
\n \n
\n
\n

Usage

\n

Install application's dependencies:

\n

npm install

\n

Start the application

\n

npm start

\n

Start the development server and run the application in development mode:

\n

npm run dev

\n

Binaries

\n

All binaries of the latest version are uploaded to the releases

\n

Tech Stack

\n\n

GreeceJS meetup presentation

\n

You can view my presentation in the GreeceJS meetup at http://bit.ly/2RES3AN

\n

Contributing and Issues

\n

Contributions, issues and feature requests are welcome.
Feel free to check issues page.

\n

Pull requests are always welcome. 💪
\nBe sure to merge the latest from \"upstream\" before making a pull request. 🙏

\n

License

\n

Copyright © 2020 rvpanoz. This project is GPL-3.0 licensed.

\n

\"FOSSA

\n
\n

In memory of my friend luna ❤️

\n
", "readmeOriginal": "

Luna - npm management through a modern UI. Built with Electron 🌺

\n

\n \"Luna\"\n

\n

npm desktop manager for handling npm dependencies. Supported platforms: OS X Windows and Linux.

\n
\n

\"Build\n\"CodeFactor\"\n\"PRs\n\"NPM\n\"FOSSA\n\n\"License:\n\n\"Active

\n

Motivation

\n

Luna was created with main purpose to provide a flexible and modern UI for npm dependencies management. You can install, update and uninstall packages using a user interface build on latest web technologies.

\n

Features

\n\n

Screenshots

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n

How it works

\n

The Renderer Process architecture:

\n\n
\n
\n \n
\n
\n

Usage

\n

Install application's dependencies:

\n

npm install

\n

Start the application

\n

npm start

\n

Start the development server and run the application in development mode:

\n

npm run dev

\n

Binaries

\n

All binaries of the latest version are uploaded to the releases

\n

Tech Stack

\n\n

GreeceJS meetup presentation

\n

You can view my presentation in the GreeceJS meetup at http://bit.ly/2RES3AN

\n

Contributing and Issues

\n

Contributions, issues and feature requests are welcome.
Feel free to check issues page.

\n

Pull requests are always welcome. 💪
\nBe sure to merge the latest from \"upstream\" before making a pull request. 🙏

\n

License

\n

Copyright © 2020 rvpanoz. This project is GPL-3.0 licensed.

\n

\"FOSSA

\n
\n

In memory of my friend luna ❤️

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.573Z" }, "markdown-c3": { "readmeCleaned": "

Markdown C3

\n

A Markdown Editor and Previewer built with Construct 3 and ElectronJs

\n

Link

\n\n

\"animated-gif\"

\n

Version 1.0.0

\n

License MIT © 2018 - Samuele de Tomasi

\n

GitHub el3um4s/markdown-c3

\n

\"screenshot\"

\n

Created with:

\n\n
", "readmeOriginal": "

Markdown C3

\n

A Markdown Editor and Previewer built with Construct 3 and ElectronJs

\n

Link

\n\n

\"animated-gif\"

\n

Version 1.0.0

\n

License MIT © 2018 - Samuele de Tomasi

\n

GitHub el3um4s/markdown-c3

\n

\"screenshot\"

\n

Created with:

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:58.591Z" }, "markdownify": { "readmeCleaned": "

\n
\n \"Markdownify\"\n
\n Markdownify\n
\n

\n

A minimal Markdown Editor desktop app built on top of Electron.

\n

\n \n \"Gitter\"\n \n \n \n \n \n \n \n \n

\n

\n Key Features •\n How To Use •\n Download •\n Credits •\n Related •\n License\n

\n

\"screenshot\"

\n

Key Features

\n\n

How To Use

\n

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\n$ git clone https://github.com/amitmerchant1990/electron-markdownify\n\n# Go into the repository\n$ cd electron-markdownify\n\n# Install dependencies\n$ npm install\n\n# Run the app\n$ npm start
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Download

\n

You can download the latest installable version of Markdownify for Windows, macOS and Linux.

\n

Emailware

\n

Markdownify is an emailware. Meaning, if you liked using this app or it has helped you in any way, I'd like you send me an email at bullredeyes@gmail.com about anything you'd want to say about this software. I'd really appreciate it!

\n

Credits

\n

This software uses the following open source packages:

\n\n

Related

\n

markdownify-web - Web version of Markdownify

\n

Support

\n

\"Buy

\n

Or

\n\n\t\n\n

You may also like...

\n\n

License

\n

MIT

\n
\n
\n

amitmerchant.com  · \nGitHub @amitmerchant1990  · \nTwitter @amit_merchant

\n
\n
", "readmeOriginal": "

\n
\n \"Markdownify\"\n
\n Markdownify\n
\n

\n

A minimal Markdown Editor desktop app built on top of Electron.

\n

\n \n \"Gitter\"\n \n \n \n \n \n \n \n \n

\n

\n Key Features •\n How To Use •\n Download •\n Credits •\n Related •\n License\n

\n

\"screenshot\"

\n

Key Features

\n\n

How To Use

\n

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\n$ git clone https://github.com/amitmerchant1990/electron-markdownify\n\n# Go into the repository\n$ cd electron-markdownify\n\n# Install dependencies\n$ npm install\n\n# Run the app\n$ npm start
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Download

\n

You can download the latest installable version of Markdownify for Windows, macOS and Linux.

\n

Emailware

\n

Markdownify is an emailware. Meaning, if you liked using this app or it has helped you in any way, I'd like you send me an email at bullredeyes@gmail.com about anything you'd want to say about this software. I'd really appreciate it!

\n

Credits

\n

This software uses the following open source packages:

\n\n

Related

\n

markdownify-web - Web version of Markdownify

\n

Support

\n

\"Buy

\n

Or

\n\n\t\n\n

You may also like...

\n\n

License

\n

MIT

\n
\n
\n

amitmerchant.com  · \nGitHub @amitmerchant1990  · \nTwitter @amit_merchant

\n
\n
", "readmeFetchedAt": "2022-05-10T00:07:58.745Z" }, "mattermost": { "readmeCleaned": "

Mattermost Desktop

\n

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. This repo is for the native desktop application that's built on Electron; it runs on Windows, Mac, and Linux.

\n

Originally created as \"electron-mattermost\" by Yuya Ochiai.

\n

\"mm-desktop-screenshot\"

\n

\"Circle

\n

Features

\n

Desktop integration

\n\n

Usage

\n

Installation

\n

Detailed guides are available at docs.mattermost.com.

\n
    \n
  1. Download a file from the downloads page or from the releases page.
  2. \n
  3. Run the installer or unzip the archive.
  4. \n
  5. Launch Mattermost from your Applications folder, menu, or the unarchived folder.
  6. \n
  7. On the first launch, please enter a name and URL for your Mattermost server. For example, https://mattermost.example.com.
  8. \n
\n

Configuration

\n

You can show the dialog from menu bar.

\n

Configuration will be saved into Electron's userData directory:

\n\n

A custom data directory location can be specified with:

\n\n

Custom App Deployments

\n

Our docs provide a guide on how to customize and distribute your own Mattermost Desktop App, including how to distribute the official Windows Desktop App silently to end users, pre-configured with the server URL and other app settings.

\n

Development and Making Contributions

\n

Our developer guide has detailed information on how to set up your development environment, develop, and test changes to the Desktop App.

\n
", "readmeOriginal": "

Mattermost Desktop

\n

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. This repo is for the native desktop application that's built on Electron; it runs on Windows, Mac, and Linux.

\n

Originally created as \"electron-mattermost\" by Yuya Ochiai.

\n

\"mm-desktop-screenshot\"

\n

\"Circle

\n

Features

\n

Desktop integration

\n\n

Usage

\n

Installation

\n

Detailed guides are available at docs.mattermost.com.

\n
    \n
  1. Download a file from the downloads page or from the releases page.
  2. \n
  3. Run the installer or unzip the archive.
  4. \n
  5. Launch Mattermost from your Applications folder, menu, or the unarchived folder.
  6. \n
  7. On the first launch, please enter a name and URL for your Mattermost server. For example, https://mattermost.example.com.
  8. \n
\n

Configuration

\n

You can show the dialog from menu bar.

\n

Configuration will be saved into Electron's userData directory:

\n\n

A custom data directory location can be specified with:

\n\n

Custom App Deployments

\n

Our docs provide a guide on how to customize and distribute your own Mattermost Desktop App, including how to distribute the official Windows Desktop App silently to end users, pre-configured with the server URL and other app settings.

\n

Development and Making Contributions

\n

Our developer guide has detailed information on how to set up your development environment, develop, and test changes to the Desktop App.

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.811Z" }, "masscode": { "readmeCleaned": "

massCode

\n
\n

Project is no longer maintained, and may have bugs and security issues. Feel free to fork but no pull request or security alert will be answered.

\n

This is the repository for massCode v1. A new version of massCode is available in this repository.

\n
\n

A free and open source code snippets manager for developers.

\n

\n \n

\n

\n \"GitHub\n \"GitHub\n \"GitHub\n \"GitHub\"\n

\n

\n \n

\n

\n Built with Electron, Vue & Monaco editor.\n
\n Inspired by applications like SnippetsLab and Quiver.\n

\n

\n Official Website | Documentation | Change Log\n

\n

Supporting

\n

massCode is open source project and completely free to use.

\n

However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support massCode development via the following methods:

\n
\n

\"Donate\n\"Donate\n\"Donate\n\"Donate

\n
\n

Overview

\n

The goal of creating this application was mostly my own growth as a developer. Also, I wanted this project to absorb the best of such applications already on the market (both free and paid). At the same time, I wanted this project to be an open source project.

\n

massCode allows you to organize snippets using multi-level folders as well as tags. Each snippet has fragments - tabs, which gives even greater level of organization

\n

A snippets manager must not only provide organization of snippets but also have a good code editor. That's why under the hood of massCode there's Monaco editor. Monaco is a modern code editor from Microsoft which is used in one of the most popular editor VS Code. The editor provides IntelliSense, validation for TypeScript, JavaScript, CSS, LESS, SCSS, JSON, HTML. It's also added a super productive Emmet and Prettier to code formatter.

\n

Development

\n
# install dependencies\nyarn\n# serve with hot reload\nyarn dev
\n

Building

\n
## build application for production\nyarn build
\n

License

\n

AGPL-3.0

\n

Copyright (c) 2019-present, Anton Reshetov.

\n
", "readmeOriginal": "

massCode

\n
\n

Project is no longer maintained, and may have bugs and security issues. Feel free to fork but no pull request or security alert will be answered.

\n

This is the repository for massCode v1. A new version of massCode is available in this repository.

\n
\n

A free and open source code snippets manager for developers.

\n

\n \n

\n

\n \"GitHub\n \"GitHub\n \"GitHub\n \"GitHub\"\n

\n

\n \n

\n

\n Built with Electron, Vue & Monaco editor.\n
\n Inspired by applications like SnippetsLab and Quiver.\n

\n

\n Official Website | Documentation | Change Log\n

\n

Supporting

\n

massCode is open source project and completely free to use.

\n

However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support massCode development via the following methods:

\n
\n

\"Donate\n\"Donate\n\"Donate\n\"Donate

\n
\n

Overview

\n

The goal of creating this application was mostly my own growth as a developer. Also, I wanted this project to absorb the best of such applications already on the market (both free and paid). At the same time, I wanted this project to be an open source project.

\n

massCode allows you to organize snippets using multi-level folders as well as tags. Each snippet has fragments - tabs, which gives even greater level of organization

\n

A snippets manager must not only provide organization of snippets but also have a good code editor. That's why under the hood of massCode there's Monaco editor. Monaco is a modern code editor from Microsoft which is used in one of the most popular editor VS Code. The editor provides IntelliSense, validation for TypeScript, JavaScript, CSS, LESS, SCSS, JSON, HTML. It's also added a super productive Emmet and Prettier to code formatter.

\n

Development

\n
# install dependencies\nyarn\n# serve with hot reload\nyarn dev
\n

Building

\n
## build application for production\nyarn build
\n

License

\n

AGPL-3.0

\n

Copyright (c) 2019-present, Anton Reshetov.

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.828Z" }, "marktext": { "readmeCleaned": "

\"MarkText\"

\n

MarkText

\n
\n \n \"twitter\"\n \n
\n
\n 🔆 Next generation markdown editor 🌙
\n A simple and elegant open-source markdown editor that focused on speed and usability.
\n Available for Linux, macOS and Windows.\n
\n
\n
\n \n \n \"website\"\n \n \n \n \"LICENSE\"\n \n \n \n \"build\"\n \n \n \"build\"\n \n \n \n \"total\n \n \n \n \"latest\n \n \n \n \"sponsors\"\n \n
\n
\n

\n \n Website\n \n | \n \n Features\n \n | \n \n Downloads\n \n | \n \n Development\n \n | \n \n Contribution\n \n

\n
\n
\n Translations:\n \n 🇨🇳\n \n \n 🇹🇼\n \n \n 🇵🇱\n \n \n 🇯🇵\n \n \n 🇫🇷\n \n \n 🇹🇷\n \n \n 🇪🇸\n \n \n 🇵🇹\n \n \n 🇰🇷\n \n
\n
\n This Markdown editor that could. Built with ❤︎ by\n Jocs and\n \n contributors\n \n .\n \n
\n
\n

Supporting MarkText

\n

MarkText is an MIT licensed open source project, and the latest version will always be downloadable for free from the GitHub release page. MarkText is still in development, and its development is inseparable from all sponsors. I hope you join them:

\n\n
What's the difference between Patreon and Open Collective?
\n

Patreon: Funds will be directly sponsored to Luo Ran (@jocs) who created MarkText and continues to maintain it.\nOpen Collective: All expenses are transparent. The funds will be used for the development and maintenance of MarkText, funding online and offline activities, and acquiring other necessary resources.\nNames and company logos of all sponsors (from both Patreon and Open Collective) will appear on the official website for MarkText and in its README.md file.

\n

Special Sponsors

\n\n \n\n

Platinum Sponsors

\n\n \n\n

Gold Sponsors

\n\n \n\n

Silver Sponsors

\n\n \n\n

Bronze Sponsors

\n\n \n\n

Backers

\n\n \n\n

Screenshot

\n

\"\"

\n

Features

\n\n

🌙themes🔆

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Cadmium LightDark
\"\"\"\"
Graphite LightMaterial Dark
\"\"\"\"
Ulysses LightOne Dark
\"\"\"\"
\n

😸Edit modes🐶

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Source CodeTypewriterFocus
\"\"\"\"\"\"
\n

Why make another editor?

\n
    \n
  1. I love writing. I have used a lot of markdown editors, yet there is still not an editor that can fully meet my needs. I don't like to be disturbed when I write by some unbearable bug. MarkText uses virtual DOM to render pages which has the added benefits of being highly efficient and being open source. That way anyone who loves markdown and writing can use MarkText.
  2. \n
  3. As mentioned above, MarkText is completely free and open source and will be open source forever. We hope that all markdown lovers will contribute their own code and help develop MarkText into a popular markdown editor.
  4. \n
  5. There are many markdown editors and all have their own merits, some have features which others don't. It's difficult to satisfy each markdown users' needs but we hope MarkText will be able to satisfy each markdown user as much as possible. Although the latest MarkText is still not perfect, we will try to make it as best as we possibly can.
  6. \n
\n

Download and Installation

\n

\"platform\"

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\"\"\"\"\"\"
\"latest\"latest\"latest
\n

Want to see new features of the latest version? Please refer to CHANGELOG.

\n

macOS

\n

You can either download the latest marktext-%version%.dmg from the release page or install MarkText using homebrew cask. To use Homebrew-Cask you just need to have Homebrew installed.

\n
brew install --cask mark-text
\n

Windows

\n

Simply download and install MarkText via setup wizard (marktext-setup-%version%.exe) and choose whether to install per-user or machine wide. Alternatively, install MarkText using a package manager such as Chocolatey or Winget.

\n

To use Chocolatey, you need to have Chocolatey installed:

\n
choco install marktext
\n

To use Winget, you need to have Winget installed:

\n
winget install marktext
\n

Linux

\n

Please follow the Linux installation instructions.

\n

Other

\n

All binaries for Linux, macOS and Windows can be downloaded from the release page. If a version is unavailable for your system, then please open an issue.

\n

Development

\n

If you wish to build MarkText yourself, please check out our build instructions.

\n\n

If you have any questions regarding MarkText, you are welcome to write an issue. When doing so please use the default format found when opening an issue. Of course, if you submit a PR directly, it will be greatly appreciated.

\n

Integrations

\n\n

Contribution

\n

MarkText is in development, please make sure to read the Contributing Guide before making a pull request. Want to add some features to MarkText? Refer to our roadmap and open issues.

\n

Contributors

\n

Thank you to all the people who have already contributed to MarkText[contributors].

\n

Special thanks to @Yasujizr who designed the MarkText logo.

\n

\n

License

\n

MIT.

\n

\"FOSSA

\n
", "readmeOriginal": "

\"MarkText\"

\n

MarkText

\n
\n \n \"twitter\"\n \n
\n
\n 🔆 Next generation markdown editor 🌙
\n A simple and elegant open-source markdown editor that focused on speed and usability.
\n Available for Linux, macOS and Windows.\n
\n
\n
\n \n \n \"website\"\n \n \n \n \"LICENSE\"\n \n \n \n \"build\"\n \n \n \"build\"\n \n \n \n \"total\n \n \n \n \"latest\n \n \n \n \"sponsors\"\n \n
\n
\n

\n \n Website\n \n | \n \n Features\n \n | \n \n Downloads\n \n | \n \n Development\n \n | \n \n Contribution\n \n

\n
\n
\n Translations:\n \n 🇨🇳\n \n \n 🇹🇼\n \n \n 🇵🇱\n \n \n 🇯🇵\n \n \n 🇫🇷\n \n \n 🇹🇷\n \n \n 🇪🇸\n \n \n 🇵🇹\n \n \n 🇰🇷\n \n
\n
\n This Markdown editor that could. Built with ❤︎ by\n Jocs and\n \n contributors\n \n .\n \n
\n
\n

Supporting MarkText

\n

MarkText is an MIT licensed open source project, and the latest version will always be downloadable for free from the GitHub release page. MarkText is still in development, and its development is inseparable from all sponsors. I hope you join them:

\n\n
What's the difference between Patreon and Open Collective?
\n

Patreon: Funds will be directly sponsored to Luo Ran (@jocs) who created MarkText and continues to maintain it.\nOpen Collective: All expenses are transparent. The funds will be used for the development and maintenance of MarkText, funding online and offline activities, and acquiring other necessary resources.\nNames and company logos of all sponsors (from both Patreon and Open Collective) will appear on the official website for MarkText and in its README.md file.

\n

Special Sponsors

\n\n \n\n

Platinum Sponsors

\n\n \n\n

Gold Sponsors

\n\n \n\n

Silver Sponsors

\n\n \n\n

Bronze Sponsors

\n\n \n\n

Backers

\n\n \n\n

Screenshot

\n

\"\"

\n

Features

\n\n

🌙themes🔆

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Cadmium LightDark
\"\"\"\"
Graphite LightMaterial Dark
\"\"\"\"
Ulysses LightOne Dark
\"\"\"\"
\n

😸Edit modes🐶

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Source CodeTypewriterFocus
\"\"\"\"\"\"
\n

Why make another editor?

\n
    \n
  1. I love writing. I have used a lot of markdown editors, yet there is still not an editor that can fully meet my needs. I don't like to be disturbed when I write by some unbearable bug. MarkText uses virtual DOM to render pages which has the added benefits of being highly efficient and being open source. That way anyone who loves markdown and writing can use MarkText.
  2. \n
  3. As mentioned above, MarkText is completely free and open source and will be open source forever. We hope that all markdown lovers will contribute their own code and help develop MarkText into a popular markdown editor.
  4. \n
  5. There are many markdown editors and all have their own merits, some have features which others don't. It's difficult to satisfy each markdown users' needs but we hope MarkText will be able to satisfy each markdown user as much as possible. Although the latest MarkText is still not perfect, we will try to make it as best as we possibly can.
  6. \n
\n

Download and Installation

\n

\"platform\"

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\"\"\"\"\"\"
\"latest\"latest\"latest
\n

Want to see new features of the latest version? Please refer to CHANGELOG.

\n

macOS

\n

You can either download the latest marktext-%version%.dmg from the release page or install MarkText using homebrew cask. To use Homebrew-Cask you just need to have Homebrew installed.

\n
brew install --cask mark-text
\n

Windows

\n

Simply download and install MarkText via setup wizard (marktext-setup-%version%.exe) and choose whether to install per-user or machine wide. Alternatively, install MarkText using a package manager such as Chocolatey or Winget.

\n

To use Chocolatey, you need to have Chocolatey installed:

\n
choco install marktext
\n

To use Winget, you need to have Winget installed:

\n
winget install marktext
\n

Linux

\n

Please follow the Linux installation instructions.

\n

Other

\n

All binaries for Linux, macOS and Windows can be downloaded from the release page. If a version is unavailable for your system, then please open an issue.

\n

Development

\n

If you wish to build MarkText yourself, please check out our build instructions.

\n\n

If you have any questions regarding MarkText, you are welcome to write an issue. When doing so please use the default format found when opening an issue. Of course, if you submit a PR directly, it will be greatly appreciated.

\n

Integrations

\n\n

Contribution

\n

MarkText is in development, please make sure to read the Contributing Guide before making a pull request. Want to add some features to MarkText? Refer to our roadmap and open issues.

\n

Contributors

\n

Thank you to all the people who have already contributed to MarkText[contributors].

\n

Special thanks to @Yasujizr who designed the MarkText logo.

\n

\n

License

\n

MIT.

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:07:58.863Z" }, "md5app": { "readmeCleaned": "

\n

MD5 Application

\n

It's a free application that creates and verifies an MD5 hash value.

\n

Screenshots

\n

\"ss1\"\n\"ss2\"\n\"ss3\"

\n

Download

\n

You can simply choose the suitable installation for your Windows OS in the releases section.

\n

Test your first hash with the app!

\n\n
", "readmeOriginal": "

\n

MD5 Application

\n

It's a free application that creates and verifies an MD5 hash value.

\n

Screenshots

\n

\"ss1\"\n\"ss2\"\n\"ss3\"

\n

Download

\n

You can simply choose the suitable installation for your Windows OS in the releases section.

\n

Test your first hash with the app!

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:58.963Z" }, "mdp": { "readmeCleaned": "

\n

mdp

\n

markdown preview using marked, highlight.js, mermaid, node-emoji and live reload

\n

https://ericlink.github.io/mdp/

\n

\"markdown.png\"

\n

\"mermaid.png\"

\n

features

\n

highlight.js

\n

syntax highlighting https://highlightjs.org/

\n

mermaid diagrams

\n

https://mermaidjs.github.io/

\n

node-emoji

\n

https://github.com/omnidan/node-emoji

\n

supported emoji

\n

marked markdown parsing

\n

github flavored markdown

\n

https://marked.js.org/

\n

https://github.com/markedjs/marked

\n

example.md

\n

keys

\n

Open as HTML ⌘K

\n

Edit Markdown ⌘E

\n

Zoom - zoom in ⌘+, zoom out ⌘-, actual size ⌘0

\n

macOS

\n

full screen support

\n

dark mode window

\n

command line

\n

put mdp.app/Contents/Resources/app/package/mdp script in your path

\n

logs

\n

on Linux - ~/.config/<app name>/log.log

\n

on macOS - ~/Library/Logs/<app name>/log.log

\n

on Windows - %USERPROFILE%\\AppData\\Roaming\\<app name>\\log.log

\n
", "readmeOriginal": "

\n

mdp

\n

markdown preview using marked, highlight.js, mermaid, node-emoji and live reload

\n

https://ericlink.github.io/mdp/

\n

\"markdown.png\"

\n

\"mermaid.png\"

\n

features

\n

highlight.js

\n

syntax highlighting https://highlightjs.org/

\n

mermaid diagrams

\n

https://mermaidjs.github.io/

\n

node-emoji

\n

https://github.com/omnidan/node-emoji

\n

supported emoji

\n

marked markdown parsing

\n

github flavored markdown

\n

https://marked.js.org/

\n

https://github.com/markedjs/marked

\n

example.md

\n

keys

\n

Open as HTML ⌘K

\n

Edit Markdown ⌘E

\n

Zoom - zoom in ⌘+, zoom out ⌘-, actual size ⌘0

\n

macOS

\n

full screen support

\n

dark mode window

\n

command line

\n

put mdp.app/Contents/Resources/app/package/mdp script in your path

\n

logs

\n

on Linux - ~/.config/<app name>/log.log

\n

on macOS - ~/Library/Logs/<app name>/log.log

\n

on Windows - %USERPROFILE%\\AppData\\Roaming\\<app name>\\log.log

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.035Z" }, "mediachips": { "readmeCleaned": "

\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub

\n

\n

mediaChips

\n

Organize your video library with ease and convenience.
\nAdd any information to your videos to make them easier to find, filter and sort.
\nThis is an open source desktop application for Windows, Mac and Linux.

\n

🌐 Download the app from mediachips.app

\n

🧑‍🤝‍🧑 Links to communities Discord \"Discord\" Reddit \"Reddit\" Patreon \"Patreon\"

\n\n

😉 Useful links

\n\n

🤷 FAQ

\n

Q: I found a bug / I want to add a new function
\nA: Open the issue on GitHub. Or write in one of the communities (from most popular to least): Discord, Patreon, Reddit.

\n

Q: Are you planning to support images?
\nA: Yes. I'll get to that soon.

\n

🎞️ YouTube video demonstrating the application

\n

\"IMAGE

\n

🖐️ Main Features

\n

For a complete list of functions and how to use them, see the 📖 Documentation

\n\n

🖼️ View of app

\n

📹 Video cards

\n

\"videos\"

\n

✏️ Add information to the video card

\n

\"video-edit\"

\n

🏷️ Meta cards

\n

\"meta-cards\"

\n

📽️ Player

\n

\"player\"

\n
", "readmeOriginal": "

\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub

\n

\n

mediaChips

\n

Organize your video library with ease and convenience.
\nAdd any information to your videos to make them easier to find, filter and sort.
\nThis is an open source desktop application for Windows, Mac and Linux.

\n

🌐 Download the app from mediachips.app

\n

🧑‍🤝‍🧑 Links to communities Discord \"Discord\" Reddit \"Reddit\" Patreon \"Patreon\"

\n\n

😉 Useful links

\n\n

🤷 FAQ

\n

Q: I found a bug / I want to add a new function
\nA: Open the issue on GitHub. Or write in one of the communities (from most popular to least): Discord, Patreon, Reddit.

\n

Q: Are you planning to support images?
\nA: Yes. I'll get to that soon.

\n

🎞️ YouTube video demonstrating the application

\n

\"IMAGE

\n

🖐️ Main Features

\n

For a complete list of functions and how to use them, see the 📖 Documentation

\n\n

🖼️ View of app

\n

📹 Video cards

\n

\"videos\"

\n

✏️ Add information to the video card

\n

\"video-edit\"

\n

🏷️ Meta cards

\n

\"meta-cards\"

\n

📽️ Player

\n

\"player\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.127Z" }, "media-dupes": { "readmeCleaned": "

\n \n

\n
\n

media-dupes

\n

a minimal content duplicator for common media services like youtube

\n

available for:

\n

\"linux\"\n\"apple\"\n\"windows\"

\n

\"DeepScan\n\"Codacy\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"Merged\n\"GitHub\n\"GitHub\n\"jsdoc\"\n\"GitHub

\n

\"ui\"

\n
\n

project is discontinued

\n

about

\n

media-dupes can1:

\n\n

media-dupes is:

\n\n

getting started

\n

download

\n

You'll find the latest releases here.

\n

install

\n

Please see the installation instructions for more details.

\n

updates

\n

media-dupes checks on application launch if there is a newer media-dupes version available.\nUpdates must be installed manually as automatic updating of electron applications requires that the builds are code-signed, which i can't provide so far.

\n

media-dupes checks as well on application launch if there are updates available for the bundled youtube-dl tool.

\n

Be aware:

\n

Updating the bundled youtube-dl package is only possible if the user has write access to the media-dupes installation path (which does not work for all available packages/installation types).

\n

changelog

\n

Please see the changelog for more details.

\n

license

\n

Please see the LICENSE for more details.

\n

debugging / verbose / logging

\n

Please see the verbose informations for more details.

\n

privacy

\n\n

Please check here how media-dupes is using sentry and why.

\n

discussion

\n

If you have question regarding media-dupes click here to create an issue

\n

support / fund

\n

If you want to support the development of media-dupes you can fund me on:

\n\n

disclosure

\n

media-dupes is not affiliated with any of the supported apps/services.

\n

developers

\n

You are always welcome to check and even improve the code.

\n\n
\n
footnotes
\n

1: Assuming the provided url is supported by youtube-dl.

\n
", "readmeOriginal": "

\n \n

\n
\n

media-dupes

\n

a minimal content duplicator for common media services like youtube

\n

available for:

\n

\"linux\"\n\"apple\"\n\"windows\"

\n

\"DeepScan\n\"Codacy\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"GitHub\n\"Merged\n\"GitHub\n\"GitHub\n\"jsdoc\"\n\"GitHub

\n

\"ui\"

\n
\n

project is discontinued

\n

about

\n

media-dupes can1:

\n\n

media-dupes is:

\n\n

getting started

\n

download

\n

You'll find the latest releases here.

\n

install

\n

Please see the installation instructions for more details.

\n

updates

\n

media-dupes checks on application launch if there is a newer media-dupes version available.\nUpdates must be installed manually as automatic updating of electron applications requires that the builds are code-signed, which i can't provide so far.

\n

media-dupes checks as well on application launch if there are updates available for the bundled youtube-dl tool.

\n

Be aware:

\n

Updating the bundled youtube-dl package is only possible if the user has write access to the media-dupes installation path (which does not work for all available packages/installation types).

\n

changelog

\n

Please see the changelog for more details.

\n

license

\n

Please see the LICENSE for more details.

\n

debugging / verbose / logging

\n

Please see the verbose informations for more details.

\n

privacy

\n\n

Please check here how media-dupes is using sentry and why.

\n

discussion

\n

If you have question regarding media-dupes click here to create an issue

\n

support / fund

\n

If you want to support the development of media-dupes you can fund me on:

\n\n

disclosure

\n

media-dupes is not affiliated with any of the supported apps/services.

\n

developers

\n

You are always welcome to check and even improve the code.

\n\n
\n
footnotes
\n

1: Assuming the provided url is supported by youtube-dl.

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.137Z" }, "metastream": { "readmeCleaned": "

\n
\n \n \"Metastream\"\n \n
\n Metastream\n
\n
\n

\n

Watch streaming media with friends.

\n

\n \"discord\"\n \"patreon\"\n

\n

Features

\n\n

Are you a website owner?

\n

Easily add watch party support to your website by redirecting the user to Metastream.

\n
Watch in Metastream\">
<a href=\"https://app.getmetastream.com/?url=https://youtu.be/3bNITQR4Uso\">Watch in Metastream</a>
\n

Roadmap

\n\n

Have a feature in mind? Make a request by creating a GitHub issue.

\n

Screenshots

\n

\"Screenshot1\"

\n

\"Screenshot2\"

\n

\"Screenshot3\"

\n

How to Contribute

\n

Get the code

\n

Requires Yarn for monorepo workspaces.

\n
git clone https://github.com/samuelmaddock/metastream.git\ncd metastream\nyarn\n
\n

Start the dev server

\n

Creates a development web server accessible from http://localhost:8080

\n
cd packages/metastream-signal-server\nyarn build\ncd ../packages/metastream-app\nyarn start\n
\n

Build the web app

\n

Produces the web app build which gets deployed to https://app.getmetastream.com

\n
cd packages/metastream-app\nyarn build\n
\n

Legacy desktop app

\n

Metastream used to be an Electron desktop application until development was stopped due to roadblocks in acquiring a Widevine license. The latest version can be found on the GitHub releases page. Please note that the legacy app is insecure and not recommended.

\n
", "readmeOriginal": "

\n
\n \n \"Metastream\"\n \n
\n Metastream\n
\n
\n

\n

Watch streaming media with friends.

\n

\n \"discord\"\n \"patreon\"\n

\n

Features

\n\n

Are you a website owner?

\n

Easily add watch party support to your website by redirecting the user to Metastream.

\n
<a href=\"https://app.getmetastream.com/?url=https://youtu.be/3bNITQR4Uso\">Watch in Metastream</a>
\n

Roadmap

\n\n

Have a feature in mind? Make a request by creating a GitHub issue.

\n

Screenshots

\n

\"Screenshot1\"

\n

\"Screenshot2\"

\n

\"Screenshot3\"

\n

How to Contribute

\n

Get the code

\n

Requires Yarn for monorepo workspaces.

\n
git clone https://github.com/samuelmaddock/metastream.git\ncd metastream\nyarn\n
\n

Start the dev server

\n

Creates a development web server accessible from http://localhost:8080

\n
cd packages/metastream-signal-server\nyarn build\ncd ../packages/metastream-app\nyarn start\n
\n

Build the web app

\n

Produces the web app build which gets deployed to https://app.getmetastream.com

\n
cd packages/metastream-app\nyarn build\n
\n

Legacy desktop app

\n

Metastream used to be an Electron desktop application until development was stopped due to roadblocks in acquiring a Widevine license. The latest version can be found on the GitHub releases page. Please note that the legacy app is insecure and not recommended.

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.326Z" }, "metronome-wallet": { "readmeCleaned": "

\n \"Metronome\n

\n

💻💰 Metronome Wallet for desktop computers

\n

\"Build\n\"JavaScript

\n

\"Metronome

\n

Development

\n

Create a local .env file with the following content:

\n
ENABLED_CHAINS=\nROPSTEN_NODE_URL=
\n

Requirements

\n\n

Launch

\n
# Install dependencies\nnpm i\n\n# Run dev mode\nnpm run dev
\n

Troubleshooting

\n\n
npm i --global --production windows-build-tools
\n

Logs

\n

The log output is in the next directories:

\n\n

process-type being equal to main, renderer or worker

\n

More info github.com/megahertz/electron-log.

\n

Settings

\n\n

To completely remove the application and start over, remove the settings file too.

\n

Production Build

\n
# Run build process\nnpm run dist\n\n# or\n\n# Run build process and publish to GitHub releases\nnpm run release
\n

macOs

\n

The app needs to be signed and notarized.\nTo do so, install the .p12 file in the local keychain (double click on it).

\n

The certificate is obtained from the Apple Developer website.\nThe Developer ID Application is required.\nThe Developer ID Installer may be required too.\nOnce obtained, the .cer files have to be converted to .p12 by providing the certificate passwords/private keys.

\n

In addition to that, the following environment variables have to be set to publish:

\n
# See below to complete these two:\nAPPLE_ID=\nAPPLE_ID_PASSWORD=\n# See `electron-build` docs on how to complete these two:\nCSC_LINK=\nCSC_KEY_PASSWORD=\n# Github personal access token to upload the files to repo releases.\nGH_TOKEN=
\n

Follow these steps to create an app specific password.\nThe APPLE_ID variable is the Apple ID used to create the password.\nAPPLE_ID_PASSWORD is the password Apple created for the app.

\n

The GitHub personal access token needs repo permissions.\nSee the docs on how to create a personal access access token for more information.

\n

The signing certificate shall be in the root folder of the repository.\nThe certificate password will be required during the signing process.\nThe signing process may take several minutes because notarization requieres uploading the app to Apple.

\n

In order to verify that the application has been successfully signed and notarized, run:

\n
# Verifies the app has been signed\ncodesign --verify --verbose ./dist/mac/Metronome\\ Wallet.app\n\n# Verifies the app has been notarized\nspctl -a -t exec -vvv ./dist/mac/Metronome\\ Wallet.app
\n

Windows

\n

To sign the application, a certificate for the Microsoft Authenticode platform is required.\nThe certificate, a .p7b file, will then be required during the build process.

\n

Current provider is DigiCert.

\n

License

\n

MIT

\n
", "readmeOriginal": "

\n \"Metronome\n

\n

💻💰 Metronome Wallet for desktop computers

\n

\"Build\n\"JavaScript

\n

\"Metronome

\n

Development

\n

Create a local .env file with the following content:

\n
ENABLED_CHAINS=\nROPSTEN_NODE_URL=
\n

Requirements

\n\n

Launch

\n
# Install dependencies\nnpm i\n\n# Run dev mode\nnpm run dev
\n

Troubleshooting

\n\n
npm i --global --production windows-build-tools
\n

Logs

\n

The log output is in the next directories:

\n\n

process-type being equal to main, renderer or worker

\n

More info github.com/megahertz/electron-log.

\n

Settings

\n\n

To completely remove the application and start over, remove the settings file too.

\n

Production Build

\n
# Run build process\nnpm run dist\n\n# or\n\n# Run build process and publish to GitHub releases\nnpm run release
\n

macOs

\n

The app needs to be signed and notarized.\nTo do so, install the .p12 file in the local keychain (double click on it).

\n

The certificate is obtained from the Apple Developer website.\nThe Developer ID Application is required.\nThe Developer ID Installer may be required too.\nOnce obtained, the .cer files have to be converted to .p12 by providing the certificate passwords/private keys.

\n

In addition to that, the following environment variables have to be set to publish:

\n
# See below to complete these two:\nAPPLE_ID=\nAPPLE_ID_PASSWORD=\n# See `electron-build` docs on how to complete these two:\nCSC_LINK=\nCSC_KEY_PASSWORD=\n# Github personal access token to upload the files to repo releases.\nGH_TOKEN=
\n

Follow these steps to create an app specific password.\nThe APPLE_ID variable is the Apple ID used to create the password.\nAPPLE_ID_PASSWORD is the password Apple created for the app.

\n

The GitHub personal access token needs repo permissions.\nSee the docs on how to create a personal access access token for more information.

\n

The signing certificate shall be in the root folder of the repository.\nThe certificate password will be required during the signing process.\nThe signing process may take several minutes because notarization requieres uploading the app to Apple.

\n

In order to verify that the application has been successfully signed and notarized, run:

\n
# Verifies the app has been signed\ncodesign --verify --verbose ./dist/mac/Metronome\\ Wallet.app\n\n# Verifies the app has been notarized\nspctl -a -t exec -vvv ./dist/mac/Metronome\\ Wallet.app
\n

Windows

\n

To sign the application, a certificate for the Microsoft Authenticode platform is required.\nThe certificate, a .p7b file, will then be required during the build process.

\n

Current provider is DigiCert.

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.399Z" }, "melodie": { "readmeCleaned": "
\n

Mélodie

\n

\"GitHub\n\"GitHub\n\"GitHub\"\n\"CI\"\n\"Codacy\n\"Codacy

\n

Melodie is a portable, simple-as-pie music player.

\n

\"preview\"

\n
\n

There are thunsands of them in the wild. This mine is an excuse for learning Electron, Svelte and reactive programming.

\n

Installation

\n

\"Get\n\"English

\n

You will find other installers on the releases page.

\n

Please note that AppImage Snap and NSIS installer will automatically update to the latest available version.

\n

If you run Mélodie from a zip or using DMG/Windows portable version, you will have to download updates by yourself.

\n

Note for Windows users

\n

Windows installers are not signed.

\n

When you will run the .exe files, Windows will warn you that the source is insecure (it is not!).\n

\n

It is possible to bypass the warning by clicking on the \"More information\" link, then on the Install button\n

\n

If you install the app through the Windows App Store, you'll get no warning, since the store team reviewed and approved it.

\n

Note for MacOS users

\n

DMG image is not signed.

\n

After you will have downloaded the .dmg file, open it and drag the Mélodie icon to the Application Icon.\nThen, MacOS will prevent you from opening Mélodie as I haven't paid for an app deployment certificate.

\n

Once you will have closed the annoying warning, open you Security panel in settings, and go to General tab.\nThere, you should see the list of recently blocked application: Mélodie should be there.

\n

You can add it as an exception, and then run it\n(see: How to open an app that hasn’t been notarized or is from an unidentified developer).

\n

Another option is to open it with Control-click: it'll immediately register the app as an exception\n(see: Open a Mac app from an unidentified developer).

\n

TODOs

\n

features

\n\n

tools

\n\n

Bugs and known issues

\n
    \n
  1. \n

    When server is not reachable, attempts to establish new WebSocket connection takes longer and longer

    \n
  2. \n
  3. \n

    DMG package does not download updates: it requires zip, and we cannot build zip because of the accent in product name...

    \n
  4. \n
  5. \n

    Playlist models are not updated on tracks removal

    \n
  6. \n
  7. \n

    Undetected live changes: remove tracks and re-add them. This is a linux-only issue with chokidar

    \n\n
  8. \n
  9. \n

    When loading new folders, enqueuing or going to album details will give incomplete results. Going back and forth won't load new data

    \n
  10. \n
  11. \n

    Security: clean html in artist/album names (wrapWithRefs returns injectable markup)

    \n
  12. \n
  13. \n

    AppImage, when used with AppImageLauncher, fail to auto update

    \n
  14. \n
  15. \n

    If we knew current position in browser history, then we could disabled navigation button accordingly

    \n
  16. \n
  17. \n

    Page navigation: use:link doesn't work in tests and raise Svelte warning. a.href is fine

    \n
  18. \n
  19. \n

    Disklist/TrackTable dropdown does not consider scroll position (in storybook only)

    \n
  20. \n
  21. \n

    Testing input: fireEvent.change, input or keyUp does not trigger svelte's bind:value on input

    \n
  22. \n
  23. \n

    The test suite is becoming brittle

    \n
      \n
    1. \n

      Media service › triggerAlbumsEnrichment › saves first returned cover for album

      \n
      839 | expect(await fs.readFile(savedAlbums[0].media, 'utf8')).toEqual(\n | ^\">
      > 839 |       expect(await fs.readFile(savedAlbums[0].media, 'utf8')).toEqual(\n      |                                                               ^
      \n
    2. \n
    3. \n

      Media service › triggerAlbumsEnrichment › retries album with no cover but at least one restriced provided\nIs a 1ms difference in expected processedEpoch

      \n
    4. \n
    5. \n

      AddToPlaylist component › given some playlists › saves new playlist with all tracks\nThe dropdown menu is still visible (probably because of the animation)

      \n
    6. \n
    7. \n

      snackbars store > showSnack > uses the specified duration when enqueuing slacks

      \n
      96 | expect(snackbarCalls).toEqual([\n | ^\">
      - Expected  - 3\n+ Received  + 0\n\n> 96 |       expect(snackbarCalls).toEqual([\n     |                             ^
      \n
    8. \n
    \n
  24. \n
  25. \n

    The Media test do not pass on Windows: nock is not giving recorded bodies

    \n
  26. \n
\n

Data

\n

Mélodie is using SQLite3 to store settings, playlists and tracks's metadatas.\nSQLite3 stores everything in a single file, named db.sqlite3 and located into the application userData folder.

\n

Mélodie also stores artists artwork according to the ARTWORK_DESTINATION environment variable, sets to user's pictures folder in melodie-media folder.

\n

Configuring logs

\n

Log are written to a file, which location is set by LOG_DESTINATION env variable.\nMélodie Desktop sets LOG_DESTINATION to logs.txt in the application logs path.

\n

Log levels are configured in a file defined by LOG_LEVEL_FILE env variable.\nMélodie Desktop sets it to .levels in the application userData folder.

\n

Its syntax is:

\n
# this is a comment\nlogger-name=level\nwildcard*=level
\n

logger names are:

\n\n

and levels are (in order): trace (most verbose), debug, info, warn, error, fatal, silent (no logs)

\n

Wildcards can be at the beginning *tracks or the end models/*.\nIn case a logger name is matching several directives, the first always wins.

\n

You can edit the file, and trigger logger level refresh by sending SIGUSR2 to the application: kill -USR2 {pid} (first log issued contains pid)

\n

Running locally

\n

You'll need npm@7+ and node@16+

\n
git clone git@github.com:feugy/melodie.git\ncd melodie\nnpm i\nnpm start
\n

Testing

\n

The test suite works fine Linux, MacOS and Windows.

\n
npm t
\n

Core services network mocks (nocks)

\n

Some services are hitting external APIs, such as AudioDB.\nAs we don't want to flood them with test requests, these are using network mocks.

\n

To use real services, run your tests with REAL_NETWORK environment variables (whatever its value).\nWhen using real services, update the mocks by defining UPDATE_NOCKS environment variables (whatever its value).\nNocks will stay unchanged on test failure.

\n

Some providers need access keys during tests. Just make a .env file in the root folder, with the appropriate values:

\n
DISCOGS_TOKEN=XYZ\nAUDIODB_KEY=1\n
\n

Promo site

\n

Located under apps/site, it publicize Mélodie and has a button to download latest release artifacts.

\n

Caveats:

\n\n

Trying snaps out

\n

Working with snaps locally isn't really easy.

\n
    \n
  1. \n

    install the real app from the store:

    \n
    snap install melodie
    \n
  2. \n
  3. \n

    then package your app in debug mode, to access the unpacked snap:

    \n
    DEBUG=electron-builder npm run release:artifacts --workspace apps/desktop -- -l
    \n
  4. \n
  5. \n

    copy missing files to the unpacked snap, and keep your latest changes:

    \n
    mkdir dist/__snap-amd64/tmp\nmv dist/__snap-amd64/* dist/__snap-amd64/tmp\ncp -r /snap/melodie/current/* dist/__snap-amd64/\ncp -r dist/linux-unpacked/* dist/__snap-amd64/\nmv dist/__snap-amd64/tmp/* dist/__snap-amd64/*
    \n
  6. \n
  7. \n

    now use your development code:

    \n
    snap try dist/__snap-amd64\nmelodie
    \n
  8. \n
  9. \n

    and revert when you're done:

    \n
    snap revert melodie
    \n
  10. \n
\n

Checking AppImage

\n

To check that generated AppImage works:

\n
    \n
  1. \n

    Install AppImageLauncher if not done yet

    \n
  2. \n
  3. \n

    Download AppImageLint

    \n
  4. \n
  5. \n

    Package application for linux

    \n
    npm run release:artifacts --workspace apps/desktop -- -l
    \n
  6. \n
  7. \n

    Lint your AppImage:

    \n
    appimagelint dist/Mélodie.AppImage
    \n
  8. \n
  9. \n

    Double click on ./dist/Mélodie.AppImage and integrate it to your system.\nPlease check that the app starts, it can access to local files, its name and icon are correct in the launcher

    \n
  10. \n
\n

Releasing

\n

Release process is fairly automated: it will generate changelog, bump version, and build melodie for different platform, creating several artifacts which are either packages (snap, AppImage, Nsis, appx) or plain files (zip).

\n

Theses artifacts will be either published on their respective store (snapcraft, Windows App store...) or uploaded to github as a release.\nOnce a Github release is published, users who installed an auto-updatable package (snap, AppImage, Nsis, appx) will get the new version auto-magically.

\n

Windows App store release can not be automated: Github CI will build the appx package, but it must be manually submitted to the Windows App store.

\n
    \n
  1. \n

    When ready, bump the version on local machine:

    \n
    npm run release:bump
    \n

    (if you wish to get a pre-release, append -- --prerelease beta|alpha to the command line)

    \n
  2. \n
  3. \n

    Don't forget to update snapshots: the presentation site test depend on the version number.

    \n
    TAG=$(git describe --tags)\nTAG=${TAG::-11}\nnpm t --workspace apps/site -- --clearCache\nnpm t --workspace apps/site -- -u\ngit commit -a --amend --no-edit\ngit tag -f $TAG
    \n

    You shoud see 2 snapshots updated

    \n
  4. \n
  5. \n

    Then push tags to github, as it'll trigger the artifact creation:

    \n
    git push --follow-tags
    \n
  6. \n
  7. \n

    Finally, go to github releases, and edit the newest one:

    \n
      \n
    1. \n

      give it a code name

      \n
    2. \n
    3. \n

      copy the latest section of the changelog in the release body

      \n
    4. \n
    5. \n

      save it as draft

      \n
    6. \n
    7. \n

      Wait until the artifacts are published on your draft

      \n
    8. \n
    9. \n

      manually submit the new appx package to the Windows App store

      \n
    10. \n
    11. \n

      remove the appx package from artifact list: as it is unsigned, users can not install it from here

      \n
    12. \n
    13. \n

      publish your release

      \n
    14. \n
    15. \n

      go and slack off!

      \n
    16. \n
    \n
  8. \n
\n

Manual snap release

\n

Until this issue on Github Actions is fixed on Electron-builder, we're stuck with electron-builder@22.10.5 and we need to manually release on snap.

\n
    \n
  1. \n

    Clean up distribution, build snap file and extract it:

    \n
    rm -rf apps/desktop/dist/\nnpm -w apps/desktop  run release:artifacts -- -l snap\ncd apps/desktop/dist/\nrm -rf linux-unpacked builder-effective-config.yaml\nfile-roller -f *.snap .
    \n

    Then select the dist folder as target folder, and close the \"Could not open 'dist'\" error popup.

    \n
  2. \n
  3. \n

    Amend the meta/snap.yaml descriptor. At root level, replaces slots with:

    \n
    slots:\n  mpris:\n    interface: mpris\n    name: chromium
    \n

    Then within app.melodie.slots, remove - name

    \n

    Save the file

    \n
  4. \n
  5. \n

    Re-create snap file and publish it on snapcraft:

    \n
    rm -r *.snap\nsnapcraft pack . --output 'linux - Mélodie.snap'\nsnapcraft login\nsnapcraft upload --release=stable 'linux - Mélodie.snap'
    \n
  6. \n
\n

Publicise

\n

Mélodie is referenced on these stores and hubs:

\n\n

Notable facts

\n\n

How watch & diff works

\n\n

How missing artworks/covers retrieval works

\n\n
", "readmeOriginal": "
\n

Mélodie

\n

\"GitHub\n\"GitHub\n\"GitHub\"\n\"CI\"\n\"Codacy\n\"Codacy

\n

Melodie is a portable, simple-as-pie music player.

\n

\"preview\"

\n
\n

There are thunsands of them in the wild. This mine is an excuse for learning Electron, Svelte and reactive programming.

\n

Installation

\n

\"Get\n\"English

\n

You will find other installers on the releases page.

\n

Please note that AppImage Snap and NSIS installer will automatically update to the latest available version.

\n

If you run Mélodie from a zip or using DMG/Windows portable version, you will have to download updates by yourself.

\n

Note for Windows users

\n

Windows installers are not signed.

\n

When you will run the .exe files, Windows will warn you that the source is insecure (it is not!).\n

\n

It is possible to bypass the warning by clicking on the \"More information\" link, then on the Install button\n

\n

If you install the app through the Windows App Store, you'll get no warning, since the store team reviewed and approved it.

\n

Note for MacOS users

\n

DMG image is not signed.

\n

After you will have downloaded the .dmg file, open it and drag the Mélodie icon to the Application Icon.\nThen, MacOS will prevent you from opening Mélodie as I haven't paid for an app deployment certificate.

\n

Once you will have closed the annoying warning, open you Security panel in settings, and go to General tab.\nThere, you should see the list of recently blocked application: Mélodie should be there.

\n

You can add it as an exception, and then run it\n(see: How to open an app that hasn’t been notarized or is from an unidentified developer).

\n

Another option is to open it with Control-click: it'll immediately register the app as an exception\n(see: Open a Mac app from an unidentified developer).

\n

TODOs

\n

features

\n\n

tools

\n\n

Bugs and known issues

\n
    \n
  1. \n

    When server is not reachable, attempts to establish new WebSocket connection takes longer and longer

    \n
  2. \n
  3. \n

    DMG package does not download updates: it requires zip, and we cannot build zip because of the accent in product name...

    \n
  4. \n
  5. \n

    Playlist models are not updated on tracks removal

    \n
  6. \n
  7. \n

    Undetected live changes: remove tracks and re-add them. This is a linux-only issue with chokidar

    \n\n
  8. \n
  9. \n

    When loading new folders, enqueuing or going to album details will give incomplete results. Going back and forth won't load new data

    \n
  10. \n
  11. \n

    Security: clean html in artist/album names (wrapWithRefs returns injectable markup)

    \n
  12. \n
  13. \n

    AppImage, when used with AppImageLauncher, fail to auto update

    \n
  14. \n
  15. \n

    If we knew current position in browser history, then we could disabled navigation button accordingly

    \n
  16. \n
  17. \n

    Page navigation: use:link doesn't work in tests and raise Svelte warning. a.href is fine

    \n
  18. \n
  19. \n

    Disklist/TrackTable dropdown does not consider scroll position (in storybook only)

    \n
  20. \n
  21. \n

    Testing input: fireEvent.change, input or keyUp does not trigger svelte's bind:value on input

    \n
  22. \n
  23. \n

    The test suite is becoming brittle

    \n
      \n
    1. \n

      Media service › triggerAlbumsEnrichment › saves first returned cover for album

      \n
      > 839 |       expect(await fs.readFile(savedAlbums[0].media, 'utf8')).toEqual(\n      |                                                               ^
      \n
    2. \n
    3. \n

      Media service › triggerAlbumsEnrichment › retries album with no cover but at least one restriced provided\nIs a 1ms difference in expected processedEpoch

      \n
    4. \n
    5. \n

      AddToPlaylist component › given some playlists › saves new playlist with all tracks\nThe dropdown menu is still visible (probably because of the animation)

      \n
    6. \n
    7. \n

      snackbars store > showSnack > uses the specified duration when enqueuing slacks

      \n
      - Expected  - 3\n+ Received  + 0\n\n> 96 |       expect(snackbarCalls).toEqual([\n     |                             ^
      \n
    8. \n
    \n
  24. \n
  25. \n

    The Media test do not pass on Windows: nock is not giving recorded bodies

    \n
  26. \n
\n

Data

\n

Mélodie is using SQLite3 to store settings, playlists and tracks's metadatas.\nSQLite3 stores everything in a single file, named db.sqlite3 and located into the application userData folder.

\n

Mélodie also stores artists artwork according to the ARTWORK_DESTINATION environment variable, sets to user's pictures folder in melodie-media folder.

\n

Configuring logs

\n

Log are written to a file, which location is set by LOG_DESTINATION env variable.\nMélodie Desktop sets LOG_DESTINATION to logs.txt in the application logs path.

\n

Log levels are configured in a file defined by LOG_LEVEL_FILE env variable.\nMélodie Desktop sets it to .levels in the application userData folder.

\n

Its syntax is:

\n
# this is a comment\nlogger-name=level\nwildcard*=level
\n

logger names are:

\n\n

and levels are (in order): trace (most verbose), debug, info, warn, error, fatal, silent (no logs)

\n

Wildcards can be at the beginning *tracks or the end models/*.\nIn case a logger name is matching several directives, the first always wins.

\n

You can edit the file, and trigger logger level refresh by sending SIGUSR2 to the application: kill -USR2 {pid} (first log issued contains pid)

\n

Running locally

\n

You'll need npm@7+ and node@16+

\n
git clone git@github.com:feugy/melodie.git\ncd melodie\nnpm i\nnpm start
\n

Testing

\n

The test suite works fine Linux, MacOS and Windows.

\n
npm t
\n

Core services network mocks (nocks)

\n

Some services are hitting external APIs, such as AudioDB.\nAs we don't want to flood them with test requests, these are using network mocks.

\n

To use real services, run your tests with REAL_NETWORK environment variables (whatever its value).\nWhen using real services, update the mocks by defining UPDATE_NOCKS environment variables (whatever its value).\nNocks will stay unchanged on test failure.

\n

Some providers need access keys during tests. Just make a .env file in the root folder, with the appropriate values:

\n
DISCOGS_TOKEN=XYZ\nAUDIODB_KEY=1\n
\n

Promo site

\n

Located under apps/site, it publicize Mélodie and has a button to download latest release artifacts.

\n

Caveats:

\n\n

Trying snaps out

\n

Working with snaps locally isn't really easy.

\n
    \n
  1. \n

    install the real app from the store:

    \n
    snap install melodie
    \n
  2. \n
  3. \n

    then package your app in debug mode, to access the unpacked snap:

    \n
    DEBUG=electron-builder npm run release:artifacts --workspace apps/desktop -- -l
    \n
  4. \n
  5. \n

    copy missing files to the unpacked snap, and keep your latest changes:

    \n
    mkdir dist/__snap-amd64/tmp\nmv dist/__snap-amd64/* dist/__snap-amd64/tmp\ncp -r /snap/melodie/current/* dist/__snap-amd64/\ncp -r dist/linux-unpacked/* dist/__snap-amd64/\nmv dist/__snap-amd64/tmp/* dist/__snap-amd64/*
    \n
  6. \n
  7. \n

    now use your development code:

    \n
    snap try dist/__snap-amd64\nmelodie
    \n
  8. \n
  9. \n

    and revert when you're done:

    \n
    snap revert melodie
    \n
  10. \n
\n

Checking AppImage

\n

To check that generated AppImage works:

\n
    \n
  1. \n

    Install AppImageLauncher if not done yet

    \n
  2. \n
  3. \n

    Download AppImageLint

    \n
  4. \n
  5. \n

    Package application for linux

    \n
    npm run release:artifacts --workspace apps/desktop -- -l
    \n
  6. \n
  7. \n

    Lint your AppImage:

    \n
    appimagelint dist/Mélodie.AppImage
    \n
  8. \n
  9. \n

    Double click on ./dist/Mélodie.AppImage and integrate it to your system.\nPlease check that the app starts, it can access to local files, its name and icon are correct in the launcher

    \n
  10. \n
\n

Releasing

\n

Release process is fairly automated: it will generate changelog, bump version, and build melodie for different platform, creating several artifacts which are either packages (snap, AppImage, Nsis, appx) or plain files (zip).

\n

Theses artifacts will be either published on their respective store (snapcraft, Windows App store...) or uploaded to github as a release.\nOnce a Github release is published, users who installed an auto-updatable package (snap, AppImage, Nsis, appx) will get the new version auto-magically.

\n

Windows App store release can not be automated: Github CI will build the appx package, but it must be manually submitted to the Windows App store.

\n
    \n
  1. \n

    When ready, bump the version on local machine:

    \n
    npm run release:bump
    \n

    (if you wish to get a pre-release, append -- --prerelease beta|alpha to the command line)

    \n
  2. \n
  3. \n

    Don't forget to update snapshots: the presentation site test depend on the version number.

    \n
    TAG=$(git describe --tags)\nTAG=${TAG::-11}\nnpm t --workspace apps/site -- --clearCache\nnpm t --workspace apps/site -- -u\ngit commit -a --amend --no-edit\ngit tag -f $TAG
    \n

    You shoud see 2 snapshots updated

    \n
  4. \n
  5. \n

    Then push tags to github, as it'll trigger the artifact creation:

    \n
    git push --follow-tags
    \n
  6. \n
  7. \n

    Finally, go to github releases, and edit the newest one:

    \n
      \n
    1. \n

      give it a code name

      \n
    2. \n
    3. \n

      copy the latest section of the changelog in the release body

      \n
    4. \n
    5. \n

      save it as draft

      \n
    6. \n
    7. \n

      Wait until the artifacts are published on your draft

      \n
    8. \n
    9. \n

      manually submit the new appx package to the Windows App store

      \n
    10. \n
    11. \n

      remove the appx package from artifact list: as it is unsigned, users can not install it from here

      \n
    12. \n
    13. \n

      publish your release

      \n
    14. \n
    15. \n

      go and slack off!

      \n
    16. \n
    \n
  8. \n
\n

Manual snap release

\n

Until this issue on Github Actions is fixed on Electron-builder, we're stuck with electron-builder@22.10.5 and we need to manually release on snap.

\n
    \n
  1. \n

    Clean up distribution, build snap file and extract it:

    \n
    rm -rf apps/desktop/dist/\nnpm -w apps/desktop  run release:artifacts -- -l snap\ncd apps/desktop/dist/\nrm -rf linux-unpacked builder-effective-config.yaml\nfile-roller -f *.snap .
    \n

    Then select the dist folder as target folder, and close the \"Could not open 'dist'\" error popup.

    \n
  2. \n
  3. \n

    Amend the meta/snap.yaml descriptor. At root level, replaces slots with:

    \n
    slots:\n  mpris:\n    interface: mpris\n    name: chromium
    \n

    Then within app.melodie.slots, remove - name

    \n

    Save the file

    \n
  4. \n
  5. \n

    Re-create snap file and publish it on snapcraft:

    \n
    rm -r *.snap\nsnapcraft pack . --output 'linux - Mélodie.snap'\nsnapcraft login\nsnapcraft upload --release=stable 'linux - Mélodie.snap'
    \n
  6. \n
\n

Publicise

\n

Mélodie is referenced on these stores and hubs:

\n\n

Notable facts

\n\n

How watch & diff works

\n\n

How missing artworks/covers retrieval works

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:59.416Z" }, "merge-request-notifier": { "readmeCleaned": "

Merge Request Notifier

\n

This app shows your GitLab merge requests grouped by projects and WIP status. It is accessible from the system tray.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Light ModeDark Mode
\"App\"App
\n

Tray Icon

\n

In the system tray you wil see the number of all open merge requests.

\n

\"System

\n

Notification

\n

You will receive a desktop notification when a new merge request is created.\nIf you are not interested in \"work in progress\" merge request you can disable notifications for these. In addition you can disable notifications at all.

\n

\"Notification

\n

App Updates (macOS only)

\n

You will be always up to date with our integrated in app updates 🎉. Once there is a new update available you will be\nnotified with a prominent alert above the merge requests. On the details page you find the release notes from github.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
New Update AlertRelease Notes
\"New\"Release
\n

Installation

\n

macOS

\n

Manual installation

\n

The macOS installer is uploaded at the releases page. Please download and install.

\n

With homebrew-cask

\n

If you're using homebrew-cask, this app can be installed via it. Please tap the repository URL and install this app via brew cask as follows.

\n
brew tap codecentric/merge-request-notifier https://github.com/codecentric/merge-request-notifier\nbrew install --cask merge-request-notifier\n
\n

It's the easiest way to install and manage this app on macOS.

\n

Windows

\n

The Windows installer is uploaded at the releases page. Please download and install.

\n

Linux

\n

Dependencies

\n

This app is using a library that uses libsecret to store the personal access token on your device.

\n

Depending on your distribution, you will need to run the following command:

\n\n

Arch Linux

\n

merge-request-notifier is available from the AUR. Install it using yay (or any other AUR helper):

\n
$ yay -S merge-request-notifier\n
\n

Other

\n

Check the releases page for packages for your distribution.

\n

Development

\n

Install all dependencies

\n
yarn install
\n

Usage

\n

This will start the application with hot-reload so you can instantly start developing your application.

\n
# start the renderer process with webpack-dev-server\nyarn start-renderer\n\n# start the main process (electron app)\nyarn start-main
\n

Logs

\n

You will find the application logs in the following folders

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OSFolder
Linux~/.config/merge-request-notifier/logs/{process type}.log
macOS~/Library/Logs/merge-request-notifier/{process type}.log
Windows%USERPROFILE%\\AppData\\Roaming\\merge-request-notifier\\logs{process type}.log
\n

App Settings

\n

You will find the application settings in the following folders

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OSFolder
Linux$XDG_CONFIG_HOME/merge-request-notifier/Settings or ~/.config/merge-request-notifier/Settings
macOS~/Library/Application\\ Support/merge-request-notifier/Settings
Windows%APPDATA%/merge-request-notifier/Settings
\n

New Releases

\n

Create a new Release and Publish it

\n
yarn dist
\n
", "readmeOriginal": "

Merge Request Notifier

\n

This app shows your GitLab merge requests grouped by projects and WIP status. It is accessible from the system tray.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Light ModeDark Mode
\"App\"App
\n

Tray Icon

\n

In the system tray you wil see the number of all open merge requests.

\n

\"System

\n

Notification

\n

You will receive a desktop notification when a new merge request is created.\nIf you are not interested in \"work in progress\" merge request you can disable notifications for these. In addition you can disable notifications at all.

\n

\"Notification

\n

App Updates (macOS only)

\n

You will be always up to date with our integrated in app updates 🎉. Once there is a new update available you will be\nnotified with a prominent alert above the merge requests. On the details page you find the release notes from github.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
New Update AlertRelease Notes
\"New\"Release
\n

Installation

\n

macOS

\n

Manual installation

\n

The macOS installer is uploaded at the releases page. Please download and install.

\n

With homebrew-cask

\n

If you're using homebrew-cask, this app can be installed via it. Please tap the repository URL and install this app via brew cask as follows.

\n
brew tap codecentric/merge-request-notifier https://github.com/codecentric/merge-request-notifier\nbrew install --cask merge-request-notifier\n
\n

It's the easiest way to install and manage this app on macOS.

\n

Windows

\n

The Windows installer is uploaded at the releases page. Please download and install.

\n

Linux

\n

Dependencies

\n

This app is using a library that uses libsecret to store the personal access token on your device.

\n

Depending on your distribution, you will need to run the following command:

\n\n

Arch Linux

\n

merge-request-notifier is available from the AUR. Install it using yay (or any other AUR helper):

\n
$ yay -S merge-request-notifier\n
\n

Other

\n

Check the releases page for packages for your distribution.

\n

Development

\n

Install all dependencies

\n
yarn install
\n

Usage

\n

This will start the application with hot-reload so you can instantly start developing your application.

\n
# start the renderer process with webpack-dev-server\nyarn start-renderer\n\n# start the main process (electron app)\nyarn start-main
\n

Logs

\n

You will find the application logs in the following folders

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OSFolder
Linux~/.config/merge-request-notifier/logs/{process type}.log
macOS~/Library/Logs/merge-request-notifier/{process type}.log
Windows%USERPROFILE%\\AppData\\Roaming\\merge-request-notifier\\logs{process type}.log
\n

App Settings

\n

You will find the application settings in the following folders

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OSFolder
Linux$XDG_CONFIG_HOME/merge-request-notifier/Settings or ~/.config/merge-request-notifier/Settings
macOS~/Library/Application\\ Support/merge-request-notifier/Settings
Windows%APPDATA%/merge-request-notifier/Settings
\n

New Releases

\n

Create a new Release and Publish it

\n
yarn dist
\n
", "readmeFetchedAt": "2022-05-10T00:07:59.549Z" }, "min": { "readmeCleaned": "

Min

\n

Min is a fast, minimal browser that protects your privacy. It includes an interface designed to minimize distractions, and features such as:

\n\n

Download Min from the releases page, or learn more on the website.

\n

\"Downloads\"\n\"Discord\"

\n

Min is made possible by these sponsors:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
@ritterob@blackgwe@jonathanhuston@JackGFuller@flightmansam@dyogurt
\n

Become a sponsor

\n

Screenshots

\n

\"The

\n

\"The

\n

\"Reader

\n

Installing

\n

You can find prebuilt binaries for Min here. Alternatively, skip to the section below for instructions on how to build Min directly from source.

\n

Installation on Linux

\n\n

Developing

\n

If you want to develop Min:

\n\n

Building binaries

\n

In order to build Min from source, follow the installation instructions above, then use one of the following commands to create binaries:

\n\n

Depending on the platform you are building for, you may need to install additional dependencies:

\n\n

Contributing to Min

\n

Thanks for taking the time to contribute to Min!

\n

Getting Help

\n

If you're experiencing a bug or have a suggestion for how to improve Min, please open a new issue.

\n

If you have questions about using Min, need help getting started with development, or want to talk about what we're working on, join our Discord server.

\n

Contributing Code

\n\n

Contributing Translations

\n

Adding a new language

\n\n

Updating an existing language

\n\n
", "readmeOriginal": "

Min

\n

Min is a fast, minimal browser that protects your privacy. It includes an interface designed to minimize distractions, and features such as:

\n\n

Download Min from the releases page, or learn more on the website.

\n

\"Downloads\"\n\"Discord\"

\n

Min is made possible by these sponsors:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
@ritterob@blackgwe@jonathanhuston@JackGFuller@flightmansam@dyogurt
\n

Become a sponsor

\n

Screenshots

\n

\"The

\n

\"The

\n

\"Reader

\n

Installing

\n

You can find prebuilt binaries for Min here. Alternatively, skip to the section below for instructions on how to build Min directly from source.

\n

Installation on Linux

\n\n

Developing

\n

If you want to develop Min:

\n\n

Building binaries

\n

In order to build Min from source, follow the installation instructions above, then use one of the following commands to create binaries:

\n\n

Depending on the platform you are building for, you may need to install additional dependencies:

\n\n

Contributing to Min

\n

Thanks for taking the time to contribute to Min!

\n

Getting Help

\n

If you're experiencing a bug or have a suggestion for how to improve Min, please open a new issue.

\n

If you have questions about using Min, need help getting started with development, or want to talk about what we're working on, join our Discord server.

\n

Contributing Code

\n\n

Contributing Translations

\n

Adding a new language

\n\n

Updating an existing language

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:59.562Z" }, "mini-diary": { "readmeCleaned": "
\n \n

Mini Diary

\n Simple and secure journal app\n \"Screenshot\"\n
\n

Mini Diary is no longer maintained. Please use a different journal app instead.

\n

Website

\n

Features and FAQs can be found on the website: minidiary.app

\n

Development

\n

The application is built with Electron and React. To run or build the app yourself, you'll need to have Node.js and Yarn installed.

\n

Running the app

\n
    \n
  1. Clone this repository: git clone REPO_URL
  2. \n
  3. Navigate into the project directory: cd mini-diary
  4. \n
  5. Install the dependencies: yarn
  6. \n
  7. Run the app: yarn start
  8. \n
\n

Building the app

\n

After cloning the repo and installing the dependencies, run yarn build. The packaged app can be found in the dist folder.

\n

Contributing

\n

Features and Bugs

\n

Suggestions and contributions are always welcome! Please first discuss changes via issue before submitting a pull request.

\n

Adding missing translations

\n

The list of all English strings can be found in en.ts. If there are translations missing for your language and you'd like to help with the translation, you can add the translated strings to your language's file in src/main/i18n/translations and submit a PR.

\n

Adding a new language

\n

If the app isn't translated into your language yet and you'd like to help out, you can easily add translations with the following steps:

\n
    \n
  1. The translation files can be found in src/main/i18n/translations. Duplicate the en.ts file as [LANG].ts, where [LANG] is the shortcode of your language.
  2. \n
  3. In the file you just created, replace the English translations with your own.
  4. \n
  5. Import your file in the ALL_TRANSLATIONS object in src/main/i18n/i18n.ts.
  6. \n
  7. Add your language shortcode to the electronLanguages array in package.json.
  8. \n
  9. Run the app in your language (see the steps above) and make sure that the translations fit into the app (e.g. that they aren't too long for input fields).
  10. \n
  11. Submit a PR. Thanks for your help!
  12. \n
\n
", "readmeOriginal": "
\n \n

Mini Diary

\n Simple and secure journal app\n \"Screenshot\"\n
\n

Mini Diary is no longer maintained. Please use a different journal app instead.

\n

Website

\n

Features and FAQs can be found on the website: minidiary.app

\n

Development

\n

The application is built with Electron and React. To run or build the app yourself, you'll need to have Node.js and Yarn installed.

\n

Running the app

\n
    \n
  1. Clone this repository: git clone REPO_URL
  2. \n
  3. Navigate into the project directory: cd mini-diary
  4. \n
  5. Install the dependencies: yarn
  6. \n
  7. Run the app: yarn start
  8. \n
\n

Building the app

\n

After cloning the repo and installing the dependencies, run yarn build. The packaged app can be found in the dist folder.

\n

Contributing

\n

Features and Bugs

\n

Suggestions and contributions are always welcome! Please first discuss changes via issue before submitting a pull request.

\n

Adding missing translations

\n

The list of all English strings can be found in en.ts. If there are translations missing for your language and you'd like to help with the translation, you can add the translated strings to your language's file in src/main/i18n/translations and submit a PR.

\n

Adding a new language

\n

If the app isn't translated into your language yet and you'd like to help out, you can easily add translations with the following steps:

\n
    \n
  1. The translation files can be found in src/main/i18n/translations. Duplicate the en.ts file as [LANG].ts, where [LANG] is the shortcode of your language.
  2. \n
  3. In the file you just created, replace the English translations with your own.
  4. \n
  5. Import your file in the ALL_TRANSLATIONS object in src/main/i18n/i18n.ts.
  6. \n
  7. Add your language shortcode to the electronLanguages array in package.json.
  8. \n
  9. Run the app in your language (see the steps above) and make sure that the translations fit into the app (e.g. that they aren't too long for input fields).
  10. \n
  11. Submit a PR. Thanks for your help!
  12. \n
\n
", "readmeFetchedAt": "2022-05-10T00:07:59.637Z" }, "mingo": { "readmeCleaned": "

About Mingo

\n

Mingo is latest and most catchy MongoDB GUI, because it’s been created by developers for developers. The goal is simple, to offer you the best MongoDB admin; built on our programming experience and on your feedback.

\n

We focus on security, speed and user experience, while keeping Mingo great for both newbies and experienced users. The best part is that our intuitive MongoDB browser is packed with features we felt were missing in other MongoDB GUIs.

\n

\"Mingo

\n

Download

\n

https://www.mingo.io/

\n

Please submit ISSUES or feature requests!

\n
", "readmeOriginal": "

About Mingo

\n

Mingo is latest and most catchy MongoDB GUI, because it’s been created by developers for developers. The goal is simple, to offer you the best MongoDB admin; built on our programming experience and on your feedback.

\n

We focus on security, speed and user experience, while keeping Mingo great for both newbies and experienced users. The best part is that our intuitive MongoDB browser is packed with features we felt were missing in other MongoDB GUIs.

\n

\"Mingo

\n

Download

\n

https://www.mingo.io/

\n

Please submit ISSUES or feature requests!

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.657Z" }, "mjml-app": { "readmeCleaned": "

\n\tMJML App\n\t\n

\n

\"os\"

\n

\n\t📧 The desktop app for MJML -\n\tDownload\n

\n

\"screenshot\"

\n

See CHANGELOG.md for releases details.

\n

Installation

\n

Visit the website to download the version that fits your platform, or just go to the release page.

\n

Build from source

\n
# install dependencies\nyarn\n\n# build for your platform\nyarn dist\n\n# the binary can be found in the release/ folder
\n

Development

\n
# launch the dev server and the electron renderer\nyarn dev
\n

For contributing, make sure that your commit passes the yarn lint and yarn prettier command 😄.

\n
", "readmeOriginal": "

\n\tMJML App\n\t\n

\n

\"os\"

\n

\n\t📧 The desktop app for MJML -\n\tDownload\n

\n

\"screenshot\"

\n

See CHANGELOG.md for releases details.

\n

Installation

\n

Visit the website to download the version that fits your platform, or just go to the release page.

\n

Build from source

\n
# install dependencies\nyarn\n\n# build for your platform\nyarn dist\n\n# the binary can be found in the release/ folder
\n

Development

\n
# launch the dev server and the electron renderer\nyarn dev
\n

For contributing, make sure that your commit passes the yarn lint and yarn prettier command 😄.

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.804Z" }, "moderndeck": { "readmeCleaned": "

\"ModernDeck

\n

\"Webpack\"\n\"Electron\"\n\"Crowdin\"

\n

ModernDeck takes TweetDeck to the next level with a Material-inspired theme, customization and performance enhancements, and more. Available as a desktop app or a browser extension.

\n

\"Flathub\" \"Chrome \"Firefox

\n

\"ModernDeck

\n

Build Instructions

\n

ModernDeck is designed by dangered wolf and released under the MIT License.

\n
", "readmeOriginal": "

\"ModernDeck

\n

\"Webpack\"\n\"Electron\"\n\"Crowdin\"

\n

ModernDeck takes TweetDeck to the next level with a Material-inspired theme, customization and performance enhancements, and more. Available as a desktop app or a browser extension.

\n

\"Flathub\" \"Chrome \"Firefox

\n

\"ModernDeck

\n

Build Instructions

\n

ModernDeck is designed by dangered wolf and released under the MIT License.

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.887Z" }, "monolith-code": { "readmeCleaned": "

monolith code

\n

\"Build\"\n\"Version\"\n\"License\"\n\"Size\"

\n

\"screenshot\"

\n
", "readmeOriginal": "

monolith code

\n

\"Build\"\n\"Version\"\n\"License\"\n\"Size\"

\n

\"screenshot\"

\n
", "readmeFetchedAt": "2022-05-10T00:07:59.987Z" }, "mindmapp": { "readmeCleaned": "

\n

\n 💔 Project no longer supported\n

\n

Fork it to continue development!

\n

\n\n \n\n

\n

\n \n Mindmapp beta\n

\n

Web application to draw mind maps.

\n

\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n
\n

📎 Table of Contents

\n\n

🚀 Features

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeatureStatusDescription
Basic mind map properties✔️Set node images, colors and font properties.
Undo/Redo✔️History of map changes.
Map centering✔️Center map in x, y, z axes.
Shortcuts✔️Main shortcuts to speed things up.
Local storage✔️Save maps in the browser local storage.
JSON import/export✔️Export and import maps as JSON file.
Image & PDF export✔️Export maps as image (png, jpg) or PDF document.
PWA support✔️Support of desktop and mobile browser PWA (Progressive Web App).
p2p databaseOrbit (or something else) peer-to-peer database to share and eventually sync maps.
Plugin systemA plugin system to add third-party features.
Multiple selectionSelect multiple nodes at the same time.
Multiple maps✔️Multiple maps at the same time with multi-tabs.
\n

🔨 Install

\n

With the following installed:

\n\n

Clone the repo and install the dependencies from npm.

\n
git clone https://github.com/Mindmapp/mindmapp.git\ncd mindmapp\nnpm i
\n

🎮 Usage

\n

For local development with angular dev server:

\n
npm start
\n

Then open http://localhost:4200 in your browser.

\n

If you want to generate the project documentation:

\n
npm run doc
\n

A documentation folder will be generated in the project path.

\n

📈 Development

\n

📜 Rules

\n

Commits

\n\n

and body must be should include the motivation for the change and contrast this with previous behavior (do not add body if the commit is trivial).

\n\n

Branches

\n\n

Examples:

\n
git branch -b docs/README\ngit branch -b test/one-function\ngit branch -b feat/side-bar\ngit branch -b style/header\n
\n

Contributors

\n

Mindmapp is a work in progress. Remember that if you want you can make a small contribution with a pull request.

\n

💻 Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

💰 Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n

📄 License

\n\n

📞 Contacts

\n

👦 Developers

\n\n
", "readmeOriginal": "

\n

\n 💔 Project no longer supported\n

\n

Fork it to continue development!

\n

\n\n \n\n

\n

\n \n Mindmapp beta\n

\n

Web application to draw mind maps.

\n

\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n
\n

📎 Table of Contents

\n\n

🚀 Features

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeatureStatusDescription
Basic mind map properties✔️Set node images, colors and font properties.
Undo/Redo✔️History of map changes.
Map centering✔️Center map in x, y, z axes.
Shortcuts✔️Main shortcuts to speed things up.
Local storage✔️Save maps in the browser local storage.
JSON import/export✔️Export and import maps as JSON file.
Image & PDF export✔️Export maps as image (png, jpg) or PDF document.
PWA support✔️Support of desktop and mobile browser PWA (Progressive Web App).
p2p databaseOrbit (or something else) peer-to-peer database to share and eventually sync maps.
Plugin systemA plugin system to add third-party features.
Multiple selectionSelect multiple nodes at the same time.
Multiple maps✔️Multiple maps at the same time with multi-tabs.
\n

🔨 Install

\n

With the following installed:

\n\n

Clone the repo and install the dependencies from npm.

\n
git clone https://github.com/Mindmapp/mindmapp.git\ncd mindmapp\nnpm i
\n

🎮 Usage

\n

For local development with angular dev server:

\n
npm start
\n

Then open http://localhost:4200 in your browser.

\n

If you want to generate the project documentation:

\n
npm run doc
\n

A documentation folder will be generated in the project path.

\n

📈 Development

\n

📜 Rules

\n

Commits

\n\n

and body must be should include the motivation for the change and contrast this with previous behavior (do not add body if the commit is trivial).

\n\n

Branches

\n\n

Examples:

\n
git branch -b docs/README\ngit branch -b test/one-function\ngit branch -b feat/side-bar\ngit branch -b style/header\n
\n

Contributors

\n

Mindmapp is a work in progress. Remember that if you want you can make a small contribution with a pull request.

\n

💻 Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

💰 Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n

📄 License

\n\n

📞 Contacts

\n

👦 Developers

\n\n
", "readmeFetchedAt": "2022-05-10T00:07:59.994Z" }, "mobirise": { "readmeCleaned": "

Mobirise Bootstrap Builder

\n

Mobirise AMP Website Builder

\n

The Accelerated Mobile Pages Project (AMP) is an online publishing format, originally created by Google as an alternative to Facebook’s Instant Articles. It’s a way to optimize web pages for mobile browsing using a special code–AMP-HTML.

\n\n

\n

Mobirise 5.3

\n

Interface

\n

Design

\n\n

\n\n

\n

Sites management

\n\n

\n

Drag Block to Page panel

\n\n

\n\n

\n\n

Domain connection

\n\n

Extensions panel

\n\n

\n

Code Editor

\n\n

\n

Icons

\n\n

Other updates

\n\n

Themes

\n

Mobirise 5

\n\n

AudioM4

\n\n

LuxuryM4

\n\n

BusinessM4

\n\n

TherapyM4

\n\n

KidsM4

\n\n

ConnectM4

\n\n

KidsM4 & AgencyM4

\n\n

LightAMP

\n\n

Fixes

\n\n

Mobirise 5.2

\n

Core

\n\n

Interface

\n\n

\n\n

\n\n

\n\n

Mobirise 5 theme

\n\n

Fixes

\n\n

Mobirise 5.0

\n

Core

\n\n

Interface

\n\n

\nNew Sites List view available in Mobirise 5\n

\nYou can enable Dark Mode in App Settings\n

\nYou can disable your project borders by enabling the Fullscreen Canvas option\n

\nClear your site library by removing images you don't use in a project\n

\nThe site domain settings will appear in your Site Settings after publishing your site via the Mobirise Publish option\n

Fixes

\n\n

Extensions

\n\n

\nInstall the Code Editor extension to find the Global HTML Insert tab in Site Settings\n

Mobirise v4.12.4

\n\n

Mobirise v4.12

\n\n

DinerM4

\n\n

\n

AudioM4

\n\n

\n

BlockPack for M4

\n\n

\n

InnovationAMP

\n\n

\n

BranchM4

\n\n

\n

KidsM4 Theme

\n\n

\n

PetsM4 Theme

\n\n

\n

Mobirise v4.11.5

\n\n

Mobirise v4.11.4

\n\n

\n

CourseAMP Theme

\n\n

\n

Mobirise v4.11.2

\n\n

LuxuryM4 Theme

\n\n

\n

TrainingAMP Theme

\n\n

\n

InsightAMP Theme

\n\n

\n

Mobirise v4.10.10

\n\n

PhotoM4 Theme

\n\n

\n

WoodM4 Theme

\n\n

\n

Mobirise v4.10.8

\n\n

\n

Mobirise v4.10.7

\n\n

\n

PersonaM4 Theme

\n\n

\n

CorporateAMP Theme

\n\n

\n

ShopAMP Theme

\n\n

\n

DepotAMP Theme

\n\n

\n

Mobirise v4.10.6

\n\n

\n

\n

Mobirise v4.10.5

\n\n

\n

\n

Mobirise v4.10.4

\n\n

Popup Builder

\n\n

\n

\n

Mobirise v4.10.3

\n\n

PoliticsM4 Theme

\n\n

\n

IndustryM4 Theme

\n\n

\n

Mobirise v4.10.1

\n\n

Mobirise v4.10

\n\n

\n\n

TechM4 Theme

\n\n

\n

CompanyAMP Theme

\n\n

\n

SimpleAMP Theme

\n\n

\n

TasteM4 Theme

\n\n

\n

Mobirise v4.9.7

\n\n

FormBuilder Extension

\n

Use the drag-n-drop builder to draw up the form you want. Learn more

\n\n

\n

Mobirise v4.9.5

\n\n

\n\n

\n\n

Mobirise v4.9.3

\n\n

\n\n

\n\n

LifestyleAMP Theme

\n\n

\n

WorkshopAMP Theme

\n\n

\n

GamingAMP Theme

\n\n

\n

Mobirise v4.9.1

\n\n

\n\n

\n\n

StrategyAMP Theme

\n\n

\n

ChurchAMP Theme

\n\n

\n

Mobirise v4.8.6

\n\n

\n

Mobirise v4.8.4

\n\n

AppAMP Theme

\n\n

\n

ConsultingAMP Theme

\n\n

\n

Mobirise v4.8.2

\n\n

Mobirise v4.8

\n

New Publish option allows you to put the site online with a single click, to be viewed by the public with your subdomain at mobirisesite.com\nWhat's included:

\n\n

\n

SchoolAMP Theme

\n\n

\n

EducationM4 Theme

\n\n

\n

RealtyM4 Theme

\n\n

\n

OrganicAMP Theme

\n\n

\n

Mobirise v4.7.8

\n\n

ResumeAMP Theme

\n\n

\n

WeddingAMP Theme

\n\n

\n

FitnessAMP Theme

\n\n

\n

ArchitectAMP Theme

\n\n

\n

Mobirise v4.7.7

\n\n

Mobirise v4.7.6

\n\n

\n

HandymanAMP Theme

\n\n

\n

BeautyAMP Theme

\n\n

\n

SoundAMP Theme

\n\n

\n

Mobirise v4.7.2

\n\n

StartupAMP Theme

\n\n

\n

SpaceAMP Theme

\n\n

\n

Mobirise v4.7.1

\n\n

LightAMP Theme

\n\n

\n

EventAMP Theme

\n\n

\n

Mobirise v4.6.7

\n\n

Mobirise v4.6.6

\n\n

BusinessM4 Theme

\n\n

\n

Mobirise v4.6.5

\n\n

CommerceM4 Theme

\n\n

\n

HotelM4 Theme

\n\n

\n

Mobirise v4.6.0

\n\n

Mobirise AMP

\n

Mobirise AMP Theme - accelerate your site with Google AMP. Check AMP theme components demos: headers, images & videos, testimonials & info, features, articles, maps & social, footers.

\n

\"free

\n

Mobirise v4.5.0

\n\n

\n

Mobirise v4.4.0

\n\n

\n

\n

Mobirise v4.3.5

\n\n

StoreM4 Bootstrap Theme - spacious, clean and attractive ecommerce theme designed mainly for stores. 80+ blocks for your new online shop. This theme includes several menu blocks, headers, sliders and galleries, shops, content and info sections, pricing tables, testimonials, team blocks and more. StoreM4 is compatible with Mobirise 4 themes - you can interchange user blocks between your projects.

\n

\n

Mobirise v4.3.4

\n\n

\n

\n

\n\n

\n

Mobirise v4.3.1

\n\n

Mobirise v4.3.0

\n\n\n\n\n

Mobirise v4.2.4

\n\n\n\n\n

Mobirise v4.2.3

\n\n

Mobirise v4.1.6

\n

Search by font name in Google font library

\n\n

Mobirise v4.1

\n\n\n\"Free\n\n\n\"Mobirise\n\n\n\"Free\n\n

Free Bootstrap Website Builder

\n

Free HTML Bootstrap Template

\n

Free Icon Font

\n

Mobirise v4.0 Beta

\n\n

Mobirise v3.12

\n\n

Mobirise v3.11.1

\n\n\n\n\n

Mobirise v3.10.8

\n\n

Mobirise v3.10.2

\n\n\n\n\n

Mobirise v3.10

\n\n\n\n\n

Mobirise v3.09

\n\n\n\n\n

Mobirise v3.08.5

\n\n

Mobirise v3.08.4

\n\n

Mobirise v3.08.1

\n\n

Mobirise v3.07

\n\n

What's new in Mobirise v3.06.4

\n\n

What's new in Mobirise v3.06.1

\n\n

New features available in Mobirise v3.06

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise v3.05.3

\n\n

What's new in Mobirise v3.05

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise v3.04

\n\n

What's new in Mobirise v3.03

\n\n

What's new in Mobirise v3.0

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise v2.14

\n\n

\n* Updated \"PayPal Shopping Cart\" extension - To update see \"Menu\" -> \"Extensions & Themes\"\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Website Builder v2.11:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Website Builder v2.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Website Builder v2.9.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Builder v2.9.8:

\n\n\n\n\n\n\n\n

Create beautiful mobile-first websites!

\n

MobiRise Free Bootstrap Builder creates responsive, retina and mobile friendly websites in a few clicks. Easy and fast.

\n

Bootstrap 4 Template

\n\n\n\n

Mobirise Review

\n\n\n\n

Make your own bootstrap-based site in minutes!

\n\n\n\n

What's new in Mobirise Bootstrap Builder v2.9.7:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.8.5:

\n\n\n\n\n

What's new in Mobirise HTML Page Creator v2.8.4:

\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Responsive Website Builder v2.6:

\n\n\n\n\n\n\n\n\n\"website\n\n\n\"html\n\n\n\"web\n\n

What's new in Mobirise Landing Page Creator v2.4:

\n\n\n\"website\n\n\n\"website\n\n

What's new in Mobirise Bootstrap Theme Generator v2.3:

\n\n\n\"website\n\n

What's new in Mobirise HTML Builder v2.0:

\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.6:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.8:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.9:

\n\n\n\n\n\n\n\n

Main changes in Bootstrap Website Builder v1.9.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Responsive menu

\n\n\n\n

Mobile friendly website

\n\n\n\n

Bootstrap builders

\n

Bootstrap website builder makes it very easy to prototype, test, and build a custom responsive website quickly, without having to understand the Bootstrap framework system. They, although different in capabilities, all offer a form of drag-and-drop functionality that fully utilizes the enormous library of Bootstrap’s components.\n\n\n

\n

Bootstrap image gallery

\n

Adding a css image gallery to your website does not need to be difficult or time-consuming. There are a wide range of options to choose from, whether you opt to go with the standard html5 image gallery, to customize it using one of a wide-range of plugins and tutorials or if you opt for Mobirise’s drag-and-drop builder. Good luck with your website!\n\n\n

\n

Bootstrap carousel

\n

The bootstrap image slider component that comes with the bootstrap framework is a lightweight carousel which uses JavaScript. It’s a standards-compliant piece of functionality, with a clean design that will fit easily into any website. It’s also easy to modify and extend with additional functionality such as CSS3 animations and more.\n\n\n

\n

Website builders reviews

\n

Today you are able to use different techniques and tools, from using an open-source CMS such as WordPress along with a free theme, to using website building software.\nMobirise is one such website builder. Website software has a few advantages over a CMS...\n\n\n

\n

Drag and drop website builder

\n

Make your own mobile website in minutes! Mobirise helps you cut down development time by providing you with a flexible website editor with a drag and drop interface.

\n

Live preview

\n

See the result instantly without a need to save or export!

\n

Modern styles

\n

Mobirise has provided for website developers a growing library of modern blocks which can be used either partially or in full for every website developed through the builder.

\n

Bootstrap 3

\n

Bootstrap 3 has been noted as one of the most reliable and proven frameworks and Mobirise has been equipped to develop websites using this framework.

\n

Create a beautiful website.

\n

Whether you want to create a blog, eCommerce store, portfolio, or all of the above, you can express your idea with a website powered by our elegant yet intuitive platform.

\n

What's new in Mobirise Web Site Builder v2.11:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Builder v2.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.9.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.9.8:

\n\n\n\n\n\n\n\n

Create beautiful mobile-first websites!

\n

MobiRise Bootstrap Website Builder creates responsive, retina and mobile friendly websites in a few clicks. Easy and fast.

\n

Bootstrap 4 Template

\n\n\n\n

Mobirise Review

\n\n\n\n

Make your own bootstrap-based site in minutes!

\n\n\n\n

What's new in Mobirise Web Site Builder v2.9.7:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.8.5:

\n\n\n\n\n

What's new in Mobirise HTML Page Creator v2.8.4:

\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Responsive Website Builder v2.6:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Landing Page Creator v2.4:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Theme Generator v2.3:

\n\n\n\n\n

What's new in Mobirise HTML Builder v2.0:

\n\n\n\n\n\n\n\n\n\n\n

Main changes in v1.6:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in v1.8:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.9:

\n\n\n\n\n\n\n\n

Main changes in v1.9.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Responsive menu

\n\n\n\n

Mobile friendly website

\n\n\n\n

Bootstrap builders

\n

Bootstrap website builder makes it very easy to prototype, test, and build a custom responsive website quickly, without having to understand the Bootstrap framework system. They, although different in capabilities, all offer a form of drag-and-drop functionality that fully utilizes the enormous library of Bootstrap’s components.\n\n\n

\n

Bootstrap image gallery

\n

Adding a css image gallery to your website does not need to be difficult or time-consuming. There are a wide range of options to choose from, whether you opt to go with the standard html5 image gallery, to customize it using one of a wide-range of plugins and tutorials or if you opt for Mobirise’s drag-and-drop builder. Good luck with your website!\n\n\n

\n

Bootstrap carousel

\n

The bootstrap image slider component that comes with the bootstrap framework is a lightweight carousel which uses JavaScript. It’s a standards-compliant piece of functionality, with a clean design that will fit easily into any website. It’s also easy to modify and extend with additional functionality such as CSS3 animations and more.\n\n\n

\n

Website builders reviews

\n

Today you are able to use different techniques and tools, from using an open-source CMS such as WordPress along with a free theme, to using website building software.\nMobirise is one such website builder. Website software has a few advantages over a CMS...\n\n\n

\n

Drag and drop website builder

\n

Make your own mobile website in minutes! Mobirise helps you cut down development time by providing you with a flexible website editor with a drag and drop interface.

\n

Live preview

\n

See the result instantly without a need to save or export!

\n

Modern styles

\n

Mobirise has provided for website developers a growing library of modern blocks which can be used either partially or in full for every website developed through the builder.

\n

Bootstrap 3

\n

Bootstrap 3 has been noted as one of the most reliable and proven frameworks and Mobirise has been equipped to develop websites using this framework.

\n

Create a beautiful website.

\n

Whether you want to create a blog, eCommerce store, portfolio, or all of the above, you can express your idea with a website powered by our elegant yet intuitive platform.

\n
", "readmeOriginal": "

Mobirise Bootstrap Builder

\n

Mobirise AMP Website Builder

\n

The Accelerated Mobile Pages Project (AMP) is an online publishing format, originally created by Google as an alternative to Facebook’s Instant Articles. It’s a way to optimize web pages for mobile browsing using a special code–AMP-HTML.

\n\n

\n

Mobirise 5.3

\n

Interface

\n

Design

\n\n

\n\n

\n

Sites management

\n\n

\n

Drag Block to Page panel

\n\n

\n\n

\n\n

Domain connection

\n\n

Extensions panel

\n\n

\n

Code Editor

\n\n

\n

Icons

\n\n

Other updates

\n\n

Themes

\n

Mobirise 5

\n\n

AudioM4

\n\n

LuxuryM4

\n\n

BusinessM4

\n\n

TherapyM4

\n\n

KidsM4

\n\n

ConnectM4

\n\n

KidsM4 & AgencyM4

\n\n

LightAMP

\n\n

Fixes

\n\n

Mobirise 5.2

\n

Core

\n\n

Interface

\n\n

\n\n

\n\n

\n\n

Mobirise 5 theme

\n\n

Fixes

\n\n

Mobirise 5.0

\n

Core

\n\n

Interface

\n\n

\nNew Sites List view available in Mobirise 5\n

\nYou can enable Dark Mode in App Settings\n

\nYou can disable your project borders by enabling the Fullscreen Canvas option\n

\nClear your site library by removing images you don't use in a project\n

\nThe site domain settings will appear in your Site Settings after publishing your site via the Mobirise Publish option\n

Fixes

\n\n

Extensions

\n\n

\nInstall the Code Editor extension to find the Global HTML Insert tab in Site Settings\n

Mobirise v4.12.4

\n\n

Mobirise v4.12

\n\n

DinerM4

\n\n

\n

AudioM4

\n\n

\n

BlockPack for M4

\n\n

\n

InnovationAMP

\n\n

\n

BranchM4

\n\n

\n

KidsM4 Theme

\n\n

\n

PetsM4 Theme

\n\n

\n

Mobirise v4.11.5

\n\n

Mobirise v4.11.4

\n\n

\n

CourseAMP Theme

\n\n

\n

Mobirise v4.11.2

\n\n

LuxuryM4 Theme

\n\n

\n

TrainingAMP Theme

\n\n

\n

InsightAMP Theme

\n\n

\n

Mobirise v4.10.10

\n\n

PhotoM4 Theme

\n\n

\n

WoodM4 Theme

\n\n

\n

Mobirise v4.10.8

\n\n

\n

Mobirise v4.10.7

\n\n

\n

PersonaM4 Theme

\n\n

\n

CorporateAMP Theme

\n\n

\n

ShopAMP Theme

\n\n

\n

DepotAMP Theme

\n\n

\n

Mobirise v4.10.6

\n\n

\n

\n

Mobirise v4.10.5

\n\n

\n

\n

Mobirise v4.10.4

\n\n

Popup Builder

\n\n

\n

\n

Mobirise v4.10.3

\n\n

PoliticsM4 Theme

\n\n

\n

IndustryM4 Theme

\n\n

\n

Mobirise v4.10.1

\n\n

Mobirise v4.10

\n\n

\n\n

TechM4 Theme

\n\n

\n

CompanyAMP Theme

\n\n

\n

SimpleAMP Theme

\n\n

\n

TasteM4 Theme

\n\n

\n

Mobirise v4.9.7

\n\n

FormBuilder Extension

\n

Use the drag-n-drop builder to draw up the form you want. Learn more

\n\n

\n

Mobirise v4.9.5

\n\n

\n\n

\n\n

Mobirise v4.9.3

\n\n

\n\n

\n\n

LifestyleAMP Theme

\n\n

\n

WorkshopAMP Theme

\n\n

\n

GamingAMP Theme

\n\n

\n

Mobirise v4.9.1

\n\n

\n\n

\n\n

StrategyAMP Theme

\n\n

\n

ChurchAMP Theme

\n\n

\n

Mobirise v4.8.6

\n\n

\n

Mobirise v4.8.4

\n\n

AppAMP Theme

\n\n

\n

ConsultingAMP Theme

\n\n

\n

Mobirise v4.8.2

\n\n

Mobirise v4.8

\n

New Publish option allows you to put the site online with a single click, to be viewed by the public with your subdomain at mobirisesite.com\nWhat's included:

\n\n

\n

SchoolAMP Theme

\n\n

\n

EducationM4 Theme

\n\n

\n

RealtyM4 Theme

\n\n

\n

OrganicAMP Theme

\n\n

\n

Mobirise v4.7.8

\n\n

ResumeAMP Theme

\n\n

\n

WeddingAMP Theme

\n\n

\n

FitnessAMP Theme

\n\n

\n

ArchitectAMP Theme

\n\n

\n

Mobirise v4.7.7

\n\n

Mobirise v4.7.6

\n\n

\n

HandymanAMP Theme

\n\n

\n

BeautyAMP Theme

\n\n

\n

SoundAMP Theme

\n\n

\n

Mobirise v4.7.2

\n\n

StartupAMP Theme

\n\n

\n

SpaceAMP Theme

\n\n

\n

Mobirise v4.7.1

\n\n

LightAMP Theme

\n\n

\n

EventAMP Theme

\n\n

\n

Mobirise v4.6.7

\n\n

Mobirise v4.6.6

\n\n

BusinessM4 Theme

\n\n

\n

Mobirise v4.6.5

\n\n

CommerceM4 Theme

\n\n

\n

HotelM4 Theme

\n\n

\n

Mobirise v4.6.0

\n\n

Mobirise AMP

\n

Mobirise AMP Theme - accelerate your site with Google AMP. Check AMP theme components demos: headers, images & videos, testimonials & info, features, articles, maps & social, footers.

\n

\"free

\n

Mobirise v4.5.0

\n\n

\n

Mobirise v4.4.0

\n\n

\n

\n

Mobirise v4.3.5

\n\n

StoreM4 Bootstrap Theme - spacious, clean and attractive ecommerce theme designed mainly for stores. 80+ blocks for your new online shop. This theme includes several menu blocks, headers, sliders and galleries, shops, content and info sections, pricing tables, testimonials, team blocks and more. StoreM4 is compatible with Mobirise 4 themes - you can interchange user blocks between your projects.

\n

\n

Mobirise v4.3.4

\n\n

\n

\n

\n\n

\n

Mobirise v4.3.1

\n\n

Mobirise v4.3.0

\n\n\n\n\n

Mobirise v4.2.4

\n\n\n\n\n

Mobirise v4.2.3

\n\n

Mobirise v4.1.6

\n

Search by font name in Google font library

\n\n

Mobirise v4.1

\n\n\n\"Free\n\n\n\"Mobirise\n\n\n\"Free\n\n

Free Bootstrap Website Builder

\n

Free HTML Bootstrap Template

\n

Free Icon Font

\n

Mobirise v4.0 Beta

\n\n

Mobirise v3.12

\n\n

Mobirise v3.11.1

\n\n\n\n\n

Mobirise v3.10.8

\n\n

Mobirise v3.10.2

\n\n\n\n\n

Mobirise v3.10

\n\n\n\n\n

Mobirise v3.09

\n\n\n\n\n

Mobirise v3.08.5

\n\n

Mobirise v3.08.4

\n\n

Mobirise v3.08.1

\n\n

Mobirise v3.07

\n\n

What's new in Mobirise v3.06.4

\n\n

What's new in Mobirise v3.06.1

\n\n

New features available in Mobirise v3.06

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise v3.05.3

\n\n

What's new in Mobirise v3.05

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise v3.04

\n\n

What's new in Mobirise v3.03

\n\n

What's new in Mobirise v3.0

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise v2.14

\n\n

\n* Updated \"PayPal Shopping Cart\" extension - To update see \"Menu\" -> \"Extensions & Themes\"\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Website Builder v2.11:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Website Builder v2.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Website Builder v2.9.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Builder v2.9.8:

\n\n\n\n\n\n\n\n

Create beautiful mobile-first websites!

\n

MobiRise Free Bootstrap Builder creates responsive, retina and mobile friendly websites in a few clicks. Easy and fast.

\n

Bootstrap 4 Template

\n\n\n\n

Mobirise Review

\n\n\n\n

Make your own bootstrap-based site in minutes!

\n\n\n\n

What's new in Mobirise Bootstrap Builder v2.9.7:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.8.5:

\n\n\n\n\n

What's new in Mobirise HTML Page Creator v2.8.4:

\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Responsive Website Builder v2.6:

\n\n\n\n\n\n\n\n\n\"website\n\n\n\"html\n\n\n\"web\n\n

What's new in Mobirise Landing Page Creator v2.4:

\n\n\n\"website\n\n\n\"website\n\n

What's new in Mobirise Bootstrap Theme Generator v2.3:

\n\n\n\"website\n\n

What's new in Mobirise HTML Builder v2.0:

\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.6:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.8:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.9:

\n\n\n\n\n\n\n\n

Main changes in Bootstrap Website Builder v1.9.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Responsive menu

\n\n\n\n

Mobile friendly website

\n\n\n\n

Bootstrap builders

\n

Bootstrap website builder makes it very easy to prototype, test, and build a custom responsive website quickly, without having to understand the Bootstrap framework system. They, although different in capabilities, all offer a form of drag-and-drop functionality that fully utilizes the enormous library of Bootstrap’s components.\n\n\n

\n

Bootstrap image gallery

\n

Adding a css image gallery to your website does not need to be difficult or time-consuming. There are a wide range of options to choose from, whether you opt to go with the standard html5 image gallery, to customize it using one of a wide-range of plugins and tutorials or if you opt for Mobirise’s drag-and-drop builder. Good luck with your website!\n\n\n

\n

Bootstrap carousel

\n

The bootstrap image slider component that comes with the bootstrap framework is a lightweight carousel which uses JavaScript. It’s a standards-compliant piece of functionality, with a clean design that will fit easily into any website. It’s also easy to modify and extend with additional functionality such as CSS3 animations and more.\n\n\n

\n

Website builders reviews

\n

Today you are able to use different techniques and tools, from using an open-source CMS such as WordPress along with a free theme, to using website building software.\nMobirise is one such website builder. Website software has a few advantages over a CMS...\n\n\n

\n

Drag and drop website builder

\n

Make your own mobile website in minutes! Mobirise helps you cut down development time by providing you with a flexible website editor with a drag and drop interface.

\n

Live preview

\n

See the result instantly without a need to save or export!

\n

Modern styles

\n

Mobirise has provided for website developers a growing library of modern blocks which can be used either partially or in full for every website developed through the builder.

\n

Bootstrap 3

\n

Bootstrap 3 has been noted as one of the most reliable and proven frameworks and Mobirise has been equipped to develop websites using this framework.

\n

Create a beautiful website.

\n

Whether you want to create a blog, eCommerce store, portfolio, or all of the above, you can express your idea with a website powered by our elegant yet intuitive platform.

\n

What's new in Mobirise Web Site Builder v2.11:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Builder v2.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.9.10:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.9.8:

\n\n\n\n\n\n\n\n

Create beautiful mobile-first websites!

\n

MobiRise Bootstrap Website Builder creates responsive, retina and mobile friendly websites in a few clicks. Easy and fast.

\n

Bootstrap 4 Template

\n\n\n\n

Mobirise Review

\n\n\n\n

Make your own bootstrap-based site in minutes!

\n\n\n\n

What's new in Mobirise Web Site Builder v2.9.7:

\n\n\n\n\n\n\n\n

What's new in Mobirise Web Site Builder v2.8.5:

\n\n\n\n\n

What's new in Mobirise HTML Page Creator v2.8.4:

\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Responsive Website Builder v2.6:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

What's new in Mobirise Landing Page Creator v2.4:

\n\n\n\n\n\n\n\n

What's new in Mobirise Bootstrap Theme Generator v2.3:

\n\n\n\n\n

What's new in Mobirise HTML Builder v2.0:

\n\n\n\n\n\n\n\n\n\n\n

Main changes in v1.6:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in v1.8:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Main changes in Bootstrap Builder v1.9:

\n\n\n\n\n\n\n\n

Main changes in v1.9.7:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Responsive menu

\n\n\n\n

Mobile friendly website

\n\n\n\n

Bootstrap builders

\n

Bootstrap website builder makes it very easy to prototype, test, and build a custom responsive website quickly, without having to understand the Bootstrap framework system. They, although different in capabilities, all offer a form of drag-and-drop functionality that fully utilizes the enormous library of Bootstrap’s components.\n\n\n

\n

Bootstrap image gallery

\n

Adding a css image gallery to your website does not need to be difficult or time-consuming. There are a wide range of options to choose from, whether you opt to go with the standard html5 image gallery, to customize it using one of a wide-range of plugins and tutorials or if you opt for Mobirise’s drag-and-drop builder. Good luck with your website!\n\n\n

\n

Bootstrap carousel

\n

The bootstrap image slider component that comes with the bootstrap framework is a lightweight carousel which uses JavaScript. It’s a standards-compliant piece of functionality, with a clean design that will fit easily into any website. It’s also easy to modify and extend with additional functionality such as CSS3 animations and more.\n\n\n

\n

Website builders reviews

\n

Today you are able to use different techniques and tools, from using an open-source CMS such as WordPress along with a free theme, to using website building software.\nMobirise is one such website builder. Website software has a few advantages over a CMS...\n\n\n

\n

Drag and drop website builder

\n

Make your own mobile website in minutes! Mobirise helps you cut down development time by providing you with a flexible website editor with a drag and drop interface.

\n

Live preview

\n

See the result instantly without a need to save or export!

\n

Modern styles

\n

Mobirise has provided for website developers a growing library of modern blocks which can be used either partially or in full for every website developed through the builder.

\n

Bootstrap 3

\n

Bootstrap 3 has been noted as one of the most reliable and proven frameworks and Mobirise has been equipped to develop websites using this framework.

\n

Create a beautiful website.

\n

Whether you want to create a blog, eCommerce store, portfolio, or all of the above, you can express your idea with a website powered by our elegant yet intuitive platform.

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.145Z" }, "moosync": { "readmeCleaned": "

\"moosync

\n

Moosync

\n

\"All \"Release\" \"Discord\"

\n
\n

Moosync is a customizable desktop music player with a clean interface

\n

Features

\n\n

Links

\n

Official website |\nDownloads |\nDiscord

\n

Releases

\n

You may download the latest release from Official website or from GitHub Releases

\n

Flatpak

\n

Moosync can be found on FlatHub as app.moosync.moosync.\nYou may install it by

\n
flatpak install flathub app.moosync.moosync
\n

Archlinux User Repository (AUR)

\n

Moosync can be found on AUR. You can install it using an AUR helper such as Yay

\n
yay -S moosync
\n

Any questions?

\n

Checkout the Official Wiki on moosync.app or on GitHub.

\n

For any further questions you may join us on Discord

\n

Building from source

\n

Read more at our Wiki

\n

Contributors

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n
\"\"
Ohm

🎨
\"\"
Anirudh

🎨
\"\"
Sahil Gupte

💻
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeOriginal": "

\"moosync

\n

Moosync

\n

\"All \"Release\" \"Discord\"

\n
\n

Moosync is a customizable desktop music player with a clean interface

\n

Features

\n\n

Links

\n

Official website |\nDownloads |\nDiscord

\n

Releases

\n

You may download the latest release from Official website or from GitHub Releases

\n

Flatpak

\n

Moosync can be found on FlatHub as app.moosync.moosync.\nYou may install it by

\n
flatpak install flathub app.moosync.moosync
\n

Archlinux User Repository (AUR)

\n

Moosync can be found on AUR. You can install it using an AUR helper such as Yay

\n
yay -S moosync
\n

Any questions?

\n

Checkout the Official Wiki on moosync.app or on GitHub.

\n

For any further questions you may join us on Discord

\n

Building from source

\n

Read more at our Wiki

\n

Contributors

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n
\"\"
Ohm

🎨
\"\"
Anirudh

🎨
\"\"
Sahil Gupte

💻
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.150Z" }, "motrix": { "readmeCleaned": "

Motrix

\n\n \"App\n\n

A full-featured download manager

\n

\"GitHub \"Build/release\" \"Total \"Support

\n

English | 简体中文

\n

Motrix is a full-featured download manager that supports downloading HTTP, FTP, BitTorrent, Magnet, etc.

\n

Motrix has a clean and easy to use interface. I hope you will like it 👻.

\n

✈️ Official Website | 📖 Manual

\n

💽 Installation

\n

Download from GitHub Releases and install it.

\n

Windows

\n

It is recommended to install Motrix using the installation package (Motrix-Setup-x.y.z.exe) to ensure a complete experience, such as associating torrent files, capturing magnet links, etc.

\n

If you use package management tools to manage applications on Windows, such as Chocolatey, scoop. You can use them to install Motrix.

\n

Chocolatey

\n

Thanks to @Yato for continuing to maintain the Motrix Chocolatey package. To install motrix, run the following command from the command line or from PowerShell:

\n
# Install\nchoco install motrix\n\n# Upgrade\nchoco upgrade motrix
\n

scoop

\n

If you prefer the portable version, you can use scoop (need Windows 7+) to install Motrix.

\n
scoop bucket add extras\nscoop install motrix
\n

macOS

\n

The macOS users can install Motrix using brew cask, thanks to PR of @Mitscherlich.

\n
brew update && brew install --cask motrix
\n

Linux

\n

You can download the AppImage (for all Linux distributions) or snap to install Motrix, see GitHub/release for more Linux installation package formats.

\n

Motrix may need to run with sudo for the first time in Linux because there is no permission to create the download session file (/var/cache/aria2.session).

\n

If you want to build from source code, please read the Build section.

\n

AppImage

\n

The latest version of Motrix AppImage requires you to manually perform desktop integration. Please check the documentation of AppImageLauncher .

\n
\n

Desktop Integration\nSince electron-builder 21 desktop integration is not a part of produced AppImage file.\nAppImageLauncher is the recommended way to integrate AppImages.

\n
\n

Deepin 20 Beta users failed to install Motrix, please follow the steps below:

\n

Open the Terminal, paste and run the following command to install Motrix again.

\n
sudo apt --fix-broken install
\n

Snap

\n

Motrix has been listed on Snapcraft , Ubuntu users recommend downloading from the Snap Store.

\n

Tips for v1.5.10

\n

The tray may not display the indicator normally, which makes it inconvenient to exit the application.

\n

Please unchecked Preferences--Basic Settings--Hide App Menu (Windows & Linux Only), click Save & Apply. Then click \"Exit\" in the File menu to exit the application.

\n

Please update to v1.5.12 and above, you can use the keyboard shortcut Ctrl + q to quickly exit the application.

\n

AUR

\n

For Arch Linux users, Motrix is available in aur, thanks to the maintainer @weearc.

\n

Run the following command to install:

\n
yay motrix
\n

Flatpak

\n

Thanks to the PR of @proletarius101, Motrix has been listed Flathub, Linux users who like the Flatpak can try it.

\n
# Install\nflatpak install flathub net.agalwood.Motrix\n\n# Run\nflatpak run net.agalwood.Motrix
\n

Features

\n\n

🖥 User Interface

\n

\"motrix-screenshot-task-en.png\"

\n

⌨️ Development

\n

Clone Code

\n
git clone git@github.com:agalwood/Motrix.git
\n

Install Dependencies

\n
cd Motrix\nyarn
\n
\n

Error: Electron failed to install correctly, please delete node_modules/electron and try installing again

\n
\n

Electron failed to install correctly, please refer to electron/electron#8466 (comment)

\n

Dev Mode

\n
yarn run dev
\n

Build Release

\n
yarn run build
\n

After building, the application will be found in the project's release directory.

\n

🛠 Technology Stack

\n\n

☑️ TODO

\n

Development Roadmap see: Trello

\n

🤝 Contribute \"PRs

\n

If you are interested in participating in joint development, PR and Forks are welcome!

\n

🌍 Internationalization

\n

Translations into versions for other languages are welcome 🧐! Please read the translation guide before starting translations.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyNameStatus
arArabic✔️ @hadialqattan, @AhmedElTabarani
bgБългарският език✔️ @null-none
caCatalà✔️ @marcizhu
deDeutsch✔️ @Schloemicher
elΕλληνικά✔️ @Likecinema
en-USEnglish✔️
esEspañol✔️ @Chofito
faفارسی✔️ @Nima-Ra
frFrançais✔️ @gpatarin
huHungarian✔️ @zalnaRs
idIndonesia✔️ @aarestu
itItaliano✔️ @blackcat-917
ja日本語✔️ @hbkrkzk
ko한국어✔️ @KOZ39
nbNorsk Bokmål@rubjo
nlNederlands✔️ @nickbouwhuis
plPolski✔️ @KanarekLife
pt-BRPortuguese (Brazil)✔️ @andrenoberto
roRomână✔️ @alyn3d
ruРусский✔️ @bladeaweb
trTürkçe✔️ @abdullah
ukУкраїнська✔️ @bladeaweb
viTiếng Việt✔️ @duythanhvn
zh-CN简体中文✔️
zh-TW繁體中文✔️ @Yukaii
\n

📜 License

\n

MIT Copyright (c) 2018-present Dr_rOot

\n
", "readmeOriginal": "

Motrix

\n\n \"App\n\n

A full-featured download manager

\n

\"GitHub \"Build/release\" \"Total \"Support

\n

English | 简体中文

\n

Motrix is a full-featured download manager that supports downloading HTTP, FTP, BitTorrent, Magnet, etc.

\n

Motrix has a clean and easy to use interface. I hope you will like it 👻.

\n

✈️ Official Website | 📖 Manual

\n

💽 Installation

\n

Download from GitHub Releases and install it.

\n

Windows

\n

It is recommended to install Motrix using the installation package (Motrix-Setup-x.y.z.exe) to ensure a complete experience, such as associating torrent files, capturing magnet links, etc.

\n

If you use package management tools to manage applications on Windows, such as Chocolatey, scoop. You can use them to install Motrix.

\n

Chocolatey

\n

Thanks to @Yato for continuing to maintain the Motrix Chocolatey package. To install motrix, run the following command from the command line or from PowerShell:

\n
# Install\nchoco install motrix\n\n# Upgrade\nchoco upgrade motrix
\n

scoop

\n

If you prefer the portable version, you can use scoop (need Windows 7+) to install Motrix.

\n
scoop bucket add extras\nscoop install motrix
\n

macOS

\n

The macOS users can install Motrix using brew cask, thanks to PR of @Mitscherlich.

\n
brew update && brew install --cask motrix
\n

Linux

\n

You can download the AppImage (for all Linux distributions) or snap to install Motrix, see GitHub/release for more Linux installation package formats.

\n

Motrix may need to run with sudo for the first time in Linux because there is no permission to create the download session file (/var/cache/aria2.session).

\n

If you want to build from source code, please read the Build section.

\n

AppImage

\n

The latest version of Motrix AppImage requires you to manually perform desktop integration. Please check the documentation of AppImageLauncher .

\n
\n

Desktop Integration\nSince electron-builder 21 desktop integration is not a part of produced AppImage file.\nAppImageLauncher is the recommended way to integrate AppImages.

\n
\n

Deepin 20 Beta users failed to install Motrix, please follow the steps below:

\n

Open the Terminal, paste and run the following command to install Motrix again.

\n
sudo apt --fix-broken install
\n

Snap

\n

Motrix has been listed on Snapcraft , Ubuntu users recommend downloading from the Snap Store.

\n

Tips for v1.5.10

\n

The tray may not display the indicator normally, which makes it inconvenient to exit the application.

\n

Please unchecked Preferences--Basic Settings--Hide App Menu (Windows & Linux Only), click Save & Apply. Then click \"Exit\" in the File menu to exit the application.

\n

Please update to v1.5.12 and above, you can use the keyboard shortcut Ctrl + q to quickly exit the application.

\n

AUR

\n

For Arch Linux users, Motrix is available in aur, thanks to the maintainer @weearc.

\n

Run the following command to install:

\n
yay motrix
\n

Flatpak

\n

Thanks to the PR of @proletarius101, Motrix has been listed Flathub, Linux users who like the Flatpak can try it.

\n
# Install\nflatpak install flathub net.agalwood.Motrix\n\n# Run\nflatpak run net.agalwood.Motrix
\n

Features

\n\n

🖥 User Interface

\n

\"motrix-screenshot-task-en.png\"

\n

⌨️ Development

\n

Clone Code

\n
git clone git@github.com:agalwood/Motrix.git
\n

Install Dependencies

\n
cd Motrix\nyarn
\n
\n

Error: Electron failed to install correctly, please delete node_modules/electron and try installing again

\n
\n

Electron failed to install correctly, please refer to electron/electron#8466 (comment)

\n

Dev Mode

\n
yarn run dev
\n

Build Release

\n
yarn run build
\n

After building, the application will be found in the project's release directory.

\n

🛠 Technology Stack

\n\n

☑️ TODO

\n

Development Roadmap see: Trello

\n

🤝 Contribute \"PRs

\n

If you are interested in participating in joint development, PR and Forks are welcome!

\n

🌍 Internationalization

\n

Translations into versions for other languages are welcome 🧐! Please read the translation guide before starting translations.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyNameStatus
arArabic✔️ @hadialqattan, @AhmedElTabarani
bgБългарският език✔️ @null-none
caCatalà✔️ @marcizhu
deDeutsch✔️ @Schloemicher
elΕλληνικά✔️ @Likecinema
en-USEnglish✔️
esEspañol✔️ @Chofito
faفارسی✔️ @Nima-Ra
frFrançais✔️ @gpatarin
huHungarian✔️ @zalnaRs
idIndonesia✔️ @aarestu
itItaliano✔️ @blackcat-917
ja日本語✔️ @hbkrkzk
ko한국어✔️ @KOZ39
nbNorsk Bokmål@rubjo
nlNederlands✔️ @nickbouwhuis
plPolski✔️ @KanarekLife
pt-BRPortuguese (Brazil)✔️ @andrenoberto
roRomână✔️ @alyn3d
ruРусский✔️ @bladeaweb
trTürkçe✔️ @abdullah
ukУкраїнська✔️ @bladeaweb
viTiếng Việt✔️ @duythanhvn
zh-CN简体中文✔️
zh-TW繁體中文✔️ @Yukaii
\n

📜 License

\n

MIT Copyright (c) 2018-present Dr_rOot

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.326Z" }, "mockoon": { "readmeCleaned": "
\n \n \n \n
\n \n \n \n \n \n
\n
\n

Mockoon: awesome API mocking

\n
\n

Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, free and open-source.

\n

It's a desktop application and a CLI that help you work faster with APIs by mocking them. Integrate third-party APIs quicker, improve your integration tests, speed up your development, etc.\n➡️ More use cases

\n
\n \n
\n

Features

\n

Mockoon offers many features:

\n\n

You can check the complete list on the website.

\n
\n

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

\n
\n\"sponsor\n
\n
\n

Download the desktop application

\n

You can get Mockoon desktop's latest release directly from this repository or on the official website. Mockoon desktop is also available through:

\n

MacOS:

\n\n

Windows:

\n\n

Linux:

\n\n

Install the CLI

\n

Mockoon CLI is available as an NPM package. Please look at our dedicated documentation to learn how to install and use it.

\n

Mockoon's documentation

\n

You will find Mockoon's documentation on the official website. It covers Mockoon's most complex features. Feel free to contribute or ask for new topics to be covered.

\n

Support/feedback

\n

You can discuss all things related to Mockoon, and ask for help, on the official community. It's also a good place to discuss bugs and feature requests before opening an issue on this repository. For more chat-like discussions, you can also join our Discord server.

\n

Contributing

\n

If you are interested in contributing to Mockoon, please take a look at the contributing guidelines.

\n

Please also take a look at our Code of Conduct.

\n

Roadmap

\n

If you want to know what will be coming in the next release you can check the global Roadmap.

\n

New releases will be announced on Mockoon's Twitter account @GetMockoon and through the newsletter to which you can subscribe here.

\n
", "readmeOriginal": "
\n \n \n \n
\n \n \n \n \n \n
\n
\n

Mockoon: awesome API mocking

\n
\n

Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, free and open-source.

\n

It's a desktop application and a CLI that help you work faster with APIs by mocking them. Integrate third-party APIs quicker, improve your integration tests, speed up your development, etc.\n➡️ More use cases

\n
\n \n
\n

Features

\n

Mockoon offers many features:

\n\n

You can check the complete list on the website.

\n
\n

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

\n
\n\"sponsor\n
\n
\n

Download the desktop application

\n

You can get Mockoon desktop's latest release directly from this repository or on the official website. Mockoon desktop is also available through:

\n

MacOS:

\n\n

Windows:

\n\n

Linux:

\n\n

Install the CLI

\n

Mockoon CLI is available as an NPM package. Please look at our dedicated documentation to learn how to install and use it.

\n

Mockoon's documentation

\n

You will find Mockoon's documentation on the official website. It covers Mockoon's most complex features. Feel free to contribute or ask for new topics to be covered.

\n

Support/feedback

\n

You can discuss all things related to Mockoon, and ask for help, on the official community. It's also a good place to discuss bugs and feature requests before opening an issue on this repository. For more chat-like discussions, you can also join our Discord server.

\n

Contributing

\n

If you are interested in contributing to Mockoon, please take a look at the contributing guidelines.

\n

Please also take a look at our Code of Conduct.

\n

Roadmap

\n

If you want to know what will be coming in the next release you can check the global Roadmap.

\n

New releases will be announced on Mockoon's Twitter account @GetMockoon and through the newsletter to which you can subscribe here.

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.361Z" }, "mrdclutterer": { "readmeCleaned": "
\n

\n

Mr. D'clutterer

\n

Move files to where they should & call yourself mr. clean

\n

Aggregate files . bulk renaming

\n

A minimal looking cross-platform desktop application made with Electron that handles quick file aggregation and bulk renaming

\n

\"Release\n\"Stars\"\n \"Visitors\" \n\"GitHub \n

\n

\"YouTube\n \"YouTube

\n

\n
\n

About

\n

Are you an internet guy? downloading hundreds of files and then scrolling over all of them to find a few?\nDownload folder is so cluttered with files that it takes a significant amount of time to open?\nAs a programmer want to remove those annoying spaces from file names in bulk?

\n

Mr.d'clutterer is then going to be a life saver application for you :) simply drop a folder or selected files on to it to make them organized in fraction of a second.

\n

Features

\n
    \n
  1. Drag and drop
  2. \n
  3. Rename files on-the-fly
  4. \n
  5. Aggregate files by extensions and types (more coming soon..)
  6. \n
  7. Process files under sub-directories too
  8. \n
  9. Quick access to settings from the right click context-menu
  10. \n
  11. Minimal and beautiful ❤️
  12. \n
  13. Auto updates itself
  14. \n
  15. Available both for linux & windows
  16. \n
\n

Download

\n

Download the right installer for your os from Here

\n

Note

\n

If you are looking for a tiny version of this app without a gui that works right form the file managers' right click menu, check NaughtyLust (Linux Only)

\n

Demo

\n

\"Mr.

\n

Settings Menu

\n

Access settings right from the right click context-menu 🆒

\n

\"settings\"

\n

Usage Guide

\n

Directory Handling

\n

If any folders (directories) dropped, files under those will also be taken under consideration

\n

Default Mode

\n

Aggregate files based on their types with directory handling on

\n

License

\n
\n

MIT License

\n
\n
\n

Copyright (c) 2020 Dipankar Pal

\n
\n

Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.

\n

Support

\n

All kinds of supports are welcome 🙌! the most basic way to show your support is to star 🌟 the project, or to raise issues 💬 you can also support this project by becoming a sponsor on GitHub 👏 Or By Making A Paypal Donation :)

\n

Related Works

\n

NaughtyLust : Awesome Nautilus Scripts For Linux.

\n

qikQR : Minimal QR Code Generator App Made With Electron.

\n

cppcheck-action : Check Security Flaws In Your C/C++ Codes Right From GitHub Action Workflows.

\n

autopy-lot : GitHub Action Setup To Convert Jupyter Notebooks To Python Scripts And Markdowns.

\n
\n

\"unicorn\"\n

\n

Happy Coding

\n
\n
", "readmeOriginal": "
\n

\n

Mr. D'clutterer

\n

Move files to where they should & call yourself mr. clean

\n

Aggregate files . bulk renaming

\n

A minimal looking cross-platform desktop application made with Electron that handles quick file aggregation and bulk renaming

\n

\"Release\n\"Stars\"\n \"Visitors\" \n\"GitHub \n

\n

\"YouTube\n \"YouTube

\n

\n
\n

About

\n

Are you an internet guy? downloading hundreds of files and then scrolling over all of them to find a few?\nDownload folder is so cluttered with files that it takes a significant amount of time to open?\nAs a programmer want to remove those annoying spaces from file names in bulk?

\n

Mr.d'clutterer is then going to be a life saver application for you :) simply drop a folder or selected files on to it to make them organized in fraction of a second.

\n

Features

\n
    \n
  1. Drag and drop
  2. \n
  3. Rename files on-the-fly
  4. \n
  5. Aggregate files by extensions and types (more coming soon..)
  6. \n
  7. Process files under sub-directories too
  8. \n
  9. Quick access to settings from the right click context-menu
  10. \n
  11. Minimal and beautiful ❤️
  12. \n
  13. Auto updates itself
  14. \n
  15. Available both for linux & windows
  16. \n
\n

Download

\n

Download the right installer for your os from Here

\n

Note

\n

If you are looking for a tiny version of this app without a gui that works right form the file managers' right click menu, check NaughtyLust (Linux Only)

\n

Demo

\n

\"Mr.

\n

Settings Menu

\n

Access settings right from the right click context-menu 🆒

\n

\"settings\"

\n

Usage Guide

\n

Directory Handling

\n

If any folders (directories) dropped, files under those will also be taken under consideration

\n

Default Mode

\n

Aggregate files based on their types with directory handling on

\n

License

\n
\n

MIT License

\n
\n
\n

Copyright (c) 2020 Dipankar Pal

\n
\n

Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.

\n

Support

\n

All kinds of supports are welcome 🙌! the most basic way to show your support is to star 🌟 the project, or to raise issues 💬 you can also support this project by becoming a sponsor on GitHub 👏 Or By Making A Paypal Donation :)

\n

Related Works

\n

NaughtyLust : Awesome Nautilus Scripts For Linux.

\n

qikQR : Minimal QR Code Generator App Made With Electron.

\n

cppcheck-action : Check Security Flaws In Your C/C++ Codes Right From GitHub Action Workflows.

\n

autopy-lot : GitHub Action Setup To Convert Jupyter Notebooks To Python Scripts And Markdowns.

\n
\n

\"unicorn\"\n

\n

Happy Coding

\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:00.431Z" }, "mstream": { "readmeCleaned": "

mStream Music

\n

mStream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MainSharedAdmin
\"main\"\"shared\"\"admin\"
\n

Demo & Other Links

\n

Check Out The Demo!

\n

Discord Channel

\n

Website

\n

Server Features

\n\n

WebApp Features

\n\n

Installing mStream

\n\n

Android App

\n

\"mStream

\n

This App is Open Source. See the Source Code

\n

iOS App

\n

\"mStream

\n

Made by Niera Tech

\n

Quick Install from CLI

\n

Deploying an mStream server is simple.

\n
# Install From Git\ngit clone https://github.com/IrosTheBeggar/mStream.git\n\ncd mStream\n\n# Install dependencies and run\nnpm run-script wizard
\n

Technical Details

\n\n

Credits

\n

mStream is built on top some great open-source libraries:

\n\n

And thanks to the LinuxServer.io group for maintaining the Docker image!

\n
", "readmeOriginal": "

mStream Music

\n

mStream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MainSharedAdmin
\"main\"\"shared\"\"admin\"
\n

Demo & Other Links

\n

Check Out The Demo!

\n

Discord Channel

\n

Website

\n

Server Features

\n\n

WebApp Features

\n\n

Installing mStream

\n\n

Android App

\n

\"mStream

\n

This App is Open Source. See the Source Code

\n

iOS App

\n

\"mStream

\n

Made by Niera Tech

\n

Quick Install from CLI

\n

Deploying an mStream server is simple.

\n
# Install From Git\ngit clone https://github.com/IrosTheBeggar/mStream.git\n\ncd mStream\n\n# Install dependencies and run\nnpm run-script wizard
\n

Technical Details

\n\n

Credits

\n

mStream is built on top some great open-source libraries:

\n\n

And thanks to the LinuxServer.io group for maintaining the Docker image!

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.525Z" }, "movieprint": { "readmeCleaned": "

\"MoviePrint\"

\n

Website - https://movieprint.org/

\n

A tool which lets you create screenshots of entire movies in an instant.\n

\n\n

MoviePrint is using openCV as the roadmap includes utilising computer vision algorithms.

\n

Privacy

\n

MoviePrint does not collect any data. All work including detection is done in the app itself (Note: It currently connets on startup to fonts.googleapis.com due to a dependency to semantic ui a ui framework.)

\n

Please give feedback

\n

As we are not collecting any data from you, we are dependent on you talking to us. If you have a minute, we would very much appreciate if you tell us

\n\n

You can use this form or the Contact us button in the app.

\n

Want to stay updated?

\n

Do you want to be informed when new features are released? Just check Keep me up-to-date in this form or use the Contact us button in the app.\nWe will only ever send you MoviePrint related updates.

\n

Example MoviePrints

\n

Grid view\n\"MoviePrint_v004

\n

Timeline views\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004

\n

How it works

\n

\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004

\n

Watch explainer

\n

\"MoviePrint_v004\nWatch screencast

\n
\n

Download Mac and Windows releases

\n

https://github.com/fakob/MoviePrint_v004/releases

\n

old version (2014)\nhttp://www.fakob.com/2014/movieprint-an-osx-tool/

\n
\n

MoviePrint_v004 is based on electron-react-boilerplate

\n

For development

\n\n
Mac setup
\n
    \n
  1. clone the repo via git: git clone --depth=1 https://github.com/fakob/MoviePrint_v004.git MoviePrint_v004
  2. \n
  3. Make sure you have cmake installed brew install cmake
  4. \n
  5. To have ffmpeg support in opencv4nodejs you need to have ffmpeg v3.4.2 and pkg-config installed before opencv4nodejs gets built (ffmpeg v4.x is currently not supported)
  6. \n
  7. Enter the folder cd MoviePrint_v004
  8. \n
  9. Install dependencies with yarn by running the command yarn
  10. \n
\n
Windows setup
\n

These instructions should work, if you run into errors maybe look here and comment.

\n
    \n
  1. git clone --depth=1 https://github.com/fakob/MoviePrint_v004.git MoviePrint_v004
  2. \n
  3. Install CMake (v3.13.2 works), choose \"add to PATH\" option during installation
  4. \n
  5. Make sure you have yarn (v1.12.3 works) installed
  6. \n
  7. To have ffmpeg support in opencv4nodejs you need to have ffmpeg installed (v3.4.2 works, v4.1 should too)
  8. \n
  9. We'll need opencv4nodejs to work which requires npm install --global windows-build-tools
  10. \n
  11. We need better-sqlite3 to work which additionally requires VC++ 2015.3 v14.00(v140) toolset for desktop\n
      \n
    • Start Visual Studio Installer
    • \n
    • Modify Visual Studio Build Tools 2017
    • \n
    • Click on Individual components
    • \n
    • Tick VC++ 2015.3 v14.00 (v140) toolset for desktop
    • \n
    • Click on Modify/Install
    • \n
    \n
  12. \n
  13. Make sure you have python 2 (not 3) installed (v2.7.15 works), test by running python --version
  14. \n
  15. Run the command yarn (this may take 10+ minutes and may automatically download supporting libraries from Microsoft). If this process errors out, try to debug.
  16. \n
\n

The rest of the instructions are the same for Mac and Windows:

\n
First time
\n
$ yarn includeInDist
\n
Run
\n
$ yarn dev
\n
Packaging
\n

To package the app for your local platform:

\n
$ yarn package
\n

License

\n

MIT © fakob

\n
", "readmeOriginal": "

\"MoviePrint\"

\n

Website - https://movieprint.org/

\n

A tool which lets you create screenshots of entire movies in an instant.\n

\n\n

MoviePrint is using openCV as the roadmap includes utilising computer vision algorithms.

\n

Privacy

\n

MoviePrint does not collect any data. All work including detection is done in the app itself (Note: It currently connets on startup to fonts.googleapis.com due to a dependency to semantic ui a ui framework.)

\n

Please give feedback

\n

As we are not collecting any data from you, we are dependent on you talking to us. If you have a minute, we would very much appreciate if you tell us

\n\n

You can use this form or the Contact us button in the app.

\n

Want to stay updated?

\n

Do you want to be informed when new features are released? Just check Keep me up-to-date in this form or use the Contact us button in the app.\nWe will only ever send you MoviePrint related updates.

\n

Example MoviePrints

\n

Grid view\n\"MoviePrint_v004

\n

Timeline views\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004

\n

How it works

\n

\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004\n\"MoviePrint_v004

\n

Watch explainer

\n

\"MoviePrint_v004\nWatch screencast

\n
\n

Download Mac and Windows releases

\n

https://github.com/fakob/MoviePrint_v004/releases

\n

old version (2014)\nhttp://www.fakob.com/2014/movieprint-an-osx-tool/

\n
\n

MoviePrint_v004 is based on electron-react-boilerplate

\n

For development

\n\n
Mac setup
\n
    \n
  1. clone the repo via git: git clone --depth=1 https://github.com/fakob/MoviePrint_v004.git MoviePrint_v004
  2. \n
  3. Make sure you have cmake installed brew install cmake
  4. \n
  5. To have ffmpeg support in opencv4nodejs you need to have ffmpeg v3.4.2 and pkg-config installed before opencv4nodejs gets built (ffmpeg v4.x is currently not supported)
  6. \n
  7. Enter the folder cd MoviePrint_v004
  8. \n
  9. Install dependencies with yarn by running the command yarn
  10. \n
\n
Windows setup
\n

These instructions should work, if you run into errors maybe look here and comment.

\n
    \n
  1. git clone --depth=1 https://github.com/fakob/MoviePrint_v004.git MoviePrint_v004
  2. \n
  3. Install CMake (v3.13.2 works), choose \"add to PATH\" option during installation
  4. \n
  5. Make sure you have yarn (v1.12.3 works) installed
  6. \n
  7. To have ffmpeg support in opencv4nodejs you need to have ffmpeg installed (v3.4.2 works, v4.1 should too)
  8. \n
  9. We'll need opencv4nodejs to work which requires npm install --global windows-build-tools
  10. \n
  11. We need better-sqlite3 to work which additionally requires VC++ 2015.3 v14.00(v140) toolset for desktop\n
      \n
    • Start Visual Studio Installer
    • \n
    • Modify Visual Studio Build Tools 2017
    • \n
    • Click on Individual components
    • \n
    • Tick VC++ 2015.3 v14.00 (v140) toolset for desktop
    • \n
    • Click on Modify/Install
    • \n
    \n
  12. \n
  13. Make sure you have python 2 (not 3) installed (v2.7.15 works), test by running python --version
  14. \n
  15. Run the command yarn (this may take 10+ minutes and may automatically download supporting libraries from Microsoft). If this process errors out, try to debug.
  16. \n
\n

The rest of the instructions are the same for Mac and Windows:

\n
First time
\n
$ yarn includeInDist
\n
Run
\n
$ yarn dev
\n
Packaging
\n

To package the app for your local platform:

\n
$ yarn package
\n

License

\n

MIT © fakob

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.529Z" }, "multiple-file-manager": { "readmeCleaned": "
\n

Multiple File Manager

\n

\"devDependencies\n\"dependencies\n\"version\"

\n
\n

Download

\n

You can check the latest version to release page

\n

How it Work

\n

Rename File

\n

Delete :

\n

deleting character that's match to every filename in a folder.

\n

if you have:

\n
file-01.pdf  \nfile-02.pdf  \nfile-03.pdf  \n
\n

fill the delete input field with file, then you will have result as follows:

\n
-01.pdf  \n-02.pdf  \n-03.pdf  \n
\n

Replace :

\n

replace character to any character you want to replace.\nif you have:

\n
file-01.pdf  \nfile-02.pdf  \nfile-03.pdf  \n
\n

fill the from input field with file, and to with goodbooks, then you will have result as follows:

\n
goodbooks-01.pdf  \ngoodbooks-02.pdf  \ngoodbooks-03.pdf  \n
\n

Insert :

\n

insert character to the beginning(prefix) and/or the end(suffix) of your filename.
\nif you have:

\n
file-01.pdf  \nfile-02.pdf  \nfile-03.pdf  \n
\n

fill the before input field with library-,
\nand after with collection, then you will have result as follows:

\n
library-file-01 collection.pdf  \nlibrary-file-02 collection.pdf    \nlibrary-file-03 collection.pdf    \n
\n

Manage File

\n

Delete Duplicated

\n

deleting any file which detected as duplicated file.
\nthis function will detecting duplicated file just in the recent folder, when you have selecting some file as follows:

\n
doc 01.txt\ndoc 01_0.txt\ndoc 01_1.txt\ndoc 01_2.txt\ndoc 02.txt\ndoc 02_0.txt\ndoc 02_1.txt\ndoc 02_2.txt\n
\n

this application will specify that doc 01.txt and doc 02.txt will keep to your computer, and the rest as follows:

\n
doc 01_0.txt\ndoc 01_1.txt\ndoc 01_2.txt\ndoc 02_0.txt\ndoc 02_1.txt\ndoc 02_2.txt\n
\n

will deleted temporary to recycle bin

\n

Contribution

\n

Do you find an error or have feature request? then let's check this repository issues

\n

License

\n

this project is developed under MIT License

\n
", "readmeOriginal": "
\n

Multiple File Manager

\n

\"devDependencies\n\"dependencies\n\"version\"

\n
\n

Download

\n

You can check the latest version to release page

\n

How it Work

\n

Rename File

\n

Delete :

\n

deleting character that's match to every filename in a folder.

\n

if you have:

\n
file-01.pdf  \nfile-02.pdf  \nfile-03.pdf  \n
\n

fill the delete input field with file, then you will have result as follows:

\n
-01.pdf  \n-02.pdf  \n-03.pdf  \n
\n

Replace :

\n

replace character to any character you want to replace.\nif you have:

\n
file-01.pdf  \nfile-02.pdf  \nfile-03.pdf  \n
\n

fill the from input field with file, and to with goodbooks, then you will have result as follows:

\n
goodbooks-01.pdf  \ngoodbooks-02.pdf  \ngoodbooks-03.pdf  \n
\n

Insert :

\n

insert character to the beginning(prefix) and/or the end(suffix) of your filename.
\nif you have:

\n
file-01.pdf  \nfile-02.pdf  \nfile-03.pdf  \n
\n

fill the before input field with library-,
\nand after with collection, then you will have result as follows:

\n
library-file-01 collection.pdf  \nlibrary-file-02 collection.pdf    \nlibrary-file-03 collection.pdf    \n
\n

Manage File

\n

Delete Duplicated

\n

deleting any file which detected as duplicated file.
\nthis function will detecting duplicated file just in the recent folder, when you have selecting some file as follows:

\n
doc 01.txt\ndoc 01_0.txt\ndoc 01_1.txt\ndoc 01_2.txt\ndoc 02.txt\ndoc 02_0.txt\ndoc 02_1.txt\ndoc 02_2.txt\n
\n

this application will specify that doc 01.txt and doc 02.txt will keep to your computer, and the rest as follows:

\n
doc 01_0.txt\ndoc 01_1.txt\ndoc 01_2.txt\ndoc 02_0.txt\ndoc 02_1.txt\ndoc 02_2.txt\n
\n

will deleted temporary to recycle bin

\n

Contribution

\n

Do you find an error or have feature request? then let's check this repository issues

\n

License

\n

this project is developed under MIT License

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.615Z" }, "museeks": { "readmeCleaned": "

Museeks

\n

\"Build\n\"Github

\n

A simple, clean and cross-platform music player. (museeks.io)

\n

\"Screenshot\"

\n

Features

\n

Museeks aims to be a simple and easy to use music player with a clean UI.

\n

You will not find tons of features, as its goals is not to compete with more complete and more famous music players. Here is a little preview though:

\n\n

Want more? Open a new issue or 👍 an existing one so we can talk about it.

\n

Releases notes

\n

Over here!

\n

Installation

\n

Classic

\n

Builds and installers can be found on this page.

\n

Build (advanced)

\n

Museeks is built upon:

\n\n

Requirements:

\n\n

Please consider that master is unstable.

\n\n

Package binaries (advanced)

\n\n

Troubleshooting

\n

Museeks is currently in development. This implies some things can break after an update (database schemes changes, config...).

\n

If you encounter freezes or crashes when using the app, you can reset Museeks by following these steps:

\n\n

If you still get problems after that, please open an issue :)

\n

Bug report

\n

If you want to report a bug, first, thanks a lot, that helps us a lot. Please open an issue and mention your OS, your Museeks version, and how to reproduce it. Adding a screen of the console (Menu -> View -> Toggle Developer Tools) is a big help too.

\n

Contribute

\n\n

Please respect a few rules:

\n\n

Then open a PR :)

\n
", "readmeOriginal": "

Museeks

\n

\"Build\n\"Github

\n

A simple, clean and cross-platform music player. (museeks.io)

\n

\"Screenshot\"

\n

Features

\n

Museeks aims to be a simple and easy to use music player with a clean UI.

\n

You will not find tons of features, as its goals is not to compete with more complete and more famous music players. Here is a little preview though:

\n\n

Want more? Open a new issue or 👍 an existing one so we can talk about it.

\n

Releases notes

\n

Over here!

\n

Installation

\n

Classic

\n

Builds and installers can be found on this page.

\n

Build (advanced)

\n

Museeks is built upon:

\n\n

Requirements:

\n\n

Please consider that master is unstable.

\n\n

Package binaries (advanced)

\n\n

Troubleshooting

\n

Museeks is currently in development. This implies some things can break after an update (database schemes changes, config...).

\n

If you encounter freezes or crashes when using the app, you can reset Museeks by following these steps:

\n\n

If you still get problems after that, please open an issue :)

\n

Bug report

\n

If you want to report a bug, first, thanks a lot, that helps us a lot. Please open an issue and mention your OS, your Museeks version, and how to reproduce it. Adding a screen of the console (Menu -> View -> Toggle Developer Tools) is a big help too.

\n

Contribute

\n\n

Please respect a few rules:

\n\n

Then open a PR :)

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.762Z" }, "multrin": { "readmeCleaned": "

\n \n

\n
\n

Multrin

\n

\"Travis\"\n\"Downloads\"\n\"FOSSA\n\"PayPal\"\n\"Discord\"

\n

Multrin is a cross-platform app built on Electron that lets you to organize apps in tabs by simply dropping them onto Multrin. It aims to greatly improve your productivity and organization.

\n
\n
\n

NOTE: Multrin works currently only on Windows and macOS. Support for Linux coming soon.

\n
\n

Features

\n\n

Screenshots

\n

\"gif\"

\n

\"image\"

\n

Roadmap

\n

Components

\n

Multrin has some very important components:

\n\n

Contributing

\n

If you have found any bugs or just want to see some new features in Multrin, feel free to open an issue. I'm open to any suggestions and bug reports would be really helpful for me and appreciated very much. Multrin is in heavy development and some bugs may occur. Also, please don't hesitate to open a pull request. This is really important to me and for the further development of this project.

\n

Running

\n

Before running Multrin in development mode, please ensure you have Node.js installed on your machine.

\n

When running on Windows, make sure you have build tools installed. You can install them by running as administrator:

\n
$ npm i -g windows-build-tools
\n

Firstly, run this command to install all needed dependencies. If you have encountered any problems, please report it. I will try to help as much as I can.

\n
$ npm i
\n

Now the native modules need to be rebuilt with Electron's headers. To do that, please run:

\n
$ npm run rebuild
\n

The given command below will run Multrin in the development mode.

\n
$ npm run dev
\n

And in other terminal:

\n
$ npm start
\n

Sponsors

\n

\"Sponsors\"

\n

Backers

\n

\"Backers\"

\n\n \n\n

License

\n

\"FOSSA

\n
", "readmeOriginal": "

\n \n

\n
\n

Multrin

\n

\"Travis\"\n\"Downloads\"\n\"FOSSA\n\"PayPal\"\n\"Discord\"

\n

Multrin is a cross-platform app built on Electron that lets you to organize apps in tabs by simply dropping them onto Multrin. It aims to greatly improve your productivity and organization.

\n
\n
\n

NOTE: Multrin works currently only on Windows and macOS. Support for Linux coming soon.

\n
\n

Features

\n\n

Screenshots

\n

\"gif\"

\n

\"image\"

\n

Roadmap

\n

Components

\n

Multrin has some very important components:

\n\n

Contributing

\n

If you have found any bugs or just want to see some new features in Multrin, feel free to open an issue. I'm open to any suggestions and bug reports would be really helpful for me and appreciated very much. Multrin is in heavy development and some bugs may occur. Also, please don't hesitate to open a pull request. This is really important to me and for the further development of this project.

\n

Running

\n

Before running Multrin in development mode, please ensure you have Node.js installed on your machine.

\n

When running on Windows, make sure you have build tools installed. You can install them by running as administrator:

\n
$ npm i -g windows-build-tools
\n

Firstly, run this command to install all needed dependencies. If you have encountered any problems, please report it. I will try to help as much as I can.

\n
$ npm i
\n

Now the native modules need to be rebuilt with Electron's headers. To do that, please run:

\n
$ npm run rebuild
\n

The given command below will run Multrin in the development mode.

\n
$ npm run dev
\n

And in other terminal:

\n
$ npm start
\n

Sponsors

\n

\"Sponsors\"

\n

Backers

\n

\"Backers\"

\n\n \n\n

License

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.818Z" }, "music-player2": { "readmeCleaned": "

Music Player

\n

\n

This is a music player that can apply cool effects such as reversing, time stretching, and pitch shifting in real-time.\nIt's basically the GUI version of my Music Player Web site.

\n

Features:

\n\n

Keyboard Shortcuts

\n\n

Installation

\n

Download the latest installer from the releases tab. Updates can be installed automatically.

\n

Bugs and Requests

\n

Open an issue on my GitHub repository.

\n

Also See

\n\n
", "readmeOriginal": "

Music Player

\n

\n

This is a music player that can apply cool effects such as reversing, time stretching, and pitch shifting in real-time.\nIt's basically the GUI version of my Music Player Web site.

\n

Features:

\n\n

Keyboard Shortcuts

\n\n

Installation

\n

Download the latest installer from the releases tab. Updates can be installed automatically.

\n

Bugs and Requests

\n

Open an issue on my GitHub repository.

\n

Also See

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:00.867Z" }, "mr-noplay": { "readmeCleaned": "

\"Mr

\n
中文介绍
\n

What is it

\n

You said to yourself: 'Now it is time to rest. Let's play for 5 mins.' But it became unstoppable after starting. And in this way, your afternoon was wasted.

\n

You should download Mr Noplay, who gives an end to no-end rests and play times.

\n

Hope you'll like it 😄

\n

Download

\n

For your Windows 7+ or macOS, Go to the website to download.

\n

Other ways: Softpedia

\n

Or you can try the Web Version.

\n

If you need Linux version, plz open an issue. Android & iOS versions might come into being in the future.

\n

For any other questions, open an isuue or contact me at tianze%scris.top (% → @)

\n

Features

\n\n

License and Copyright

\n

Copyright (c) 2019-2020 Tianze Ds Qiu and other contributors. All rights reserved.

\n

Mr Noplay is under MPL v2.0.

\n

For the information about which package we used, plz go to Fossa and see.

\n

\"FOSSA

\n

Languages

\n\n

Build Process

\n
# get dependencies\nyarn\ncd electron\nyarn\n\n# dev\nyarn run dev\n\n# build to electron\nyarn run electron-dev\nyarn run electron-mac\nyarn run electron-win\n\n# build to web (at ../mrnoplay.web/)\nyarn run web
\n

Screenshot

\n

\"Mr

\n
", "readmeOriginal": "

\"Mr

\n
中文介绍
\n

What is it

\n

You said to yourself: 'Now it is time to rest. Let's play for 5 mins.' But it became unstoppable after starting. And in this way, your afternoon was wasted.

\n

You should download Mr Noplay, who gives an end to no-end rests and play times.

\n

Hope you'll like it 😄

\n

Download

\n

For your Windows 7+ or macOS, Go to the website to download.

\n

Other ways: Softpedia

\n

Or you can try the Web Version.

\n

If you need Linux version, plz open an issue. Android & iOS versions might come into being in the future.

\n

For any other questions, open an isuue or contact me at tianze%scris.top (% → @)

\n

Features

\n\n

License and Copyright

\n

Copyright (c) 2019-2020 Tianze Ds Qiu and other contributors. All rights reserved.

\n

Mr Noplay is under MPL v2.0.

\n

For the information about which package we used, plz go to Fossa and see.

\n

\"FOSSA

\n

Languages

\n\n

Build Process

\n
# get dependencies\nyarn\ncd electron\nyarn\n\n# dev\nyarn run dev\n\n# build to electron\nyarn run electron-dev\nyarn run electron-mac\nyarn run electron-win\n\n# build to web (at ../mrnoplay.web/)\nyarn run web
\n

Screenshot

\n

\"Mr

\n
", "readmeFetchedAt": "2022-05-10T00:08:00.941Z" }, "mytools": { "readmeCleaned": "

\n

MyTools

\n

A desktop application based on Electron and React for daily application development.

\n

\"screenshot\"

\n

Tools

\n\n

CheatSheets

\n\n

and more...

\n

Powered by

\n\n

Starting Development

\n

Start the app in the dev environment:

\n
yarn start
\n

Packaging for Production

\n

To package apps for the local platform:

\n
yarn package
\n

Building to Multiple Platforms

\n
yarn package-all
\n

Debugging the Production Build

\n
yarn cross-env DEBUG_PROD=true yarn build\nyarn cross-env DEBUG_PROD=true yarn start
\n

Generating app icon

\n

File: logo_icon.afphoto\nEditor: Affinity Photo

\n

Install:

\n
npm install -g electron-icon-maker
\n

then

\n
electron-icon-maker --input=./logo.png --output=./output
\n

Suggestions

\n

Please mail to: qiu_lin@163.com

\n

License

\n

MIT

\n
", "readmeOriginal": "

\n

MyTools

\n

A desktop application based on Electron and React for daily application development.

\n

\"screenshot\"

\n

Tools

\n\n

CheatSheets

\n\n

and more...

\n

Powered by

\n\n

Starting Development

\n

Start the app in the dev environment:

\n
yarn start
\n

Packaging for Production

\n

To package apps for the local platform:

\n
yarn package
\n

Building to Multiple Platforms

\n
yarn package-all
\n

Debugging the Production Build

\n
yarn cross-env DEBUG_PROD=true yarn build\nyarn cross-env DEBUG_PROD=true yarn start
\n

Generating app icon

\n

File: logo_icon.afphoto\nEditor: Affinity Photo

\n

Install:

\n
npm install -g electron-icon-maker
\n

then

\n
electron-icon-maker --input=./logo.png --output=./output
\n

Suggestions

\n

Please mail to: qiu_lin@163.com

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.011Z" }, "musify": { "readmeCleaned": "

Notice: Due to studies and other reasons, I'm currently unable to continue developing the project, however, new pull requests are welcome and I'll pick it up when my time allows.

\n

Musify

\n

\"JavaScript

\n

Musify is a simple and fast music player, built from the ground up, using web technologies such as HTML, CSS and JavaScript, all wrapped on Electron Framework.\nThis is my first project as a computer science student. I've tried my best to write a code that follows common coding conventions, but keep in mind that you may find common beginner errors. If so, feel free to help and contribute to improve this app.

\n

Development is now in the dev branch

\n

Table of Contents

\n\n

Releases

\n\n

You can see the latest changes here.

\n

Development

\n

This app is built using Electron. It requires the following dependencies:

\n
    dialogs\n    electron\n    electron-builder\n    musicmetadata\n    photonkit\n    snazzy\n    about-window
\n

To start developing, run the following commands (you'll need Node.js and npm already installed in your system):

\n
    git clone https://github.com/SrGMC/musify.git\n    cd musify\n    npm run-script postinstall
\n

To run the app, simply execute:

\n
    npm start
\n

To fix js files, simply run:

\n
    npm run-script fix
\n

To build binary files, simply run one of the following:

\n
    npm run-script package-mac\n    npm run-script package-windows\n    npm run-script package-linux
\n

TODO

\n\n

Contributing

\n

If you want to contribute, please follow this guidelines:

\n

Feedback

\n

Please fill and follow the following structure when opening issues\nSections in bold are required

\n
    \n
  1. Type:
  2. \n
  3. OS:
  4. \n
  5. OS version:
  6. \n
  7. App version:
  8. \n
  9. When did the bug happen?:
  10. \n
  11. What did you try when the bug happened?:
  12. \n
  13. Description/More information:
  14. \n
\n

Code

\n

Check out the CONTRIBUTING.md file

\n

Changelog

\n

All the releases can be found here.

\n

beta 0.8.3:

\n\n

beta 0.8.2:

\n\n

beta 0.8.1:

\n\n

License

\n

Copyright @SrGMC. Released under GPL-3.0.

\n

Acknowledgements

\n\n
", "readmeOriginal": "

Notice: Due to studies and other reasons, I'm currently unable to continue developing the project, however, new pull requests are welcome and I'll pick it up when my time allows.

\n

Musify

\n

\"JavaScript

\n

Musify is a simple and fast music player, built from the ground up, using web technologies such as HTML, CSS and JavaScript, all wrapped on Electron Framework.\nThis is my first project as a computer science student. I've tried my best to write a code that follows common coding conventions, but keep in mind that you may find common beginner errors. If so, feel free to help and contribute to improve this app.

\n

Development is now in the dev branch

\n

Table of Contents

\n\n

Releases

\n\n

You can see the latest changes here.

\n

Development

\n

This app is built using Electron. It requires the following dependencies:

\n
    dialogs\n    electron\n    electron-builder\n    musicmetadata\n    photonkit\n    snazzy\n    about-window
\n

To start developing, run the following commands (you'll need Node.js and npm already installed in your system):

\n
    git clone https://github.com/SrGMC/musify.git\n    cd musify\n    npm run-script postinstall
\n

To run the app, simply execute:

\n
    npm start
\n

To fix js files, simply run:

\n
    npm run-script fix
\n

To build binary files, simply run one of the following:

\n
    npm run-script package-mac\n    npm run-script package-windows\n    npm run-script package-linux
\n

TODO

\n\n

Contributing

\n

If you want to contribute, please follow this guidelines:

\n

Feedback

\n

Please fill and follow the following structure when opening issues\nSections in bold are required

\n
    \n
  1. Type:
  2. \n
  3. OS:
  4. \n
  5. OS version:
  6. \n
  7. App version:
  8. \n
  9. When did the bug happen?:
  10. \n
  11. What did you try when the bug happened?:
  12. \n
  13. Description/More information:
  14. \n
\n

Code

\n

Check out the CONTRIBUTING.md file

\n

Changelog

\n

All the releases can be found here.

\n

beta 0.8.3:

\n\n

beta 0.8.2:

\n\n

beta 0.8.1:

\n\n

License

\n

Copyright @SrGMC. Released under GPL-3.0.

\n

Acknowledgements

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:01.106Z" }, "nertivia": { "readmeCleaned": "

Nertivia - Desktop App

\n

Desktop app for https://nertivia.net

\n

Screenshots

\n

\"alt

\n

Features

\n\n

Download

\n

Download the app from here: https://github.com/supertiger1234/nertivia-desktop-app/releases

\n

Mac and Linux support coming soon (maybe).

\n
", "readmeOriginal": "

Nertivia - Desktop App

\n

Desktop app for https://nertivia.net

\n

Screenshots

\n

\"alt

\n

Features

\n\n

Download

\n

Download the app from here: https://github.com/supertiger1234/nertivia-desktop-app/releases

\n

Mac and Linux support coming soon (maybe).

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.187Z" }, "netron": { "readmeCleaned": "
\n\n\n
\n

Netron is a viewer for neural network, deep learning and machine learning models.

\n

Netron supports ONNX, TensorFlow Lite, Caffe, Keras, Darknet, PaddlePaddle, ncnn, MNN, Core ML, RKNN, MXNet, MindSpore Lite, TNN, Barracuda, Tengine, CNTK, TensorFlow.js, Caffe2 and UFF.

\n

Netron has experimental support for PyTorch, TensorFlow, TorchScript, OpenVINO, Torch, Vitis AI, kmodel, Arm NN, BigDL, Chainer, Deeplearning4j, MediaPipe, ML.NET and scikit-learn.

\n

\n

Install

\n

macOS: Download the .dmg file or run brew install netron

\n

Linux: Download the .AppImage file or run snap install netron

\n

Windows: Download the .exe installer or run winget install -s winget netron

\n

Browser: Start the browser version.

\n

Python Server: Run pip install netron and netron [FILE] or netron.start('[FILE]').

\n

Models

\n

Sample model files to download or open using the browser version:

\n\n
", "readmeOriginal": "
\n\n\n
\n

Netron is a viewer for neural network, deep learning and machine learning models.

\n

Netron supports ONNX, TensorFlow Lite, Caffe, Keras, Darknet, PaddlePaddle, ncnn, MNN, Core ML, RKNN, MXNet, MindSpore Lite, TNN, Barracuda, Tengine, CNTK, TensorFlow.js, Caffe2 and UFF.

\n

Netron has experimental support for PyTorch, TensorFlow, TorchScript, OpenVINO, Torch, Vitis AI, kmodel, Arm NN, BigDL, Chainer, Deeplearning4j, MediaPipe, ML.NET and scikit-learn.

\n

\n

Install

\n

macOS: Download the .dmg file or run brew install netron

\n

Linux: Download the .AppImage file or run snap install netron

\n

Windows: Download the .exe installer or run winget install -s winget netron

\n

Browser: Start the browser version.

\n

Python Server: Run pip install netron and netron [FILE] or netron.start('[FILE]').

\n

Models

\n

Sample model files to download or open using the browser version:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:01.233Z" }, "music-player": { "readmeCleaned": "

\n
\n Dusk Player \n

\n

\n\n\n\n\n

\n

A minimalistic music player, designed for simplicity. Built on electron, uses Howler for handling music playback, Svelte for the UI, and music-metadata to retrieve ID3 tags.

\n

This can also serve as a starting point to implement your own front-end/UI for a music Player.

\n

Download here: Releases

\n

How to use

\n

The Player

\n

Download the build for your OS. Start the application and then click on the Folders tab on the top left corner, this will bring up a window where you can select the folder where you want to play your audio files from.\nOnce you select a folder with songs, just click play.

\n

Building from the repo

\n

Clone the repository, make it your working directory, and then on your terminal run npm install.\nOnce all the dependencies have finished downloading, run npm run app-dev to test it, and npm run build to build it for your platform.

\n

Features

\n\n

Shortcuts

\n

Next track: 🠊 |\nPrevious track: 🠈 |\nVolume up: 🠉 |\nVolume down: 🠋 |\nPlay/pause: Space

\n

Screenshots

\n

\n\n

\n

\n\n

\n

Upcoming Features

\n

Some new features and under the hood stuff that will be or has already been implemented. They'll be included in the next update.

\n\n

Contributing

\n

Please read CONTRIBUTING.md before raising a PR or creating an issue.

\n

Changelog

\n

You can find the changelog for all releases here

\n
\n\"Dusk\n
\n

If you liked this, check out My Blog where I post tutorials and write about projects like this

\n

https://home.aveek.io/blog/

\n
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
\n
", "readmeOriginal": "

\n
\n Dusk Player \n

\n

\n\n\n\n\n

\n

A minimalistic music player, designed for simplicity. Built on electron, uses Howler for handling music playback, Svelte for the UI, and music-metadata to retrieve ID3 tags.

\n

This can also serve as a starting point to implement your own front-end/UI for a music Player.

\n

Download here: Releases

\n

How to use

\n

The Player

\n

Download the build for your OS. Start the application and then click on the Folders tab on the top left corner, this will bring up a window where you can select the folder where you want to play your audio files from.\nOnce you select a folder with songs, just click play.

\n

Building from the repo

\n

Clone the repository, make it your working directory, and then on your terminal run npm install.\nOnce all the dependencies have finished downloading, run npm run app-dev to test it, and npm run build to build it for your platform.

\n

Features

\n\n

Shortcuts

\n

Next track: 🠊 |\nPrevious track: 🠈 |\nVolume up: 🠉 |\nVolume down: 🠋 |\nPlay/pause: Space

\n

Screenshots

\n

\n\n

\n

\n\n

\n

Upcoming Features

\n

Some new features and under the hood stuff that will be or has already been implemented. They'll be included in the next update.

\n\n

Contributing

\n

Please read CONTRIBUTING.md before raising a PR or creating an issue.

\n

Changelog

\n

You can find the changelog for all releases here

\n
\n\"Dusk\n
\n

If you liked this, check out My Blog where I post tutorials and write about projects like this

\n

https://home.aveek.io/blog/

\n
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
\n
", "readmeFetchedAt": "2022-05-10T00:08:01.300Z" }, "network-assembler": { "readmeCleaned": "

Network Assembler

\n

Network Assembler allows you to make simple keras neural networks with simple GUI

\n

Installation

\n
!git clone https://github.com/kir486680/Network-Assembler.git\nnpm start
\n

Usage

\n

You just have to drag and drop the layers that you want to add to the model. On the left half of your screen you will see generated code.

\n

Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

License

\n

MIT

\n
", "readmeOriginal": "

Network Assembler

\n

Network Assembler allows you to make simple keras neural networks with simple GUI

\n

Installation

\n
!git clone https://github.com/kir486680/Network-Assembler.git\nnpm start
\n

Usage

\n

You just have to drag and drop the layers that you want to add to the model. On the left half of your screen you will see generated code.

\n

Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.384Z" }, "network-status-check": { "readmeCleaned": "

Network Status Check application written with Electron, Bootstrap, jQuery

\n

This is a tool to add URLs and ports to check to see if they are open or not. You can add as many items to the list, and edit the list as well if needed. You can save your list and eventually reimport the list as well on launch or by using the Load URLs button.

\n

Main Window

\n

\"main\"

\n

Run Check

\n

\"runcheck\"

\n

Quick Code Tour

\n\n

Releases

\n

At this time the releases are for Windows as that is my main developing platform and where I use this tool mostly; on Windows environments.

\n

View Releases

\n

Running Application

\n

First download and install dependencies, then start the app.

\n
git clone https://github.com/cjerrington/net-check.git\ncd net-check\nnpm install\nnpm start
\n

Creating Releases

\n

Electron Forge allows us to make builds based on our operating system we are running from. Linux (Debian) and Windows 10 tested.

\n
npm run make
\n

You can check websites like google.com, github.com, or any URL you need and the port. It is best to use the FQDN for local addresses or use the hostnames IP instead.

\n

Please let me know if you have any issues or questions. If you have a suggestion for approval create an issue or a pull request.

\n
", "readmeOriginal": "

Network Status Check application written with Electron, Bootstrap, jQuery

\n

This is a tool to add URLs and ports to check to see if they are open or not. You can add as many items to the list, and edit the list as well if needed. You can save your list and eventually reimport the list as well on launch or by using the Load URLs button.

\n

Main Window

\n

\"main\"

\n

Run Check

\n

\"runcheck\"

\n

Quick Code Tour

\n\n

Releases

\n

At this time the releases are for Windows as that is my main developing platform and where I use this tool mostly; on Windows environments.

\n

View Releases

\n

Running Application

\n

First download and install dependencies, then start the app.

\n
git clone https://github.com/cjerrington/net-check.git\ncd net-check\nnpm install\nnpm start
\n

Creating Releases

\n

Electron Forge allows us to make builds based on our operating system we are running from. Linux (Debian) and Windows 10 tested.

\n
npm run make
\n

You can check websites like google.com, github.com, or any URL you need and the port. It is best to use the FQDN for local addresses or use the hostnames IP instead.

\n

Please let me know if you have any issues or questions. If you have a suggestion for approval create an issue or a pull request.

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.470Z" }, "nicepage": { "readmeCleaned": "

Nicepage Website Builder

\n

Create stunning websites and themes

\n

Nicepage gives the ultimate freedom for Web Design 3.0.\nBuild your mobile-friendly Joomla Templates, WordPress Themes and HTML5 websites with no coding in free desktop aplications for Windows and Mac. Nicepage Page Builder is available as a Joomla Extension and WordPress Plugin. There is also a Nicepage edition with online hosting.

\n

Absolute Creativity With No Coding

\n

Nicepage is simple drag-and-drop editor to implement any ideas.

\n\n

See all Nicepage features.

\n

\n

Start With Beautiful Templates

\n

Choose from 1000+ awesome, mobile-friendly templates for every kind of websites.\n

\n

\n

Nicepage Update: February 2019

\n

We have updated our Home page with the newest trends in Web Design 3.0. This design is also available in Nicepage Templates.\n

\n

What's new in this update:

\n\n

Read more

\n

Web Design 3.0: When Your Web Design Really Matters

\n

\n

This article consists of several chapters:

\n
    \n
  1. The new revolution in Web Design has already happened.
  2. \n
  3. What makes Nicepage that different?
  4. \n
  5. We open the secret of the most trendy web designs on the Web.
  6. \n
\n

Read more

\n

Nicepage Update: December 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: November 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: October 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: September 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: August 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: July 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Theme and Template Builder: June 2018

\n

Nicepage update for supporting Joomla Templates and Wordpress Themes\n

\n

Theme and Template Features:

\n\n

Desktop Applications:

\n\n

Read more

\n
", "readmeOriginal": "

Nicepage Website Builder

\n

Create stunning websites and themes

\n

Nicepage gives the ultimate freedom for Web Design 3.0.\nBuild your mobile-friendly Joomla Templates, WordPress Themes and HTML5 websites with no coding in free desktop aplications for Windows and Mac. Nicepage Page Builder is available as a Joomla Extension and WordPress Plugin. There is also a Nicepage edition with online hosting.

\n

Absolute Creativity With No Coding

\n

Nicepage is simple drag-and-drop editor to implement any ideas.

\n\n

See all Nicepage features.

\n

\n

Start With Beautiful Templates

\n

Choose from 1000+ awesome, mobile-friendly templates for every kind of websites.\n

\n

\n

Nicepage Update: February 2019

\n

We have updated our Home page with the newest trends in Web Design 3.0. This design is also available in Nicepage Templates.\n

\n

What's new in this update:

\n\n

Read more

\n

Web Design 3.0: When Your Web Design Really Matters

\n

\n

This article consists of several chapters:

\n
    \n
  1. The new revolution in Web Design has already happened.
  2. \n
  3. What makes Nicepage that different?
  4. \n
  5. We open the secret of the most trendy web designs on the Web.
  6. \n
\n

Read more

\n

Nicepage Update: December 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: November 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: October 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: September 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: August 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Update: July 2018

\n

\n

What's new in this update:

\n\n

Read more

\n

Nicepage Theme and Template Builder: June 2018

\n

Nicepage update for supporting Joomla Templates and Wordpress Themes\n

\n

Theme and Template Features:

\n\n

Desktop Applications:

\n\n

Read more

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.502Z" }, "neucalculator": { "readmeCleaned": "

neu-calculator · \"GitHub \"PRs

\n

\n \n
\n

\n Calculate with neumorphism UI and enjoy!\n

\n
\n
\n \n \n \n
\n

\n

Getting started

\n

We use Electron React Boilerplate in this project. So start with:

\n
yarn dev\n
\n

Contributing

\n

Thank you for your interest in contributing! Please feel free to put up a PR for any issue or feature request.

\n

Give me a Star

\n

If you think this project is helpful just give me a ⭐️ Star is enough because i don't drink coffee 😃

\n

License

\n

This project is licensed under the MIT License - see the LICENSE.md file for details

\n

Author

\n

Made with ❤️ by Mohsen Madani.

\n
", "readmeOriginal": "

neu-calculator · \"GitHub \"PRs

\n

\n \n
\n

\n Calculate with neumorphism UI and enjoy!\n

\n
\n
\n \n \n \n
\n

\n

Getting started

\n

We use Electron React Boilerplate in this project. So start with:

\n
yarn dev\n
\n

Contributing

\n

Thank you for your interest in contributing! Please feel free to put up a PR for any issue or feature request.

\n

Give me a Star

\n

If you think this project is helpful just give me a ⭐️ Star is enough because i don't drink coffee 😃

\n

License

\n

This project is licensed under the MIT License - see the LICENSE.md file for details

\n

Author

\n

Made with ❤️ by Mohsen Madani.

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.564Z" }, "nimblenote": { "readmeCleaned": "

\n \"nimblenote\n

\n

nimblenote

\n

nimblenote is a simple keyboard-driven note taking application. Search, create, edit and delete notes all without the mouse.

\n\n

\"a rather splendid keyboard-driven note taking app for macOS and Linux\" - omg! ubuntu!

\n\n
\n

nimblenote is built with Electron and React and its goals are to be:

\n\n

Screenshots

\n

\"nimblenote

\n

Download

\n\n

Get started

\n

When you launch nimblenote you'll be greeted with a welcome page, and after you start typing notes, type in ? into the search box to get additional help.

\n

Get in touch

\n

Please feel free to email hello@nimblenote.app or follow us on twitter at @nimblenoteapp for updates.

\n

Sponsor

\n

Please help the development of nimblenote by sponsoring me on GitHub

\n
", "readmeOriginal": "

\n \"nimblenote\n

\n

nimblenote

\n

nimblenote is a simple keyboard-driven note taking application. Search, create, edit and delete notes all without the mouse.

\n\n

\"a rather splendid keyboard-driven note taking app for macOS and Linux\" - omg! ubuntu!

\n\n
\n

nimblenote is built with Electron and React and its goals are to be:

\n\n

Screenshots

\n

\"nimblenote

\n

Download

\n\n

Get started

\n

When you launch nimblenote you'll be greeted with a welcome page, and after you start typing notes, type in ? into the search box to get additional help.

\n

Get in touch

\n

Please feel free to email hello@nimblenote.app or follow us on twitter at @nimblenoteapp for updates.

\n

Sponsor

\n

Please help the development of nimblenote by sponsoring me on GitHub

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.613Z" }, "nota": { "readmeOriginal": null, "readmeFetchedAt": "2022-05-10T00:08:01.798Z" }, "notable": { "readmeCleaned": "

Notable  

\n

\n \n \"Notable\"\n \n

\n

\n \n \"Download\n \n

\n
\n

I couldn't find a note-taking app that ticked all the boxes I'm interested in: notes are written and rendered in GitHub Flavored Markdown, no WYSIWYG, no proprietary formats, I can run a search & replace across all notes, notes support attachments, the app isn't bloated, the app has a pretty interface, tags are indefinitely nestable and can import Evernote notes (because that's what I was using before).

\n

So I built my own.

\n

Comparison

\n

\"Click

\n

Part of this comparison is personal opinion: you may disagree on the UI front, things I consider bloat may be considered features by somebody else etc. but hopefully this comparison did a good job at illustrating the main differences.

\n

Features

\n

Markdown-based

\n

Notes are written in GitHub Flavored Markdown, and you can also write KaTeX expressions, Mermaid diagrams and so much more, check out our full Markdown cheatsheet.

\n

Notable also gives you a very powerful Markdown editor, it's the same one VS Code uses in fact, so features like multi-cursors, a minimap and best-in-class syntax highlighting are built-in.

\n

\n \n \"Editor\"\n \n

\n

No Vendor Lock-In

\n

Notes and attachments are simply stored on your disk, this is extremely portable and powerful: you could edit your notes with your favorite editor, have them synchronized via Dropbox, run Git on them, run a regex-based search and replace on them etc.

\n

\n \n \"Filesystem\"\n \n

\n

Dark Theme

\n

A dark theme is also available. In the future support for custom themes will be added as well.

\n

If you'd like to change a color or hide a button you are also free to do that via the Devtools.

\n

\n \n \"Dark\n \n

\n

Zen Mode

\n

Zen mode provides a minimalistic editing and reading experience, hiding everything that's not necessary.

\n

Notable is also keyboard friendly, has a quick open window, and we'll soon add a command palette too, so you won't have to click any buttons if you don't want to.

\n

\n \n \"Zen\n \n

\n

Multi-Note Editor

\n

A multi-note editor is available for quickly running an action, like favoriting, pinning, deleting, tagging etc., on multiple notes at once.

\n

If you need to run a more complex action on your notes remember that they are just file stored on your disk so you can do whatever you want with them.

\n

\n \n \"Multi-Note\n \n

\n

Split Editor

\n

A split-editor is available for quickly checking out how your note will be rendered while you're editing it.

\n

\n \n \"Split\n \n

\n

More Features

\n

A lot more features are implemented, some of the most important ones are listed here.

\n

Is a feature you care about currently missing? Make sure to browse the issue tracker and add your \"👍\" reaction to the issues you care most about, as we also use those reactions to prioritize issues.

\n

Contributing

\n

There are multiple ways to contribute to this project, read about them here.

\n

Useful Links

\n\n

License

\n

Only older versions of the app are open-sourced, read more about this here.

\n
", "readmeOriginal": "

Notable  

\n

\n \n \"Notable\"\n \n

\n

\n \n \"Download\n \n

\n
\n

I couldn't find a note-taking app that ticked all the boxes I'm interested in: notes are written and rendered in GitHub Flavored Markdown, no WYSIWYG, no proprietary formats, I can run a search & replace across all notes, notes support attachments, the app isn't bloated, the app has a pretty interface, tags are indefinitely nestable and can import Evernote notes (because that's what I was using before).

\n

So I built my own.

\n

Comparison

\n

\"Click

\n

Part of this comparison is personal opinion: you may disagree on the UI front, things I consider bloat may be considered features by somebody else etc. but hopefully this comparison did a good job at illustrating the main differences.

\n

Features

\n

Markdown-based

\n

Notes are written in GitHub Flavored Markdown, and you can also write KaTeX expressions, Mermaid diagrams and so much more, check out our full Markdown cheatsheet.

\n

Notable also gives you a very powerful Markdown editor, it's the same one VS Code uses in fact, so features like multi-cursors, a minimap and best-in-class syntax highlighting are built-in.

\n

\n \n \"Editor\"\n \n

\n

No Vendor Lock-In

\n

Notes and attachments are simply stored on your disk, this is extremely portable and powerful: you could edit your notes with your favorite editor, have them synchronized via Dropbox, run Git on them, run a regex-based search and replace on them etc.

\n

\n \n \"Filesystem\"\n \n

\n

Dark Theme

\n

A dark theme is also available. In the future support for custom themes will be added as well.

\n

If you'd like to change a color or hide a button you are also free to do that via the Devtools.

\n

\n \n \"Dark\n \n

\n

Zen Mode

\n

Zen mode provides a minimalistic editing and reading experience, hiding everything that's not necessary.

\n

Notable is also keyboard friendly, has a quick open window, and we'll soon add a command palette too, so you won't have to click any buttons if you don't want to.

\n

\n \n \"Zen\n \n

\n

Multi-Note Editor

\n

A multi-note editor is available for quickly running an action, like favoriting, pinning, deleting, tagging etc., on multiple notes at once.

\n

If you need to run a more complex action on your notes remember that they are just file stored on your disk so you can do whatever you want with them.

\n

\n \n \"Multi-Note\n \n

\n

Split Editor

\n

A split-editor is available for quickly checking out how your note will be rendered while you're editing it.

\n

\n \n \"Split\n \n

\n

More Features

\n

A lot more features are implemented, some of the most important ones are listed here.

\n

Is a feature you care about currently missing? Make sure to browse the issue tracker and add your \"👍\" reaction to the issues you care most about, as we also use those reactions to prioritize issues.

\n

Contributing

\n

There are multiple ways to contribute to this project, read about them here.

\n

Useful Links

\n\n

License

\n

Only older versions of the app are open-sourced, read more about this here.

\n
", "readmeFetchedAt": "2022-05-10T00:08:01.846Z" }, "nteract": { "readmeCleaned": "

\"nteract

\n

the interactive computing suite for you

\n

\n\"code\n\"maintained\n\"github\n\"nteract\n

\n

nteract is an open-source organization committed to creating fantastic\ninteractive computing experiences that allow people to collaborate with ease.

\n

We build SDKs, applications, and libraries that help you and your team make\nthe most of interactive (particularly Jupyter) notebooks and REPLs.

\n

To learn more about the nteract open source organization and the rest of our\nprojects, please visit our website.

\n

What's in this repo?

\n

This repo is a monorepo. It contains the code for the nteract core SDK and\nnteract's desktop and web applications. It also contains the documentation for\nthe SDK and the applications. Here's a quick guide to the contents of the\nmonorepo.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FolderDescription
applications/desktopSource code for the nteract desktop application. The desktop application is a cross-platform app built using Electron.
applications/jupyter-extensionSource code the nteract Jupyter extension. This extension can be installed alongside Jupyter classic and JupyterLab in your Jupyter deployments or personal Jupyter server.
packagesJavaScript packages that are part of the nteract core SDK.
changelogsChangelogs for each release of the nteract core SDK and applications.
\n

How do I contribute to this repo?

\n

If you are interested in contributing to nteract, please read the\ncontribution guidelines for information on how to set up\nyour nteract repo for development, how to write tests and validate changes,\nhow to update documentation, and how to submit your code changes for review on\nGitHub.

\n

How do I use the nteract core SDK?

\n

If you are a developer who wants to build an nteract-based notebook application,\ncheck out the following documentation resources for more info.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LinkWhat's in it?
docs.nteract.ioThis page contains our how-to and tutorial style documentation. Get started learning about the nteract core SDK here.
packages.nteract.ioThis page contains the API documentation for packages in our core SDK. Bookmark this and use it as a reference when building your nteract-based UI.
components.nteract.ioThis page contains the documentation for our suite of composable React components. It contains code samples that you can reference when building your nteract-based UI.
\n

Our documentation is living. We are always making changes and adding more\ncontent. If you have feedback about the documentation, please open an issue\nin this repo. If you are interested in submitting a change to our documentation\npage, please review the contribution guidelines and\nsubmit a pull request.

\n

How do I use the nteract desktop application?

\n

To get started with the nteract desktop app, head over to the\nnteract homepage to download the application for your\noperating system.

\n

Once you've download the app, head over to our\ndocumentation page for tutorials and guides on\nusing the app for your data analysis and science workflows.

\n

Supporting nteract

\n

nteract is a non-profit open-source organization fiscally sponsored by\nNumFOCUS. If you are interested in supporting development on nteract, please consider making a recurring donation.

\n

Development on nteract is also supported by the following organizations.

\n\n\n\n\n\n\n\n\n
\n\"Netflix\n\n\"Microsoft\n
\"Gordon\"Plotly
\n
", "readmeOriginal": "

\"nteract

\n

the interactive computing suite for you

\n

\n\"code\n\"maintained\n\"github\n\"nteract\n

\n

nteract is an open-source organization committed to creating fantastic\ninteractive computing experiences that allow people to collaborate with ease.

\n

We build SDKs, applications, and libraries that help you and your team make\nthe most of interactive (particularly Jupyter) notebooks and REPLs.

\n

To learn more about the nteract open source organization and the rest of our\nprojects, please visit our website.

\n

What's in this repo?

\n

This repo is a monorepo. It contains the code for the nteract core SDK and\nnteract's desktop and web applications. It also contains the documentation for\nthe SDK and the applications. Here's a quick guide to the contents of the\nmonorepo.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FolderDescription
applications/desktopSource code for the nteract desktop application. The desktop application is a cross-platform app built using Electron.
applications/jupyter-extensionSource code the nteract Jupyter extension. This extension can be installed alongside Jupyter classic and JupyterLab in your Jupyter deployments or personal Jupyter server.
packagesJavaScript packages that are part of the nteract core SDK.
changelogsChangelogs for each release of the nteract core SDK and applications.
\n

How do I contribute to this repo?

\n

If you are interested in contributing to nteract, please read the\ncontribution guidelines for information on how to set up\nyour nteract repo for development, how to write tests and validate changes,\nhow to update documentation, and how to submit your code changes for review on\nGitHub.

\n

How do I use the nteract core SDK?

\n

If you are a developer who wants to build an nteract-based notebook application,\ncheck out the following documentation resources for more info.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LinkWhat's in it?
docs.nteract.ioThis page contains our how-to and tutorial style documentation. Get started learning about the nteract core SDK here.
packages.nteract.ioThis page contains the API documentation for packages in our core SDK. Bookmark this and use it as a reference when building your nteract-based UI.
components.nteract.ioThis page contains the documentation for our suite of composable React components. It contains code samples that you can reference when building your nteract-based UI.
\n

Our documentation is living. We are always making changes and adding more\ncontent. If you have feedback about the documentation, please open an issue\nin this repo. If you are interested in submitting a change to our documentation\npage, please review the contribution guidelines and\nsubmit a pull request.

\n

How do I use the nteract desktop application?

\n

To get started with the nteract desktop app, head over to the\nnteract homepage to download the application for your\noperating system.

\n

Once you've download the app, head over to our\ndocumentation page for tutorials and guides on\nusing the app for your data analysis and science workflows.

\n

Supporting nteract

\n

nteract is a non-profit open-source organization fiscally sponsored by\nNumFOCUS. If you are interested in supporting development on nteract, please consider making a recurring donation.

\n

Development on nteract is also supported by the following organizations.

\n\n\n\n\n\n\n\n\n
\n\"Netflix\n\n\"Microsoft\n
\"Gordon\"Plotly
\n
", "readmeFetchedAt": "2022-05-10T00:08:01.867Z" }, "nodemailer-app": { "readmeCleaned": "

nodemailer-app

\n

Ultimate email debugging tool.

\n

See Releases for release info or nodemailer.com/app for specific downloads and additional info.

\n

Description

\n

NodemailerApp is the ultimate cross platform email debugging app.

\n

App includes local SMTP and POP3 servers, a sendmail replacement, and it imports emails from EML files, EMLX files, large MBOX files from Gmail takeout, Maildir folders and Postfix queue files for inspection and preview. Ever wanted to view the actual HTML source of a nicely designed email instead of some garbled rfc822 text? Just open the HTML tab of an email to see it.

\n

Features:

\n\n
", "readmeOriginal": "

nodemailer-app

\n

Ultimate email debugging tool.

\n

See Releases for release info or nodemailer.com/app for specific downloads and additional info.

\n

Description

\n

NodemailerApp is the ultimate cross platform email debugging app.

\n

App includes local SMTP and POP3 servers, a sendmail replacement, and it imports emails from EML files, EMLX files, large MBOX files from Gmail takeout, Maildir folders and Postfix queue files for inspection and preview. Ever wanted to view the actual HTML source of a nicely designed email instead of some garbled rfc822 text? Just open the HTML tab of an email to see it.

\n

Features:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:01.872Z" }, "nuclear": { "readmeCleaned": "

\"nuclear\"

\n

\"nuclear\" \"Discord\"

\n

Desktop music player focused on streaming from free sources

\n

\"Showcase\"

\n

Links

\n

Official website

\n

Downloads

\n

Documentation

\n

Mastodon

\n

Twitter

\n

Support channel (Matrix): #nuclear:matrix.org

\n

Discord chat: https://discord.gg/JqPjKxE

\n

Suggest and vote on new features here: https://nuclear.featureupvote.com/

\n

Readme translations:

\n

\"Deutsch\"\n\"Português\"\n\"Svenska\"\n\"English\"\n\"Hebrew\"\n\"Italiano\"\n\"Türkçe\"\n\"Español\"\n\"Indonesia\"\n\"Français\"\n\"Chinese\"

\n

What is this?

\n

nuclear is a free music streaming program that pulls content from free sources all over the internet.

\n

If you know mps-youtube, this is a similar music player but with a GUI.\nIt's also focusing more on audio. Imagine Spotify which you don't have to pay for and with a bigger library.

\n

What if I am religiously opposed to Electron?

\n

See this.

\n

Features

\n\n

Development process

\n

First of all, be sure to check out the Contribution Guidelines.

\n

The instructions for running Nuclear in development mode can be found in the Development Process document.

\n

Community-maintained packages

\n

Here's a list of packages for various managers, some of which are maintained by third parties. We would like to thank the maintainers for their work.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Package typeLinkMaintainerInstallation Method
AUR (Arch)https://aur.archlinux.org/packages/nuclear-player-bin/nukeopyay -s nuclear-player-bin
AUR (Arch)https://aur.archlinux.org/packages/nuclear-player-gitnukeopyay -s nuclear-player-git
Choco (Win)https://chocolatey.org/packages/nuclear/JourneyOverchoco install nuclear
GURU (Gentoo)https://github.com/gentoo/guru/tree/master/media-sound/nuclear-binOrphanedemerge nuclear-bin
Homebrew (Mac)https://formulae.brew.sh/cask/nuclearHomebrewbrew install --cask nuclear
Snaphttps://snapcraft.io/nuclearnukeopsudo snap install nuclear
Flatpakhttps://flathub.org/apps/details/org.js.nuclear.Nuclearnukeopflatpak install flathub org.js.nuclear.Nuclear
Void Linuxhttps://github.com/machadofguilherme/nuclear-templatemachadofguilhermeSee readme
\n

Community translations

\n

Nuclear has already been translated to several languages, and we're always looking for contributors who would like to add more.

\n

We're using Crowdin to manage localization. You can check if your language is supported, track localization progress, and help us translate Nuclear there.

\n

Screenshots

\n

This will be updated as the program evolves.

\n

\"Album

\n

\"Album

\n

\"Artist

\n

\"Dashboard

\n

\"Dashboard

\n

\"Playlist

\n

\"Lyrics

\n

\"Equalizer

\n

License

\n

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

\n

Attributions

\n

Uses SponsorBlock data licensed used under CC BY-NC-SA 4.0 from https://sponsor.ajay.app/.

\n
", "readmeOriginal": "

\"nuclear\"

\n

\"nuclear\" \"Discord\"

\n

Desktop music player focused on streaming from free sources

\n

\"Showcase\"

\n

Links

\n

Official website

\n

Downloads

\n

Documentation

\n

Mastodon

\n

Twitter

\n

Support channel (Matrix): #nuclear:matrix.org

\n

Discord chat: https://discord.gg/JqPjKxE

\n

Suggest and vote on new features here: https://nuclear.featureupvote.com/

\n

Readme translations:

\n

\"Deutsch\"\n\"Português\"\n\"Svenska\"\n\"English\"\n\"Hebrew\"\n\"Italiano\"\n\"Türkçe\"\n\"Español\"\n\"Indonesia\"\n\"Français\"\n\"Chinese\"

\n

What is this?

\n

nuclear is a free music streaming program that pulls content from free sources all over the internet.

\n

If you know mps-youtube, this is a similar music player but with a GUI.\nIt's also focusing more on audio. Imagine Spotify which you don't have to pay for and with a bigger library.

\n

What if I am religiously opposed to Electron?

\n

See this.

\n

Features

\n\n

Development process

\n

First of all, be sure to check out the Contribution Guidelines.

\n

The instructions for running Nuclear in development mode can be found in the Development Process document.

\n

Community-maintained packages

\n

Here's a list of packages for various managers, some of which are maintained by third parties. We would like to thank the maintainers for their work.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Package typeLinkMaintainerInstallation Method
AUR (Arch)https://aur.archlinux.org/packages/nuclear-player-bin/nukeopyay -s nuclear-player-bin
AUR (Arch)https://aur.archlinux.org/packages/nuclear-player-gitnukeopyay -s nuclear-player-git
Choco (Win)https://chocolatey.org/packages/nuclear/JourneyOverchoco install nuclear
GURU (Gentoo)https://github.com/gentoo/guru/tree/master/media-sound/nuclear-binOrphanedemerge nuclear-bin
Homebrew (Mac)https://formulae.brew.sh/cask/nuclearHomebrewbrew install --cask nuclear
Snaphttps://snapcraft.io/nuclearnukeopsudo snap install nuclear
Flatpakhttps://flathub.org/apps/details/org.js.nuclear.Nuclearnukeopflatpak install flathub org.js.nuclear.Nuclear
Void Linuxhttps://github.com/machadofguilherme/nuclear-templatemachadofguilhermeSee readme
\n

Community translations

\n

Nuclear has already been translated to several languages, and we're always looking for contributors who would like to add more.

\n

We're using Crowdin to manage localization. You can check if your language is supported, track localization progress, and help us translate Nuclear there.

\n

Screenshots

\n

This will be updated as the program evolves.

\n

\"Album

\n

\"Album

\n

\"Artist

\n

\"Dashboard

\n

\"Dashboard

\n

\"Playlist

\n

\"Lyrics

\n

\"Equalizer

\n

License

\n

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

\n

Attributions

\n

Uses SponsorBlock data licensed used under CC BY-NC-SA 4.0 from https://sponsor.ajay.app/.

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.027Z" }, "nxshell": { "readmeCleaned": "

NxShell

\n

\"中文介绍\"

\n

An easy to use new terminal for Windows/Linux/MacOS platform. It like Xshell or SecureCRT or PuTTY shell client.

\n

Screenshots

\n
\n
\n \n
\n
\n \n
\n
\n

More screenshots.

\n

Features

\n\n

Future(TODO)

\n\n

How to report bug

\n

Welcome report bug to the list

\n

How to Install

\n\n

Contact us

\n

Wechat: yuniot8

\n

QQ Group: 199234440

\n

Email: 82828068 At qq.com

\n

Join us

\n

Current NxShell Only support Chinese and English, If you are good at language translation, please contact us.

\n\n
", "readmeOriginal": "

NxShell

\n

\"中文介绍\"

\n

An easy to use new terminal for Windows/Linux/MacOS platform. It like Xshell or SecureCRT or PuTTY shell client.

\n

Screenshots

\n
\n
\n \n
\n
\n \n
\n
\n

More screenshots.

\n

Features

\n\n

Future(TODO)

\n\n

How to report bug

\n

Welcome report bug to the list

\n

How to Install

\n\n

Contact us

\n

Wechat: yuniot8

\n

QQ Group: 199234440

\n

Email: 82828068 At qq.com

\n

Join us

\n

Current NxShell Only support Chinese and English, If you are good at language translation, please contact us.

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:02.070Z" }, "octopi-init": { "readmeCleaned": "

octopi-init

\n

A Node.js & Electron application for easily configuring your freshly-imaged OctoPi microSD adapter

\n
\n

Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code server-side.

\n

Electron is an open-source framework for developing executable cross-platform desktop applications.

\n

OctoPrint is the leading web software for controlling 3D printers, created/maintained by Gina Häußge

\n

OctoPi is a Raspberry-specific distro of OctoPrint, maintained by Guy Sheffer

\n
\n

Overview

\n

Getting started with OctoPrint—as loaded on a Raspberry Pi computer—involves installing an OctoPi image and then some configuration work before this computer can bootup. This application hopes to make that configuration step much easier by introducing a desktop application to perform this step.

\n

\"screen

\n

Installation

\n

At the moment, only OSX and Windows installers are available. Two Linux versions are available (AppImage and deb) which require a small amount of work to get going.

\n
    \n
  1. Download the latest OctoPi image and follow the instructions there to burn it to your microSD card
  2. \n
  3. Using the octopi-init software here, configure that microSD card from your workstation, ejecting it when finished
  4. \n
  5. Put the microSD card into the Raspberry Pi and boot it to continue
  6. \n
\n

\"OSX \"Windows \"Linux/Ubuntu/Debian/SUSE \"deb

\n

Windows installation

\n

After downloading the setup executable, you may see the error dialog \"Windows protected your PC: Windows Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk. More info...\"

\n

This is Microsoft taking a page out of Apple's playbook and also trying to charge developers each year to digitally sign apps they're giving away for free.

\n

Simply click the More info link and select the Run anyway button to continue.

\n

Linux installation

\n

After downloading the AppImage file, you'll minimally need to mark the file so that it can be executed.

\n

Make it executable by running chmod a+x octopi-init*.AppImage then execute it with ./octopi-init*.AppImage

\n

Alternately, for the deb file image, you'd want to install it with sudo apt install ~/Downloads/octopi-init-1.0.9_amd64.deb, for example.

\n

Apple warning message

\n

When running octopi-init the first time, you'll need to Ctl-Click the application and select Open. Otherwise, you'll see a confusing warning like this:

\n

\"screen

\n

It's just Apple trying to make $99 per developer per year as part of their business model. As suggested, Ctl-Click the program and choose Open to see:

\n

\"screen

\n

Then just click the Open button again and you should be good to go. You won't have to repeat this again, in theory.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DescriptionVersionAuthorLast Update
octopi-initv1.1.2OutsourcedGuruAugust 23, 2018
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DonateCryptocurrency
\"eth-receive\"\"btc-receive\"
EthereumBitcoin
\n
", "readmeOriginal": "

octopi-init

\n

A Node.js & Electron application for easily configuring your freshly-imaged OctoPi microSD adapter

\n
\n

Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code server-side.

\n

Electron is an open-source framework for developing executable cross-platform desktop applications.

\n

OctoPrint is the leading web software for controlling 3D printers, created/maintained by Gina Häußge

\n

OctoPi is a Raspberry-specific distro of OctoPrint, maintained by Guy Sheffer

\n
\n

Overview

\n

Getting started with OctoPrint—as loaded on a Raspberry Pi computer—involves installing an OctoPi image and then some configuration work before this computer can bootup. This application hopes to make that configuration step much easier by introducing a desktop application to perform this step.

\n

\"screen

\n

Installation

\n

At the moment, only OSX and Windows installers are available. Two Linux versions are available (AppImage and deb) which require a small amount of work to get going.

\n
    \n
  1. Download the latest OctoPi image and follow the instructions there to burn it to your microSD card
  2. \n
  3. Using the octopi-init software here, configure that microSD card from your workstation, ejecting it when finished
  4. \n
  5. Put the microSD card into the Raspberry Pi and boot it to continue
  6. \n
\n

\"OSX \"Windows \"Linux/Ubuntu/Debian/SUSE \"deb

\n

Windows installation

\n

After downloading the setup executable, you may see the error dialog \"Windows protected your PC: Windows Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk. More info...\"

\n

This is Microsoft taking a page out of Apple's playbook and also trying to charge developers each year to digitally sign apps they're giving away for free.

\n

Simply click the More info link and select the Run anyway button to continue.

\n

Linux installation

\n

After downloading the AppImage file, you'll minimally need to mark the file so that it can be executed.

\n

Make it executable by running chmod a+x octopi-init*.AppImage then execute it with ./octopi-init*.AppImage

\n

Alternately, for the deb file image, you'd want to install it with sudo apt install ~/Downloads/octopi-init-1.0.9_amd64.deb, for example.

\n

Apple warning message

\n

When running octopi-init the first time, you'll need to Ctl-Click the application and select Open. Otherwise, you'll see a confusing warning like this:

\n

\"screen

\n

It's just Apple trying to make $99 per developer per year as part of their business model. As suggested, Ctl-Click the program and choose Open to see:

\n

\"screen

\n

Then just click the Open button again and you should be good to go. You won't have to repeat this again, in theory.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DescriptionVersionAuthorLast Update
octopi-initv1.1.2OutsourcedGuruAugust 23, 2018
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DonateCryptocurrency
\"eth-receive\"\"btc-receive\"
EthereumBitcoin
\n
", "readmeFetchedAt": "2022-05-10T00:08:02.111Z" }, "odrive": { "readmeCleaned": "

\n \n

\n

\n Sync your files and folders simply\n

\n

\n

\n\n\t\n\n

\n

ODrive

\n

Clone and run for a quick way to see ODrive (OpenSource Drive) in action.

\n\n

Supported Operating Systems

\n

\"Snap\n\"Travis\n\"Dependencies\n\"devDependency\n\"Code

\n\n

To Use

\n

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer.

\n

The first thing you need is the source code, in your command line:

\n
# Clone this repository\ngit clone https://github.com/liberodark/ODrive
\n

This will download all the source code in a \"ODrive\" folder in the current directory. Alternatively, you can download and extract the zip from github's interface.

\n

The steps below (Setup, Build, Run) are to execute in order to ready everything.

\n

Setup

\n

This step is only needed once, in order to install the necessary environment on your computer for ODrive to run.

\n
# Needed for electron 1.7+ to run, as it's based on chrome\nsudo apt install libgconf-2-4
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Build

\n

This step is to execute every new version of the source code.

\n

In the project directory:

\n
npm install
\n

Note: If you're using Ubuntu and you get an error message about a missing node binary, you may want to try this:

\n

sudo ln -s `which nodejs` /usr/bin/node

\n

If you are working on the code yourself and editing some files in app/assets/, you will need to run npm run webpack (or npm install) for those changes to have an impact on the application.

\n

Run

\n

In the project directory:

\n
npm start
\n

On Windows, you can make a .bat file with start cmd /k npm start that then you can double click to launch the program.

\n

The launch-on-startup functionality is only available on bundled releases. See the Deployment section.

\n

Testing

\n

To make sure the code is ok and run some sanity checks on it:

\n
npm test
\n

Deployment

\n

Releases

\n

There are currently three \"release\" formats supported: nsis (Windows installer) for Windows, AppImage for Linux, and DMG for Mac. You can generate them like this:

\n
npm run release-windows\nnpm run release-linux\nnpm run release-mac
\n

To create a different format, like a deb or rpm package for example:

\n

For DEB

\n
npm run release-linux deb
\n

For RPM

\n
sudo yum install rpm-build -y\nnpm run release-linux rpm\n
\n

The releases are generated in the dist folder.

\n

All formats supported by electron-builder are available, such as 7z, zip, tar.gz, deb, rpm, freebsd, pacman, p5p, apk, dmg, pkg, mas, nsis, appx, msi...

\n

Permissionless deployment

\n

An appimage on linux already runs permissionless. Anyway, you can just do:

\n
# Permissonless deployment\nnpm run release-windows dir # or zip, 7zip, tar.xz, tar.7z, ...
\n

This will create a folder in dist that you can just copy to a Windows machine.

\n

License

\n

GPL v3

\n
", "readmeOriginal": "

\n \n

\n

\n Sync your files and folders simply\n

\n

\n

\n\n\t\n\n

\n

ODrive

\n

Clone and run for a quick way to see ODrive (OpenSource Drive) in action.

\n\n

Supported Operating Systems

\n

\"Snap\n\"Travis\n\"Dependencies\n\"devDependency\n\"Code

\n\n

To Use

\n

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer.

\n

The first thing you need is the source code, in your command line:

\n
# Clone this repository\ngit clone https://github.com/liberodark/ODrive
\n

This will download all the source code in a \"ODrive\" folder in the current directory. Alternatively, you can download and extract the zip from github's interface.

\n

The steps below (Setup, Build, Run) are to execute in order to ready everything.

\n

Setup

\n

This step is only needed once, in order to install the necessary environment on your computer for ODrive to run.

\n
# Needed for electron 1.7+ to run, as it's based on chrome\nsudo apt install libgconf-2-4
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Build

\n

This step is to execute every new version of the source code.

\n

In the project directory:

\n
npm install
\n

Note: If you're using Ubuntu and you get an error message about a missing node binary, you may want to try this:

\n

sudo ln -s `which nodejs` /usr/bin/node

\n

If you are working on the code yourself and editing some files in app/assets/, you will need to run npm run webpack (or npm install) for those changes to have an impact on the application.

\n

Run

\n

In the project directory:

\n
npm start
\n

On Windows, you can make a .bat file with start cmd /k npm start that then you can double click to launch the program.

\n

The launch-on-startup functionality is only available on bundled releases. See the Deployment section.

\n

Testing

\n

To make sure the code is ok and run some sanity checks on it:

\n
npm test
\n

Deployment

\n

Releases

\n

There are currently three \"release\" formats supported: nsis (Windows installer) for Windows, AppImage for Linux, and DMG for Mac. You can generate them like this:

\n
npm run release-windows\nnpm run release-linux\nnpm run release-mac
\n

To create a different format, like a deb or rpm package for example:

\n

For DEB

\n
npm run release-linux deb
\n

For RPM

\n
sudo yum install rpm-build -y\nnpm run release-linux rpm\n
\n

The releases are generated in the dist folder.

\n

All formats supported by electron-builder are available, such as 7z, zip, tar.gz, deb, rpm, freebsd, pacman, p5p, apk, dmg, pkg, mas, nsis, appx, msi...

\n

Permissionless deployment

\n

An appimage on linux already runs permissionless. Anyway, you can just do:

\n
# Permissonless deployment\nnpm run release-windows dir # or zip, 7zip, tar.xz, tar.7z, ...
\n

This will create a folder in dist that you can just copy to a Windows machine.

\n

License

\n

GPL v3

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.153Z" }, "ohhai-browser": { "readmeCleaned": "
\n\n

OhHai Browser

\n

\"GitHub \n \"Discord\"

\n

A browser built on top of Electron using nothing but pure web technologies.

\n

\"Browser

\n
\n

Features

\n\n

Contributing

\n

If you find any bugs or want to improve OhHai Browser please feel free to submit a pull request, open an issue or send a homing pigeon. OhHai Browser is under constant development meaning bugs may happen from time to time (we're only human!). It would be great if you could point these our or even help us defeat them.

\n

Running

\n

Before running OhHai Browser please make sure you have the latest Node.js installed on your machine.

\n

To run, open the repo in a terminal and run:

\n
npm install\n
\n

Once this is done you can open the project in your editor of choice and run:

\n
npm run debug\n
\n

This should open the development version of the browser.

\n

Simples!

\n
", "readmeOriginal": "
\n\n

OhHai Browser

\n

\"GitHub \n \"Discord\"

\n

A browser built on top of Electron using nothing but pure web technologies.

\n

\"Browser

\n
\n

Features

\n\n

Contributing

\n

If you find any bugs or want to improve OhHai Browser please feel free to submit a pull request, open an issue or send a homing pigeon. OhHai Browser is under constant development meaning bugs may happen from time to time (we're only human!). It would be great if you could point these our or even help us defeat them.

\n

Running

\n

Before running OhHai Browser please make sure you have the latest Node.js installed on your machine.

\n

To run, open the repo in a terminal and run:

\n
npm install\n
\n

Once this is done you can open the project in your editor of choice and run:

\n
npm run debug\n
\n

This should open the development version of the browser.

\n

Simples!

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.278Z" }, "onecopy": { "readmeCleaned": "

One Copy

\n

\"App

\n

One Copy is a desktop application that save all information and paste them whenever you need them.

\n

Features

\n\n

Screenshots

\n

Home screen

\n

\"Home

\n

Input dialog

\n

\"Input

\n
", "readmeOriginal": "

One Copy

\n

\"App

\n

One Copy is a desktop application that save all information and paste them whenever you need them.

\n

Features

\n\n

Screenshots

\n

Home screen

\n

\"Home

\n

Input dialog

\n

\"Input

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.309Z" }, "opencomic": { "readmeCleaned": "

Download version 0.2.1

\n
Windows
\n\n
macOS
\n\n
Linux
\n\n
Linux Arm64
\n\n

ScreenShot

\n

\"Screenshot\"

\n

Features

\n\n

Installation and Starting for development

\n

Requirements: Git, Node and NPM

\n
git clone https://github.com/ollm/OpenComic.git\ncd OpenComic\nnpm install\nnpm install --only=dev\nnpm run rebuild\nnpm start
\n

Pepper & Carrot

\n

This application contains as example the webcomic Pepper&Carrot by David Revoy\nlicensed under the Creative Commons Attribution 4.0 International (CC BY 4.0).

\n

Based on the universe of Hereva created by David Revoy with contributions by Craig Maloney.\nCorrections by Willem Sonke, Moini, Hali, CGand and Alex Gryson.\nTranslated into Spanish by TheFaico

\n
", "readmeOriginal": "

Download version 0.2.1

\n
Windows
\n\n
macOS
\n\n
Linux
\n\n
Linux Arm64
\n\n

ScreenShot

\n

\"Screenshot\"

\n

Features

\n\n

Installation and Starting for development

\n

Requirements: Git, Node and NPM

\n
git clone https://github.com/ollm/OpenComic.git\ncd OpenComic\nnpm install\nnpm install --only=dev\nnpm run rebuild\nnpm start
\n

Pepper & Carrot

\n

This application contains as example the webcomic Pepper&Carrot by David Revoy\nlicensed under the Creative Commons Attribution 4.0 International (CC BY 4.0).

\n

Based on the universe of Hereva created by David Revoy with contributions by Craig Maloney.\nCorrections by Willem Sonke, Moini, Hali, CGand and Alex Gryson.\nTranslated into Spanish by TheFaico

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.377Z" }, "open-log-viewer": { "readmeCleaned": "

\n \"Open\n
\n Open Log Viewer\n

\n

\n A multi-platform log viewer built with Electron and styled with Material Design.\n

\n

\n Key Features •\n Installation •\n Download •\n Release Notes •\n Credits •\n License\n

\n

\"screenshot\"

\n

Key Features

\n\n

Installation

\n
# Clone this repository\n$ git clone https://github.com/tmoreno/open-log-viewer\n\n# Go into the repository\n$ cd open-log-viewer\n\n# Install dependencies\n$ npm install\n\n# Build app\n$ npm run build\n\n# Run the app\n$ npm run start
\n

Download

\n

Open Log Viewer is available for Linux, Mac and Windows

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindowsLinux
DownloadDownloadDebian-based
RedHat-based
\n

Release Notes

\n

Version 1.5.1

\n

Bugs Fixed

\n\n

Version 1.5.0

\n

Improvements

\n\n

Version 1.4.2

\n

Bugs Fixed

\n\n

Version 1.4.1

\n

Bugs Fixed

\n\n

Version 1.4.0

\n

Improvements

\n\n

Version 1.3.0

\n

Improvements

\n\n

Bugs Fixed

\n\n

Version 1.2.1

\n

Improvements

\n\n

Version 1.2.0

\n

Improvements

\n\n

Bugs Fixed

\n\n

Version 1.1.2

\n

Bugs Fixed

\n\n

Version 1.1.1

\n

Bugs Fixed

\n\n

Version 1.1.0

\n

Improvements

\n\n

Drawbacks

\n\n

Credits

\n

This software uses the following open source packages:

\n\n

License

\n

This project is licensed under the GPLv3 License - see the LICENSE file for details

\n
\n
\n

Tomás Moreno Bernal  · \nGitHub @tmoreno  · \nTwitter @tmorenobernal

\n
\n
", "readmeOriginal": "

\n \"Open\n
\n Open Log Viewer\n

\n

\n A multi-platform log viewer built with Electron and styled with Material Design.\n

\n

\n Key Features •\n Installation •\n Download •\n Release Notes •\n Credits •\n License\n

\n

\"screenshot\"

\n

Key Features

\n\n

Installation

\n
# Clone this repository\n$ git clone https://github.com/tmoreno/open-log-viewer\n\n# Go into the repository\n$ cd open-log-viewer\n\n# Install dependencies\n$ npm install\n\n# Build app\n$ npm run build\n\n# Run the app\n$ npm run start
\n

Download

\n

Open Log Viewer is available for Linux, Mac and Windows

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindowsLinux
DownloadDownloadDebian-based
RedHat-based
\n

Release Notes

\n

Version 1.5.1

\n

Bugs Fixed

\n\n

Version 1.5.0

\n

Improvements

\n\n

Version 1.4.2

\n

Bugs Fixed

\n\n

Version 1.4.1

\n

Bugs Fixed

\n\n

Version 1.4.0

\n

Improvements

\n\n

Version 1.3.0

\n

Improvements

\n\n

Bugs Fixed

\n\n

Version 1.2.1

\n

Improvements

\n\n

Version 1.2.0

\n

Improvements

\n\n

Bugs Fixed

\n\n

Version 1.1.2

\n

Bugs Fixed

\n\n

Version 1.1.1

\n

Bugs Fixed

\n\n

Version 1.1.0

\n

Improvements

\n\n

Drawbacks

\n\n

Credits

\n

This software uses the following open source packages:

\n\n

License

\n

This project is licensed under the GPLv3 License - see the LICENSE file for details

\n
\n
\n

Tomás Moreno Bernal  · \nGitHub @tmoreno  · \nTwitter @tmorenobernal

\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:02.387Z" }, "openbazaar": { "readmeCleaned": "

OpenBazaar Client v2

\n

This is the reference client for the OpenBazaar network. It is an interface for your OpenBazaar node, to use it you will need to run an OpenBazaar node either locally or on a remote server.

\n

For full installable versions of the OpenBazaar app, with the server and client bundled together, go to the OpenBazaar download page.

\n

\"Build

\n

Getting Started

\n

To create a local development copy of the reference client, clone the client repository into a directory of your choice:

\n\n

Make sure you have Node.js and NPM installed. Node versions older than 8.9.2 or NPM versions older than 5.5.1 may not work.

\n

This client uses Babel to compile ES6 JavaScript. You should be familiar with ES6 before modifying its code.

\n

Installation

\n
    \n
  1. Navigate to the directory you cloned the repo into.
  2. \n
  3. Enter npm install
  4. \n
\n

Running

\n

npm start will:

\n\n

** At this time, the app will not refresh on main.js (or other root folder JS changes). This would require the entire Electron app to refresh and BrowserSync is only refreshing our browser.

\n

Linux Troubleshooting

\n

If you see an ENOSPC error after trying npm start and you are using Linux, you may need to do the following:

\n
    \n
  1. Enter this on the command line:\necho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
  2. \n
\n

For Arch Linux add this line to /etc/sysctl.d/99-sysctl.conf:\nfs.inotify.max_user_watches=524288

\n
    \n
  1. Execute: sysctl --system
  2. \n
\n

This will prevent your system from having errors due to too many files being watched.

\n

Linting

\n

npm run lint will run eslint on the JS files.

\n

npm run lint:watch will run eslint on any JS file changes.

\n

Testing

\n

npm run test will execute test files in the test folder.

\n

npm run test:watch will execute the tests on any file changes.

\n

Built With

\n\n

Contributing

\n

We welcome contributions to the reference client. The best way to get started is to look for an issue with the Help Wanted label.

\n

You can also look for issues with the bug label. These are confirmed bugs that need to be fixed.

\n

Contributions are expected to match the coding style already present in this repo, and must pass es-lint with no errors.

\n

Contributions that make visual changes are also expected to match the repo's current style.

\n

If you want to help with translations, please request to join the translation team at https://www.transifex.com/ob1/openbazaar.

\n

You can request new languages there, and contribute to the translation of existing languages.

\n

New languages are usually added when they reach 80% or more completion, and not removed from the client unless they fall below 60% for several releases.

\n

License

\n

This project is licensed under the MIT License. You can view LICENSE.MD for more details.

\n
", "readmeOriginal": "

OpenBazaar Client v2

\n

This is the reference client for the OpenBazaar network. It is an interface for your OpenBazaar node, to use it you will need to run an OpenBazaar node either locally or on a remote server.

\n

For full installable versions of the OpenBazaar app, with the server and client bundled together, go to the OpenBazaar download page.

\n

\"Build

\n

Getting Started

\n

To create a local development copy of the reference client, clone the client repository into a directory of your choice:

\n\n

Make sure you have Node.js and NPM installed. Node versions older than 8.9.2 or NPM versions older than 5.5.1 may not work.

\n

This client uses Babel to compile ES6 JavaScript. You should be familiar with ES6 before modifying its code.

\n

Installation

\n
    \n
  1. Navigate to the directory you cloned the repo into.
  2. \n
  3. Enter npm install
  4. \n
\n

Running

\n

npm start will:

\n\n

** At this time, the app will not refresh on main.js (or other root folder JS changes). This would require the entire Electron app to refresh and BrowserSync is only refreshing our browser.

\n

Linux Troubleshooting

\n

If you see an ENOSPC error after trying npm start and you are using Linux, you may need to do the following:

\n
    \n
  1. Enter this on the command line:\necho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
  2. \n
\n

For Arch Linux add this line to /etc/sysctl.d/99-sysctl.conf:\nfs.inotify.max_user_watches=524288

\n
    \n
  1. Execute: sysctl --system
  2. \n
\n

This will prevent your system from having errors due to too many files being watched.

\n

Linting

\n

npm run lint will run eslint on the JS files.

\n

npm run lint:watch will run eslint on any JS file changes.

\n

Testing

\n

npm run test will execute test files in the test folder.

\n

npm run test:watch will execute the tests on any file changes.

\n

Built With

\n\n

Contributing

\n

We welcome contributions to the reference client. The best way to get started is to look for an issue with the Help Wanted label.

\n

You can also look for issues with the bug label. These are confirmed bugs that need to be fixed.

\n

Contributions are expected to match the coding style already present in this repo, and must pass es-lint with no errors.

\n

Contributions that make visual changes are also expected to match the repo's current style.

\n

If you want to help with translations, please request to join the translation team at https://www.transifex.com/ob1/openbazaar.

\n

You can request new languages there, and contribute to the translation of existing languages.

\n

New languages are usually added when they reach 80% or more completion, and not removed from the client unless they fall below 60% for several releases.

\n

License

\n

This project is licensed under the MIT License. You can view LICENSE.MD for more details.

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.467Z" }, "oversetter": { "readmeCleaned": "

\n \"App\n

\n

\n \"Release\"\n \"Downloads\"\n \"Downloads\"\n

\n

Oversetter is an translation app, which allows you to translate content directly from your menu bar. Oversetter is an open-source project based on Angular and Electron. It uses free API of Yandex Translate for text translation.

\n

Features

\n\n

Screenshots

\n

\n \"App\n
Light theme\n

\n

\n \"Dark\n
Dark theme\n

\n

\n \"Dictionary\"\n
Dictionary\n

\n

Download

\n

You can download the latest version of the application for macOS, Windows and Linux.

\n

Oversetter is also available as snap package:

\n
sudo snap install oversetter\n
\n

\"Get

\n

How to use

\n
    \n
  1. Register free Yandex Translate API-Key (or use built-in dev-key for the first time).
  2. \n
  3. Install dependencies, build and run application with electron:
  4. \n
\n
npm install\nnpm run build\nnpm run run:electron\n
\n

Development

\n
npm run build-dev\n
\n

and

\n
NODE_ENV=dev npm run run:electron\n
\n

App Packaging

\n
npm run build:mac\nnpm run build:linux\nnpm run build:windows\nnpm run build:all\n
\n

or

\n
npm run package:all\n
\n

ToDo: Next steps

\n

See Projects-tab.\nFeel free to contribute!

\n
", "readmeOriginal": "

\n \"App\n

\n

\n \"Release\"\n \"Downloads\"\n \"Downloads\"\n

\n

Oversetter is an translation app, which allows you to translate content directly from your menu bar. Oversetter is an open-source project based on Angular and Electron. It uses free API of Yandex Translate for text translation.

\n

Features

\n\n

Screenshots

\n

\n \"App\n
Light theme\n

\n

\n \"Dark\n
Dark theme\n

\n

\n \"Dictionary\"\n
Dictionary\n

\n

Download

\n

You can download the latest version of the application for macOS, Windows and Linux.

\n

Oversetter is also available as snap package:

\n
sudo snap install oversetter\n
\n

\"Get

\n

How to use

\n
    \n
  1. Register free Yandex Translate API-Key (or use built-in dev-key for the first time).
  2. \n
  3. Install dependencies, build and run application with electron:
  4. \n
\n
npm install\nnpm run build\nnpm run run:electron\n
\n

Development

\n
npm run build-dev\n
\n

and

\n
NODE_ENV=dev npm run run:electron\n
\n

App Packaging

\n
npm run build:mac\nnpm run build:linux\nnpm run build:windows\nnpm run build:all\n
\n

or

\n
npm run package:all\n
\n

ToDo: Next steps

\n

See Projects-tab.\nFeel free to contribute!

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.540Z" }, "openspeedtest-server": { "readmeCleaned": "

OpenSpeedTest™️ - Pure HTML5 Network Performance Estimation Tool.

\n

Hi! I'm Vishnu the one who developed OpenSpeedTest™️. OpenSpeedTest use XMLHttpRequest (XHR), HTML, CSS, JS, & SVG For this network performance estimation tool. I started this project in 2011 and moved to OpenSpeedTest.com dedicated Project/Domain Name in 2013.

\n

Why OpenSpeedTest?

\n

Secure by Design.

\n

OpenSpeedTest contains Only \"STATIC\" Files like HTML,CSS & JS.\nSo you don't need to worry about Security Updates or Hidden Exploits that may compromise your secure environments.

\n

Lightweight, High Performance.

\n

OpenSpeedTest is written in Pure JavaScript. No Third-Party frameworks or libraries were used. SpeedTest script file size is under 7kB gzip. The unexpected side effect of using Pure JavaScript is High Performance.

\n

Run a speed test from Any Device.

\n

OpenSpeedTest will run on Any Web Browser that is IE10 or new.

\n

Ready for Any Display Size and Resolution.

\n

OpenSpeedTest User interface is written in SVG.

\n

You can Create Your Own SpeedTest Server using OpenSpeedTest.

\n

Server Requirements :

\n

Nginx, Apache, IIS, Express, or Any Web server that supports HTTP/1.1.

\n\n

Or, You can use OpenSpeedTest-Server.

\n

OpenSpeedTest-Server is available as Docker Image, Windows Mac, Linux, Android, & iOS Applications.

\n

New features:

\n
    \n
  1. Stress Test.
  2. \n
\n

To enable stress pass 'stress' keyword as a URL parameter.

\n
http://192.168.1.5?stress=low\n
\n

After stress keyword you should give a value, number of seconds or preset values such as \"low\", \"medium\" ,\"high\" ,\"veryhigh\" ,\"extreem\". Will run a speed test for 300,600,900,1800,3600 seconds respectively. Or you can specify eg:5000 directly without any preset keywords.

\n
http://192.168.1.5?stress=5000\n
\n
    \n
  1. Start a Speedtest Automatically.
  2. \n
\n

Starts a speed test automatically

\n
http://192.168.1.5?run\n
\n

Start a speed test automatically after few seconds

\n
http://192.168.1.5?run=10\n
\n

You can pass multiple keywords

\n
http://192.168.1.5?run&stress=300\n
\n

This will start a speed test immediately and run for 300 seconds in each direction. That is 300 seconds for download and 300 seconds for upload.

\n
    \n
  1. Save results to a Database
  2. \n
\n

Edit Index.html

\n
var saveData = true;\nvar saveDataURL = \"//yourDatabase.Server.com:4500/save?data=\";\n
\n
    \n
  1. Add multiple servers (Choose one with least latency automatically)
  2. \n
\n

Edit Index.html

\n
 var openSpeedTestServerList = [\n    {\"ServerName\":\"Home-Earth\", \"Download\":\"/downloading\", \"Upload\":\"/upload\", \"ServerIcon\":\"DefaultIcon\"},\n    {\"ServerName\":\"Home-Mars\", \"Download\":\"/downloading\", \"Upload\":\"/upload\", \"ServerIcon\":\"DefaultIcon\"},\n    {\"ServerName\":\"Home-Moon\", \"Download\":\"/downloading\", \"Upload\":\"/upload\", \"ServerIcon\":\"DefaultIcon\"}\n    ];\n
\n
    \n
  1. Disable or change Overhead Compensation factor.
  2. \n
\n
http://192.168.1.5?clean\n
\n

Overhead Compensation factor, This is browser based test, Many Unknowns. Currently 4%. That is within the margin of error. you can pass \"clean\" as a URL parameter and reset it to Zero or set anything under 5%, for that pass 1 for 1% , 2 = 2%, 3 =3% & 4=4% , \"clean\" will not accept values above 5, so Compensation is limited to maximum 4%

\n

Take a look at index.html, you can set a custom ping sample size, threads, upload data size, initial dlDuration etc.

\n

Tested up to 10Gbps on real NIC and up to 30Gbps on Virtual NIC. You can run a speed test from any device with a Web Browser that is IE10 or new. That means you can test your network speed from your Smart TV, Console, etc. No additional plugins or software required.

\n

TLDR: If you need to test 10Gbps or more. You may need to use the latest hardware. Use Safari or Chrome in Private Window or Incognito Window.

\n

For testing 10GbE or more, you will need to use the latest hardware. I used M1 MacMini with Built-in 10GbE and a Linux Machine with AMD Ryzen™ 9 3900XT. Safari was the fastest browser when I tested it. Chrome and Chromium Edge can handle 10Gbps or more on macOS and Linux. You can test more than 10Gbps with Chrome or Safari on M1 MacMini or newer hardware. Or on a Linux Machine with Chrome or Chromium browser using a 3900XT or newer Processor. Up to 2.5 to 3.6 Gbps can be tested on almost all popular browsers and devices. Windows max limit was around 8.5 Gbps for download and 9.4Gbps for upload. Tested on Edge and Chrome. Use Private Window or Incognito Window if you found unusual test results. Probably some Extensions are slowing the speed test process. This tool can be used to check the browser performance and impact of Extensions on your browsing experience.

\n

\"10Gbps

\n

Self-hosted (On-Premise) / (Docker Image/Source Code)

\n

You have two options here. If you need a custom deployment, use our source code along with a web server of your choice. I prefer Nginx, and you can find my Nginx Configuration here. Or you can use our docker image. You can deploy it on your LAN/WAN without an active internet connection.

\n

This is docker implementation using nginxinc/nginx-unprivileged:stable-alpine. uses significantly fewer resources.

\n

Docker install instructions:

\n

Install Docker and run the following command!

\n
    \n
  1. \n
    docker run --restart=unless-stopped \\ \n--name openspeedtest -d \\ #set name and Run container in background and print container ID\n-p 3000:3000 \\ #Host-port:container-port for http\n-p 3001:3001 \\ #Host-port:container-port for https\nopenspeedtest/latest #Image
    \n
  2. \n
  3. \n

    Now open your browser and direct it to:

    \n

    A: For HTTP use: http://YOUR-SERVER-IP:3000

    \n

    B: For HTTPS use: https://YOUR-SERVER-IP:3001

    \n
  4. \n
\n

How to use your own SSL Certificate?

\n

You can mount a folder with your own SSL certificate to this docker container by adding the following line to the above command.

\n
-v /${PATH-TO-YOUR-OWN-SSL-CERTIFICATE}:/etc/ssl/
\n

The folder needs to contain:

\n\n

I am adding a folder with nginx.crt and nginx.key from my desktop by using the following command.

\n
docker run -v /Users/vishnu/Desktop/docker/:/etc/ssl/ \\ #Added ssl cert.\n--restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest
\n

Docker images run better on Linux Platforms, including your NAS. But if you install docker on macOS or Windows, you may see poor performance. I asked this on Docker forums, and they told me macOS and Windows support is for Development purposes only. For Production, you need to use any Linux Platform.

\n

The same Story goes for Windows NGINX. Nginx uses only one worker even if you specify n number of worker processes. They will show in Task Manager, but the system will only use one. I got this information directly from the Nginx website.

\n

Speedtest for Home/Office LAN! [Easy to use Standalone Application for Desktop]

\n

An application for launching a quick speed test server. Without using any commands!\nFirst, test your local network speed before pointing fingers towards your ISP for a slow and sluggish internet experience. Introducing Network Speed Test Server for Windows, Mac & Linux!. For large-scale deployments, docker image and source code are available. This application is good enough for testing speeds up to 15 to 20 Gbps. Download Now!.

\n

How is this useful for me?

\n

You can run OpenSpeedTest Server in your Home/Office/Cloud. So that you or employees who work from home can run a speed test to your office and make sure they can run everything smoothly.

\n

Choosing between ISP1 & ISP2.

\n

Sometimes your ISP2 is Faster than ISP1 when you test your speed on popular speed test sites. But when you connect to your Home/Office/Cloud, that slower connection may perform better. The only way to find out is to run a speed test against your infrastructure.

\n

Troubleshooting network issues.

\n

It is common even when your Internet connection is working fine, but some of the devices in your network may experience trouble getting decent connectivity to the internet. The issue might be the wrong VLAN ID or Faulty Switch. If you run a Local network speed test, you can find and fix these issues easily.

\n

Before you add a repeater.

\n

Most repeaters will reduce your network speed by 50%, so if you put it far away, it will perform worst, and if you put it too close, you will not get enough coverage if you run a Local Network speed test. Depending on the application requirements, you can decide exactly where you need to put your repeater.

\n

Browsing experience.

\n

Many useful browser extensions are out there that we all know and love. But some of them are really slowing you down for few seconds per page you visit. You may see good performance when you test your network performance via File Transfer or Command-line utilities, but you may experience poor performance when browsing the internet. This is due to a bad browser configuration that including unwanted extensions installed. From my experience, only keep the one you are going to use every single day. Extension that you may use once in a while should be removed or disabled for maximum performance. If you see poor performance, try OpenSpeedTest from Private Window or Incognito Window. This tool can be used to check the browser performance and impact of Extensions on your browsing experience.

\n

No client-side software or plugin is required. You can run a network speed test from any device with a web browser that is IE10 or new.

\n

Download -> OpenSpeedTest-Server Version 2.1 for Free!

\n

\"Get \"English \"Download

\n

\"Download

\n

1Gbps Network Speed Test using OpenSpeedTest | Brave VS Chrome VS Firefox VS Internet Explorer VS Opera VS Chrome Dev VS Microsoft Edge VS Canary

\n

\"Brave

\n

©Copyright 2013-2022 by OpenSpeedTest.com. All Rights Reserved.

\n

Share — copy and redistribute the material in any medium or format for any purpose, even commercially.

\n

Read full license terms @ http://go.openspeedtest.com/License

\n

Like this Project? Please Donate NOW & Keep us Alive -> https://go.openspeedtest.com/Donate

\n

Official Website : https://OpenSpeedTest.COM | Email: support@openspeedtest.com

\n

Developed by : Vishnu | https://Vishnu.Pro | Email : me@vishnu.pro

\n

If you have any Questions, ideas or Comments Please Send it via -> https://go.openspeedtest.com/SendMessage

\n
", "readmeOriginal": "

OpenSpeedTest™️ - Pure HTML5 Network Performance Estimation Tool.

\n

Hi! I'm Vishnu the one who developed OpenSpeedTest™️. OpenSpeedTest use XMLHttpRequest (XHR), HTML, CSS, JS, & SVG For this network performance estimation tool. I started this project in 2011 and moved to OpenSpeedTest.com dedicated Project/Domain Name in 2013.

\n

Why OpenSpeedTest?

\n

Secure by Design.

\n

OpenSpeedTest contains Only \"STATIC\" Files like HTML,CSS & JS.\nSo you don't need to worry about Security Updates or Hidden Exploits that may compromise your secure environments.

\n

Lightweight, High Performance.

\n

OpenSpeedTest is written in Pure JavaScript. No Third-Party frameworks or libraries were used. SpeedTest script file size is under 7kB gzip. The unexpected side effect of using Pure JavaScript is High Performance.

\n

Run a speed test from Any Device.

\n

OpenSpeedTest will run on Any Web Browser that is IE10 or new.

\n

Ready for Any Display Size and Resolution.

\n

OpenSpeedTest User interface is written in SVG.

\n

You can Create Your Own SpeedTest Server using OpenSpeedTest.

\n

Server Requirements :

\n

Nginx, Apache, IIS, Express, or Any Web server that supports HTTP/1.1.

\n\n

Or, You can use OpenSpeedTest-Server.

\n

OpenSpeedTest-Server is available as Docker Image, Windows Mac, Linux, Android, & iOS Applications.

\n

New features:

\n
    \n
  1. Stress Test.
  2. \n
\n

To enable stress pass 'stress' keyword as a URL parameter.

\n
http://192.168.1.5?stress=low\n
\n

After stress keyword you should give a value, number of seconds or preset values such as \"low\", \"medium\" ,\"high\" ,\"veryhigh\" ,\"extreem\". Will run a speed test for 300,600,900,1800,3600 seconds respectively. Or you can specify eg:5000 directly without any preset keywords.

\n
http://192.168.1.5?stress=5000\n
\n
    \n
  1. Start a Speedtest Automatically.
  2. \n
\n

Starts a speed test automatically

\n
http://192.168.1.5?run\n
\n

Start a speed test automatically after few seconds

\n
http://192.168.1.5?run=10\n
\n

You can pass multiple keywords

\n
http://192.168.1.5?run&stress=300\n
\n

This will start a speed test immediately and run for 300 seconds in each direction. That is 300 seconds for download and 300 seconds for upload.

\n
    \n
  1. Save results to a Database
  2. \n
\n

Edit Index.html

\n
var saveData = true;\nvar saveDataURL = \"//yourDatabase.Server.com:4500/save?data=\";\n
\n
    \n
  1. Add multiple servers (Choose one with least latency automatically)
  2. \n
\n

Edit Index.html

\n
 var openSpeedTestServerList = [\n    {\"ServerName\":\"Home-Earth\", \"Download\":\"/downloading\", \"Upload\":\"/upload\", \"ServerIcon\":\"DefaultIcon\"},\n    {\"ServerName\":\"Home-Mars\", \"Download\":\"/downloading\", \"Upload\":\"/upload\", \"ServerIcon\":\"DefaultIcon\"},\n    {\"ServerName\":\"Home-Moon\", \"Download\":\"/downloading\", \"Upload\":\"/upload\", \"ServerIcon\":\"DefaultIcon\"}\n    ];\n
\n
    \n
  1. Disable or change Overhead Compensation factor.
  2. \n
\n
http://192.168.1.5?clean\n
\n

Overhead Compensation factor, This is browser based test, Many Unknowns. Currently 4%. That is within the margin of error. you can pass \"clean\" as a URL parameter and reset it to Zero or set anything under 5%, for that pass 1 for 1% , 2 = 2%, 3 =3% & 4=4% , \"clean\" will not accept values above 5, so Compensation is limited to maximum 4%

\n

Take a look at index.html, you can set a custom ping sample size, threads, upload data size, initial dlDuration etc.

\n

Tested up to 10Gbps on real NIC and up to 30Gbps on Virtual NIC. You can run a speed test from any device with a Web Browser that is IE10 or new. That means you can test your network speed from your Smart TV, Console, etc. No additional plugins or software required.

\n

TLDR: If you need to test 10Gbps or more. You may need to use the latest hardware. Use Safari or Chrome in Private Window or Incognito Window.

\n

For testing 10GbE or more, you will need to use the latest hardware. I used M1 MacMini with Built-in 10GbE and a Linux Machine with AMD Ryzen™ 9 3900XT. Safari was the fastest browser when I tested it. Chrome and Chromium Edge can handle 10Gbps or more on macOS and Linux. You can test more than 10Gbps with Chrome or Safari on M1 MacMini or newer hardware. Or on a Linux Machine with Chrome or Chromium browser using a 3900XT or newer Processor. Up to 2.5 to 3.6 Gbps can be tested on almost all popular browsers and devices. Windows max limit was around 8.5 Gbps for download and 9.4Gbps for upload. Tested on Edge and Chrome. Use Private Window or Incognito Window if you found unusual test results. Probably some Extensions are slowing the speed test process. This tool can be used to check the browser performance and impact of Extensions on your browsing experience.

\n

\"10Gbps

\n

Self-hosted (On-Premise) / (Docker Image/Source Code)

\n

You have two options here. If you need a custom deployment, use our source code along with a web server of your choice. I prefer Nginx, and you can find my Nginx Configuration here. Or you can use our docker image. You can deploy it on your LAN/WAN without an active internet connection.

\n

This is docker implementation using nginxinc/nginx-unprivileged:stable-alpine. uses significantly fewer resources.

\n

Docker install instructions:

\n

Install Docker and run the following command!

\n
    \n
  1. \n
    docker run --restart=unless-stopped \\ \n--name openspeedtest -d \\ #set name and Run container in background and print container ID\n-p 3000:3000 \\ #Host-port:container-port for http\n-p 3001:3001 \\ #Host-port:container-port for https\nopenspeedtest/latest #Image
    \n
  2. \n
  3. \n

    Now open your browser and direct it to:

    \n

    A: For HTTP use: http://YOUR-SERVER-IP:3000

    \n

    B: For HTTPS use: https://YOUR-SERVER-IP:3001

    \n
  4. \n
\n

How to use your own SSL Certificate?

\n

You can mount a folder with your own SSL certificate to this docker container by adding the following line to the above command.

\n
-v /${PATH-TO-YOUR-OWN-SSL-CERTIFICATE}:/etc/ssl/
\n

The folder needs to contain:

\n\n

I am adding a folder with nginx.crt and nginx.key from my desktop by using the following command.

\n
docker run -v /Users/vishnu/Desktop/docker/:/etc/ssl/ \\ #Added ssl cert.\n--restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest
\n

Docker images run better on Linux Platforms, including your NAS. But if you install docker on macOS or Windows, you may see poor performance. I asked this on Docker forums, and they told me macOS and Windows support is for Development purposes only. For Production, you need to use any Linux Platform.

\n

The same Story goes for Windows NGINX. Nginx uses only one worker even if you specify n number of worker processes. They will show in Task Manager, but the system will only use one. I got this information directly from the Nginx website.

\n

Speedtest for Home/Office LAN! [Easy to use Standalone Application for Desktop]

\n

An application for launching a quick speed test server. Without using any commands!\nFirst, test your local network speed before pointing fingers towards your ISP for a slow and sluggish internet experience. Introducing Network Speed Test Server for Windows, Mac & Linux!. For large-scale deployments, docker image and source code are available. This application is good enough for testing speeds up to 15 to 20 Gbps. Download Now!.

\n

How is this useful for me?

\n

You can run OpenSpeedTest Server in your Home/Office/Cloud. So that you or employees who work from home can run a speed test to your office and make sure they can run everything smoothly.

\n

Choosing between ISP1 & ISP2.

\n

Sometimes your ISP2 is Faster than ISP1 when you test your speed on popular speed test sites. But when you connect to your Home/Office/Cloud, that slower connection may perform better. The only way to find out is to run a speed test against your infrastructure.

\n

Troubleshooting network issues.

\n

It is common even when your Internet connection is working fine, but some of the devices in your network may experience trouble getting decent connectivity to the internet. The issue might be the wrong VLAN ID or Faulty Switch. If you run a Local network speed test, you can find and fix these issues easily.

\n

Before you add a repeater.

\n

Most repeaters will reduce your network speed by 50%, so if you put it far away, it will perform worst, and if you put it too close, you will not get enough coverage if you run a Local Network speed test. Depending on the application requirements, you can decide exactly where you need to put your repeater.

\n

Browsing experience.

\n

Many useful browser extensions are out there that we all know and love. But some of them are really slowing you down for few seconds per page you visit. You may see good performance when you test your network performance via File Transfer or Command-line utilities, but you may experience poor performance when browsing the internet. This is due to a bad browser configuration that including unwanted extensions installed. From my experience, only keep the one you are going to use every single day. Extension that you may use once in a while should be removed or disabled for maximum performance. If you see poor performance, try OpenSpeedTest from Private Window or Incognito Window. This tool can be used to check the browser performance and impact of Extensions on your browsing experience.

\n

No client-side software or plugin is required. You can run a network speed test from any device with a web browser that is IE10 or new.

\n

Download -> OpenSpeedTest-Server Version 2.1 for Free!

\n

\"Get \"English \"Download

\n

\"Download

\n

1Gbps Network Speed Test using OpenSpeedTest | Brave VS Chrome VS Firefox VS Internet Explorer VS Opera VS Chrome Dev VS Microsoft Edge VS Canary

\n

\"Brave

\n

©Copyright 2013-2022 by OpenSpeedTest.com. All Rights Reserved.

\n

Share — copy and redistribute the material in any medium or format for any purpose, even commercially.

\n

Read full license terms @ http://go.openspeedtest.com/License

\n

Like this Project? Please Donate NOW & Keep us Alive -> https://go.openspeedtest.com/Donate

\n

Official Website : https://OpenSpeedTest.COM | Email: support@openspeedtest.com

\n

Developed by : Vishnu | https://Vishnu.Pro | Email : me@vishnu.pro

\n

If you have any Questions, ideas or Comments Please Send it via -> https://go.openspeedtest.com/SendMessage

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.697Z" }, "p3x-redis-ui": { "readmeCleaned": "

\"NPM\"

\n

\"Donate \"Contact \"Corifeus \"Build\n\"Uptime

\n

📡 P3X Redis UI is a very functional handy database GUI and works in your pocket on the responsive web or as a desktop app v2022.4.122

\n

Bugs are evident™ - MATRIX️

\n

NodeJS LTS is supported

\n

Built on NodeJs version

\n
v16.14.0\n
\n

Description

\n

p3x-redis-ui is a new Redis GUI which can serve as a backend server or as a desktop application.

\n

Some of the features are coming below.

\n

The best use case for this Redis GUI, if you manage tons of JSON, as it includes JSONEditor and ACE. Check out the different options in the edit json button dialog. :)

\n\n \n

Warning

\n

It is not recommend to generate the configuration JSON via a text editor. The perfect solution is to generate the configuration in the GUI, then apply for example in Kubernetes.

\n

The online current version

\n

https://p3x.redis.patrikx3.com

\n

This Redis database every day in the morning European time CET restores some data, so you may do whatever you want to do.

\n

Besides, you could experience the test app to exit for 1 second, because it could auto update itself. It auto updates itself when the code from Git changes.

\n

Third, it is a snapshot, it is possible, that the features are different from GitHub or NPM as the releases are usually monthly or as they happen.

\n

Screenshots

\n

Screenshots readme

\n

Releases

\n

Snap

\n\n

\"LINK\"

\n

AppImage

\n

https://github.com/patrikx3/redis-ui/releases

\n

To integrate into the menu

\n

Execute:

\n
sudo add-apt-repository ppa:appimagelauncher-team/stable\nsudo apt-get update\nsudo apt-get install appimagelauncher
\n

After downloading the AppImage, make it an executable.

\n
mkdir -p $HOME/opt\nmv ~/Downloads/p3x-redis-ui-a.b.c-x86_64.AppImage $HOME/opt/\nchmod +x $HOME/opt/p3x-redis-ui-a.b.c-x86_64.AppImage\n# Then you can run it\n$HOME/opt/p3x-redis-ui-a.b.c-x86_64.AppImage &
\n\n

On ElectronJs

\n

(The GitHub versions are always instant, while the ElectronJs Apps releases are delayed.)
\nhttps://electronjs.org/apps/p3x-redis-ui

\n

CLI

\n

Start up with a server or via a browser and NodeJs/NPM.

\n

Start up with a server readme

\n

Some description about the config file readme

\n

Docker

\n

https://hub.docker.com/r/patrikx3/p3x-redis-ui

\n

Compose

\n

https://github.com/patrikx3/redis-ui/blob/master/docker-compose.yml

\n
wget https://raw.githubusercontent.com/patrikx3/redis-ui/master/docker-compose.yml\n# You might want to tune the settings folder in the docker-compose.yml.\n# the /home/user/p3x-redis-ui-settings settings folder in yml should be set by yourself.\ndocker-compose up
\n

Bare

\n
# you can tune the settings folder\n# in the -v first part is where you can set your own folder\nmkdir -p ./p3x-redis-ui-settings\ndocker run -v $PWD/p3x-redis-ui-settings:/settings -h docker-p3x-redis-ui -p 7843:7843 -t -i patrikx3/p3x-redis-ui
\n

The GUI will be @ http://localhost:7843

\n

Kubernetes

\n

A complete example of deployment p3x-redis-ui in kubernetes using raw manifests\nhttps://github.com/patrikx3/redis-ui/blob/master/k8s/manifests

\n
kubectl apply -f namespace.yaml\n# Do not forget to edit redis host and password configuration\nkubectl apply -f configmap.yaml\nkubectl apply -f deployment.yaml\nkubectl apply -f service.yaml\nkubectl apply -f ingress.yaml
\n

Helm chart p3x-redis-ui deployment in kubernetes\nhttps://github.com/patrikx3/redis-ui/blob/master/k8s/chart

\n
generated.yaml\nkubectl apply -f generated.yaml\">
helm template -f values.yaml release --namespace namespace . > generated.yaml\nkubectl apply -f generated.yaml
\n

Features

\n\n

TODO

\n

The to do readme

\n

Change log

\n

The change log readme

\n

Contributors

\n

The contributors readme

\n

Development

\n

For file names do not use camelCase, but use kebab-case. Folder should be named as kebab-case as well. As you can see, all code filenames are using it like that, please do not change that.\nPlease apply the .editorconfig settings in your IDE.

\n

It creates a package that allows you to compose p3x-redis-ui-server and p3x-redis-ui-material into one:

\n

Server on GitHub
\nClient on GitHub

\n

If you develop on this app, you are required to test, that all JS you code write is working with Electron (as the embedded Electron NodeJs version is usually below the real NodeJs). Once the server and client is running as above, you clone this repo and test like this:

\n
# terminal 1\ngit clone https://github.com/patrikx3/redis-ui-material.git\ncd redis-ui-material\nnpm install\nnpm run dev\n\n# terminal 2\ngit clone https://github.com/patrikx3/redis-ui-server.git\ncd redis-ui-server\nnpm install\nnpm run dev\n\n# if you are not working on Electron, at this point you can fire the browser\n# @ http://localhost:8080/\n\n# terminal 3 \ngit clone https://github.com/patrikx3/redis-ui.git\ncd redis-ui\nnpm install\n./scripts/start-local.sh\n# or\n.\\scripts\\start-local.cmd
\n

Development of the translations

\n

By default, only English is created, but given all strings are from a JS file, it is very quick to spawn another language eg. German, French, Spanish etc ...

\n

English strings, for the web UI
\nEnglish strings, for the Electron

\n

For a new language:\nAdd into redis-ui-material/src/bundle.js.

\n

This solution is not using REST at all, but instead uses Socket.IO 🤣, which is weird, but I like it, it is supposed to be more responsive, as there is no big overhead in the HTTP protocol.

\n

Reference for Socket.IO speed

\n

https://www.google.com/search?q=rest+vs+websocket+comparison+benchmarks

\n

URL links

\n

P3X Redis UI playground

\n

Corifeus P3X Redis UI

\n

AlternativeTo Redis UI

\n

NPM P3X Redis UI

\n

Snap Store

\n

Github.IO Page

\n
\n

🙏 This is an open-source project. Star this repository, if you like it, or even donate to maintain the servers and the development. Thank you so much!

\n

Possible, this server, rarely, is down, please, hang on for 15-30 minutes and the server will be back up.

\n

All my domains (patrikx3.com and corifeus.com) could have minor errors, since I am developing in my free time. However, it is usually stable.

\n

Note about versioning: Versions are cut in Major.Minor.Patch schema. Major is always the current year. Minor is either 4 (January - June) or 10 (July - December). Patch is incremental by every build. If there is a breaking change, it should be noted in the readme.

\n
\n

P3X-REDIS-UI Build v2022.4.122

\n

\"Donate \"Contact \"Like

\n

P3X Sponsor

\n

IntelliJ - The most intelligent Java IDE

\n

\"JetBrains\"

\n
", "readmeOriginal": "

\"NPM\"

\n

\"Donate \"Contact \"Corifeus \"Build\n\"Uptime

\n

📡 P3X Redis UI is a very functional handy database GUI and works in your pocket on the responsive web or as a desktop app v2022.4.122

\n

Bugs are evident™ - MATRIX️

\n

NodeJS LTS is supported

\n

Built on NodeJs version

\n
v16.14.0\n
\n

Description

\n

p3x-redis-ui is a new Redis GUI which can serve as a backend server or as a desktop application.

\n

Some of the features are coming below.

\n

The best use case for this Redis GUI, if you manage tons of JSON, as it includes JSONEditor and ACE. Check out the different options in the edit json button dialog. :)

\n\n \n

Warning

\n

It is not recommend to generate the configuration JSON via a text editor. The perfect solution is to generate the configuration in the GUI, then apply for example in Kubernetes.

\n

The online current version

\n

https://p3x.redis.patrikx3.com

\n

This Redis database every day in the morning European time CET restores some data, so you may do whatever you want to do.

\n

Besides, you could experience the test app to exit for 1 second, because it could auto update itself. It auto updates itself when the code from Git changes.

\n

Third, it is a snapshot, it is possible, that the features are different from GitHub or NPM as the releases are usually monthly or as they happen.

\n

Screenshots

\n

Screenshots readme

\n

Releases

\n

Snap

\n\n

\"LINK\"

\n

AppImage

\n

https://github.com/patrikx3/redis-ui/releases

\n

To integrate into the menu

\n

Execute:

\n
sudo add-apt-repository ppa:appimagelauncher-team/stable\nsudo apt-get update\nsudo apt-get install appimagelauncher
\n

After downloading the AppImage, make it an executable.

\n
mkdir -p $HOME/opt\nmv ~/Downloads/p3x-redis-ui-a.b.c-x86_64.AppImage $HOME/opt/\nchmod +x $HOME/opt/p3x-redis-ui-a.b.c-x86_64.AppImage\n# Then you can run it\n$HOME/opt/p3x-redis-ui-a.b.c-x86_64.AppImage &
\n\n

On ElectronJs

\n

(The GitHub versions are always instant, while the ElectronJs Apps releases are delayed.)
\nhttps://electronjs.org/apps/p3x-redis-ui

\n

CLI

\n

Start up with a server or via a browser and NodeJs/NPM.

\n

Start up with a server readme

\n

Some description about the config file readme

\n

Docker

\n

https://hub.docker.com/r/patrikx3/p3x-redis-ui

\n

Compose

\n

https://github.com/patrikx3/redis-ui/blob/master/docker-compose.yml

\n
wget https://raw.githubusercontent.com/patrikx3/redis-ui/master/docker-compose.yml\n# You might want to tune the settings folder in the docker-compose.yml.\n# the /home/user/p3x-redis-ui-settings settings folder in yml should be set by yourself.\ndocker-compose up
\n

Bare

\n
# you can tune the settings folder\n# in the -v first part is where you can set your own folder\nmkdir -p ./p3x-redis-ui-settings\ndocker run -v $PWD/p3x-redis-ui-settings:/settings -h docker-p3x-redis-ui -p 7843:7843 -t -i patrikx3/p3x-redis-ui
\n

The GUI will be @ http://localhost:7843

\n

Kubernetes

\n

A complete example of deployment p3x-redis-ui in kubernetes using raw manifests\nhttps://github.com/patrikx3/redis-ui/blob/master/k8s/manifests

\n
kubectl apply -f namespace.yaml\n# Do not forget to edit redis host and password configuration\nkubectl apply -f configmap.yaml\nkubectl apply -f deployment.yaml\nkubectl apply -f service.yaml\nkubectl apply -f ingress.yaml
\n

Helm chart p3x-redis-ui deployment in kubernetes\nhttps://github.com/patrikx3/redis-ui/blob/master/k8s/chart

\n
helm template -f values.yaml release --namespace namespace . > generated.yaml\nkubectl apply -f generated.yaml
\n

Features

\n\n

TODO

\n

The to do readme

\n

Change log

\n

The change log readme

\n

Contributors

\n

The contributors readme

\n

Development

\n

For file names do not use camelCase, but use kebab-case. Folder should be named as kebab-case as well. As you can see, all code filenames are using it like that, please do not change that.\nPlease apply the .editorconfig settings in your IDE.

\n

It creates a package that allows you to compose p3x-redis-ui-server and p3x-redis-ui-material into one:

\n

Server on GitHub
\nClient on GitHub

\n

If you develop on this app, you are required to test, that all JS you code write is working with Electron (as the embedded Electron NodeJs version is usually below the real NodeJs). Once the server and client is running as above, you clone this repo and test like this:

\n
# terminal 1\ngit clone https://github.com/patrikx3/redis-ui-material.git\ncd redis-ui-material\nnpm install\nnpm run dev\n\n# terminal 2\ngit clone https://github.com/patrikx3/redis-ui-server.git\ncd redis-ui-server\nnpm install\nnpm run dev\n\n# if you are not working on Electron, at this point you can fire the browser\n# @ http://localhost:8080/\n\n# terminal 3 \ngit clone https://github.com/patrikx3/redis-ui.git\ncd redis-ui\nnpm install\n./scripts/start-local.sh\n# or\n.\\scripts\\start-local.cmd
\n

Development of the translations

\n

By default, only English is created, but given all strings are from a JS file, it is very quick to spawn another language eg. German, French, Spanish etc ...

\n

English strings, for the web UI
\nEnglish strings, for the Electron

\n

For a new language:\nAdd into redis-ui-material/src/bundle.js.

\n

This solution is not using REST at all, but instead uses Socket.IO 🤣, which is weird, but I like it, it is supposed to be more responsive, as there is no big overhead in the HTTP protocol.

\n

Reference for Socket.IO speed

\n

https://www.google.com/search?q=rest+vs+websocket+comparison+benchmarks

\n

URL links

\n

P3X Redis UI playground

\n

Corifeus P3X Redis UI

\n

AlternativeTo Redis UI

\n

NPM P3X Redis UI

\n

Snap Store

\n

Github.IO Page

\n
\n

🙏 This is an open-source project. Star this repository, if you like it, or even donate to maintain the servers and the development. Thank you so much!

\n

Possible, this server, rarely, is down, please, hang on for 15-30 minutes and the server will be back up.

\n

All my domains (patrikx3.com and corifeus.com) could have minor errors, since I am developing in my free time. However, it is usually stable.

\n

Note about versioning: Versions are cut in Major.Minor.Patch schema. Major is always the current year. Minor is either 4 (January - June) or 10 (July - December). Patch is incremental by every build. If there is a breaking change, it should be noted in the readme.

\n
\n

P3X-REDIS-UI Build v2022.4.122

\n

\"Donate \"Contact \"Like

\n

P3X Sponsor

\n

IntelliJ - The most intelligent Java IDE

\n

\"JetBrains\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.722Z" }, "panwriter": { "readmeCleaned": "

\n

PanWriter

\n

PanWriter is a distraction-free markdown editor with two unique features:

\n
    \n
  1. Tight integration with pandoc for import/export to/from plenty of file formats (including HTML, docx, LaTeX and EPUB).
  2. \n
  3. Preview pane that can show pages – including page breaks etc. Layout adjustments are immediately reflected in the preview.
  4. \n
\n

Read the MANUAL for more info.

\n

Download PanWriter

\n

You also have to install pandoc to export to most formats.

\n

\"\"

\n

Feedback, suggestions and contributions very much welcome! Please open an issue to start a conversation.

\n

Develop

\n

Install git and yarn, then:

\n
git clone git@github.com:mb21/panwriter.git\ncd panwriter\nyarn install\n\n## To run the app in development mode:\nyarn run electron:dev\n\n## To build distributable app package (goes to ./dist):\nyarn dist\n
\n

Check out the package.json for more scripts to run.

\n

TODOs

\n\n

Powered by

\n

PanWriter is powered by (amongst other open source libraries):

\n\n
", "readmeOriginal": "

\n

PanWriter

\n

PanWriter is a distraction-free markdown editor with two unique features:

\n
    \n
  1. Tight integration with pandoc for import/export to/from plenty of file formats (including HTML, docx, LaTeX and EPUB).
  2. \n
  3. Preview pane that can show pages – including page breaks etc. Layout adjustments are immediately reflected in the preview.
  4. \n
\n

Read the MANUAL for more info.

\n

Download PanWriter

\n

You also have to install pandoc to export to most formats.

\n

\"\"

\n

Feedback, suggestions and contributions very much welcome! Please open an issue to start a conversation.

\n

Develop

\n

Install git and yarn, then:

\n
git clone git@github.com:mb21/panwriter.git\ncd panwriter\nyarn install\n\n## To run the app in development mode:\nyarn run electron:dev\n\n## To build distributable app package (goes to ./dist):\nyarn dist\n
\n

Check out the package.json for more scripts to run.

\n

TODOs

\n\n

Powered by

\n

PanWriter is powered by (amongst other open source libraries):

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:02.744Z" }, "p3x-onenote": { "readmeCleaned": "

\"NPM\"

\n

\"Donate \"Contact \"Corifeus \"Build\n\"Uptime

\n

📚 P3X OneNote Linux v2022.4.121

\n

Bugs are evident™ - MATRIX️

\n

Description

\n

A Linux compatible version of OneNote

\n

\"Screenshot

\n

Main Features

\n

P3X OneNote Linux is, actually, an independent browser window for the online OneNote. You can use this program without having to clutter your browser. The main functions are:

\n\n

Verbose feature info

\n\n\n

Downloadable installer

\n

Snap

\n

\"LINK\"

\n

AppImage

\n

https://github.com/patrikx3/onenote/releases

\n

To integrate into the menu

\n

Execute:

\n
sudo add-apt-repository ppa:appimagelauncher-team/stable\nsudo apt-get update\nsudo apt-get install appimagelauncher
\n

After downloading the AppImage, make it an executable.

\n
mkdir -p $HOME/opt\nmv ~/Downloads/p3x-onenote-a.b.c-x86_64.AppImage $HOME/opt/\nchmod +x $HOME/opt/p3x-onenote-a.b.c-x86_64.AppImage\n# Then you can run it\n$HOME/opt/p3x-onenote-a.b.c-x86_64.AppImage &
\n\n

The app can be found on ElectronJs Apps

\n

Change log

\n\n

If you are a NodeJs Ninja

\n

You want to install via NPM...

\n

Issues

\n

Corporate login

\n

The corporate login is unstable, either it works or not. Only the personal account that I can provide some minimal support.

\n

Suspend/Sleep/Wake up

\n

I recognized, that after suspend/sleep and then wake up, the app is not saving the pages anymore. For now, the solution is, that after wake up, restart the app.

\n

Not working on SNAP on some versions

\n

Usually, on stable distros are working with SNAP, but usually non stable Linux distros could not work. Please, try using the AppImage, that is usually better than SNAP.

\n

Error in auto-updater: Redirect was cancelled

\n

Sometimes, you get an AppImage error for update, just download the latest release and replace the AppImage from here:
\nhttps://github.com/patrikx3/onenote/releases

\n

Rasberry and ARM is experimental

\n

I have no ARM computer to test it out, I could build AppImage on ARM, but I have no idea if has an error, it crashes or it works.

\n\n

Online OneNote Change language

\n

Although the main page's language can be changed, it reverts back when an actual page is accessed.\nThis is being investigated.

\n

#14

\n

Electron problem

\n

🐞 Since Electron v3, the tray left click is executing as the right click, Electron bug.

\n

#38

\n

Fedora

\n

#3 (comment)

\n

Development

\n

For file names do not use camelCase, but use kebab-case. Folder should be named as kebab-case as well. As you can see, all code filenames are using it like that, please do not change that.\nPlease apply the .editorconfig settings in your IDE.

\n

If you try to build the app with AppImage, you have to change from electron dependencies to devDependencies, this is because it is created to be able to run this app from NPM instead of an AppImage.

\n

For generating rpm on Ubuntu distro, you can use:

\n
sudo apt-get install rpm
\n

URL links

\n

P3X OneNote Linux playground

\n

Corifeus P3X OneNote Linux

\n

AlternativeTo OneNote Linux

\n

NPM P3X OneNote

\n

Snap Store

\n

Github.IO Page

\n
\n

🙏 This is an open-source project. Star this repository, if you like it, or even donate to maintain the servers and the development. Thank you so much!

\n

Possible, this server, rarely, is down, please, hang on for 15-30 minutes and the server will be back up.

\n

All my domains (patrikx3.com and corifeus.com) could have minor errors, since I am developing in my free time. However, it is usually stable.

\n

Note about versioning: Versions are cut in Major.Minor.Patch schema. Major is always the current year. Minor is either 4 (January - June) or 10 (July - December). Patch is incremental by every build. If there is a breaking change, it should be noted in the readme.

\n
\n

P3X-ONENOTE Build v2022.4.121

\n

\"Donate \"Contact \"Like

\n

P3X Sponsor

\n

IntelliJ - The most intelligent Java IDE

\n

\"JetBrains\"

\n
", "readmeOriginal": "

\"NPM\"

\n

\"Donate \"Contact \"Corifeus \"Build\n\"Uptime

\n

📚 P3X OneNote Linux v2022.4.121

\n

Bugs are evident™ - MATRIX️

\n

Description

\n

A Linux compatible version of OneNote

\n

\"Screenshot

\n

Main Features

\n

P3X OneNote Linux is, actually, an independent browser window for the online OneNote. You can use this program without having to clutter your browser. The main functions are:

\n\n

Verbose feature info

\n\n\n

Downloadable installer

\n

Snap

\n

\"LINK\"

\n

AppImage

\n

https://github.com/patrikx3/onenote/releases

\n

To integrate into the menu

\n

Execute:

\n
sudo add-apt-repository ppa:appimagelauncher-team/stable\nsudo apt-get update\nsudo apt-get install appimagelauncher
\n

After downloading the AppImage, make it an executable.

\n
mkdir -p $HOME/opt\nmv ~/Downloads/p3x-onenote-a.b.c-x86_64.AppImage $HOME/opt/\nchmod +x $HOME/opt/p3x-onenote-a.b.c-x86_64.AppImage\n# Then you can run it\n$HOME/opt/p3x-onenote-a.b.c-x86_64.AppImage &
\n\n

The app can be found on ElectronJs Apps

\n

Change log

\n\n

If you are a NodeJs Ninja

\n

You want to install via NPM...

\n

Issues

\n

Corporate login

\n

The corporate login is unstable, either it works or not. Only the personal account that I can provide some minimal support.

\n

Suspend/Sleep/Wake up

\n

I recognized, that after suspend/sleep and then wake up, the app is not saving the pages anymore. For now, the solution is, that after wake up, restart the app.

\n

Not working on SNAP on some versions

\n

Usually, on stable distros are working with SNAP, but usually non stable Linux distros could not work. Please, try using the AppImage, that is usually better than SNAP.

\n

Error in auto-updater: Redirect was cancelled

\n

Sometimes, you get an AppImage error for update, just download the latest release and replace the AppImage from here:
\nhttps://github.com/patrikx3/onenote/releases

\n

Rasberry and ARM is experimental

\n

I have no ARM computer to test it out, I could build AppImage on ARM, but I have no idea if has an error, it crashes or it works.

\n\n

Online OneNote Change language

\n

Although the main page's language can be changed, it reverts back when an actual page is accessed.\nThis is being investigated.

\n

#14

\n

Electron problem

\n

🐞 Since Electron v3, the tray left click is executing as the right click, Electron bug.

\n

#38

\n

Fedora

\n

#3 (comment)

\n

Development

\n

For file names do not use camelCase, but use kebab-case. Folder should be named as kebab-case as well. As you can see, all code filenames are using it like that, please do not change that.\nPlease apply the .editorconfig settings in your IDE.

\n

If you try to build the app with AppImage, you have to change from electron dependencies to devDependencies, this is because it is created to be able to run this app from NPM instead of an AppImage.

\n

For generating rpm on Ubuntu distro, you can use:

\n
sudo apt-get install rpm
\n

URL links

\n

P3X OneNote Linux playground

\n

Corifeus P3X OneNote Linux

\n

AlternativeTo OneNote Linux

\n

NPM P3X OneNote

\n

Snap Store

\n

Github.IO Page

\n
\n

🙏 This is an open-source project. Star this repository, if you like it, or even donate to maintain the servers and the development. Thank you so much!

\n

Possible, this server, rarely, is down, please, hang on for 15-30 minutes and the server will be back up.

\n

All my domains (patrikx3.com and corifeus.com) could have minor errors, since I am developing in my free time. However, it is usually stable.

\n

Note about versioning: Versions are cut in Major.Minor.Patch schema. Major is always the current year. Minor is either 4 (January - June) or 10 (July - December). Patch is incremental by every build. If there is a breaking change, it should be noted in the readme.

\n
\n

P3X-ONENOTE Build v2022.4.121

\n

\"Donate \"Contact \"Like

\n

P3X Sponsor

\n

IntelliJ - The most intelligent Java IDE

\n

\"JetBrains\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:02.804Z" }, "paperarxiv": { "readmeCleaned": "

PaperArxiv

\n

\n

PaperArxiv is a new paper management tool that helps to organize your mind. It focuses on taking notes, organizing, and archiving your files. Different from existing paper management tools that focus on reference management. PaperArxiv emphasizes on notes organizing as we believe a short note can bring more information to grasp the general idea.

\n

Highlights

\n\n

Getting Start

\n
    \n
  1. Download PaperArxiv;
  2. \n
  3. Unzip the file and put the app into your Application folder;
  4. \n
  5. Install Poppler.\n
      \n
    • On Mac, you can use brew install poppler.
    • \n
    • On Windows and Linux, please use conda install -c conda-forge poppler.
    • \n
    \n
  6. \n
  7. Open PaperArxiv;
  8. \n
  9. Click the Add Button to select a paper in pdf format. PaperArxiv will automatically generate a new item for the paper;
  10. \n
  11. Double Click the item to add some notes;
  12. \n
\n

Notes Format

\n

The notes support Markdown, Latex, and Mermaid. For example, you can write the following notes to write items, formulas, and Mermaid diagrams.

\n
upper bound for the repetition:\n $$\\begin{aligned}\n R\\le\\frac{\\|B^2\\|_*}{\\min_{1\\le i \\le n} \\{ \\frac{1}{2}( \\zeta n - \\underbrace{\\sum_{j=1}^n (B^2)_{ij}}_{outflow})+\\frac{1}{2}(\\zeta n - \\underbrace{\\sum_{k=1}^n (B^2)_{ki}}_{inflow}) \\}}\n \\end{aligned}$$\n\n ```mermaid\n flowchart LR;\n Repetition-->Theory;\n Theory-->Encoding;\n ```\n\n ![My Image][image-1]\n\n\n\n \n [image-1]:data:image/png;base64,iVBORw0KGgoAAAANS...\n\">
    - Give a proof of the *repetition problem* for Generation;\n    - New **encoding method**;\n    - The <font color=orange>upper bound</font> for the <del>repetition</del>:\n    $$\\begin{aligned}\n    R\\le\\frac{\\|B^2\\|_*}{\\min_{1\\le i \\le n} \\{ \\frac{1}{2}( \\zeta n - \\underbrace{\\sum_{j=1}^n (B^2)_{ij}}_{outflow})+\\frac{1}{2}(\\zeta n - \\underbrace{\\sum_{k=1}^n (B^2)_{ki}}_{inflow}) \\}}\n    \\end{aligned}$$\n\n    ```mermaid\n    flowchart LR;\n    Repetition-->Theory;\n    Theory-->Encoding;\n    ```\n\n    ![My Image][image-1]\n\n\n\n  <!--The image data is attached as follows-->\n  [image-1]:data:image/png;base64,iVBORw0KGgoAAAANS...\n\n
\n

\n \n

\nIf you want to add images in the comments, just copy the image and paste in the edit box. Then it will insert a base64 image into the comments file.\n

Download

\n

Please download our latest release! Download

\n

Compile

\n

On Mac you can run

\n
npm install\n./node_modules/.bin/electron-rebuild\nnpm run buildmac\n
\n

On Mac with M1 CPU, please use:

\n
npm install\n./node_modules/.bin/electron-rebuild -a arm64\nnpm run buildm1\n
\n
", "readmeOriginal": "

PaperArxiv

\n

\n

PaperArxiv is a new paper management tool that helps to organize your mind. It focuses on taking notes, organizing, and archiving your files. Different from existing paper management tools that focus on reference management. PaperArxiv emphasizes on notes organizing as we believe a short note can bring more information to grasp the general idea.

\n

Highlights

\n\n

Getting Start

\n
    \n
  1. Download PaperArxiv;
  2. \n
  3. Unzip the file and put the app into your Application folder;
  4. \n
  5. Install Poppler.\n
      \n
    • On Mac, you can use brew install poppler.
    • \n
    • On Windows and Linux, please use conda install -c conda-forge poppler.
    • \n
    \n
  6. \n
  7. Open PaperArxiv;
  8. \n
  9. Click the Add Button to select a paper in pdf format. PaperArxiv will automatically generate a new item for the paper;
  10. \n
  11. Double Click the item to add some notes;
  12. \n
\n

Notes Format

\n

The notes support Markdown, Latex, and Mermaid. For example, you can write the following notes to write items, formulas, and Mermaid diagrams.

\n
    - Give a proof of the *repetition problem* for Generation;\n    - New **encoding method**;\n    - The <font color=orange>upper bound</font> for the <del>repetition</del>:\n    $$\\begin{aligned}\n    R\\le\\frac{\\|B^2\\|_*}{\\min_{1\\le i \\le n} \\{ \\frac{1}{2}( \\zeta n - \\underbrace{\\sum_{j=1}^n (B^2)_{ij}}_{outflow})+\\frac{1}{2}(\\zeta n - \\underbrace{\\sum_{k=1}^n (B^2)_{ki}}_{inflow}) \\}}\n    \\end{aligned}$$\n\n    ```mermaid\n    flowchart LR;\n    Repetition-->Theory;\n    Theory-->Encoding;\n    ```\n\n    ![My Image][image-1]\n\n\n\n  <!--The image data is attached as follows-->\n  [image-1]:data:image/png;base64,iVBORw0KGgoAAAANS...\n\n
\n

\n \n

\nIf you want to add images in the comments, just copy the image and paste in the edit box. Then it will insert a base64 image into the comments file.\n

Download

\n

Please download our latest release! Download

\n

Compile

\n

On Mac you can run

\n
npm install\n./node_modules/.bin/electron-rebuild\nnpm run buildmac\n
\n

On Mac with M1 CPU, please use:

\n
npm install\n./node_modules/.bin/electron-rebuild -a arm64\nnpm run buildm1\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:02.920Z" }, "papercubes": { "readmeCleaned": "

\n \"Icon\"\n

🏡🖨 PaperCubes

\n

\nA desktop app which converts your minecraft .schematic files
you got from worldedit to blueprints for papercraft.

\n \"forthebadge\"\n \"forthebadge\"\n \"forthebadge\"\n

\n

\n
\n

🚀 How to use?

\n
    \n
  1. 🏡 You need an installed Minecraft Version
  2. \n
  3. 🏗 You need to install the Minecraft mod Worldedit
  4. \n
  5. 🔨 Start Minecraft and build something amazing
  6. \n
  7. 💾 //Copy what you built and //schematic save it
  8. \n
  9. 🌴 Download a Texturepack
  10. \n
  11. 💿 Start this desktop app
  12. \n
  13. 🏝 Drop schematic file and texturepack in it
  14. \n
  15. 🌟 Let the Program do its magic
  16. \n
  17. 🖨 Print out the blueprints
  18. \n
  19. 🏘 Make amazing minecraft builds in real!
  20. \n
\n

⚠️ Important

\n\n

📝 Source Code

\n

In order to use this source code you need to have Node.js, Git and Bower installed globally. After that you have to follow the steps below.

\n

Only for Windows (as admin)

\n
npm install --global --production windows-build-tools\nnpm config set msvs_version 2015 --global
\n

For all platforms

\n
# Clone this repository\ngit clone https://github.com/florianfe/PaperCubes\n# Go into the repository\ncd PaperCubes\n# Install npm dependencies\nnpm install\n# Install bower dependencies\nbower install\n# Compile C++ sources\nnpm run-script compile\n# Run the app in test mode\nnpm start\n# build application for release\n[sudo] npm run-script dist
\n

🖼 Preview

\n

\"screenshot\n\"screenshot\n\"screenshot\n\"screenshot\n\"screenshot

\n

💾 Download

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
PlatformVersionDownload\n
Mac1.3.0 BETADownload
Windows1.3.0 BETADownload
Linux (.deb)1.3.0 BETADownload
\n

🗒 Note

\n\n

📖 License

\n

\"forthebadge\"

\n
", "readmeOriginal": "

\n \"Icon\"\n

🏡🖨 PaperCubes

\n

\nA desktop app which converts your minecraft .schematic files
you got from worldedit to blueprints for papercraft.

\n \"forthebadge\"\n \"forthebadge\"\n \"forthebadge\"\n

\n

\n
\n

🚀 How to use?

\n
    \n
  1. 🏡 You need an installed Minecraft Version
  2. \n
  3. 🏗 You need to install the Minecraft mod Worldedit
  4. \n
  5. 🔨 Start Minecraft and build something amazing
  6. \n
  7. 💾 //Copy what you built and //schematic save it
  8. \n
  9. 🌴 Download a Texturepack
  10. \n
  11. 💿 Start this desktop app
  12. \n
  13. 🏝 Drop schematic file and texturepack in it
  14. \n
  15. 🌟 Let the Program do its magic
  16. \n
  17. 🖨 Print out the blueprints
  18. \n
  19. 🏘 Make amazing minecraft builds in real!
  20. \n
\n

⚠️ Important

\n\n

📝 Source Code

\n

In order to use this source code you need to have Node.js, Git and Bower installed globally. After that you have to follow the steps below.

\n

Only for Windows (as admin)

\n
npm install --global --production windows-build-tools\nnpm config set msvs_version 2015 --global
\n

For all platforms

\n
# Clone this repository\ngit clone https://github.com/florianfe/PaperCubes\n# Go into the repository\ncd PaperCubes\n# Install npm dependencies\nnpm install\n# Install bower dependencies\nbower install\n# Compile C++ sources\nnpm run-script compile\n# Run the app in test mode\nnpm start\n# build application for release\n[sudo] npm run-script dist
\n

🖼 Preview

\n

\"screenshot\n\"screenshot\n\"screenshot\n\"screenshot\n\"screenshot

\n

💾 Download

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
PlatformVersionDownload\n
Mac1.3.0 BETADownload
Windows1.3.0 BETADownload
Linux (.deb)1.3.0 BETADownload
\n

🗒 Note

\n\n

📖 License

\n

\"forthebadge\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.017Z" }, "papyrus": { "readmeCleaned": "

\"Papyrus\"

\n

\"devDependencies\"

\n

Unofficial Dropbox Paper desktop application.

\n

Preview

\n

\"\"\nPapyrus is currently at version 1.0.3.

\n

Installation

\n

Homebrew Cask

\n
brew install --cask morkro-papyrus
\n

Manually

\n\n

macOS

\n

It's recommended to move the Papyrus.app file to the Applications directory. macOS will prompt you to accept that this runs from an unidentified developer.

\n

Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Description  Keybinding
Create a new documentCmd/Ctrl N
Create a new folderCmd/Ctrl T
\n

All keybindings can also be found under the File menu.

\n

Development

\n

The application wraps the official Dropbox Paper website in an Electron browser window (and does some more minor things to round it up).

\n

git clone the repository, npm install all dependencies and you are good to go. You might have to run brew install wine before building the application.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
CommandDescription
npm startStarts the application
npm run buildCreates packages for all supported platforms (bundles all below commands)
npm run build:macosBuilds the macOS application
npm run build:windowsBuilds the Windows application
npm run build:linuxBuilds the Linux application
\n

Contribution

\n

Any form of contribution is very welcome!

\n

License

\n

The code is available under MIT License.

\n
", "readmeOriginal": "

\"Papyrus\"

\n

\"devDependencies\"

\n

Unofficial Dropbox Paper desktop application.

\n

Preview

\n

\"\"\nPapyrus is currently at version 1.0.3.

\n

Installation

\n

Homebrew Cask

\n
brew install --cask morkro-papyrus
\n

Manually

\n\n

macOS

\n

It's recommended to move the Papyrus.app file to the Applications directory. macOS will prompt you to accept that this runs from an unidentified developer.

\n

Shortcuts

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Description  Keybinding
Create a new documentCmd/Ctrl N
Create a new folderCmd/Ctrl T
\n

All keybindings can also be found under the File menu.

\n

Development

\n

The application wraps the official Dropbox Paper website in an Electron browser window (and does some more minor things to round it up).

\n

git clone the repository, npm install all dependencies and you are good to go. You might have to run brew install wine before building the application.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
CommandDescription
npm startStarts the application
npm run buildCreates packages for all supported platforms (bundles all below commands)
npm run build:macosBuilds the macOS application
npm run build:windowsBuilds the Windows application
npm run build:linuxBuilds the Linux application
\n

Contribution

\n

Any form of contribution is very welcome!

\n

License

\n

The code is available under MIT License.

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.029Z" }, "patchwork": { "readmeCleaned": "

⚠️ Patchwork v3.18.1 was the last release! ⚠️

\n

This release is meant to tide us over so that other clients can take it from here.

\n

Thank you to everyone who contributed to this release and all the ones preceding it!\nPaul, Matt McKegg, and Christian Bundy first and foremost, but by now the contributors page shows 94 contributors! 💓

\n

Where do we go from here? Do I have to change client now?

\n

For the time being (the next couple of months) you should be fine to just keep Patchwork running. However, as time progresses and security of the underlying components \"degrades\" (read: already existing issues are discovered) it will become a bad idea to keep running Patchwork.\nBy that time, you should pick a different ssb client.

\n

Why retire Patchwork? Can I keep it alive?

\n

Of course Patchwork is, as always, released under the AGPL license. So if you really wanted to, you could fork it and keep it alive. However, let me (Daan) explain why this is a bad idea:

\n

All the devs say \"Don't do it!\"

\n

Everyone who has spent significant time in the codebase agrees that it is time to retire Patchwork. Over the years, it has seen multiple iterations of developers coming in, trying to change things in a structural way, then burning out on it. It's a pattern, so be warned. This is due to the fact that Patchwork makes some architectural decisions that make it hard to maintain, and even harder for new developers to get into the codebase:

\n\n

I want to be clear that none of the above are impossible to solve; in fact, they all have straight-forward but labour-intensive solutions. I also want to be clear that these technological choices were all made for good reasons at the time, and I am sure you're as greatful to the developers who made them as I am, for putting their (overwhelmingly volunteered!) time into the project, and for making Patchwork the application that it is. In combination however, the above issues mean that new developers are faced with a very, very steep leaning curve before they're able to even make small changes.\nGiven all of the above, it makes more sense to deprecate Patchwork and focus our efforts on projects like #oasis or #manyverse which are nearing feature parity with Patchwork. If you want to get involved with ssb development, both are great projects for that; they are much more hackable than Patchwork, and follow standard techniques & workflows, so you'll feel right at home.

\n

If you do, against all advice, want to continue developing Patchwork then we kindly request you rename it to reflect the change in leadership.

\n
\n

Original Readme

\n
\n

A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB).

\n
\n

Features

\n\n

Usage

\n

\"Screenshot

\n

New to Scuttlebutt? Join the network by connecting to a pub.

\n
    \n
  1. Choose a pub from the pub list and copy an invite code.
  2. \n
  3. Open Patchwork and select Join Pub.
  4. \n
  5. Paste the invite code and select Redeem Invite.
  6. \n
\n

You're done! Check out #new-people to see who else has recently joined.

\n

Installation

\n

Most people should download Patchwork for Windows, macOS, or Linux.

\n

Alternatively, you can install Patchwork with your favorite package manager.

\n\n

Building from source? Check out INSTALL.md for more information.

\n

Contributing

\n

Create a new issue to report problems or request features. See\nCONTRIBUTING.md for more information on how to get involved.\nYou can also support the project via donations.

\n

Please note that this project is released with a Contributor Code of\nConduct. By participating in this project you agree to abide by its\nterms.

\n

See Also

\n\n

License

\n

AGPL-3.0

\n
", "readmeOriginal": "

⚠️ Patchwork v3.18.1 was the last release! ⚠️

\n

This release is meant to tide us over so that other clients can take it from here.

\n

Thank you to everyone who contributed to this release and all the ones preceding it!\nPaul, Matt McKegg, and Christian Bundy first and foremost, but by now the contributors page shows 94 contributors! 💓

\n

Where do we go from here? Do I have to change client now?

\n

For the time being (the next couple of months) you should be fine to just keep Patchwork running. However, as time progresses and security of the underlying components \"degrades\" (read: already existing issues are discovered) it will become a bad idea to keep running Patchwork.\nBy that time, you should pick a different ssb client.

\n

Why retire Patchwork? Can I keep it alive?

\n

Of course Patchwork is, as always, released under the AGPL license. So if you really wanted to, you could fork it and keep it alive. However, let me (Daan) explain why this is a bad idea:

\n

All the devs say \"Don't do it!\"

\n

Everyone who has spent significant time in the codebase agrees that it is time to retire Patchwork. Over the years, it has seen multiple iterations of developers coming in, trying to change things in a structural way, then burning out on it. It's a pattern, so be warned. This is due to the fact that Patchwork makes some architectural decisions that make it hard to maintain, and even harder for new developers to get into the codebase:

\n\n

I want to be clear that none of the above are impossible to solve; in fact, they all have straight-forward but labour-intensive solutions. I also want to be clear that these technological choices were all made for good reasons at the time, and I am sure you're as greatful to the developers who made them as I am, for putting their (overwhelmingly volunteered!) time into the project, and for making Patchwork the application that it is. In combination however, the above issues mean that new developers are faced with a very, very steep leaning curve before they're able to even make small changes.\nGiven all of the above, it makes more sense to deprecate Patchwork and focus our efforts on projects like #oasis or #manyverse which are nearing feature parity with Patchwork. If you want to get involved with ssb development, both are great projects for that; they are much more hackable than Patchwork, and follow standard techniques & workflows, so you'll feel right at home.

\n

If you do, against all advice, want to continue developing Patchwork then we kindly request you rename it to reflect the change in leadership.

\n
\n

Original Readme

\n
\n

A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB).

\n
\n

Features

\n\n

Usage

\n

\"Screenshot

\n

New to Scuttlebutt? Join the network by connecting to a pub.

\n
    \n
  1. Choose a pub from the pub list and copy an invite code.
  2. \n
  3. Open Patchwork and select Join Pub.
  4. \n
  5. Paste the invite code and select Redeem Invite.
  6. \n
\n

You're done! Check out #new-people to see who else has recently joined.

\n

Installation

\n

Most people should download Patchwork for Windows, macOS, or Linux.

\n

Alternatively, you can install Patchwork with your favorite package manager.

\n\n

Building from source? Check out INSTALL.md for more information.

\n

Contributing

\n

Create a new issue to report problems or request features. See\nCONTRIBUTING.md for more information on how to get involved.\nYou can also support the project via donations.

\n

Please note that this project is released with a Contributor Code of\nConduct. By participating in this project you agree to abide by its\nterms.

\n

See Also

\n\n

License

\n

AGPL-3.0

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.047Z" }, "passky": { "readmeCleaned": "

Passky: The Ultimate Open-Source Password Manager

\n

Download from Rabbit Store

\n

Passky Clients

\n\n

What is Passky?

\n

Passky is simple, modern, lightweight, open source and secure password manager.

\n

\"Passky

\n

How Much Does it Cost?

\n

Passky is open-source. This means that anyone can download it, dig into its code, and customize it to their liking. Using Passky doesn’t require an upfront cost or monthly subscription. It’s completely free to download and can be hosted by anyone who has the space to do so.

\n

When we launched Passky, we setup two servers, each holding up to 1,000 passwords for 100 users apiece. These servers are currently open for new users. But only the first two-hundred people to sign up will get access. Possible future servers are contingent upon a number of factors. So, if you want access to the best, open-source password manager on the market, now is the time to join.

\n

How Does Passky Work?

\n

Some people are hesitant to use a password manager because they fear that it could leave them vulnerable to hackers and other malicious actors. But once you understand the way Passky works, you’ll quickly realize that using a password manager like Passky is far more secure than opting for a single password across all your accounts.

\n

When you save your account information to Passky, all sensitive data is fully encrypted. This means that your sensitive data cannot be accessed by anyone at Passky or by any potential hackers. If someone did access your passwords, they’d only be able to see an encrypted version of it that’s useless without your master key.

\n

So, what is your master key? It’s your own personal password – the one password you need to unlock all other passwords. When you try to access your e-mail or another password protected site, Passky will pull your encrypted password from our server. Then, you’ll input your master password, and it will decrypt the password. So, you’ll only ever need to remember your master password. It will effortlessly unlock every other password you could want.

\n

How Secure is Passky?

\n

Passky simplifies your digital life and solves your password problem. All you’ll ever need to do is remember a single, ultra-secure password that includes uppercase letters, lowercase letters, numbers, and special characters. Once you’ve got that written down in your wallet or purse (or buried in your memory), you’ll get the benefit of secure passwords across your online accounts without having to memorize dozens of codewords. This makes it one of the most secure ways to protect your online identity.

\n

But Passky takes security a step further. We’ve implemented a brute force mitigation system that locks out any user who inputs the wrong password too many times. By stopping login attempts for a set time and warning you about an attempted breach, you’ll have time to secure your account by creating a new password or taking other measures.

\n

But is Passky Easy to Use?

\n

Passky has been designed with modern users in mind. That’s why we’ve strived to provide an interface that’s streamlined and easy to use. Unlike some of the competition, Passky can be easily used by anyone, including techies and computer novices. And since it’s built for performance, you won’t need to overtax your CPU or waste a lot of storage space to keep it running.

\n

Downloading and installing Passky to your browser is a simple process that takes less than two-minutes to complete. Once it’s up and running, you can immediately begin managing your passwords with it. Creating, editing, and deleting passwords takes mere seconds. And once you’ve got everything setup, you’ll be able to quickly access all of your password-protected websites and accounts.

\n

How Does Passky Compare to the Competition?

\n

Bitwarden is one of Passky’s biggest competitors. It’s also a free, open-source password manager. But unlike Passky, Bitwarden offers a host of additional features. The only problem is that you’ll likely never use any of them. Most people want a password manager to do one thing really well – not a whole host of things with mediocrity.

\n

Since Passky is designed to do one thing well, it’s faster, less resource intensive, easier to use, and requires less storage space than Bitwarden. Plus, it’s just more modern.

\n

Passky is built for today’s users, not yesterday’s.

\n

But how does Passky stack up against other password managers on the market today?

\n

Unfortunately, that’s the problem with them. Most other password managers are on the market. They’ve been built to be sold to people like you. Those managers aren’t open-source or free. They require an upfront cost, or a monthly or yearly subscription.

\n

We believe in the power of open-source software. And we also believe in the generosity of those who benefit from our products. That’s why we’ve made Passky available at no cost. We only ask that you’d consider making a donation if you benefit from the work we’ve put in to this product.

\n

And when you donate, don’t think that you’re paying us to rest on our laurels. We’re dedicated to enhancing Passky in a number of valuable and important ways, including…

\n
• An increasing number of themes that users can choose from to customize their Passky experience.\n• More language options for our worldwide users.\n• And more…\n
\n

If you’re ready to try Passky out at no cost, you can get started by visiting our website at https://passky.org. We currently have a desktop application available for Windows and Linux operating systems along with a mobile app on the Google Play Store. MacOS and iOS apps are currently being developed. In addition, we offer browser extensions for all major browsers except for Safari.

\n

Installation

\n

Windows

\n

Microsoft Store

\n
    \n
  1. Open Microsoft Store
  2. \n
  3. Search for Passky (https://www.microsoft.com/store/apps/9NRCP6HPPB82)
  4. \n
  5. Click on install
  6. \n
\n

Manually

\n
    \n
  1. Download Passky installer (https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/Passky.Setup.6.0.2.exe)
  2. \n
  3. or Download Passky portable (https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/Passky.6.0.2.exe)
  4. \n
  5. Run downloaded .exe file
  6. \n
  7. Passky desktop application is now installed
  8. \n
\n

Debian based distros

\n
wget https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/passky_6.0.2_amd64.deb\nsudo dpkg -i passky_6.0.2_amd64.deb
\n

Red Hat based distros

\n
wget https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/passky-6.0.2.x86_64.rpm\nsudo rpm -i passky-6.0.2.x86_64.rpm
\n

Snap

\n

\"Get

\n
sudo snap install passky
\n

AppImage

\n
    \n
  1. Download Passky (https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/Passky-6.0.2.AppImage)
  2. \n
  3. Start Passky-6.0.2.AppImage
  4. \n
  5. Passky desktop application is now installed
  6. \n
\n

Uninstall

\n

Windows

\n
    \n
  1. In the search box on the taskbar, type Control Panel and select it from the results.
  2. \n
  3. Select Programs > Programs and Features.
  4. \n
  5. Right click on the Passky and select Uninstall or Uninstall/Change.
  6. \n
\n

Debian based distros

\n
sudo dpkg -r passky
\n

Red Hat based distros

\n
sudo rpm -e Passky
\n

Snap

\n
sudo snap remove passky
\n

AppImage

\n
    \n
  1. Move Passky-6.0.2.AppImage to the trash
  2. \n
  3. Empty your trash
  4. \n
\n
", "readmeOriginal": "

Passky: The Ultimate Open-Source Password Manager

\n

Download from Rabbit Store

\n

Passky Clients

\n\n

What is Passky?

\n

Passky is simple, modern, lightweight, open source and secure password manager.

\n

\"Passky

\n

How Much Does it Cost?

\n

Passky is open-source. This means that anyone can download it, dig into its code, and customize it to their liking. Using Passky doesn’t require an upfront cost or monthly subscription. It’s completely free to download and can be hosted by anyone who has the space to do so.

\n

When we launched Passky, we setup two servers, each holding up to 1,000 passwords for 100 users apiece. These servers are currently open for new users. But only the first two-hundred people to sign up will get access. Possible future servers are contingent upon a number of factors. So, if you want access to the best, open-source password manager on the market, now is the time to join.

\n

How Does Passky Work?

\n

Some people are hesitant to use a password manager because they fear that it could leave them vulnerable to hackers and other malicious actors. But once you understand the way Passky works, you’ll quickly realize that using a password manager like Passky is far more secure than opting for a single password across all your accounts.

\n

When you save your account information to Passky, all sensitive data is fully encrypted. This means that your sensitive data cannot be accessed by anyone at Passky or by any potential hackers. If someone did access your passwords, they’d only be able to see an encrypted version of it that’s useless without your master key.

\n

So, what is your master key? It’s your own personal password – the one password you need to unlock all other passwords. When you try to access your e-mail or another password protected site, Passky will pull your encrypted password from our server. Then, you’ll input your master password, and it will decrypt the password. So, you’ll only ever need to remember your master password. It will effortlessly unlock every other password you could want.

\n

How Secure is Passky?

\n

Passky simplifies your digital life and solves your password problem. All you’ll ever need to do is remember a single, ultra-secure password that includes uppercase letters, lowercase letters, numbers, and special characters. Once you’ve got that written down in your wallet or purse (or buried in your memory), you’ll get the benefit of secure passwords across your online accounts without having to memorize dozens of codewords. This makes it one of the most secure ways to protect your online identity.

\n

But Passky takes security a step further. We’ve implemented a brute force mitigation system that locks out any user who inputs the wrong password too many times. By stopping login attempts for a set time and warning you about an attempted breach, you’ll have time to secure your account by creating a new password or taking other measures.

\n

But is Passky Easy to Use?

\n

Passky has been designed with modern users in mind. That’s why we’ve strived to provide an interface that’s streamlined and easy to use. Unlike some of the competition, Passky can be easily used by anyone, including techies and computer novices. And since it’s built for performance, you won’t need to overtax your CPU or waste a lot of storage space to keep it running.

\n

Downloading and installing Passky to your browser is a simple process that takes less than two-minutes to complete. Once it’s up and running, you can immediately begin managing your passwords with it. Creating, editing, and deleting passwords takes mere seconds. And once you’ve got everything setup, you’ll be able to quickly access all of your password-protected websites and accounts.

\n

How Does Passky Compare to the Competition?

\n

Bitwarden is one of Passky’s biggest competitors. It’s also a free, open-source password manager. But unlike Passky, Bitwarden offers a host of additional features. The only problem is that you’ll likely never use any of them. Most people want a password manager to do one thing really well – not a whole host of things with mediocrity.

\n

Since Passky is designed to do one thing well, it’s faster, less resource intensive, easier to use, and requires less storage space than Bitwarden. Plus, it’s just more modern.

\n

Passky is built for today’s users, not yesterday’s.

\n

But how does Passky stack up against other password managers on the market today?

\n

Unfortunately, that’s the problem with them. Most other password managers are on the market. They’ve been built to be sold to people like you. Those managers aren’t open-source or free. They require an upfront cost, or a monthly or yearly subscription.

\n

We believe in the power of open-source software. And we also believe in the generosity of those who benefit from our products. That’s why we’ve made Passky available at no cost. We only ask that you’d consider making a donation if you benefit from the work we’ve put in to this product.

\n

And when you donate, don’t think that you’re paying us to rest on our laurels. We’re dedicated to enhancing Passky in a number of valuable and important ways, including…

\n
• An increasing number of themes that users can choose from to customize their Passky experience.\n• More language options for our worldwide users.\n• And more…\n
\n

If you’re ready to try Passky out at no cost, you can get started by visiting our website at https://passky.org. We currently have a desktop application available for Windows and Linux operating systems along with a mobile app on the Google Play Store. MacOS and iOS apps are currently being developed. In addition, we offer browser extensions for all major browsers except for Safari.

\n

Installation

\n

Windows

\n

Microsoft Store

\n
    \n
  1. Open Microsoft Store
  2. \n
  3. Search for Passky (https://www.microsoft.com/store/apps/9NRCP6HPPB82)
  4. \n
  5. Click on install
  6. \n
\n

Manually

\n
    \n
  1. Download Passky installer (https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/Passky.Setup.6.0.2.exe)
  2. \n
  3. or Download Passky portable (https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/Passky.6.0.2.exe)
  4. \n
  5. Run downloaded .exe file
  6. \n
  7. Passky desktop application is now installed
  8. \n
\n

Debian based distros

\n
wget https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/passky_6.0.2_amd64.deb\nsudo dpkg -i passky_6.0.2_amd64.deb
\n

Red Hat based distros

\n
wget https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/passky-6.0.2.x86_64.rpm\nsudo rpm -i passky-6.0.2.x86_64.rpm
\n

Snap

\n

\"Get

\n
sudo snap install passky
\n

AppImage

\n
    \n
  1. Download Passky (https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v6.0.2/Passky-6.0.2.AppImage)
  2. \n
  3. Start Passky-6.0.2.AppImage
  4. \n
  5. Passky desktop application is now installed
  6. \n
\n

Uninstall

\n

Windows

\n
    \n
  1. In the search box on the taskbar, type Control Panel and select it from the results.
  2. \n
  3. Select Programs > Programs and Features.
  4. \n
  5. Right click on the Passky and select Uninstall or Uninstall/Change.
  6. \n
\n

Debian based distros

\n
sudo dpkg -r passky
\n

Red Hat based distros

\n
sudo rpm -e Passky
\n

Snap

\n
sudo snap remove passky
\n

AppImage

\n
    \n
  1. Move Passky-6.0.2.AppImage to the trash
  2. \n
  3. Empty your trash
  4. \n
\n
", "readmeFetchedAt": "2022-05-10T00:08:03.208Z" }, "pencil": { "readmeCleaned": "

\"Image

\n

About The Next Version

\n

Pencil V3 is a rewrite of Pencil that aims to fix major performance and scalability issues of the application. The new version is under heavy development and we are expecting GA builds in June. The following list summarizes important changes in the new version:

\n\n

Setting up

\n

Pencil uses Atom Electron as the runtime, follow the these steps to setup the environment:

\n\n

Supported Platforms

\n

OS X

\n

Only OSX 64bit 10.9 and later are supported.

\n

Windows

\n

Windows 7 and later are supported, older operating systems are not supported (and do not work).

\n

Linux

\n\n
", "readmeOriginal": "

\"Image

\n

About The Next Version

\n

Pencil V3 is a rewrite of Pencil that aims to fix major performance and scalability issues of the application. The new version is under heavy development and we are expecting GA builds in June. The following list summarizes important changes in the new version:

\n\n

Setting up

\n

Pencil uses Atom Electron as the runtime, follow the these steps to setup the environment:

\n\n

Supported Platforms

\n

OS X

\n

Only OSX 64bit 10.9 and later are supported.

\n

Windows

\n

Windows 7 and later are supported, older operating systems are not supported (and do not work).

\n

Linux

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:03.251Z" }, "pendulums": { "readmeCleaned": "

Pendulums Web/Desktop/Android Clients

\n

This repository keeps track of Pendulums client source.

\n

Development server

\n

Run npm run start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

\n

Help us to improve Pendulums and keep it alive

\n

Maintaining servers, fixing issues and bringing new features to Pendulums cost a lot of time and money. We will be grateful if you can show us some love using donations.

\n
", "readmeOriginal": "

Pendulums Web/Desktop/Android Clients

\n

This repository keeps track of Pendulums client source.

\n

Development server

\n

Run npm run start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

\n

Help us to improve Pendulums and keep it alive

\n

Maintaining servers, fixing issues and bringing new features to Pendulums cost a lot of time and money. We will be grateful if you can show us some love using donations.

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.252Z" }, "pennywise": { "readmeCleaned": "

\n \n

Pennywise

\n

Cross-platform application to open website or media in a floating window

\n

\n \n \n \n \n \t\"platforms\"\n \n \n\t \"prs\n \n

\n

\n

Pennywise opens any website or media in a small floating window that remains on top of all other applications. Pennywise windows stays up all the time. No need to keep struggling with alt + tab, use Pennywise for easy multitasking.

\n

Features

\n\n

Installation

\n

Download and install the relevant distribution from the releases page.

\n

If you are on MacOS, you can use Homebrew to install it

\n
brew install --cask pennywise\n
\n

Enable Flash Support

\n

To enable flash support, copy or link Chrome's Pepperflash plugin into your $HOME/.pennywise-flash. You can find the plugin at the installation path of the Chrome. For example, on MacOS, you can do the below to enable Flash support

\n
ln -s ~/Library/Application\\ Support/Google/Chrome/PepperFlash/[version]/PepperFlashPlayer.plugin\" ~/.pennywise-flash\n
\n

Usecases

\n
\n

Here is the list of some of the possible use cases off the top of my head

\n
\n\n

Development

\n

Clone the repository, install the dependencies and start the app

\n
yarn install\nyarn start
\n

Shortcuts

\n
\n

Here is the list of available shortcuts that you may use

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ShortcutDescription
Cmd/Ctrl + LShow Navbar and focus URL input
Cmd/Ctrl + Shift + DEnable detached mode
Cmd/Ctrl + MRefresh Page
Cmd/Ctrl + Shift + LToggle Navbar on WebPages
Cmd/Ctrl + Shift + UpIncrease Opacity
Cmd/Ctrl + Shift + DownDecrease Opacity
Cmd/Ctrl + Alt + IShow Developer Tools
Cmd/Ctrl + [0-9]Switch Window Opacity
\n
\n

Note – Changing the opacity is only supported in Windows and MacOS

\n
\n

Detached Mode

\n\n

Screenshots

\n
\n

Homescreen for the application

\n
\n

\"\"

\n

\"\"

\n
\n

Anything running in pennywise stays on top of everything

\n
\n

\"\"

\n

\"\"

\n
\n

You can change the opacity too

\n
\n

\"\"

\n

\"\"

\n

Auto-embed Videos

\n

For some video streaming websites such as Youtube, Vimeo, Twitch, Daily Motion etc, Pennywise shows you the video only web page by default (using the auto-generated embed links), showing you the video in a distract free manner. You can disable that by toggling the Edit > Embed Videos.

\n
\n

Note – In case of youtube, it might not work sometime when the user has put restrictions on the video – in that case, you will have to disable \"Auto Embed\" option from the Edit menu to make them work.

\n
\n

Why is it named Pennywise?

\n

Because the application helps in floating and Pennywise loved to do that

\n

\"\"

\n

Planned Roadmap

\n\n

Contributions

\n

Feel free to implement anything from the roadmap, submit pull requests, create issues, discuss ideas or spread the word.

\n

License

\n

MIT © Kamran Ahmed

\n
", "readmeOriginal": "

\n \n

Pennywise

\n

Cross-platform application to open website or media in a floating window

\n

\n \n \n \n \n \t\"platforms\"\n \n \n\t \"prs\n \n

\n

\n

Pennywise opens any website or media in a small floating window that remains on top of all other applications. Pennywise windows stays up all the time. No need to keep struggling with alt + tab, use Pennywise for easy multitasking.

\n

Features

\n\n

Installation

\n

Download and install the relevant distribution from the releases page.

\n

If you are on MacOS, you can use Homebrew to install it

\n
brew install --cask pennywise\n
\n

Enable Flash Support

\n

To enable flash support, copy or link Chrome's Pepperflash plugin into your $HOME/.pennywise-flash. You can find the plugin at the installation path of the Chrome. For example, on MacOS, you can do the below to enable Flash support

\n
ln -s ~/Library/Application\\ Support/Google/Chrome/PepperFlash/[version]/PepperFlashPlayer.plugin\" ~/.pennywise-flash\n
\n

Usecases

\n
\n

Here is the list of some of the possible use cases off the top of my head

\n
\n\n

Development

\n

Clone the repository, install the dependencies and start the app

\n
yarn install\nyarn start
\n

Shortcuts

\n
\n

Here is the list of available shortcuts that you may use

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ShortcutDescription
Cmd/Ctrl + LShow Navbar and focus URL input
Cmd/Ctrl + Shift + DEnable detached mode
Cmd/Ctrl + MRefresh Page
Cmd/Ctrl + Shift + LToggle Navbar on WebPages
Cmd/Ctrl + Shift + UpIncrease Opacity
Cmd/Ctrl + Shift + DownDecrease Opacity
Cmd/Ctrl + Alt + IShow Developer Tools
Cmd/Ctrl + [0-9]Switch Window Opacity
\n
\n

Note – Changing the opacity is only supported in Windows and MacOS

\n
\n

Detached Mode

\n\n

Screenshots

\n
\n

Homescreen for the application

\n
\n

\"\"

\n

\"\"

\n
\n

Anything running in pennywise stays on top of everything

\n
\n

\"\"

\n

\"\"

\n
\n

You can change the opacity too

\n
\n

\"\"

\n

\"\"

\n

Auto-embed Videos

\n

For some video streaming websites such as Youtube, Vimeo, Twitch, Daily Motion etc, Pennywise shows you the video only web page by default (using the auto-generated embed links), showing you the video in a distract free manner. You can disable that by toggling the Edit > Embed Videos.

\n
\n

Note – In case of youtube, it might not work sometime when the user has put restrictions on the video – in that case, you will have to disable \"Auto Embed\" option from the Edit menu to make them work.

\n
\n

Why is it named Pennywise?

\n

Because the application helps in floating and Pennywise loved to do that

\n

\"\"

\n

Planned Roadmap

\n\n

Contributions

\n

Feel free to implement anything from the roadmap, submit pull requests, create issues, discuss ideas or spread the word.

\n

License

\n

MIT © Kamran Ahmed

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.334Z" }, "photoscreensaver": { "readmeCleaned": "

photo-screen-saver

\n

\"icon.png\"

\n

Windows screen saver that displays a photo slideshow, built on\nReact and Electron.

\n

Why?

\n

Since modern LCD displays aren't subject to burn-in, screen savers are a thing of the past... right?

\n

Not if you have your HTPC hooked up to a plasma TV; plasma still has a big problem with burn-in.\nFinding myself in that situation, I needed a screen saver that would protect the screen while a\nmovie is paused. I also wanted it to look great — it's in my living room, after all —\nbut every screen saver I tried looked like it was written decades ago. (Most of them were.)

\n

Modern web technologies make it incredibly easy to create engaging animations. All I needed was a\nway to marry the web tools we know and love to the Windows screen saver framework. That's where\nElectron comes in.

\n

Please note: This is currently a Windows-specific project. You can run the code in Electron on\nother platforms, but you won't get the screen saver integration with the OS.

\n

Before You Build

\n

This screen saver displays a photo slideshow with a simple \"Ken Burns\" effect. It supports three\nphoto sources:

\n\n

Since I didn't feel like implementing a Settings window, you'll need to make some simple code\nchanges to set up a source. If you take a look at the top of src/photoSlideshow.tsx, you'll find\nthe following line of code. Set GET_PHOTOS to getUnsplashPhotos, getFlickrPhotos, or\ngetLocalPhotos:

\n
const GET_PHOTOS: GetPhotosFn = getUnsplashPhotos\n
\n

Then do one of the following:

\n\n

A quick warning: When you display random photos from the web, there's always a chance you'll get\nsomething you wouldn't want your kids, your grandma, or your boss to see. The API calls are set\nup to avoid anything NSFW, but photos do end up in the wrong category from time to time —\ndon't say I didn't warn you. If you want to stay on the safe side, you can always use your own local\nfolder of photos.

\n

How to Build

\n

(This project requires Node.js — if you're reading\nthis, you probably already have it.)

\n

Install: Go to the project folder and run the following command:

\n
npm install\n
\n

Build: Go to the project folder and run the following command:

\n
npm run build-electron\n
\n

Run: Once the build is complete, you have a couple of options. If you want to quickly fire it up\nand see what it does, go to the project folder and run:

\n
npm run start-electron\n
\n

Screen Saver: If you want to install the screen saver, look in the\npackage/photo-screen-saver-win32-x64 subfolder and find the file photo-screen-saver.scr.\nRight-click the file and choose Install. When the Windows screen saver settings appear, you'll see\nthat photo-screen-saver is now your selected screen saver.

\n

Development: If you want to work on the React part of the project, you can run npm start to\nlaunch it in the browser. Since it's built on\ncreate-react-app, you get all the benefits of\nwebpack-dev-server including hot module reloading. Note: In this mode you won't be able to use any\nfeatures that depend on Electron, such as loading photos from a local folder.

\n

Behind the Scenes

\n

It's a lot easier than I thought to create a screen saver for Windows — it's just a normal\nexecutable with a .scr extension. The program just needs to display a topmost full-screen window and\nexit on mouse or keyboard activity. These requirements are really easy to meet in Electron!

\n

Note: This project is the bare minimum and won't give you the mini-preview or Settings features.\nThe mini-preview is a pain to implement, and IMO not worth the effort. To support Settings you just\nneed to handle the /S command line argument and display an appropriate UI. (I was too lazy to\nimplement a Settings UI, but you might feel differently!)

\n

Possibilities

\n

This project makes a good starting point for any screen saver you want to create. You could start by\nchanging the Unsplash API call to get different types of photos. If photos aren't your cup of tea,\nthere are a lot of cool animations on CodePen and ShaderToy. To get you started, there are four ready-to-run\nanimation components included in this project, each one with a great-looking demo and each one\nillustrating a different basic approach to animation:

\n\n

At the top of src/app.tsx you'll find the following line of code. Set SHOW_COMPONENT to the\ncomponent you want to see:

\n
const SHOW_COMPONENT: ShowComponent = PhotoSlideshow\n
\n

You can create your own components using the demos as a template. Use your own code or examples you\nfind on the web. Whatever you use, be sure to comply with the license terms!

\n

License

\n

The MIT License

\n

Copyright (c) 2016 Rand Scullard

\n
", "readmeOriginal": "

photo-screen-saver

\n

\"icon.png\"

\n

Windows screen saver that displays a photo slideshow, built on\nReact and Electron.

\n

Why?

\n

Since modern LCD displays aren't subject to burn-in, screen savers are a thing of the past... right?

\n

Not if you have your HTPC hooked up to a plasma TV; plasma still has a big problem with burn-in.\nFinding myself in that situation, I needed a screen saver that would protect the screen while a\nmovie is paused. I also wanted it to look great — it's in my living room, after all —\nbut every screen saver I tried looked like it was written decades ago. (Most of them were.)

\n

Modern web technologies make it incredibly easy to create engaging animations. All I needed was a\nway to marry the web tools we know and love to the Windows screen saver framework. That's where\nElectron comes in.

\n

Please note: This is currently a Windows-specific project. You can run the code in Electron on\nother platforms, but you won't get the screen saver integration with the OS.

\n

Before You Build

\n

This screen saver displays a photo slideshow with a simple \"Ken Burns\" effect. It supports three\nphoto sources:

\n\n

Since I didn't feel like implementing a Settings window, you'll need to make some simple code\nchanges to set up a source. If you take a look at the top of src/photoSlideshow.tsx, you'll find\nthe following line of code. Set GET_PHOTOS to getUnsplashPhotos, getFlickrPhotos, or\ngetLocalPhotos:

\n
const GET_PHOTOS: GetPhotosFn = getUnsplashPhotos\n
\n

Then do one of the following:

\n\n

A quick warning: When you display random photos from the web, there's always a chance you'll get\nsomething you wouldn't want your kids, your grandma, or your boss to see. The API calls are set\nup to avoid anything NSFW, but photos do end up in the wrong category from time to time —\ndon't say I didn't warn you. If you want to stay on the safe side, you can always use your own local\nfolder of photos.

\n

How to Build

\n

(This project requires Node.js — if you're reading\nthis, you probably already have it.)

\n

Install: Go to the project folder and run the following command:

\n
npm install\n
\n

Build: Go to the project folder and run the following command:

\n
npm run build-electron\n
\n

Run: Once the build is complete, you have a couple of options. If you want to quickly fire it up\nand see what it does, go to the project folder and run:

\n
npm run start-electron\n
\n

Screen Saver: If you want to install the screen saver, look in the\npackage/photo-screen-saver-win32-x64 subfolder and find the file photo-screen-saver.scr.\nRight-click the file and choose Install. When the Windows screen saver settings appear, you'll see\nthat photo-screen-saver is now your selected screen saver.

\n

Development: If you want to work on the React part of the project, you can run npm start to\nlaunch it in the browser. Since it's built on\ncreate-react-app, you get all the benefits of\nwebpack-dev-server including hot module reloading. Note: In this mode you won't be able to use any\nfeatures that depend on Electron, such as loading photos from a local folder.

\n

Behind the Scenes

\n

It's a lot easier than I thought to create a screen saver for Windows — it's just a normal\nexecutable with a .scr extension. The program just needs to display a topmost full-screen window and\nexit on mouse or keyboard activity. These requirements are really easy to meet in Electron!

\n

Note: This project is the bare minimum and won't give you the mini-preview or Settings features.\nThe mini-preview is a pain to implement, and IMO not worth the effort. To support Settings you just\nneed to handle the /S command line argument and display an appropriate UI. (I was too lazy to\nimplement a Settings UI, but you might feel differently!)

\n

Possibilities

\n

This project makes a good starting point for any screen saver you want to create. You could start by\nchanging the Unsplash API call to get different types of photos. If photos aren't your cup of tea,\nthere are a lot of cool animations on CodePen and ShaderToy. To get you started, there are four ready-to-run\nanimation components included in this project, each one with a great-looking demo and each one\nillustrating a different basic approach to animation:

\n\n

At the top of src/app.tsx you'll find the following line of code. Set SHOW_COMPONENT to the\ncomponent you want to see:

\n
const SHOW_COMPONENT: ShowComponent = PhotoSlideshow\n
\n

You can create your own components using the demos as a template. Use your own code or examples you\nfind on the web. Whatever you use, be sure to comply with the license terms!

\n

License

\n

The MIT License

\n

Copyright (c) 2016 Rand Scullard

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.495Z" }, "photo-viewer": { "readmeCleaned": "

Photo Viewer

\n

\n

This is a photo/GIF viewer with support for many cool resizing and color effects.

\n

Features:

\n\n

Keyboard Shortcuts:

\n\n

Installation

\n

Download the latest installer from the releases tab. Updates can be installed automatically.

\n

Known issues: Sorry, it seems like I can only build the macOS version correctly so if you are on Windows or Linux try compiling the source code yourself. Run both of these commands:
\nnpm install (installs dependencies)
\nnpm run build (builds the project)

\n

Bugs and Requests

\n

Open an issue on my GitHub repository.

\n

Also See

\n\n
", "readmeOriginal": "

Photo Viewer

\n

\n

This is a photo/GIF viewer with support for many cool resizing and color effects.

\n

Features:

\n\n

Keyboard Shortcuts:

\n\n

Installation

\n

Download the latest installer from the releases tab. Updates can be installed automatically.

\n

Known issues: Sorry, it seems like I can only build the macOS version correctly so if you are on Windows or Linux try compiling the source code yourself. Run both of these commands:
\nnpm install (installs dependencies)
\nnpm run build (builds the project)

\n

Bugs and Requests

\n

Open an issue on my GitHub repository.

\n

Also See

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:03.549Z" }, "petal": { "readmeCleaned": "

\n \"Petal\n

\n

Petal

\n

\n \n \"Greenkeeper\n \n \n \n \n \n \"David\"\n \"GitHub\n \"GitHub\n \"GitHub\n \n \n \n \n \"Gitter\"\n \n

\n

🌺 Douban.FM Client With Extra - - -

\n

喜欢 Petal 的话,可以给它一个 star ,这样就能让更多的人知道它啦,十分感谢🙏

\n
\n

另外,因为我个人已经没有很多精力单独维护它了,所以,Look For Maintainers,如果你喜欢 豆瓣 FM 或者 Petal,并且有意愿了解和贡献 Petal,可以邮件到 g1enyy0ung@gmail.com,注明来意,我会帮助你了解整个项目。

\n
\n

v3.0 计划

\n

https://github.com/ilime/Petal/releases/tag/v2.20.0

\n

Current Maintainers

\n\n

如果你有任何问题,可以邮件联系我们。

\n

Screenshot

\n

\n \"Petal\n

\n

Use it

\n

Releases

\n

Go to the release page and download the latest app.

\n

Arch Linux

\n

You can also install petal-bin from AUR.

\n

百度云

\n

如果 GitHub 下载速度缓慢的话,可以前往百度网盘下载:

\n

链接:https://pan.baidu.com/s/1l-3ExzKzsim3LBiJHzCY_Q 密码:cjp1

\n

How to develop

\n
git clone git@github.com:ilime/Petal.git && cd Petal/\nyarn && yarn start\n\n// Open a new terminal\nyarn build:electron:dev\nyarn start:electron
\n

How to build

\n
chmod +x build.sh\n./build.sh
\n

For single platform:

\n
# OSX\n./build-platform.sh -m\n\n# Win\n./build-platform.sh -w\n\n# Linux\n./build-platform.sh -l
\n

How to contribute

\n

Open an issue or pull a request to describe your problems or changes.

\n

Contributors

\n

Very thankful to all the people below:

\n\n

License

\n

MIT © ilime

\n

Credits

\n

kapetan/titlebar

\n
", "readmeOriginal": "

\n \"Petal\n

\n

Petal

\n

\n \n \"Greenkeeper\n \n \n \n \n \n \"David\"\n \"GitHub\n \"GitHub\n \"GitHub\n \n \n \n \n \"Gitter\"\n \n

\n

🌺 Douban.FM Client With Extra - - -

\n

喜欢 Petal 的话,可以给它一个 star ,这样就能让更多的人知道它啦,十分感谢🙏

\n
\n

另外,因为我个人已经没有很多精力单独维护它了,所以,Look For Maintainers,如果你喜欢 豆瓣 FM 或者 Petal,并且有意愿了解和贡献 Petal,可以邮件到 g1enyy0ung@gmail.com,注明来意,我会帮助你了解整个项目。

\n
\n

v3.0 计划

\n

https://github.com/ilime/Petal/releases/tag/v2.20.0

\n

Current Maintainers

\n\n

如果你有任何问题,可以邮件联系我们。

\n

Screenshot

\n

\n \"Petal\n

\n

Use it

\n

Releases

\n

Go to the release page and download the latest app.

\n

Arch Linux

\n

You can also install petal-bin from AUR.

\n

百度云

\n

如果 GitHub 下载速度缓慢的话,可以前往百度网盘下载:

\n

链接:https://pan.baidu.com/s/1l-3ExzKzsim3LBiJHzCY_Q 密码:cjp1

\n

How to develop

\n
git clone git@github.com:ilime/Petal.git && cd Petal/\nyarn && yarn start\n\n// Open a new terminal\nyarn build:electron:dev\nyarn start:electron
\n

How to build

\n
chmod +x build.sh\n./build.sh
\n

For single platform:

\n
# OSX\n./build-platform.sh -m\n\n# Win\n./build-platform.sh -w\n\n# Linux\n./build-platform.sh -l
\n

How to contribute

\n

Open an issue or pull a request to describe your problems or changes.

\n

Contributors

\n

Very thankful to all the people below:

\n\n

License

\n

MIT © ilime

\n

Credits

\n

kapetan/titlebar

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.551Z" }, "peacock": { "readmeCleaned": "

Peacock

\n

\n

\n 🦚 Open source experimental private-by-default web browser.
\n Docs |\n Download |\n FAQ\n

\n \"GitHub\n \"GitHub\n \"Discord\"\n


\n

⚠️ Peacock has been discontinued.

\n

Contents

\n\n

Download

\n

Windows

\n

Download the .exe file from our releases page.

\n

Releasing Peacock for the Windows package, Chocolatey, might be our next step.

\n

Mac

\n

Unfortunately, Mac builds are failing and there hasn't been enough testing yet for Peacock to be confident enough in releasing a public build for MacOS.

\n

Linux

\n

Here, you can download Linux builds for Peacock. Hopefully Peacock will have a Flatpak release and possibly an RPM build in the near future.

\n
\n

Ubuntu, Debian and Debian derivatives

\n

Download the .deb file from our releases page.

\n
\n

Arch Linux (AUR)

\n

\"AUR

\n

Download Peacock from the Arch User Repository here. (thank you to u/sunflsks!)

\n
\n

AppImage (Everything else)

\n

Download the .AppImage file from our releases page.

\n

Screenshots

\n

New screenshots coming soon!\n\n

\n

Building

\n

Both of the build commands use electron-builder and output executables for their respective operating system in the dist/ folder.

\n

Download and initialize Peacock's source code with these commands:

\n
    \n
  1. git clone https://github.com/peacockweb/peacock.git && cd peacock
  2. \n
  3. npm i
  4. \n
\n

Run peacock from source:

\n

npm run start

\n

Build instructions for Windows:

\n

npm run build-win

\n

Build instructions for Linux:

\n

npm run build-linux

\n

F.A.Q.

\n

How does Peacock compare to other privacy browsers like Firefox and Brave?

\n

Both Firefox and Brave are spectacular and every day, Peacock gets closer and closer to their status of privacy. Peacock isn't stable enough yet to be used as a daily driver, but is an awesome experiment nonetheless to test the limits of the web and help make the internet a safer place.

\n

How do I know Peacock doesn't take telemetry?

\n

Peacock is built around on open source technologies and therefore we love transparency. You're welcome to perform your own audits on our entirely open source code! We also include a Components entry in our docs which breaks down all the technologies used in the production of Peacock.

\n

How experimental is Peacock? Can I process any sensitive data on it yet?

\n

Using should hold off on doing anything too sensitive on Peacock for now, it's still in development and bugs are getting patched all the time, but like all apps, some may be missed along the way.

\n

Why use Electron?

\n

Some people are skeptical about Electron for its generally high memory usage, but Electron makes the development process incredibly simple. Electron lets us build a desktop app using web technologies. Eventually, we may switch to something more practical like forking Chromium or Firefox.

\n

How to bypass security warnings?

\n

On Windows, apps are deemed as insecure if they haven't been code-signed with a certificate. Sigining certificates are expensive and therefore, Peacock doesn't have one (yet). This means that Peacock may show up to antiviruses or Windows Defender as a 'suspicious application' but can be easily bypsased selecting \"More Info\" > \"Run Anyway\":

\n

\n
", "readmeOriginal": "

Peacock

\n

\n

\n 🦚 Open source experimental private-by-default web browser.
\n Docs |\n Download |\n FAQ\n

\n \"GitHub\n \"GitHub\n \"Discord\"\n


\n

⚠️ Peacock has been discontinued.

\n

Contents

\n\n

Download

\n

Windows

\n

Download the .exe file from our releases page.

\n

Releasing Peacock for the Windows package, Chocolatey, might be our next step.

\n

Mac

\n

Unfortunately, Mac builds are failing and there hasn't been enough testing yet for Peacock to be confident enough in releasing a public build for MacOS.

\n

Linux

\n

Here, you can download Linux builds for Peacock. Hopefully Peacock will have a Flatpak release and possibly an RPM build in the near future.

\n
\n

Ubuntu, Debian and Debian derivatives

\n

Download the .deb file from our releases page.

\n
\n

Arch Linux (AUR)

\n

\"AUR

\n

Download Peacock from the Arch User Repository here. (thank you to u/sunflsks!)

\n
\n

AppImage (Everything else)

\n

Download the .AppImage file from our releases page.

\n

Screenshots

\n

New screenshots coming soon!\n\n

\n

Building

\n

Both of the build commands use electron-builder and output executables for their respective operating system in the dist/ folder.

\n

Download and initialize Peacock's source code with these commands:

\n
    \n
  1. git clone https://github.com/peacockweb/peacock.git && cd peacock
  2. \n
  3. npm i
  4. \n
\n

Run peacock from source:

\n

npm run start

\n

Build instructions for Windows:

\n

npm run build-win

\n

Build instructions for Linux:

\n

npm run build-linux

\n

F.A.Q.

\n

How does Peacock compare to other privacy browsers like Firefox and Brave?

\n

Both Firefox and Brave are spectacular and every day, Peacock gets closer and closer to their status of privacy. Peacock isn't stable enough yet to be used as a daily driver, but is an awesome experiment nonetheless to test the limits of the web and help make the internet a safer place.

\n

How do I know Peacock doesn't take telemetry?

\n

Peacock is built around on open source technologies and therefore we love transparency. You're welcome to perform your own audits on our entirely open source code! We also include a Components entry in our docs which breaks down all the technologies used in the production of Peacock.

\n

How experimental is Peacock? Can I process any sensitive data on it yet?

\n

Using should hold off on doing anything too sensitive on Peacock for now, it's still in development and bugs are getting patched all the time, but like all apps, some may be missed along the way.

\n

Why use Electron?

\n

Some people are skeptical about Electron for its generally high memory usage, but Electron makes the development process incredibly simple. Electron lets us build a desktop app using web technologies. Eventually, we may switch to something more practical like forking Chromium or Firefox.

\n

How to bypass security warnings?

\n

On Windows, apps are deemed as insecure if they haven't been code-signed with a certificate. Sigining certificates are expensive and therefore, Peacock doesn't have one (yet). This means that Peacock may show up to antiviruses or Windows Defender as a 'suspicious application' but can be easily bypsased selecting \"More Info\" > \"Run Anyway\":

\n

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.655Z" }, "playback": { "readmeCleaned": "

Playback

\n

Video player built using electron and node.js

\n

Features

\n\n

Installation

\n

To install it download the latest release for your platform.

\n

Currently supported releases:

\n\n

Pull requests are welcome that adds builds for other platforms.

\n

If you think it is missing a feature or you've found a bug feel free to open an issue, or even better sending a PR that fixes that.

\n

Development

\n

Simply clone this repo and run npm install and then npm run rebuild.\nAfterwards you can run npm start to run the app.

\n

License

\n

MIT

\n
", "readmeOriginal": "

Playback

\n

Video player built using electron and node.js

\n

Features

\n\n

Installation

\n

To install it download the latest release for your platform.

\n

Currently supported releases:

\n\n

Pull requests are welcome that adds builds for other platforms.

\n

If you think it is missing a feature or you've found a bug feel free to open an issue, or even better sending a PR that fixes that.

\n

Development

\n

Simply clone this repo and run npm install and then npm run rebuild.\nAfterwards you can run npm start to run the app.

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.751Z" }, "pic-crop": { "readmeCleaned": "

\n \n

\n

Welcome to pic-crop 👋

\n

\n \n \"Version\"\n \n \n \"License:\n \n \n \"Twitter:\n \n

\n
\n

Mac app for picture cropping, written in electron js.

\n
\n

Install

\n
npm install pic-crop
\n

Usage

\n
npm start
\n

Author

\n

👤 ujw0l

\n\n

Show your support

\n

Give a ⭐️ if this project helped you!

\n\n \n\n
\n

This README was generated with ❤️ by readme-md-generator

\n
", "readmeOriginal": "

\n \n

\n

Welcome to pic-crop 👋

\n

\n \n \"Version\"\n \n \n \"License:\n \n \n \"Twitter:\n \n

\n
\n

Mac app for picture cropping, written in electron js.

\n
\n

Install

\n
npm install pic-crop
\n

Usage

\n
npm start
\n

Author

\n

👤 ujw0l

\n\n

Show your support

\n

Give a ⭐️ if this project helped you!

\n\n \n\n
\n

This README was generated with ❤️ by readme-md-generator

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.754Z" }, "picturama": { "readmeCleaned": "

Picturama

\n

Digital image organizer powered by the web

\n

\"\"

\n

Download

\n

Please visit the Picturama website.

\n

Features

\n\n

Develop

\n

See DEVELOP.md for details about how to build Picturama.

\n
", "readmeOriginal": "

Picturama

\n

Digital image organizer powered by the web

\n

\"\"

\n

Download

\n

Please visit the Picturama website.

\n

Features

\n\n

Develop

\n

See DEVELOP.md for details about how to build Picturama.

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.799Z" }, "playcode": { "readmeCleaned": "

\n

\n

Playcode

\n
\n

Desktop client for PLAYCODE Online Javascript Editor

\n
\n

Development

\n
$ git clone https://github.com/playcode/playcode-desktop.git\n$ cd Playcode-desktop\n$ npm install\n$ npm start\n$ npm run dist\n
\n

License

\n

This program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.

\n

This program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.

\n

You should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.

\n
", "readmeOriginal": "

\n

\n

Playcode

\n
\n

Desktop client for PLAYCODE Online Javascript Editor

\n
\n

Development

\n
$ git clone https://github.com/playcode/playcode-desktop.git\n$ cd Playcode-desktop\n$ npm install\n$ npm start\n$ npm run dist\n
\n

License

\n

This program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.

\n

This program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.

\n

You should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.880Z" }, "poddycast-app": { "readmeCleaned": "

Poddycast [BETA] 🚧

\n

A Podcast app made with Electron because I love Podcasts.

\n

\"screenshot_1\"

\n

Table of Contents

\n\n

Install

\n

Download the latest release from the release page.

\n

Platform Support

\n\n

Features

\n\n

Contact

\n

I'm always happy to help, and discuss new features.\nPlease use any of these contact options to get in touch.
\nYou'll also find more useful stuff about the app, like tutorial and blogposts. 🍀

\n

I'd be happy to hear from you guys 💕

\n\n

Tutorial

\n

Subscribe

\n

\"gif_1\"

\n

Episodes

\n

\"gif_2\"

\n

Playlist

\n

\"gif_3\"

\n

Dark Mode

\n

\"gif_4\"

\n
", "readmeOriginal": "

Poddycast [BETA] 🚧

\n

A Podcast app made with Electron because I love Podcasts.

\n

\"screenshot_1\"

\n

Table of Contents

\n\n

Install

\n

Download the latest release from the release page.

\n

Platform Support

\n\n

Features

\n\n

Contact

\n

I'm always happy to help, and discuss new features.\nPlease use any of these contact options to get in touch.
\nYou'll also find more useful stuff about the app, like tutorial and blogposts. 🍀

\n

I'd be happy to hear from you guys 💕

\n\n

Tutorial

\n

Subscribe

\n

\"gif_1\"

\n

Episodes

\n

\"gif_2\"

\n

Playlist

\n

\"gif_3\"

\n

Dark Mode

\n

\"gif_4\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.952Z" }, "pitv": { "readmeCleaned": "

PiTV - STB Client

\n

A cross-platform STB player client.

\n

Installation

\n

You could download the software from RELEASES.

\n

Alternatively, you could do:

\n
git clone https://github.com/ozankaraali/PiTV/\ncd PiTV && yarn && yarn make\n
\n

Usage

\n

You need to enter your IPTV provider's details to Settings. When you save, if your authentication works, you will directly see the channel lists on the left side. Select a channel and it will begin shorty.

\n

\"Screen

\n

\"Screen

\n

Future Work

\n\n

Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

This project is in early phase. If you want to change any function, feel free to do. You could refactor, propose architecture changes, design assets, add new features, provide CI/CD things and build for other platforms. Basically, all changes that can improve this software are welcome.

\n

License

\n

This software licensed under MIT.

\n

Special Thanks

\n

I want to thank people who supported me while creating this software: My family and Şamil, Alperen, Fatih, Deniz.

\n
", "readmeOriginal": "

PiTV - STB Client

\n

A cross-platform STB player client.

\n

Installation

\n

You could download the software from RELEASES.

\n

Alternatively, you could do:

\n
git clone https://github.com/ozankaraali/PiTV/\ncd PiTV && yarn && yarn make\n
\n

Usage

\n

You need to enter your IPTV provider's details to Settings. When you save, if your authentication works, you will directly see the channel lists on the left side. Select a channel and it will begin shorty.

\n

\"Screen

\n

\"Screen

\n

Future Work

\n\n

Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

This project is in early phase. If you want to change any function, feel free to do. You could refactor, propose architecture changes, design assets, add new features, provide CI/CD things and build for other platforms. Basically, all changes that can improve this software are welcome.

\n

License

\n

This software licensed under MIT.

\n

Special Thanks

\n

I want to thank people who supported me while creating this software: My family and Şamil, Alperen, Fatih, Deniz.

\n
", "readmeFetchedAt": "2022-05-10T00:08:03.989Z" }, "poi": { "readmeCleaned": "

\"Header\"

\n

poi

\n

poi is a scalable browser and tool set for Kantai Collection(KanColle).

\n

Key features include:

\n\n

\"Codacy\n\"Dependencies\"

\n

\"Build\n\"Build\n\"Azure

\n

\"Backers\n\"Sponsors\n\"license:mit\"

\n

Screenshots

\n

\"Preview

\n

More screenshots are available here

\n

Installation

\n

GitHub release

\n

TAONPM (CN Mainland).

\n

Community maintained releases (unofficial)

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformMaintainerInstruction
AUR / Arch Linux@swordfengsee AUR page
Homebrew Cask / macOS@darg20127brew update && brew cask install poi
Chocolatey / Windows@chocolatey and @drelchoco install poi
Scoop / Windows@Darkatsesee bucket repo
\n

Nightlies

\n\n

Please note that artifacts could be periodically emptied.

\n

Starting from this repository

\n
git clone https://github.com/poooi/poi && cd poi\nnpm install\nnpm start
\n

For more details see here

\n

Development

\n

Libraries backing poi

\n\n

Documentation

\n

On plugin development, the docs are available in English.

\n

Contact us

\n

Bug reports, suggestions, ideas, pull requests, and devs are always welcome :)

\n

Please feel free to contact us via:

\n\n

Contributors

\n

This project exists thanks to all the people who contribute.\n

\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

The MIT License

\n

NOTE: THE SOFTWARE ICON AND SVG ICONS IS NOT LICENSED BY MIT AND COULD NOT BE USED\nIN PROJECTS NOT ASSOCIATED WITH POI.

\n
", "readmeOriginal": "

\"Header\"

\n

poi

\n

poi is a scalable browser and tool set for Kantai Collection(KanColle).

\n

Key features include:

\n\n

\"Codacy\n\"Dependencies\"

\n

\"Build\n\"Build\n\"Azure

\n

\"Backers\n\"Sponsors\n\"license:mit\"

\n

Screenshots

\n

\"Preview

\n

More screenshots are available here

\n

Installation

\n

GitHub release

\n

TAONPM (CN Mainland).

\n

Community maintained releases (unofficial)

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PlatformMaintainerInstruction
AUR / Arch Linux@swordfengsee AUR page
Homebrew Cask / macOS@darg20127brew update && brew cask install poi
Chocolatey / Windows@chocolatey and @drelchoco install poi
Scoop / Windows@Darkatsesee bucket repo
\n

Nightlies

\n\n

Please note that artifacts could be periodically emptied.

\n

Starting from this repository

\n
git clone https://github.com/poooi/poi && cd poi\nnpm install\nnpm start
\n

For more details see here

\n

Development

\n

Libraries backing poi

\n\n

Documentation

\n

On plugin development, the docs are available in English.

\n

Contact us

\n

Bug reports, suggestions, ideas, pull requests, and devs are always welcome :)

\n

Please feel free to contact us via:

\n\n

Contributors

\n

This project exists thanks to all the people who contribute.\n

\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

The MIT License

\n

NOTE: THE SOFTWARE ICON AND SVG ICONS IS NOT LICENSED BY MIT AND COULD NOT BE USED\nIN PROJECTS NOT ASSOCIATED WITH POI.

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.107Z" }, "polar": { "readmeCleaned": "

\n \n

\n
\n

Polar Bookshelf

\n\n \n\n\n \n\n\n \n\n\n \n\n\n\n \n\n\n\n
\n
\n

Polar is personal knowledge repository which supports advanced\nfeatures like incremental reading, annotation, comments, and spaced repetition.\nIt supports reading PDF, EPUB, and the web content.

\n
\n

Features

\n\n

Downloads

\n

Packages for Windows, MacOS, and Linux are available on the downloads page.

\n

We also have a CHANGELOG available if you're interested into what went into each release.

\n

Discussion

\n

We have both a Discord group and\nReddit group if you want to discuss\nPolar.

\n

If it's a very technical issue it might be best to create a Github Issue.

\n

Contributors

\n

This project exists thanks to all the people who contribute.

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

Polar is distributed under the GPLv3.

\n

PDF.js is available under the Apache License.\nElectron is released under the MIT License.\nRest of the code is MIT-licensed.

\n
", "readmeOriginal": "

\n \n

\n
\n

Polar Bookshelf

\n\n \n\n\n \n\n\n \n\n\n \n\n\n\n \n\n\n\n
\n
\n

Polar is personal knowledge repository which supports advanced\nfeatures like incremental reading, annotation, comments, and spaced repetition.\nIt supports reading PDF, EPUB, and the web content.

\n
\n

Features

\n\n

Downloads

\n

Packages for Windows, MacOS, and Linux are available on the downloads page.

\n

We also have a CHANGELOG available if you're interested into what went into each release.

\n

Discussion

\n

We have both a Discord group and\nReddit group if you want to discuss\nPolar.

\n

If it's a very technical issue it might be best to create a Github Issue.

\n

Contributors

\n

This project exists thanks to all the people who contribute.

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

Polar is distributed under the GPLv3.

\n

PDF.js is available under the Apache License.\nElectron is released under the MIT License.\nRest of the code is MIT-licensed.

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.122Z" }, "pomodoro-logger": { "readmeCleaned": "

\n \n

\n

\n \n \n \n \n \n \n \n \n \n \n \n \n

\n

Pomodoro Logger 🕤

\n
\n

Invest your time easily

\n
\n

中文README

\n

\n\n

Pomodoro Technique 🍅

\n

The working loop in the Pomodoro Technique is split into a 25-minute focus session and a 5-minute rest session. During a work session, the user focuses on one todo item and should not do anything irrelevant. The Pomodoro Technique can greatly improve the efficiency of work and study and alleviate work fatigue.

\n

In the Pomodoro Logger, the app will record the names and titles of the apps you use on your PC during the working sessions. The titles of apps contain rich semantic information. For example, the browser title includes the title of the website being viewed, and the IDE often provides the project path or project name.

\n\n

By connecting your todo items with the corresponding recorded Pomodoro sessions, you can analyze how often you are interrupted by email and social software, the time distribution of the application and application title used to complete the task. It will help you have a more comprehensive understanding of your working hours on PC.

\n

Efficiency Analysis

\n

Pomodoro Logger keeps a list of distracting app (you can config it in the setting). When it detect your using distracting apps, you lose your efficiency.

\n

It calculates user efficiency by a heuristic method.

\n

Demonstrating your efficiency by the dots. The larger the hole, the less efficient you are.

\n

\n

You can view the record in detail by clicking the circle

\n

\n \n\n

Data 📈

\n

Pomodoro Logger records your desktop activities when you are in a working session of Pomodoro.

\n

It only records your application activities, including the name and title of the focused application.

\n

You can import / export / delete all your data in the settings.

\n

All the data is saved and processed locally.

\n

Kanban Board

\n

Pomodoro Logger has integrated Kanban Board to help you organize and estimate the time spent of your todos easily with confidence.

\n

The lists in Kanban are divided into Todo, In Progress, and Done. Though lists customization is possible, you are required to preserve In Progress list and Done list in order to track, estimate and analyze your project time spent. You can set the estimated time cost on each todo card. Pomodoro Logger will assist you with the corresponding actual time spent record. i.e., When you are focusing on a Kanban board, it will automatically associate your Pomodoro session with the todo cards of In Progress list in the Kanban, which makes further analysis possible.

\n

To make the statistics more accurate, you can keep the cards of the In Progress list as few as possible to precisely reflect the tasks you are focusing on.

\n

Download

\n

Win10 / macOS / Linux

\n

To download, go to release page.

\n

Contribution

\n

I'd love to see you're involved! Read the Contribution Guide for detail.

\n\n

Screenshot

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PomodoroShow Countdown in Tray
Session FinishedSwitch Mode
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kanban BoardDraggable Card
Estimate Your Time SpentSearch Your Cards
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Visulization
\n

License

\n

GPL-3.0 License

\n

Copyright © 2019 Zixuan Chen.

\n
", "readmeOriginal": "

\n \n

\n

\n \n \n \n \n \n \n \n \n \n \n \n \n

\n

Pomodoro Logger 🕤

\n
\n

Invest your time easily

\n
\n

中文README

\n

\n\n

Pomodoro Technique 🍅

\n

The working loop in the Pomodoro Technique is split into a 25-minute focus session and a 5-minute rest session. During a work session, the user focuses on one todo item and should not do anything irrelevant. The Pomodoro Technique can greatly improve the efficiency of work and study and alleviate work fatigue.

\n

In the Pomodoro Logger, the app will record the names and titles of the apps you use on your PC during the working sessions. The titles of apps contain rich semantic information. For example, the browser title includes the title of the website being viewed, and the IDE often provides the project path or project name.

\n\n

By connecting your todo items with the corresponding recorded Pomodoro sessions, you can analyze how often you are interrupted by email and social software, the time distribution of the application and application title used to complete the task. It will help you have a more comprehensive understanding of your working hours on PC.

\n

Efficiency Analysis

\n

Pomodoro Logger keeps a list of distracting app (you can config it in the setting). When it detect your using distracting apps, you lose your efficiency.

\n

It calculates user efficiency by a heuristic method.

\n

Demonstrating your efficiency by the dots. The larger the hole, the less efficient you are.

\n

\n

You can view the record in detail by clicking the circle

\n

\n \n\n

Data 📈

\n

Pomodoro Logger records your desktop activities when you are in a working session of Pomodoro.

\n

It only records your application activities, including the name and title of the focused application.

\n

You can import / export / delete all your data in the settings.

\n

All the data is saved and processed locally.

\n

Kanban Board

\n

Pomodoro Logger has integrated Kanban Board to help you organize and estimate the time spent of your todos easily with confidence.

\n

The lists in Kanban are divided into Todo, In Progress, and Done. Though lists customization is possible, you are required to preserve In Progress list and Done list in order to track, estimate and analyze your project time spent. You can set the estimated time cost on each todo card. Pomodoro Logger will assist you with the corresponding actual time spent record. i.e., When you are focusing on a Kanban board, it will automatically associate your Pomodoro session with the todo cards of In Progress list in the Kanban, which makes further analysis possible.

\n

To make the statistics more accurate, you can keep the cards of the In Progress list as few as possible to precisely reflect the tasks you are focusing on.

\n

Download

\n

Win10 / macOS / Linux

\n

To download, go to release page.

\n

Contribution

\n

I'd love to see you're involved! Read the Contribution Guide for detail.

\n\n

Screenshot

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
PomodoroShow Countdown in Tray
Session FinishedSwitch Mode
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kanban BoardDraggable Card
Estimate Your Time SpentSearch Your Cards
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Visulization
\n

License

\n

GPL-3.0 License

\n

Copyright © 2019 Zixuan Chen.

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.200Z" }, "pomolectron": { "readmeCleaned": "

\n
\n \"Pomolectron\"\n
\n

\n

A pomodoro app for your menubar/tray.

\n

\n \n \"npm\n \n \n \n \n \n \n \n \n \n \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindows
\"pomolectron-macos\"\"\"
\n

Key Features

\n\n\n\t\n\n

Dark Mode

\n
\n

How To Use

\n

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\n$ git clone https://github.com/amitmerchant1990/pomolectron\n\n# Go into the repository\n$ cd pomolectron\n\n# Install dependencies\n$ npm install\n\n# Run the app\n$ npm start
\n

On macOS, you can install Pomolectron via cask.

\n
$ brew install --cask pomolectron 
\n

On Windows, you can install Pomolectron via chocolatey as well.

\n
choco install pomolectron\">
C:\\> choco install pomolectron
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Download

\n

You can download the latest installable version of Pomolectron for Windows, Linux and macOS.

\n

You can also get the Windows binaries from Softpedia.

\n

News

\n

Pomolectron was trending on the Hacker News and on GitHub during the day of its launch.

\n

You may also like..

\n\n

License

\n

MIT

\n
\n
\n

amitmerchant.com  · \nGitHub @amitmerchant1990  · \nTwitter @amit_merchant

\n
\n
", "readmeOriginal": "

\n
\n \"Pomolectron\"\n
\n

\n

A pomodoro app for your menubar/tray.

\n

\n \n \"npm\n \n \n \n \n \n \n \n \n \n \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOSWindows
\"pomolectron-macos\"\"\"
\n

Key Features

\n\n\n\t\n\n

Dark Mode

\n
\n

How To Use

\n

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

\n
# Clone this repository\n$ git clone https://github.com/amitmerchant1990/pomolectron\n\n# Go into the repository\n$ cd pomolectron\n\n# Install dependencies\n$ npm install\n\n# Run the app\n$ npm start
\n

On macOS, you can install Pomolectron via cask.

\n
$ brew install --cask pomolectron 
\n

On Windows, you can install Pomolectron via chocolatey as well.

\n
C:\\> choco install pomolectron
\n

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

\n

Download

\n

You can download the latest installable version of Pomolectron for Windows, Linux and macOS.

\n

You can also get the Windows binaries from Softpedia.

\n

News

\n

Pomolectron was trending on the Hacker News and on GitHub during the day of its launch.

\n

You may also like..

\n\n

License

\n

MIT

\n
\n
\n

amitmerchant.com  · \nGitHub @amitmerchant1990  · \nTwitter @amit_merchant

\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:04.235Z" }, "pomotroid": { "readmeCleaned": "
\n \"Pomotroid\"\n
\n
\n \"Pomotroid\n
\n

Simple and visually-pleasing Pomodoro timer.

\n
\n\n

Overview

\n

Pomotroid is a simple and configurable Pomodoro timer. It aims to provide a visually-pleasing and reliable way to track productivity using the Pomodoro Technique.

\n

Pomotroid is in its early stages, so feedback and contributions are welcome and appreciated! 🌱

\n

Features

\n\n

Themes

\n

Pomotroid provides many themes. It's also theme-able, allowing you to customize its appearance.

\n

\"Screenshots

\n

Visit the theme documentation to view the full list of official themes and for instruction on creating your own.

\n

Install

\n

Download

\n

Download the latest version from the releases page.

\n

Pomotroid is available for Windows, Mac OSX and Linux.

\n

Homebrew

\n

You can also install Pomotroid on macOS with Homebrew:

\n
brew install --cask pomotroid
\n

Scoop

\n

You can install Pomotroid on Windows with scoop

\n
scoop install https://raw.githubusercontent.com/Splode/pomotroid/master/pomotroid.json
\n

AppGet

\n

You can install Pomotroid on Windows with AppGet

\n
appget install pomotroid
\n

Roadmap

\n

📝 Future plans for enhancements and development:

\n\n

Development

\n

Pomotroid is built with Vue.js, Electron, and electron-vue.

\n

Note: depending on your OS settings, you may receive a security warning upon installation. This has to do with Pomotroid being an unsigned application. You can find out more by researching code-signing for Apple and Microsoft.

\n

Build Setup

\n
# install dependencies\nnpm i\n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build Pomotroid for production\nnpm run build
\n

License

\n

MIT © Christopher Murphy

\n
", "readmeOriginal": "
\n \"Pomotroid\"\n
\n
\n \"Pomotroid\n
\n

Simple and visually-pleasing Pomodoro timer.

\n
\n\n

Overview

\n

Pomotroid is a simple and configurable Pomodoro timer. It aims to provide a visually-pleasing and reliable way to track productivity using the Pomodoro Technique.

\n

Pomotroid is in its early stages, so feedback and contributions are welcome and appreciated! 🌱

\n

Features

\n\n

Themes

\n

Pomotroid provides many themes. It's also theme-able, allowing you to customize its appearance.

\n

\"Screenshots

\n

Visit the theme documentation to view the full list of official themes and for instruction on creating your own.

\n

Install

\n

Download

\n

Download the latest version from the releases page.

\n

Pomotroid is available for Windows, Mac OSX and Linux.

\n

Homebrew

\n

You can also install Pomotroid on macOS with Homebrew:

\n
brew install --cask pomotroid
\n

Scoop

\n

You can install Pomotroid on Windows with scoop

\n
scoop install https://raw.githubusercontent.com/Splode/pomotroid/master/pomotroid.json
\n

AppGet

\n

You can install Pomotroid on Windows with AppGet

\n
appget install pomotroid
\n

Roadmap

\n

📝 Future plans for enhancements and development:

\n\n

Development

\n

Pomotroid is built with Vue.js, Electron, and electron-vue.

\n

Note: depending on your OS settings, you may receive a security warning upon installation. This has to do with Pomotroid being an unsigned application. You can find out more by researching code-signing for Apple and Microsoft.

\n

Build Setup

\n
# install dependencies\nnpm i\n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build Pomotroid for production\nnpm run build
\n

License

\n

MIT © Christopher Murphy

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.365Z" }, "postbird": { "readmeCleaned": "

Postbird

\n

\"Backers \"Sponsors

\n

Postbird is a cross-platform PostgreSQL GUI client, written in JavaScript, runs with Electron

\n

\"Connection

\n

\"Table

\n

\"Table

\n

Download

\n

Version 0.8.4

\n

MacOS: Postbird-0.8.4.dmg - MacOS 10.9+

\n

Linux packages:

\n\n

Via snap:

\n
sudo snap install postbird\n
\n

Snap page: https://snapcraft.io/postbird

\n

Windows installer: Postbird.Setup.0.8.4.exe
\nWindows portable: Postbird-0.8.4-win.zip

\n

Latest artifacts: https://nightly.link/Paxa/postbird/workflows/build/master

\n

Development

\n

\"Codeship\n\"Build

\n

Pull requests and suggestions are welcome

\n

To run newest version, simply:

\n
git clone git@github.com:Paxa/postbird.git\ncd postbird\nyarn\nyarn start
\n

Build package:

\n
yarn dist\nls ./dist
\n

See CONTRIBUTING.md for more details

\n

Help Project

\n

Your donations will help to publish to app stores, more frequent releases, faster feature requests implementation.\nPostbird at opencollective: https://opencollective.com/postbird

\n

Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n
", "readmeOriginal": "

Postbird

\n

\"Backers \"Sponsors

\n

Postbird is a cross-platform PostgreSQL GUI client, written in JavaScript, runs with Electron

\n

\"Connection

\n

\"Table

\n

\"Table

\n

Download

\n

Version 0.8.4

\n

MacOS: Postbird-0.8.4.dmg - MacOS 10.9+

\n

Linux packages:

\n\n

Via snap:

\n
sudo snap install postbird\n
\n

Snap page: https://snapcraft.io/postbird

\n

Windows installer: Postbird.Setup.0.8.4.exe
\nWindows portable: Postbird-0.8.4-win.zip

\n

Latest artifacts: https://nightly.link/Paxa/postbird/workflows/build/master

\n

Development

\n

\"Codeship\n\"Build

\n

Pull requests and suggestions are welcome

\n

To run newest version, simply:

\n
git clone git@github.com:Paxa/postbird.git\ncd postbird\nyarn\nyarn start
\n

Build package:

\n
yarn dist\nls ./dist
\n

See CONTRIBUTING.md for more details

\n

Help Project

\n

Your donations will help to publish to app stores, more frequent releases, faster feature requests implementation.\nPostbird at opencollective: https://opencollective.com/postbird

\n

Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Backers

\n

Thank you to all our backers! 🙏 [Become a backer]

\n

\n

Sponsors

\n

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

\n

\n\n\n\n\n\n\n\n\n

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.380Z" }, "premid": { "readmeCleaned": "
\n


\n

PreMiD

\n

Your Rich Presence for web services!

\n

\"GitHub\"\n\"GitHub\n\"Chrome\n\"Chrome\n\"Website\"\n\"FOSSA

\n


\n

About

\n

PreMiD is a simple, configurable utility that allows you to show what you're doing on the web in your Discord now playing status. It supports many different websites, and will support multiple users watching the same content simultaneously in an upcoming update.

\n

Features

\n

· Displays your current web service in Discord as your status.
\n· Grants full control over Presences.
\n· Supports over 900 web services, still rising!
\n· Watch parties and more are coming soon!

\n

Installation/Troubleshooting

\n

Installation instructions, Troubleshooting guides etc. can be located at our docs.

\n

Support us

\n
\n \n \n \n \n\t\t\"Join\n \n
\n

License

\n

\"FOSSA

\n
", "readmeOriginal": "
\n


\n

PreMiD

\n

Your Rich Presence for web services!

\n

\"GitHub\"\n\"GitHub\n\"Chrome\n\"Chrome\n\"Website\"\n\"FOSSA

\n


\n

About

\n

PreMiD is a simple, configurable utility that allows you to show what you're doing on the web in your Discord now playing status. It supports many different websites, and will support multiple users watching the same content simultaneously in an upcoming update.

\n

Features

\n

· Displays your current web service in Discord as your status.
\n· Grants full control over Presences.
\n· Supports over 900 web services, still rising!
\n· Watch parties and more are coming soon!

\n

Installation/Troubleshooting

\n

Installation instructions, Troubleshooting guides etc. can be located at our docs.

\n

Support us

\n
\n \n \n \n \n\t\t\"Join\n \n
\n

License

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.399Z" }, "preserver": { "readmeCleaned": "

\n
\n \"\"\n
\n Preserver\n
\n

\n

Preserver is a notes organizer desktop app built upon Electron.

\n
Organize your life with one of these incredibly useful Desktop applications for keeping track of notes, tasks, and to-do lists.
\n

\"screenshot\"\n
\n\"screenshot\"

\n

Useful features:

\n\n

Next, To Run an electron application what you have to do is !

\n
$ npm install\n\n$ npm install typings -g\n\n$ typings install \n\n$ npm run build\n  \n$ npm start
\n
\n

For developement npm run dev (application running at localhost:8080)

\n
\n

Library stack used

\n\n

Download

\n

You can download Preserver application for Windows, Darwin and Linux.

\n

License

\n

MIT

\n
", "readmeOriginal": "

\n
\n \"\"\n
\n Preserver\n
\n

\n

Preserver is a notes organizer desktop app built upon Electron.

\n
Organize your life with one of these incredibly useful Desktop applications for keeping track of notes, tasks, and to-do lists.
\n

\"screenshot\"\n
\n\"screenshot\"

\n

Useful features:

\n\n

Next, To Run an electron application what you have to do is !

\n
$ npm install\n\n$ npm install typings -g\n\n$ typings install \n\n$ npm run build\n  \n$ npm start
\n
\n

For developement npm run dev (application running at localhost:8080)

\n
\n

Library stack used

\n\n

Download

\n

You can download Preserver application for Windows, Darwin and Linux.

\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.464Z" }, "primitive-nextgen": { "readmeCleaned": "

primitive.nextgen

\n

Electron port of the primitive.js / primitive.lol application.

\n

\"logo\"

\n

How does it look?

\n

Check out the Masterpieces gallery for several cool samples.

\n

Building

\n

Written in client-side JavaScript, uses Rollup for JS bundling and LESS for CSS pre-processing.

\n
    \n
  1. git clone https://github.com/cielito-lindo-productions/primitive.nextgen.git
  2. \n
  3. npm install
  4. \n
  5. npm start
  6. \n
\n

Saving of images

\n

After the image is calculated you have 2 options to save the result:

\n
    \n
  1. The first one which is selected by default is to save the generated image directly as an image file (option Raster image) - for this after calculating a \"Save as\" dialog shows up in which you can select the name and folder of the file
  2. \n
  3. Alternatively you can choose the option \"vector image\" and then copy&paste the image date from primitive.nextgen into a file with the ending .svg (eg. via Notepad++ or another text editor). Then open the .svg file in eg. inkscape, make some edits if you want and save the result as an image file with the ending .jpg, .png or any other format
  4. \n
\n

Hint: According to issue #2 there seem to occur problems on OS X devices with the first option, so please use the second option then.

\n

License

\n

MIT

\n

TODO

\n
    \n
  1. Batch-processing (Opening, processing and saving of several files at a time)
  2. \n
\n
", "readmeOriginal": "

primitive.nextgen

\n

Electron port of the primitive.js / primitive.lol application.

\n

\"logo\"

\n

How does it look?

\n

Check out the Masterpieces gallery for several cool samples.

\n

Building

\n

Written in client-side JavaScript, uses Rollup for JS bundling and LESS for CSS pre-processing.

\n
    \n
  1. git clone https://github.com/cielito-lindo-productions/primitive.nextgen.git
  2. \n
  3. npm install
  4. \n
  5. npm start
  6. \n
\n

Saving of images

\n

After the image is calculated you have 2 options to save the result:

\n
    \n
  1. The first one which is selected by default is to save the generated image directly as an image file (option Raster image) - for this after calculating a \"Save as\" dialog shows up in which you can select the name and folder of the file
  2. \n
  3. Alternatively you can choose the option \"vector image\" and then copy&paste the image date from primitive.nextgen into a file with the ending .svg (eg. via Notepad++ or another text editor). Then open the .svg file in eg. inkscape, make some edits if you want and save the result as an image file with the ending .jpg, .png or any other format
  4. \n
\n

Hint: According to issue #2 there seem to occur problems on OS X devices with the first option, so please use the second option then.

\n

License

\n

MIT

\n

TODO

\n
    \n
  1. Batch-processing (Opening, processing and saving of several files at a time)
  2. \n
\n
", "readmeFetchedAt": "2022-05-10T00:08:04.594Z" }, "prosecrec": { "readmeCleaned": "

ProSecrec

\n

\n \"Secrec\n

\n

\n Pro Secrec App - Secure Vault for your important information. https://prosecrec.com



Secrec /ˈsēkrəsē/, is your secure, portable and personal vault for organizing your confidential information like private keys, passwords etc.\n

\n

\"Secrec

\n
\n

Request for Beta program access

\n

Website

\n
\n

Visit the website

\n

website

\n

Explainer Video

\n

\"YouTube

\n
\n
", "readmeOriginal": "

ProSecrec

\n

\n \"Secrec\n

\n

\n Pro Secrec App - Secure Vault for your important information. https://prosecrec.com



Secrec /ˈsēkrəsē/, is your secure, portable and personal vault for organizing your confidential information like private keys, passwords etc.\n

\n

\"Secrec

\n
\n

Request for Beta program access

\n

Website

\n
\n

Visit the website

\n

website

\n

Explainer Video

\n

\"YouTube

\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:04.628Z" }, "prettyearth": { "readmeCleaned": "

\"\" \"\" \"\" \"\"

\n
\n

\n \n \"Logo\"\n \n
\n

ℹ️ About The Project

\n

Our planet is a beautiful place. The Google Chrome Earth View extension by Google is a wonderful way to deliver stunning satellite images to us every time we open a new tab, inspiring us on our next web adventure. But why stop there? Why don't get impressed by these the wonders of the earth as well when gazing at this more important rectangle on our screen, our wallpaper. PrettyEarth now grants you the opportunity to bring our blue marble to your desktop.

\n

PrettyEarth can be downloaded from the website »

\n

🌇 Screenshots

\n

\"Screenshot

\n

\"Screenshot

\n

\"Screenshot

\n

👾 Technitcal

\n

🔨 Structure

\n

PrettyEarth is Electron based. It is, to be more particular, based around the menubar-package.

\n

Currently, only macOS is supported. However, adaptation on other operating systems will be provided in the future. Few modifications are needed.

\n

🐛 Known issues and future developements

\n\n

👷 Build

\n

Use the package manager npm to install dependencies and build PrettyEarth.

\n
npm install\nnpm run package-mac
\n

💙 Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

📄 License

\n

PrettyEarth is available under the MIT license.

\n

Coffee!

\n

\"drawing\"

\n
", "readmeOriginal": "

\"\" \"\" \"\" \"\"

\n
\n

\n \n \"Logo\"\n \n
\n

ℹ️ About The Project

\n

Our planet is a beautiful place. The Google Chrome Earth View extension by Google is a wonderful way to deliver stunning satellite images to us every time we open a new tab, inspiring us on our next web adventure. But why stop there? Why don't get impressed by these the wonders of the earth as well when gazing at this more important rectangle on our screen, our wallpaper. PrettyEarth now grants you the opportunity to bring our blue marble to your desktop.

\n

PrettyEarth can be downloaded from the website »

\n

🌇 Screenshots

\n

\"Screenshot

\n

\"Screenshot

\n

\"Screenshot

\n

👾 Technitcal

\n

🔨 Structure

\n

PrettyEarth is Electron based. It is, to be more particular, based around the menubar-package.

\n

Currently, only macOS is supported. However, adaptation on other operating systems will be provided in the future. Few modifications are needed.

\n

🐛 Known issues and future developements

\n\n

👷 Build

\n

Use the package manager npm to install dependencies and build PrettyEarth.

\n
npm install\nnpm run package-mac
\n

💙 Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

📄 License

\n

PrettyEarth is available under the MIT license.

\n

Coffee!

\n

\"drawing\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.646Z" }, "protoman": { "readmeCleaned": "

Protoman

\n

\n

A Postman-like API client for protobuf-based messages.

\n

Usage

\n
    \n
  1. Register your .proto files to enable protobuf-related features. Right click on the collection, select 'Manage .proto files' to register the file paths.
  2. \n
\n

\n

\n
    \n
  1. \n

    The rest of the request-building interface is similar to Postman.

    \n

    a. Enter your good old http request parameters (method, url, headers)

    \n

    b. Select request/response proto messages you want.

    \n

    c. Fill out the fields in your request proto message.

    \n

    d. Click send.

    \n

    e. The response is shown below the request section.

    \n
  2. \n
\n

\n
    \n
  1. As of version 0.2.0, you can also set up environments, and reuse variables there throughout your requests on the top-right corner!
  2. \n
\n

\n

\n
    \n
  1. As of version 0.3.0, you can also import / export collections as JSON
  2. \n
\n\n
    \n
  1. \n

    As of version 0.4.0, you can also reorder requests / set different expected messages for success(2XX) and failures(others)

    \n
  2. \n
  3. \n

    That's it for the current version. Enjoy and leave a star if you like it !

    \n
  4. \n
\n

Installation

\n

Mac

\n

Protoman-0.4.0.dmg

\n

Windows

\n

Protoman Setup 0.4.0.exe - Unlike mac, I don't currently own a license to sign the app. So it might give you some security warnings!

\n

Linux

\n

Protoman-0.4.0.AppImage

\n

As a fallback, you can clone the repo and run npm install && npm run build to build, and npm run start to launch the app. Or, you can actually find configurations on electron builder to get the right distribution version yourself!

\n

Contributing

\n

If you are interested in reporting/fixing issues and contributing directly to the codebase, follow the standard procedures.

\n
    \n
  1. Create an issue.
  2. \n
  3. Fork the repo.
  4. \n
  5. Submit a PR.
  6. \n
  7. We'll get back to you as soon as we can!
  8. \n
\n

Make sure to run npm run lint before submitting your PR!

\n

Licence

\n

MIT

\n
", "readmeOriginal": "

Protoman

\n

\n

A Postman-like API client for protobuf-based messages.

\n

Usage

\n
    \n
  1. Register your .proto files to enable protobuf-related features. Right click on the collection, select 'Manage .proto files' to register the file paths.
  2. \n
\n

\n

\n
    \n
  1. \n

    The rest of the request-building interface is similar to Postman.

    \n

    a. Enter your good old http request parameters (method, url, headers)

    \n

    b. Select request/response proto messages you want.

    \n

    c. Fill out the fields in your request proto message.

    \n

    d. Click send.

    \n

    e. The response is shown below the request section.

    \n
  2. \n
\n

\n
    \n
  1. As of version 0.2.0, you can also set up environments, and reuse variables there throughout your requests on the top-right corner!
  2. \n
\n

\n

\n
    \n
  1. As of version 0.3.0, you can also import / export collections as JSON
  2. \n
\n\n
    \n
  1. \n

    As of version 0.4.0, you can also reorder requests / set different expected messages for success(2XX) and failures(others)

    \n
  2. \n
  3. \n

    That's it for the current version. Enjoy and leave a star if you like it !

    \n
  4. \n
\n

Installation

\n

Mac

\n

Protoman-0.4.0.dmg

\n

Windows

\n

Protoman Setup 0.4.0.exe - Unlike mac, I don't currently own a license to sign the app. So it might give you some security warnings!

\n

Linux

\n

Protoman-0.4.0.AppImage

\n

As a fallback, you can clone the repo and run npm install && npm run build to build, and npm run start to launch the app. Or, you can actually find configurations on electron builder to get the right distribution version yourself!

\n

Contributing

\n

If you are interested in reporting/fixing issues and contributing directly to the codebase, follow the standard procedures.

\n
    \n
  1. Create an issue.
  2. \n
  3. Fork the repo.
  4. \n
  5. Submit a PR.
  6. \n
  7. We'll get back to you as soon as we can!
  8. \n
\n

Make sure to run npm run lint before submitting your PR!

\n

Licence

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.716Z" }, "protegopdf": { "readmeCleaned": "

ProtegoPdf

\n

A simple application to set a password to a PDF Document (windows only).

\n

Download

\n

Features

\n\n
", "readmeOriginal": "

ProtegoPdf

\n

A simple application to set a password to a PDF Document (windows only).

\n

Download

\n

Features

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:04.836Z" }, "puppetry": { "readmeCleaned": "

\n\t
\n\t\"Puppetry\"\n\t
\n\tPuppetry\n\t
\n

\n

\"Build\n\"Gitter\n\n\"Total\n\"Latest

\n

CODELESS END-TO-END AUTOMATED TESTING

\n

Puppetry is an open-source cross-platform desktop application that gives non-developers the ability to create, manage, and integrate automated tests for Web

\n

\"Puppetry

\n\n

Welcome Puppetry

\n

Puppetry offers you an easy-to-use UI where you choose browser methods and assertions from a predefined list, with predefined settings, guided by extensive tips.\nNamely you can do the following:

\n\n

Key Features

\n\n

Download

\n

You can download latest installers for your platform from the releases page

\n

Current only the following OS are supported:

\n\n

On Linux can be installed with Snapcraft:

\n
sudo snap install puppetry\n
\n

On Mac can be installed with Homebrew:

\n
brew cask install puppetry\n
\n

FAQ

\n\n

Feedback

\n\n

Contributing

\n\n

Please adhere the coding style. We have one based on jQuery's JavaScript Style Guide. You can find the validation rules in .eslintrc\nand lint the code by running npm run lint

\n

Thanks

\n

A special thanks to\nMonika Rao,\nvteixeira19,\nGernot Messow,\nCarlos Mantilla,\nkkmuffme,\nRavindra Jadhav\nfor the ideas and support

\n

Credits

\n\n

License

\n

MIT

\n
", "readmeOriginal": "

\n\t
\n\t\"Puppetry\"\n\t
\n\tPuppetry\n\t
\n

\n

\"Build\n\"Gitter\n\n\"Total\n\"Latest

\n

CODELESS END-TO-END AUTOMATED TESTING

\n

Puppetry is an open-source cross-platform desktop application that gives non-developers the ability to create, manage, and integrate automated tests for Web

\n

\"Puppetry

\n\n

Welcome Puppetry

\n

Puppetry offers you an easy-to-use UI where you choose browser methods and assertions from a predefined list, with predefined settings, guided by extensive tips.\nNamely you can do the following:

\n\n

Key Features

\n\n

Download

\n

You can download latest installers for your platform from the releases page

\n

Current only the following OS are supported:

\n\n

On Linux can be installed with Snapcraft:

\n
sudo snap install puppetry\n
\n

On Mac can be installed with Homebrew:

\n
brew cask install puppetry\n
\n

FAQ

\n\n

Feedback

\n\n

Contributing

\n\n

Please adhere the coding style. We have one based on jQuery's JavaScript Style Guide. You can find the validation rules in .eslintrc\nand lint the code by running npm run lint

\n

Thanks

\n

A special thanks to\nMonika Rao,\nvteixeira19,\nGernot Messow,\nCarlos Mantilla,\nkkmuffme,\nRavindra Jadhav\nfor the ideas and support

\n

Credits

\n\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.903Z" }, "q-player": { "readmeCleaned": "

Listen to Q-dance Radio in the most convenient way. Just open this tiny app, hit a play button and that's it.

\n

\"Q-player

\n

Features

\n\n

Upcoming releases:

\n\n
", "readmeOriginal": "

Listen to Q-dance Radio in the most convenient way. Just open this tiny app, hit a play button and that's it.

\n

\"Q-player

\n

Features

\n\n

Upcoming releases:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:04.913Z" }, "pullp": { "readmeCleaned": "

Pullp \"pullp

\n

Pullp is a tool to help you manage pull requests and reviews on your Github repositories, available for Mac, Linux and Windows.

\n

An interactive dashboard shows all the open pull requests for your chosen repositories and highlights where your review has been requested. This information syncs with Github every minute! To help you keep track of things, Pullp has configurable desktop notifications to keep you in the loop.

\n

\"pullp

\n

Want to find out more about the pull requests on a particular repository? Selecting a repository shows a full summary of each pull request, including all of the requested reviewers and submitted reviews. If you need to action anything, a click will take you directly to the pull request in Github.

\n

\"pullp

\n

You are also shown the five most recently closed pull requests:

\n

\"pullp

\n

Want to change the way that Pullp notifies you of changes? On the settings screen you can toggle a number of different options:

\n

\"pullp

\n

Pullp is an Electron application built with React.

\n

Getting Started

\n\n
\n

FAQs

\n

Why does my repository only show a maximum of 50 open pull requests?

\n
\n

💡 Github applies a cost in points to each request Pullp makes for data. Each hour you are permitted to spend 5000 points. By restricting the maximum pull requests to 50, the cost of each request is manageable. This means Pullp can make more frequent requests, giving you a more \"near-time\" experience. Allowing this maximum limit to be configurable by the user could be a feature in the future.

\n
\n

I am seeing an error saying The amount of pull request data for your selected repositories exceeds Github's maximum limit.

\n
\n

💡 Github places a limit on the maximum number of data nodes that can be returned from a single request. This limit may be breached if you have selected a large number of repositories that have many pull requests. The only solution to this currently is to select fewer repositories.

\n
\n

Can I access the console/Chrome dev tools inside the app?

\n
\n

💡 Yes! Just use the normal Chrome shortcut to open them, e.g. cmd + opt + i on Mac. React and Redux dev tools are not available in the production app, but are enabled if you are running the app in the dev environment.

\n
\n

I can't see my repository on the Select screen.

\n
\n

💡 Make sure you are watching the repository in Github, otherwise it won't appear on the select screen.

\n
\n
\n

🏁 Developer Instructions 🏁

\n

🚀 Running dev environment - The simplest way

\n

After npm install, run npm start to start the webpack dev server and electron app.

\n

React and Apollo dev tools will be available inside the Chrome dev tools.

\n

Running the tests

\n\n

💫 Optional - Running a local oAuth server

\n

Pullp uses an external auth server to complete Github sign in and receive a token for the Github API. You may want to host a local version of this server. Clone it from https://github.com/rkclark/pullp-oauth-gatekeeper, run it on the port of your choosing and then add the server URL to REACT_APP_OAUTH_GATEKEEPER_URL in the /env/.env.development file inside of Pullp.

\n

If you are connecting to a different GitHub domain than github.com, you can set REACT_APP_GITHUB_DOMAIN to that domain such as github.mycompany.com

\n

Your oauth server will need set of Github oAuth app credentials. To make these:

\n\n

Once you have the credentials, create a new .env file in the server project root and add them as

\n
OAUTH_CLIENT_ID=xxx\nOAUTH_CLIENT_SECRET=xxx\n
\n

\":octocat:\" Optional - Stubbing Github

\n

The project includes a server that provides stub responses for all external dependencies:

\n\n

To run the stub server run npm run stub. This will start the server along with the webpack dev server. Then just run npm run electron:start:dev in another terminal window.

\n

This can be used if you want to work offline or have finer control over the data being received by the app.

\n

Limitations:

\n\n

🔮 Other developer scripts

\n\n

\":shipit:\" CI/CD and Releasing

\n

Pullp uses Github Actions for CI/CD. This is configured so that any branch that is pushed with a name in the format vX.X.X will be automatically packaged for Mac and Linux and uploaded to Github as a draft release.

\n

e.g.

\n\n

Once the draft release is on Github it can have release notes added and then be published! 👌

\n
", "readmeOriginal": "

Pullp \"pullp

\n

Pullp is a tool to help you manage pull requests and reviews on your Github repositories, available for Mac, Linux and Windows.

\n

An interactive dashboard shows all the open pull requests for your chosen repositories and highlights where your review has been requested. This information syncs with Github every minute! To help you keep track of things, Pullp has configurable desktop notifications to keep you in the loop.

\n

\"pullp

\n

Want to find out more about the pull requests on a particular repository? Selecting a repository shows a full summary of each pull request, including all of the requested reviewers and submitted reviews. If you need to action anything, a click will take you directly to the pull request in Github.

\n

\"pullp

\n

You are also shown the five most recently closed pull requests:

\n

\"pullp

\n

Want to change the way that Pullp notifies you of changes? On the settings screen you can toggle a number of different options:

\n

\"pullp

\n

Pullp is an Electron application built with React.

\n

Getting Started

\n\n
\n

FAQs

\n

Why does my repository only show a maximum of 50 open pull requests?

\n
\n

💡 Github applies a cost in points to each request Pullp makes for data. Each hour you are permitted to spend 5000 points. By restricting the maximum pull requests to 50, the cost of each request is manageable. This means Pullp can make more frequent requests, giving you a more \"near-time\" experience. Allowing this maximum limit to be configurable by the user could be a feature in the future.

\n
\n

I am seeing an error saying The amount of pull request data for your selected repositories exceeds Github's maximum limit.

\n
\n

💡 Github places a limit on the maximum number of data nodes that can be returned from a single request. This limit may be breached if you have selected a large number of repositories that have many pull requests. The only solution to this currently is to select fewer repositories.

\n
\n

Can I access the console/Chrome dev tools inside the app?

\n
\n

💡 Yes! Just use the normal Chrome shortcut to open them, e.g. cmd + opt + i on Mac. React and Redux dev tools are not available in the production app, but are enabled if you are running the app in the dev environment.

\n
\n

I can't see my repository on the Select screen.

\n
\n

💡 Make sure you are watching the repository in Github, otherwise it won't appear on the select screen.

\n
\n
\n

🏁 Developer Instructions 🏁

\n

🚀 Running dev environment - The simplest way

\n

After npm install, run npm start to start the webpack dev server and electron app.

\n

React and Apollo dev tools will be available inside the Chrome dev tools.

\n

Running the tests

\n\n

💫 Optional - Running a local oAuth server

\n

Pullp uses an external auth server to complete Github sign in and receive a token for the Github API. You may want to host a local version of this server. Clone it from https://github.com/rkclark/pullp-oauth-gatekeeper, run it on the port of your choosing and then add the server URL to REACT_APP_OAUTH_GATEKEEPER_URL in the /env/.env.development file inside of Pullp.

\n

If you are connecting to a different GitHub domain than github.com, you can set REACT_APP_GITHUB_DOMAIN to that domain such as github.mycompany.com

\n

Your oauth server will need set of Github oAuth app credentials. To make these:

\n\n

Once you have the credentials, create a new .env file in the server project root and add them as

\n
OAUTH_CLIENT_ID=xxx\nOAUTH_CLIENT_SECRET=xxx\n
\n

\":octocat:\" Optional - Stubbing Github

\n

The project includes a server that provides stub responses for all external dependencies:

\n\n

To run the stub server run npm run stub. This will start the server along with the webpack dev server. Then just run npm run electron:start:dev in another terminal window.

\n

This can be used if you want to work offline or have finer control over the data being received by the app.

\n

Limitations:

\n\n

🔮 Other developer scripts

\n\n

\":shipit:\" CI/CD and Releasing

\n

Pullp uses Github Actions for CI/CD. This is configured so that any branch that is pushed with a name in the format vX.X.X will be automatically packaged for Mac and Linux and uploaded to Github as a draft release.

\n

e.g.

\n\n

Once the draft release is on Github it can have release notes added and then be published! 👌

\n
", "readmeFetchedAt": "2022-05-10T00:08:04.952Z" }, "qawl": { "readmeCleaned": "

Qawl v2

\n

Current status: 80% parity with previous version (missing dark theme, icons on hover tooltips, mostly)

\n

This project uses Github Projects to plan development — feel free to join in!

\n

Feel free to email me if you are interested in contributing right now, before the foundation is done: navedcoded@gmail.com . Sorry if things are a bit messy, but I recommend checking this repo out a few weeks later!

\n

Old version: https://github.com/mr-islam/qawl

\n

Sorry this readme is bad, making it public quickly in case people want to contribute early

\n

Development

\n

Preparation

\n
    \n
  1. Make sure you have node properly setup with a recent version (I use 14.x).
  2. \n
  3. Install yarn
  4. \n
  5. Also ensure you have node-gyp (this guide can help)
  6. \n
  7. Clone this repo
  8. \n
  9. Run yarn to install dependencies
  10. \n
\n

(The repo uses an automatic postinstall script to patch the npm package electron-update-notification to use a promise .then() instead of callbacks. I haven't been able to test if I set this up correctly, but hopefully it's fine. You can check the installed package files manually, or just message me for help to ensure it's all good.)

\n

Action\n5. Run a local build with electron-dev, has hot-reload\n6. Build a package with dist-[platform] choosing the relevant platform from the scripts available in the package.json

\n

Many thanks to Albert Nye for his svelte electron template!

\n

License

\n
.\">
Copyright (C) 2020-2021 Naved Islam\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published\nby the Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see <https://www.gnu.org/licenses/>.\n
\n
", "readmeOriginal": "

Qawl v2

\n

Current status: 80% parity with previous version (missing dark theme, icons on hover tooltips, mostly)

\n

This project uses Github Projects to plan development — feel free to join in!

\n

Feel free to email me if you are interested in contributing right now, before the foundation is done: navedcoded@gmail.com . Sorry if things are a bit messy, but I recommend checking this repo out a few weeks later!

\n

Old version: https://github.com/mr-islam/qawl

\n

Sorry this readme is bad, making it public quickly in case people want to contribute early

\n

Development

\n

Preparation

\n
    \n
  1. Make sure you have node properly setup with a recent version (I use 14.x).
  2. \n
  3. Install yarn
  4. \n
  5. Also ensure you have node-gyp (this guide can help)
  6. \n
  7. Clone this repo
  8. \n
  9. Run yarn to install dependencies
  10. \n
\n

(The repo uses an automatic postinstall script to patch the npm package electron-update-notification to use a promise .then() instead of callbacks. I haven't been able to test if I set this up correctly, but hopefully it's fine. You can check the installed package files manually, or just message me for help to ensure it's all good.)

\n

Action\n5. Run a local build with electron-dev, has hot-reload\n6. Build a package with dist-[platform] choosing the relevant platform from the scripts available in the package.json

\n

Many thanks to Albert Nye for his svelte electron template!

\n

License

\n
Copyright (C) 2020-2021 Naved Islam\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published\nby the Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see <https://www.gnu.org/licenses/>.\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:05.102Z" }, "qikqr": { "readmeCleaned": "

\n \"qikQR
\n

\n

\n \"qikQR
\n

\n

\n

INTRODUCTION
\n

Meet qikQR.
A desktop app that creates QR codes.\n qikQR is multi-platform, open-source, and built entirely on web technology.

\n

Download qikQR

\n

\n\n \n \n \n \n \n \n

\n

\n
\n

\n

\nSCREENSHOTS\n
\n

\n\n

\n

\n\n

\n

\n\n

\n

\n

\n

\nThanks To qrserver.com For Providing The Data\n
\n
\nUI inspiration gSubs \n
\n
\n
See USAGE.md For Usage Details
\n

\n
\nMIT License\n

Copyright (c) 2018 dipankar pal

\n

Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.

\n
\n
", "readmeOriginal": "

\n \"qikQR
\n

\n

\n \"qikQR
\n

\n

\n

INTRODUCTION
\n

Meet qikQR.
A desktop app that creates QR codes.\n qikQR is multi-platform, open-source, and built entirely on web technology.

\n

Download qikQR

\n

\n\n \n \n \n \n \n \n

\n

\n
\n

\n

\nSCREENSHOTS\n
\n

\n\n

\n

\n\n

\n

\n\n

\n

\n

\n

\nThanks To qrserver.com For Providing The Data\n
\n
\nUI inspiration gSubs \n
\n
\n
See USAGE.md For Usage Details
\n

\n
\nMIT License\n

Copyright (c) 2018 dipankar pal

\n

Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.

\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:05.119Z" }, "quail": { "readmeCleaned": "

Quail \"GitHub

\n

Unofficial but officially accepted esa app 🐦

\n

\"Quail

\n

Install

\n

macOS 10.10 (Yosemite)+, Windows and Linux are supported.

\n

macOS

\n

Download and extract .zip, and move Quail.app to /Applications.

\n

Alternatively, if you use Homebrew, you can install via:

\n
$ brew install --cask quail
\n

Windows

\n

Download and extract .zip, and move Quail.exe to some location.

\n

Linux

\n

Download and extract .zip, and move Quail to some location.

\n

License

\n

MIT © Shogo Sensui

\n
", "readmeOriginal": "

Quail \"GitHub

\n

Unofficial but officially accepted esa app 🐦

\n

\"Quail

\n

Install

\n

macOS 10.10 (Yosemite)+, Windows and Linux are supported.

\n

macOS

\n

Download and extract .zip, and move Quail.app to /Applications.

\n

Alternatively, if you use Homebrew, you can install via:

\n
$ brew install --cask quail
\n

Windows

\n

Download and extract .zip, and move Quail.exe to some location.

\n

Linux

\n

Download and extract .zip, and move Quail to some location.

\n

License

\n

MIT © Shogo Sensui

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.179Z" }, "quark": { "readmeCleaned": "

Quark

\n

\"Build\n\"Build\n\"contributions

\n

Quark is a general purpose software tool specifically designed to help you create projects written in HTML, CSS and JavaScript with native desktop app like capabilities. Quark apps run on Mac, Windows, and Linux from a single codebase.

\n

Visit the website to learn more.

\n
\n\"Quark\n\"Quark\n\"Quark\n
\n

Goals

\n

Rapid prototyping and project development

\n

Projects build with Quark should be easy and quick to setup.

\n

💻 Cross-platform

\n

Projects build with Quark should run on all platforms such as Windows, Linux and Mac, sharing the same code base.

\n

🐱 Simplicity

\n

Quark is built with simplicity in mind, so that creating projects with Quark is enjoyable, easy to learn, and accessible to just about anyone with basic programming skills.

\n

Showcase

\n

A few apps built with Quark

\n
\n\"Quark\n\"Quark\n\"Quark\n
\n

Check out these sample apps from Quark appstore

\n\n

Feedback

\n\n

License

\n

Copyright (c) Nishkal Kashyap. All rights reserved.

\n

Licensed under the GPL-3.0 license

\n
", "readmeOriginal": "

Quark

\n

\"Build\n\"Build\n\"contributions

\n

Quark is a general purpose software tool specifically designed to help you create projects written in HTML, CSS and JavaScript with native desktop app like capabilities. Quark apps run on Mac, Windows, and Linux from a single codebase.

\n

Visit the website to learn more.

\n
\n\"Quark\n\"Quark\n\"Quark\n
\n

Goals

\n

Rapid prototyping and project development

\n

Projects build with Quark should be easy and quick to setup.

\n

💻 Cross-platform

\n

Projects build with Quark should run on all platforms such as Windows, Linux and Mac, sharing the same code base.

\n

🐱 Simplicity

\n

Quark is built with simplicity in mind, so that creating projects with Quark is enjoyable, easy to learn, and accessible to just about anyone with basic programming skills.

\n

Showcase

\n

A few apps built with Quark

\n
\n\"Quark\n\"Quark\n\"Quark\n
\n

Check out these sample apps from Quark appstore

\n\n

Feedback

\n\n

License

\n

Copyright (c) Nishkal Kashyap. All rights reserved.

\n

Licensed under the GPL-3.0 license

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.196Z" }, "quba-e-invoice-viewer": { "readmeCleaned": "

Quba-Viewer

\n

Quba-Viewer (homepage) is a cross platform open source application to display\nstructured (i.e., XML) and hybrid (Factur-X/ZUGFeRD PDF) electronic invoices.

\n

Documentation-wise there is a doc RE Architecture, Development, Debugging and testing in\ngeneral and some Electron and E-Invoice peculiarities like interprocess (IPC) communication, XSLT and codelists in particular.

\n

History

\n
\n1.1.2 .04.2022\n - Accept invoices as command line arguments #12\n
\n
\n1.1.1 11.11.2021\n - Allow drag&drop of files #9\n
\n
\n1.1.1 24.09.2021\n - The window for the example files can now be closed\n - plain pdf without embedded xml not to show button for visualization\n
\n
\n1.1.0 20.09.2021\n - #6 New document shows still old data / invoice\n - Switch to vue.js\n - i18n: Support for EN and FR\n - support FX Referenzprofil XRechnung\n
\n
\n1.0 23.08.2021\n - #5 Codelists are now resolved\n - Support for first FX Extended Element, i.e., Cash Discount in XML \n
\n
\n0.5 27.07.2021\n - Support for PDF\n - Support for Factur-X/ZUGFeRD\n - Display errors as dialog instead of hiding them \n
\n
\n0.2 10.06.2021\n - Support for XRechnung (UBL)\n - \"dark\" theming\n - possibility to open multiple files at the same time in the same viewer (tabs)\n - print \n
\n
\n0.1 2021-03-31\n - Initial release\n - Support for XRechnung (UN/CEFACT CII)\n - release for Windows on 2021-03-31, for Linux on 2101-04-16 and for Mac on 2021-04-27\n
\n

Pedigree

\n

\"History

\n

The FeRD had published visualization XSLTs for ZF1 (~=UN/CEFACT C13B) as open source, unfortunately the ones for the UN/CEFACT C16B-based\nversion 2 remains proprietary. The Kosit released XSLT for both CII and UBL of the XRechnung (XR) which has been used for various online viewers\nbut also for offline viewers like Ultramarinviewer and Open XRechnung Toolbox. Quba uses this work added translations and\nat least experimental support for Factur-X/ZUGFeRD profiles higher than EN16931.

\n

Known issues

\n\n
", "readmeOriginal": "

Quba-Viewer

\n

Quba-Viewer (homepage) is a cross platform open source application to display\nstructured (i.e., XML) and hybrid (Factur-X/ZUGFeRD PDF) electronic invoices.

\n

Documentation-wise there is a doc RE Architecture, Development, Debugging and testing in\ngeneral and some Electron and E-Invoice peculiarities like interprocess (IPC) communication, XSLT and codelists in particular.

\n

History

\n
\n1.1.2 .04.2022\n - Accept invoices as command line arguments #12\n
\n
\n1.1.1 11.11.2021\n - Allow drag&drop of files #9\n
\n
\n1.1.1 24.09.2021\n - The window for the example files can now be closed\n - plain pdf without embedded xml not to show button for visualization\n
\n
\n1.1.0 20.09.2021\n - #6 New document shows still old data / invoice\n - Switch to vue.js\n - i18n: Support for EN and FR\n - support FX Referenzprofil XRechnung\n
\n
\n1.0 23.08.2021\n - #5 Codelists are now resolved\n - Support for first FX Extended Element, i.e., Cash Discount in XML \n
\n
\n0.5 27.07.2021\n - Support for PDF\n - Support for Factur-X/ZUGFeRD\n - Display errors as dialog instead of hiding them \n
\n
\n0.2 10.06.2021\n - Support for XRechnung (UBL)\n - \"dark\" theming\n - possibility to open multiple files at the same time in the same viewer (tabs)\n - print \n
\n
\n0.1 2021-03-31\n - Initial release\n - Support for XRechnung (UN/CEFACT CII)\n - release for Windows on 2021-03-31, for Linux on 2101-04-16 and for Mac on 2021-04-27\n
\n

Pedigree

\n

\"History

\n

The FeRD had published visualization XSLTs for ZF1 (~=UN/CEFACT C13B) as open source, unfortunately the ones for the UN/CEFACT C16B-based\nversion 2 remains proprietary. The Kosit released XSLT for both CII and UBL of the XRechnung (XR) which has been used for various online viewers\nbut also for offline viewers like Ultramarinviewer and Open XRechnung Toolbox. Quba uses this work added translations and\nat least experimental support for Factur-X/ZUGFeRD profiles higher than EN16931.

\n

Known issues

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:05.378Z" }, "r2e-todoworks": { "readmeCleaned": "

r2e-todoworks

\n

todoworks for desktop use React, Electron and Mobx

\n

\"Demo

\n

Table of Content

\n
    \n
  1. Development
  2. \n
  3. How to use it?
  4. \n
  5. Contributing
  6. \n
  7. License
  8. \n
\n

1. Development

\n\n
git clone https://github.com/tuantvk/r2e-todoworks.git\n
\n\n
cd r2e-todoworks && npm install\n
\n
$ npm run dev\n
\n

Generate the binary:

\n\n
$ npm run package-linux\n
\n

Maybe you will install some depends packages.

\n\n
$ npm run package-mac\n
\n

After that, you will see the binary in ./release folder

\n

2. How to use it ?

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
IconDescription
CheckClick when todo done
FireTodo in status warning, and move on top
RocketClick when you want change status todo normal to warning
LikeTodo in status done and move down in list todo done
CloseRemove todo
\n

3. Contributing

\n

So you want to contribute? Fun! I love seeing new PRs for r2e-todoworks.\nIf you are thinking about working on something, feel free to make an issue beforehand so that you can make sure it'll be worth your time!

\n

4. License

\n

MIT License

\n
", "readmeOriginal": "

r2e-todoworks

\n

todoworks for desktop use React, Electron and Mobx

\n

\"Demo

\n

Table of Content

\n
    \n
  1. Development
  2. \n
  3. How to use it?
  4. \n
  5. Contributing
  6. \n
  7. License
  8. \n
\n

1. Development

\n\n
git clone https://github.com/tuantvk/r2e-todoworks.git\n
\n\n
cd r2e-todoworks && npm install\n
\n
$ npm run dev\n
\n

Generate the binary:

\n\n
$ npm run package-linux\n
\n

Maybe you will install some depends packages.

\n\n
$ npm run package-mac\n
\n

After that, you will see the binary in ./release folder

\n

2. How to use it ?

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
IconDescription
CheckClick when todo done
FireTodo in status warning, and move on top
RocketClick when you want change status todo normal to warning
LikeTodo in status done and move down in list todo done
CloseRemove todo
\n

3. Contributing

\n

So you want to contribute? Fun! I love seeing new PRs for r2e-todoworks.\nIf you are thinking about working on something, feel free to make an issue beforehand so that you can make sure it'll be worth your time!

\n

4. License

\n

MIT License

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.432Z" }, "r6rc": { "readmeCleaned": "

\n \n

R6RC | R6 Rank Calculator

\n

\n \n = \n \n \n

\n

\n \n \n \n

\n

\n

Description

\n\n

Download

\n\n

Features

\n\n

Platforms

\n\n

Pictures

\n

\"rmpic1.png\"\n\"rmpic2.png\"

\n

Affiliation

\n\n

License

\n

MIT © AustinLeath

\n
", "readmeOriginal": "

\n \n

R6RC | R6 Rank Calculator

\n

\n \n = \n \n \n

\n

\n \n \n \n

\n

\n

Description

\n\n

Download

\n\n

Features

\n\n

Platforms

\n\n

Pictures

\n

\"rmpic1.png\"\n\"rmpic2.png\"

\n

Affiliation

\n\n

License

\n

MIT © AustinLeath

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.435Z" }, "qmui-web": { "readmeCleaned": "

QMUI Web Desktop \"Version

\n
\n

基于 QMUI Web 的桌面 App,它可以管理基于 QMUI Web 进行开发的项目,通过 GUI 界面处理 QMUI Web 的服务开启/关闭,使框架的使用变得更加便捷,并提供了编译提醒,出错提醒,进程关闭提醒等额外的功能。

\n
\n

\"Build\n\"Build\n\"devDependencies\"\n\"QMUI\n\"License\"

\n

详细介绍及文档请浏览:QMUI Web 官网

\n

下载使用

\n

QMUI Web Desktop 支持 macOS 与 Windows 平台。

\n

下载:Github Release 下载官网下载

\n

界面预览

\n

\"QMUI

\n
", "readmeOriginal": "

QMUI Web Desktop \"Version

\n
\n

基于 QMUI Web 的桌面 App,它可以管理基于 QMUI Web 进行开发的项目,通过 GUI 界面处理 QMUI Web 的服务开启/关闭,使框架的使用变得更加便捷,并提供了编译提醒,出错提醒,进程关闭提醒等额外的功能。

\n
\n

\"Build\n\"Build\n\"devDependencies\"\n\"QMUI\n\"License\"

\n

详细介绍及文档请浏览:QMUI Web 官网

\n

下载使用

\n

QMUI Web Desktop 支持 macOS 与 Windows 平台。

\n

下载:Github Release 下载官网下载

\n

界面预览

\n

\"QMUI

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.525Z" }, "racompass": { "readmeCleaned": "

\n\n

\n

Racompass

\n

An advanced GUI for Redis. Modern. Efficient. Fast.

\n

A faster and robust Redis management tool. For developers that need to manage data with confidence.

\n

It gives you full control about every single aspect of your Redis management experience. Instead of lots of CLI commands, you can CRUD keys and monitor endpoints.

\n

\"app-front\"

\n

\n\n\n\n

\n

What's New:

\n

Racompass now has built-in support for Redis official modules since version 1.1.0:

\n\n

Features

\n

The most complete and straightforward GUI for your manage Redis data needs.

\n

Connection Modes

\n\n

Data Types

\n\n

Modules

\n\n

FAQ

\n

What are the limitations of the free trial?

\n

We offer fully functional FREE trial of Racompass. We can change the limitations without any notifications in the future releases.

\n

How do I apply for a refund?

\n

Refunds are handled by Apple Support – you can learn more about requesting a refund here.

\n

Support and feature requests?

\n

Any issues, bugs, feature requests and ideas. Please submit on Github.

\n

To submit:

\n
    \n
  1. Make sure you have a GitHub account.
  2. \n
  3. Create a new issue, then tag a label.
  4. \n
\n
", "readmeOriginal": "

\n\n

\n

Racompass

\n

An advanced GUI for Redis. Modern. Efficient. Fast.

\n

A faster and robust Redis management tool. For developers that need to manage data with confidence.

\n

It gives you full control about every single aspect of your Redis management experience. Instead of lots of CLI commands, you can CRUD keys and monitor endpoints.

\n

\"app-front\"

\n

\n\n\n\n

\n

What's New:

\n

Racompass now has built-in support for Redis official modules since version 1.1.0:

\n\n

Features

\n

The most complete and straightforward GUI for your manage Redis data needs.

\n

Connection Modes

\n\n

Data Types

\n\n

Modules

\n\n

FAQ

\n

What are the limitations of the free trial?

\n

We offer fully functional FREE trial of Racompass. We can change the limitations without any notifications in the future releases.

\n

How do I apply for a refund?

\n

Refunds are handled by Apple Support – you can learn more about requesting a refund here.

\n

Support and feature requests?

\n

Any issues, bugs, feature requests and ideas. Please submit on Github.

\n

To submit:

\n
    \n
  1. Make sure you have a GitHub account.
  2. \n
  3. Create a new issue, then tag a label.
  4. \n
\n
", "readmeFetchedAt": "2022-05-10T00:08:05.605Z" }, "raider-for-instagram": { "readmeCleaned": "

Raider for Instagram

\n
\n

An Instagram download application for Windows, Mac & Linux

\n
\n

Raider allows you to easily download Instagram images, videos and stories.

\n

\"Demo

\n

Downloads

\n

\"GitHub

\n\n

Mac & Linux are on the roadmap. Kindly support the project if you would like to see more platforms and features added in the future.

\n

Features

\n\n

Raider is simple, clean and easy to use.

\n\n

Login with your Instagram credentials and download photos from private accounts that you follow.

\n\n

Raider allows you to add multiple accounts and switches between them seamlessly when downloading from private accounts.

\n\n

Every time you download an account using Raider, we add it to your subscribed accounts section. You can update a single account or all of them anytime.

\n\n

Want to change the username of a subscribed account? Maybe rename the folder name? Raider allows you to easily do so.

\n

Just long click on any account to enter Edit Mode.

\n

Support the Project

\n

Despite taking weeks to research, design and code, Raider does not contain a single ad, any trackers or in app purchases. It is completely free to use.

\n

If you would like to see more features added in the future and keep the app free, kindly support the author on Patreon.

\n

\"Be

\n

Credits

\n

Icon made by Alex Prunici. Licensed under Creative Commons (Attribution 3.0 Unported)

\n\n
", "readmeOriginal": "

Raider for Instagram

\n
\n

An Instagram download application for Windows, Mac & Linux

\n
\n

Raider allows you to easily download Instagram images, videos and stories.

\n

\"Demo

\n

Downloads

\n

\"GitHub

\n\n

Mac & Linux are on the roadmap. Kindly support the project if you would like to see more platforms and features added in the future.

\n

Features

\n\n

Raider is simple, clean and easy to use.

\n\n

Login with your Instagram credentials and download photos from private accounts that you follow.

\n\n

Raider allows you to add multiple accounts and switches between them seamlessly when downloading from private accounts.

\n\n

Every time you download an account using Raider, we add it to your subscribed accounts section. You can update a single account or all of them anytime.

\n\n

Want to change the username of a subscribed account? Maybe rename the folder name? Raider allows you to easily do so.

\n

Just long click on any account to enter Edit Mode.

\n

Support the Project

\n

Despite taking weeks to research, design and code, Raider does not contain a single ad, any trackers or in app purchases. It is completely free to use.

\n

If you would like to see more features added in the future and keep the app free, kindly support the author on Patreon.

\n

\"Be

\n

Credits

\n

Icon made by Alex Prunici. Licensed under Creative Commons (Attribution 3.0 Unported)

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:05.643Z" }, "rainbow-board": { "readmeCleaned": "

\"rainbow-board\"\n\"rainbow-board\"\n\"Discord\"

\n

Rainbow Board

\n

\"Get

\n

Cross-platform Whiteboard app made using React, Electron, and SVG Real Renderer!

\n

Download from https://harshkhandeparkar.github.io/rainbow-board.\nAsk any questions or give feedback here.\nDiscord Server: https://discord.gg/FEpMS43UwR

\n

\n \n

\n

\"ss1\"\n\"ss2\"\n\"ss3\"\n\"ss4\"\n\"ss5\"\n\"ss6\"

\n
", "readmeOriginal": "

\"rainbow-board\"\n\"rainbow-board\"\n\"Discord\"

\n

Rainbow Board

\n

\"Get

\n

Cross-platform Whiteboard app made using React, Electron, and SVG Real Renderer!

\n

Download from https://harshkhandeparkar.github.io/rainbow-board.\nAsk any questions or give feedback here.\nDiscord Server: https://discord.gg/FEpMS43UwR

\n

\n \n

\n

\"ss1\"\n\"ss2\"\n\"ss3\"\n\"ss4\"\n\"ss5\"\n\"ss6\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.690Z" }, "quickredis": { "readmeCleaned": "

QuickRedis

\n

介绍

\n

QuickRedis 是一款 永久免费 的 Redis 可视化管理工具。它支持直连、哨兵、集群模式,支持亿万数量级的 key,还有令人兴奋的 UI。QuickRedis 支持 Windows 、 Mac OS X 和 Linux 下运行。

\n

QuickRedis 是一个效率工具,当别人在努力敲命令的时候,而你已经在喝茶。

\n

QQ群:1103435496

\n

下载地址

\n

https://gitee.com/quick123official/quick_redis_blog/releases/

\n

https://github.com/quick123official/quick_redis_blog/releases/

\n

使用 百度网盘 下载

\n

Windows & Mac OS X & Linux :链接: https://pan.baidu.com/s/10MbD-yzd3Eimkau0PBBE1w 提取码: 3qhv

\n

软件截图

\n

-树形展示keys\n\"树形展示keys\"

\n

-首页\n\"首页\"

\n

-连接管理菜单(支持多目录管理、支持复制连接、拖动连接到目录)\n\"连接管理菜单\"

\n

-多语言(简体中文、繁体中文、英文、日语、法语)\n\"多语言\"

\n

-快速关闭多个 TAB\n\"快速关闭多个

\n

-直连模式配置\n\"直连模式配置\"

\n

-哨兵模式配置\n\"哨兵模式配置\"

\n

-集群模式配置\n\"集群模式配置\"

\n

-命令行\n\"命令行\"

\n

-string 类型管理(支持值的json格式化、修改key、修改ttl、删除key)\n\"string

\n

-list 类型管理(支持 list 分页查询、新增、删除)\n\"list类型管理\"

\n

-set 类型管理(支持 set 分页查询、新增、删除)\n\"set

\n

-hash 类型管理(支持 hash 分页查询、新增、删除、修改)\n\"hash

\n

FAQ

\n

如果你有任何使用方面的问题,请通过下面方式留言:

\n

gitee 地址

\n

https://gitee.com/quick123official/quick_redis_blog/issues

\n

github地址:

\n

https://github.com/quick123official/quick_redis_blog/issues

\n

使用到的开源代码

\n

ANTD ioredis react react-intl-universal redux less

\n

快速开始

\n

开发阶段:1. yarn run start1;2. yarn run start2

\n

打包:1. yarn run build:mac;2. yarn run pack:mac

\n
", "readmeOriginal": "

QuickRedis

\n

介绍

\n

QuickRedis 是一款 永久免费 的 Redis 可视化管理工具。它支持直连、哨兵、集群模式,支持亿万数量级的 key,还有令人兴奋的 UI。QuickRedis 支持 Windows 、 Mac OS X 和 Linux 下运行。

\n

QuickRedis 是一个效率工具,当别人在努力敲命令的时候,而你已经在喝茶。

\n

QQ群:1103435496

\n

下载地址

\n

https://gitee.com/quick123official/quick_redis_blog/releases/

\n

https://github.com/quick123official/quick_redis_blog/releases/

\n

使用 百度网盘 下载

\n

Windows & Mac OS X & Linux :链接: https://pan.baidu.com/s/10MbD-yzd3Eimkau0PBBE1w 提取码: 3qhv

\n

软件截图

\n

-树形展示keys\n\"树形展示keys\"

\n

-首页\n\"首页\"

\n

-连接管理菜单(支持多目录管理、支持复制连接、拖动连接到目录)\n\"连接管理菜单\"

\n

-多语言(简体中文、繁体中文、英文、日语、法语)\n\"多语言\"

\n

-快速关闭多个 TAB\n\"快速关闭多个

\n

-直连模式配置\n\"直连模式配置\"

\n

-哨兵模式配置\n\"哨兵模式配置\"

\n

-集群模式配置\n\"集群模式配置\"

\n

-命令行\n\"命令行\"

\n

-string 类型管理(支持值的json格式化、修改key、修改ttl、删除key)\n\"string

\n

-list 类型管理(支持 list 分页查询、新增、删除)\n\"list类型管理\"

\n

-set 类型管理(支持 set 分页查询、新增、删除)\n\"set

\n

-hash 类型管理(支持 hash 分页查询、新增、删除、修改)\n\"hash

\n

FAQ

\n

如果你有任何使用方面的问题,请通过下面方式留言:

\n

gitee 地址

\n

https://gitee.com/quick123official/quick_redis_blog/issues

\n

github地址:

\n

https://github.com/quick123official/quick_redis_blog/issues

\n

使用到的开源代码

\n

ANTD ioredis react react-intl-universal redux less

\n

快速开始

\n

开发阶段:1. yarn run start1;2. yarn run start2

\n

打包:1. yarn run build:mac;2. yarn run pack:mac

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.763Z" }, "raven-reader": { "readmeCleaned": "

\n \n \"raven\n \n

\n

\n All your articles in one place. Beautiful.\n

\n

\n \n\"DeepScan\n\n\n\n\n\n\n\n\n \n\n\"raven-reader\"\n\n\n

\n

Download

\n

To download, please visit https://ravenreader.app.

\n

\"Get

\n

Install via Homebrew (macOS)

\n

To use Homebrew-Cask you just need to have Homebrew installed.

\n
brew install --cask raven-reader
\n

Install via Chocolatey (Windows) (Thanks to @A-d-r-i)

\n
choco install raven\n
\n

\"darkscreenshot\"\n\"video\"\n\"podcast\"

\n

Features

\n\n

Please feel free to suggest more ideas to improve this app.

\n

Supported Platforms

\n\n

Supported Locale

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LanguageContributor
English
French
Catalanalexhoma
Turkishahmetcadirci25
Chinese@LinWhite2333
Dutch@Vistause
Russian@vanja-san
Polish@konhi
Brazilian Portuguese@gabrielgomeso
Italian@luverolla
German@nebulon42
\n

Contributions

\n

Help make Raven Reader better by reporting bugs, PR or opening feature requests through GitHub issues.

\n

Developer Notes

\n

For setup instructions and configuration follow https://github.com/nklayman/vue-cli-plugin-electron-builder

\n

Build Setup

\n
# install dependencies\nyarn install\n\n# serve with hot reload at localhost:9080\nyarn electron:serve\n\n# build electron application for production\nyarn electron:build\n\n\n# lint all JS/Vue component files in `src/`\nyarn run lint\n
\n

Powered by

\n\n

License

\n

MIT

\n
", "readmeOriginal": "

\n \n \"raven\n \n

\n

\n All your articles in one place. Beautiful.\n

\n

\n \n\"DeepScan\n\n\n\n\n\n\n\n\n \n\n\"raven-reader\"\n\n\n

\n

Download

\n

To download, please visit https://ravenreader.app.

\n

\"Get

\n

Install via Homebrew (macOS)

\n

To use Homebrew-Cask you just need to have Homebrew installed.

\n
brew install --cask raven-reader
\n

Install via Chocolatey (Windows) (Thanks to @A-d-r-i)

\n
choco install raven\n
\n

\"darkscreenshot\"\n\"video\"\n\"podcast\"

\n

Features

\n\n

Please feel free to suggest more ideas to improve this app.

\n

Supported Platforms

\n\n

Supported Locale

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
LanguageContributor
English
French
Catalanalexhoma
Turkishahmetcadirci25
Chinese@LinWhite2333
Dutch@Vistause
Russian@vanja-san
Polish@konhi
Brazilian Portuguese@gabrielgomeso
Italian@luverolla
German@nebulon42
\n

Contributions

\n

Help make Raven Reader better by reporting bugs, PR or opening feature requests through GitHub issues.

\n

Developer Notes

\n

For setup instructions and configuration follow https://github.com/nklayman/vue-cli-plugin-electron-builder

\n

Build Setup

\n
# install dependencies\nyarn install\n\n# serve with hot reload at localhost:9080\nyarn electron:serve\n\n# build electron application for production\nyarn electron:build\n\n\n# lint all JS/Vue component files in `src/`\nyarn run lint\n
\n

Powered by

\n\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.903Z" }, "react-explorer": { "readmeCleaned": "

File manager written in TypeScript & React

\n

\"Build

\n

\"React-Explorer\"

\n

Features

\n\n

Feature tour

\n

Dark theme automatic detection (macOS Mojave)

\n

React-Explorer will automatically switch to dark-theme when it's detected:

\n

\"dark-theme\"

\n

Create and read folder

\n

By pressing ctrl (Linux/Win) or cmd the folder you create will be automatically read:

\n

\"create-read-folder\"

\n

Create nested folders

\n

You can create several folders at once by separating them with a forward-slash:

\n

\"nested-folders\"

\n

Quick access to parent folders

\n

By right-clicking on a tab's icon you can quickly get access to the parents of the currend folder:

\n

\"parent-folders\"

\n

WSL support

\n

React-Explorer will automatically detect and show the list of Linux distributions installed using WSL on Windows:

\n

\"parent-folders\"

\n

Requirements

\n

React-Explorer works on any modern Windows, Mac or Linux computer.

\n

Building for local development

\n

In order to build React-Explorer you need to have installed nodejs.

\n

Once installed, building React-Explorer is as easy as typing:

\n
npm install && npm run build
\n

This will build a development package.

\n

In order to run in locally without having to create a native executable, you can then type:

\n
npx electron ./build/main.js
\n

Building binary packages

\n

In order to build binary packages, simply type the following:

\n
npm run dist
\n

This will build packaged binaries of React Explorer into the dist folder for every supported platform.

\n

React-Explorer can also be built for a single patform. For example, to build only the Windows binaries, type:

\n
npm run dist-win
\n

Localization

\n

React-Explorer is fully localized using .json files. Right now, English and French are available.

\n

Adding a new language to React-Explorer is easy: simply duplicate one of the file found in src/locale/lang directory.

\n

The new file should have the name code.json where code is a valid language code, for example: ja.json to add support for Japanese.

\n

Tests

\n

Unit testing

\n

React-Explorer has both unit tests (using Jest) and end to end tests (using Cypress).

\n

To run unit tests simply type:

\n
npm test
\n

This will start Jest and run every spec files found in src. Every test file can be found next to the component it is testing.

\n

End to End testing

\n

End to end tests are using Cypress and are in the separate e2e directory. You must install & configure Cypress before running E2E tests. This needs to be done one once using the following commands:

\n
cd e2e && npm install && cd ..
\n

The first time you run the tests, you also need to install cypress dependencies:

\n
npm install
\n

Since end to end tests need to run Electron-Explorer outside of Electron, a special build needs to be created that stubs some Electron APIs. To create this build, simply type:

\n
npm run build
\n

This will create a new Electron-Explorer in the build-e2e directory.

\n

You may also type npm run watch if you want to rebuild automatically the e2e build after a change has been detected inside the sources.

\n

For React-Explorer to run without Electron, a local webserver needs to be started before running the tests:

\n
npm run server
\n

Now, simply type: npm run cypress:run or npm run cypress:open.

\n

How to develop a new Plugin

\n

React-Explorer has been written so that it can easily be extended using plugins.

\n

As a starting point you may use the FsGeneric skeleton.

\n

Acknowledgments

\n

React-Explorer makes use of the following tools/components:

\n\n

Licence

\n

React-Explorer is licenced under the MIT licence.

\n
", "readmeOriginal": "

File manager written in TypeScript & React

\n

\"Build

\n

\"React-Explorer\"

\n

Features

\n\n

Feature tour

\n

Dark theme automatic detection (macOS Mojave)

\n

React-Explorer will automatically switch to dark-theme when it's detected:

\n

\"dark-theme\"

\n

Create and read folder

\n

By pressing ctrl (Linux/Win) or cmd the folder you create will be automatically read:

\n

\"create-read-folder\"

\n

Create nested folders

\n

You can create several folders at once by separating them with a forward-slash:

\n

\"nested-folders\"

\n

Quick access to parent folders

\n

By right-clicking on a tab's icon you can quickly get access to the parents of the currend folder:

\n

\"parent-folders\"

\n

WSL support

\n

React-Explorer will automatically detect and show the list of Linux distributions installed using WSL on Windows:

\n

\"parent-folders\"

\n

Requirements

\n

React-Explorer works on any modern Windows, Mac or Linux computer.

\n

Building for local development

\n

In order to build React-Explorer you need to have installed nodejs.

\n

Once installed, building React-Explorer is as easy as typing:

\n
npm install && npm run build
\n

This will build a development package.

\n

In order to run in locally without having to create a native executable, you can then type:

\n
npx electron ./build/main.js
\n

Building binary packages

\n

In order to build binary packages, simply type the following:

\n
npm run dist
\n

This will build packaged binaries of React Explorer into the dist folder for every supported platform.

\n

React-Explorer can also be built for a single patform. For example, to build only the Windows binaries, type:

\n
npm run dist-win
\n

Localization

\n

React-Explorer is fully localized using .json files. Right now, English and French are available.

\n

Adding a new language to React-Explorer is easy: simply duplicate one of the file found in src/locale/lang directory.

\n

The new file should have the name code.json where code is a valid language code, for example: ja.json to add support for Japanese.

\n

Tests

\n

Unit testing

\n

React-Explorer has both unit tests (using Jest) and end to end tests (using Cypress).

\n

To run unit tests simply type:

\n
npm test
\n

This will start Jest and run every spec files found in src. Every test file can be found next to the component it is testing.

\n

End to End testing

\n

End to end tests are using Cypress and are in the separate e2e directory. You must install & configure Cypress before running E2E tests. This needs to be done one once using the following commands:

\n
cd e2e && npm install && cd ..
\n

The first time you run the tests, you also need to install cypress dependencies:

\n
npm install
\n

Since end to end tests need to run Electron-Explorer outside of Electron, a special build needs to be created that stubs some Electron APIs. To create this build, simply type:

\n
npm run build
\n

This will create a new Electron-Explorer in the build-e2e directory.

\n

You may also type npm run watch if you want to rebuild automatically the e2e build after a change has been detected inside the sources.

\n

For React-Explorer to run without Electron, a local webserver needs to be started before running the tests:

\n
npm run server
\n

Now, simply type: npm run cypress:run or npm run cypress:open.

\n

How to develop a new Plugin

\n

React-Explorer has been written so that it can easily be extended using plugins.

\n

As a starting point you may use the FsGeneric skeleton.

\n

Acknowledgments

\n

React-Explorer makes use of the following tools/components:

\n\n

Licence

\n

React-Explorer is licenced under the MIT licence.

\n
", "readmeFetchedAt": "2022-05-10T00:08:05.960Z" }, "rambox": { "readmeCleaned": "

EOL

\n

The Community Edition of Rambox is no longer maintained. We highly recommend that you update to the new version of Rambox, which has a FREE plan with all the features you already use and much more!

\n

Visit: https://rambox.app/download

\n

Thank you so much for all the users who contribute to this project all these years.

\n

Read our blog post to know more about our new Rambox.

\n
\n
\n

\n
\n \"Rambox\"
\n Rambox CE\n

\n

\n

Free, Open Source and Cross Platform messaging and emailing app that combines common web applications into one.

\n

\n \"Donate\n \"GNU\n \"Gitter\"\n \n \"Release\"\n \n \n

\n

\n \"Travis\n \"AppVeyor\n \n \n

\n
Available for Windows, Mac and Linux.
\n
\"DOWNLOAD
\n
Logo designed by Andriy Yurchenko
\n
\n
\n

Table of Contents

\n\n
\n

Screenshot

\n

\"Rambox\"

\n

Apps available

\n

Visit our website https://rambox.app/#apps and select the \"Community-Edition\" filter to see all the apps available.

\n

Features

\n\n

Privacy

\n

No personal information will be saved

\n

Sessions will persist using the partition:persist attribute for Webviews.\nSo every time you open Rambox, your sessions will keep alive until you remove the service.

\n

Sync feature use Auth0 for Single Sign On & Token Based Authentication and to store the services that user is using (and the configuration for each service).\nYou are always welcome to check the code! ;)

\n

Donations

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeURL/Wallet
Credit CardsHERE
CryptocurrenciesHERE
\n

Translations

\n

Help us translate Rambox on https://crowdin.com/project/rambox/invite.

\n

Install on Linux - Steps

\n

Contributing

\n

Want to report a bug, request a feature, contribute to or translate Rambox?\nWe need all the help we can get!\nFork and work!

\n

Quickstart

\n
git clone https://github.com/saenzramiro/rambox.git\ncd rambox\nnpm install\nsencha app watch\nnpm start
\n

See Contributing.md for more detailed information about getting set up.

\n
\n

Disclosure

\n

Rambox is not affiliated with any of the messaging apps offered.

\n

Licence

\n

GNU GPL v3

\n
", "readmeOriginal": "

EOL

\n

The Community Edition of Rambox is no longer maintained. We highly recommend that you update to the new version of Rambox, which has a FREE plan with all the features you already use and much more!

\n

Visit: https://rambox.app/download

\n

Thank you so much for all the users who contribute to this project all these years.

\n

Read our blog post to know more about our new Rambox.

\n
\n
\n

\n
\n \"Rambox\"
\n Rambox CE\n

\n

\n

Free, Open Source and Cross Platform messaging and emailing app that combines common web applications into one.

\n

\n \"Donate\n \"GNU\n \"Gitter\"\n \n \"Release\"\n \n \n

\n

\n \"Travis\n \"AppVeyor\n \n \n

\n
Available for Windows, Mac and Linux.
\n
\"DOWNLOAD
\n
Logo designed by Andriy Yurchenko
\n
\n
\n

Table of Contents

\n\n
\n

Screenshot

\n

\"Rambox\"

\n

Apps available

\n

Visit our website https://rambox.app/#apps and select the \"Community-Edition\" filter to see all the apps available.

\n

Features

\n\n

Privacy

\n

No personal information will be saved

\n

Sessions will persist using the partition:persist attribute for Webviews.\nSo every time you open Rambox, your sessions will keep alive until you remove the service.

\n

Sync feature use Auth0 for Single Sign On & Token Based Authentication and to store the services that user is using (and the configuration for each service).\nYou are always welcome to check the code! ;)

\n

Donations

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeURL/Wallet
Credit CardsHERE
CryptocurrenciesHERE
\n

Translations

\n

Help us translate Rambox on https://crowdin.com/project/rambox/invite.

\n

Install on Linux - Steps

\n

Contributing

\n

Want to report a bug, request a feature, contribute to or translate Rambox?\nWe need all the help we can get!\nFork and work!

\n

Quickstart

\n
git clone https://github.com/saenzramiro/rambox.git\ncd rambox\nnpm install\nsencha app watch\nnpm start
\n

See Contributing.md for more detailed information about getting set up.

\n
\n

Disclosure

\n

Rambox is not affiliated with any of the messaging apps offered.

\n

Licence

\n

GNU GPL v3

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.099Z" }, "rebaslight": { "readmeCleaned": "

Rebaslight

\n

Rebaslight - an easy to use special effects editor

\n

Download/Install

\n

Rebaslight Terms, Conditions, and License Agreement

\n

Rebaslight is a product of Very Small Helm LLC, Copyright (c) 2008-2022.

\n

Rebaslight's codebase is open source and adopts the GNU AGPLv3 license.

\n

Open source does not always mean free as in gratis.\nRebaslight is free (no cost) to use as long as the \"Made with Rebaslight\" watermark appears on the output video/image.\nHowever, if you make a one-time payment of $25 USD you may remove this watermark.\nOnce paid, you personally may use Rebaslight without watermarks forever.

\n

Pay here: rebaslight.com/buy

\n

Thank you for your integrity!

\n\n
", "readmeOriginal": "

Rebaslight

\n

Rebaslight - an easy to use special effects editor

\n

Download/Install

\n

Rebaslight Terms, Conditions, and License Agreement

\n

Rebaslight is a product of Very Small Helm LLC, Copyright (c) 2008-2022.

\n

Rebaslight's codebase is open source and adopts the GNU AGPLv3 license.

\n

Open source does not always mean free as in gratis.\nRebaslight is free (no cost) to use as long as the \"Made with Rebaslight\" watermark appears on the output video/image.\nHowever, if you make a one-time payment of $25 USD you may remove this watermark.\nOnce paid, you personally may use Rebaslight without watermarks forever.

\n

Pay here: rebaslight.com/buy

\n

Thank you for your integrity!

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:06.141Z" }, "reach-podcast-player": { "readmeCleaned": "

This Project Has Been Abandoned

\n

Feel free to clone it and make any changes you'd like, but I am no longer working on this project, and I'm sure several things don't work. I made this as my first realy project with AngularJS so the code is absolutely atrocious! Continue at your own risk.

\n

Reach Podcast Player

\n

\"Main

\n

\"Podcast

\n

Small Demo

\n

\"Video\"

\n

Reach Podcast Player is a RSS-based podcast player, meaning that in order to listen to your favorite podcasts, all you have to do is copy and paste the RSS feed from the podcast.

\n

Who Is This For?

\n

This application is for all podcast listeners. Itunes, Spotify, and whereever you get your podcasts, have a ton of available podcast but every once in a while you will hear about a new podcast and search for it on your favorite podcast provider and they won't have it! with Reach, all you need is the RSS feed and you're good to go. No need to listen to podcasts accross different programs.

\n

What's Under The Hood?

\n

This was made with electron and angularjs. This is my first time using both of these items so some parts of the program are not perfectly optomized, but I plan on continuing to work on both the program itself, and my angular and electron skills in order to fuilly optimize the program.

\n

TODO:

\n\n
", "readmeOriginal": "

This Project Has Been Abandoned

\n

Feel free to clone it and make any changes you'd like, but I am no longer working on this project, and I'm sure several things don't work. I made this as my first realy project with AngularJS so the code is absolutely atrocious! Continue at your own risk.

\n

Reach Podcast Player

\n

\"Main

\n

\"Podcast

\n

Small Demo

\n

\"Video\"

\n

Reach Podcast Player is a RSS-based podcast player, meaning that in order to listen to your favorite podcasts, all you have to do is copy and paste the RSS feed from the podcast.

\n

Who Is This For?

\n

This application is for all podcast listeners. Itunes, Spotify, and whereever you get your podcasts, have a ton of available podcast but every once in a while you will hear about a new podcast and search for it on your favorite podcast provider and they won't have it! with Reach, all you need is the RSS feed and you're good to go. No need to listen to podcasts accross different programs.

\n

What's Under The Hood?

\n

This was made with electron and angularjs. This is my first time using both of these items so some parts of the program are not perfectly optomized, but I plan on continuing to work on both the program itself, and my angular and electron skills in order to fuilly optimize the program.

\n

TODO:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:06.148Z" }, "recode-converter": { "readmeCleaned": "
\n \n

Recode Converter

\n A modern & simple audio converter for video files\n \"Screenshot\"\n
\n

Download

\n

You can download the app on the website:

\n

https://murgatt.github.io/recode-converter/

\n

Development

\n

Requirements

\n

The application is built with Electron and React and is using FFMPEG. Make sure to have Node.js, Yarn & FFMPEG installed.

\n

Installation

\n
    \n
  1. Clone this repository: git clone https://github.com/murgatt/recode-converter.git
  2. \n
  3. Navigate into the project directory: cd recode-converter
  4. \n
  5. Install dependencies: yarn
  6. \n
\n

Run the app

\n
yarn dev\n
\n

Building the app

\n\n
yarn electron-pack:all\n
\n\n
yarn electron-pack:mac\n
\n\n
yarn electron-pack:win\n
\n\n
yarn electron-pack:linux\n
\n\n
yarn electron-pack\n
\n

Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

Please make sure to follow the code style of the project and update translations if needed.

\n

Roadmap

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeatureStatus
FFMPEG installation check
App version check
Subtitles conversion
Conversion notification
Application settings
Choose output file container
Conversion presets
Add streams to the output file
Extract streams from input files
View detailed file info
Video conversion
Audio files conversion
Video comparison slider
\n

License

\n

MIT

\n
", "readmeOriginal": "
\n \n

Recode Converter

\n A modern & simple audio converter for video files\n \"Screenshot\"\n
\n

Download

\n

You can download the app on the website:

\n

https://murgatt.github.io/recode-converter/

\n

Development

\n

Requirements

\n

The application is built with Electron and React and is using FFMPEG. Make sure to have Node.js, Yarn & FFMPEG installed.

\n

Installation

\n
    \n
  1. Clone this repository: git clone https://github.com/murgatt/recode-converter.git
  2. \n
  3. Navigate into the project directory: cd recode-converter
  4. \n
  5. Install dependencies: yarn
  6. \n
\n

Run the app

\n
yarn dev\n
\n

Building the app

\n\n
yarn electron-pack:all\n
\n\n
yarn electron-pack:mac\n
\n\n
yarn electron-pack:win\n
\n\n
yarn electron-pack:linux\n
\n\n
yarn electron-pack\n
\n

Contributing

\n

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

\n

Please make sure to follow the code style of the project and update translations if needed.

\n

Roadmap

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FeatureStatus
FFMPEG installation check
App version check
Subtitles conversion
Conversion notification
Application settings
Choose output file container
Conversion presets
Add streams to the output file
Extract streams from input files
View detailed file info
Video conversion
Audio files conversion
Video comparison slider
\n

License

\n

MIT

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.200Z" }, "recollectr": { "readmeCleaned": "

\n \n

\n

\n Global Hotkey, Search/Create Omnibox, Natural Language Reminders, Markdown Support, Easy Image Pasting, & More\n

\n
\n

\n \n

\n
\n

\n \n

\n
\n

Visit Recollectr.io to learn more

\n
Reddit
\n
Visit us on Product Hunt
\n
Facebook
\n
Twitter
\n
", "readmeOriginal": "

\n \n

\n

\n Global Hotkey, Search/Create Omnibox, Natural Language Reminders, Markdown Support, Easy Image Pasting, & More\n

\n
\n

\n \n

\n
\n

\n \n

\n
\n

Visit Recollectr.io to learn more

\n
Reddit
\n
Visit us on Product Hunt
\n
Facebook
\n
Twitter
\n
", "readmeFetchedAt": "2022-05-10T00:08:06.306Z" }, "redis-gui-unofficial": { "readmeCleaned": "

Redis GUI (unofficial)

\n

\"redis-gui\"

\n

A graphical UI for managing Redis databases.

\n

\n

Main features

\n\n

Installation

\n

brew and snap packages available. For Windows and other you can download binaries from releases page.

\n

Mac OS

\n
brew tap ekvedaras/homebrew-cask\nbrew install --cask redis-gui
\n

Linux

\n
sudo snap install redis-gui
\n

Download

\n

Binaries are available to download on releases page.

\n

Screenshots

\n

\"JSON

\n

\"Console\"

\n
", "readmeOriginal": "

Redis GUI (unofficial)

\n

\"redis-gui\"

\n

A graphical UI for managing Redis databases.

\n

\n

Main features

\n\n

Installation

\n

brew and snap packages available. For Windows and other you can download binaries from releases page.

\n

Mac OS

\n
brew tap ekvedaras/homebrew-cask\nbrew install --cask redis-gui
\n

Linux

\n
sudo snap install redis-gui
\n

Download

\n

Binaries are available to download on releases page.

\n

Screenshots

\n

\"JSON

\n

\"Console\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.345Z" }, "remindr": { "readmeCleaned": "

Remindr

\n

Remindr is a desktop app to help you and others keep track of what you need to get done.

\n

Installation

\n

Remindr is currently available on Windows, Mac, and Linux.

\n

Features

\n

Reminder Grouping

\n

\"\"

\n

Reminder View

\n

\"\"

\n

Custom Backgrounds

\n

\"\"

\n\n
", "readmeOriginal": "

Remindr

\n

Remindr is a desktop app to help you and others keep track of what you need to get done.

\n

Installation

\n

Remindr is currently available on Windows, Mac, and Linux.

\n

Features

\n

Reminder Grouping

\n

\"\"

\n

Reminder View

\n

\"\"

\n

Custom Backgrounds

\n

\"\"

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:06.368Z" }, "remaining-time": { "readmeCleaned": "

🔋 MacOS Battery Remaining Menubar 🔋

\n

A really simple app that displays remaining battery time in the mac menubar.

\n

\"screenshot\"

\n

Download

\n

Download the latest release here

\n
", "readmeOriginal": "

🔋 MacOS Battery Remaining Menubar 🔋

\n

A really simple app that displays remaining battery time in the mac menubar.

\n

\"screenshot\"

\n

Download

\n

Download the latest release here

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.415Z" }, "responsivize": { "readmeCleaned": "

\"Github\n\"GitHub\n\"GitHub\n\"GitHub\n\"PRs\n\"Open

\n

Responsivize

\n

A must have tool to develop responsive websites!

\n

\"Responsivize\"

\n

What is Responsivize?

\n\n

How does it work?

\n

With Responsivize, you can test your web apps on popular devices like iPhones, Android phones, iPads, MacBooks, and you can even set custom dimension devices, that you set the dimensions for!
\nThis gives you the ability to test your apps on everything from widescreen monitors to smart fridge screens!

\n\n

\"\"

\n
\n

Responsivize Home Page 👆

\n
\n

\"\"

\n
\n

Responsivize Mobile View 👆

\n
\n

\"\"

\n
\n

Responsivize Tablet View 👆

\n
\n

\"\"

\n
\n

Responsivize Tablet View 👆

\n
\n

\"\"

\n
\n

Responsivize Laptop View 👆

\n
\n\n

\"\"

\n
\n

Responsivize Custom Size View 👆

\n
\n

Publication(s)

\n\n
", "readmeOriginal": "

\"Github\n\"GitHub\n\"GitHub\n\"GitHub\n\"PRs\n\"Open

\n

Responsivize

\n

A must have tool to develop responsive websites!

\n

\"Responsivize\"

\n

What is Responsivize?

\n\n

How does it work?

\n

With Responsivize, you can test your web apps on popular devices like iPhones, Android phones, iPads, MacBooks, and you can even set custom dimension devices, that you set the dimensions for!
\nThis gives you the ability to test your apps on everything from widescreen monitors to smart fridge screens!

\n\n

\"\"

\n
\n

Responsivize Home Page 👆

\n
\n

\"\"

\n
\n

Responsivize Mobile View 👆

\n
\n

\"\"

\n
\n

Responsivize Tablet View 👆

\n
\n

\"\"

\n
\n

Responsivize Tablet View 👆

\n
\n

\"\"

\n
\n

Responsivize Laptop View 👆

\n
\n\n

\"\"

\n
\n

Responsivize Custom Size View 👆

\n
\n

Publication(s)

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:06.556Z" }, "rendertune": { "readmeCleaned": "

RenderTune

\n
\nRenderTune is a free open-source program for mac/win/linux to combine audio + image file(s) into video files that can be uploaded to YouTube.\n

\"screenshot\"

\n

Tutorial Video (Click To Watch):

\n

\"RenderTune

\n

Download

\n

RenderTune is available for free on the Mac Apple Store, Windows Store, and Linux Snap Store. Click any of the below badges to view the store page.

\n

\"Mac\n\"MS\n\"Snapcraft\"

\n

If you want to download RenderTune without using the above stores, you can download RenderTune from the most recent Github Release.

\n\n

Features:

\n\n

How to run RenderTune locally:

\n\n

How to install ffmpeg locally for mac (ffmpeg-mac/)

\n\n

Releasing a new version:

\n\n
electron-windows-store --input-directory C:\\Users\\marti\\Documents\\projects\\rendertune-v0.5.0\\dist\\win-unpacked --output-directory C:\\Users\\marti\\Documents\\projects\\RenderTuneAppx --package-version 0.5.0.0 --package-name RenderTune --package-display-name 'RenderTune' --publisher-display-name 'martinbarker' --identity-name 1845martinbarker.digify -a C:\\Users\\marti\\Documents\\projects\\rendertune-v0.5.0\\Resources\\\n
\n\n

Roadmap:

\n

This list is of future updates / improvements I plan to make for RenderTune (If you can think of any features you would like, contact me and I will include them in the roadmap)

\n\n
", "readmeOriginal": "

RenderTune

\n
\nRenderTune is a free open-source program for mac/win/linux to combine audio + image file(s) into video files that can be uploaded to YouTube.\n

\"screenshot\"

\n

Tutorial Video (Click To Watch):

\n

\"RenderTune

\n

Download

\n

RenderTune is available for free on the Mac Apple Store, Windows Store, and Linux Snap Store. Click any of the below badges to view the store page.

\n

\"Mac\n\"MS\n\"Snapcraft\"

\n

If you want to download RenderTune without using the above stores, you can download RenderTune from the most recent Github Release.

\n\n

Features:

\n\n

How to run RenderTune locally:

\n\n

How to install ffmpeg locally for mac (ffmpeg-mac/)

\n\n

Releasing a new version:

\n\n
electron-windows-store --input-directory C:\\Users\\marti\\Documents\\projects\\rendertune-v0.5.0\\dist\\win-unpacked --output-directory C:\\Users\\marti\\Documents\\projects\\RenderTuneAppx --package-version 0.5.0.0 --package-name RenderTune --package-display-name 'RenderTune' --publisher-display-name 'martinbarker' --identity-name 1845martinbarker.digify -a C:\\Users\\marti\\Documents\\projects\\rendertune-v0.5.0\\Resources\\\n
\n\n

Roadmap:

\n

This list is of future updates / improvements I plan to make for RenderTune (If you can think of any features you would like, contact me and I will include them in the roadmap)

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:06.600Z" }, "ride": { "readmeCleaned": "

RIDE

\n

RIDE is a remote IDE for Dyalog APL.

\n

\"Screenshot\"

\n

Getting started

\n

Option 1: Dyalog customers can download a pre-built installable RIDE from\nMyDyalog under the Downloads > RIDE menu.

\n

Option 2: Download and install the\nlatest release from this\nrepository.

\n

Option 3: Build RIDE from source:

\n

install Git and NodeJS v14.17.6

\n
git clone https://github.com/dyalog/ride --depth=1\ncd ride\nnpm i         # download dependencies\nnpm start     # start RIDE (without building native apps)\nnode mk dist  # build native apps under _/ride${version}/\nnode mk c     # cleans your build directory\n
\n

(# starts a comment)

\n
", "readmeOriginal": "

RIDE

\n

RIDE is a remote IDE for Dyalog APL.

\n

\"Screenshot\"

\n

Getting started

\n

Option 1: Dyalog customers can download a pre-built installable RIDE from\nMyDyalog under the Downloads > RIDE menu.

\n

Option 2: Download and install the\nlatest release from this\nrepository.

\n

Option 3: Build RIDE from source:

\n

install Git and NodeJS v14.17.6

\n
git clone https://github.com/dyalog/ride --depth=1\ncd ride\nnpm i         # download dependencies\nnpm start     # start RIDE (without building native apps)\nnode mk dist  # build native apps under _/ride${version}/\nnode mk c     # cleans your build directory\n
\n

(# starts a comment)

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.618Z" }, "riot": { "readmeCleaned": "

\"Build\"\n\"Static\n\"Weblate\"\n\"Quality\n\"Vulnerabilities\"\n\"Bugs\"

\n

Element Desktop

\n

Element Desktop is a Matrix client for desktop platforms with Element Web at its core.

\n

First Steps

\n

Before you do anything else, fetch the dependencies:

\n
yarn install\n
\n

Fetching Element

\n

Since this package is just the Electron wrapper for Element Web, it doesn't contain any of the Element Web code,\nso the first step is to get a working copy of Element Web. There are a few ways of doing this:

\n
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version\n# fetched will be the same as the local element-desktop package.\n# We're explicitly asking for no config, so the packaged Element will have no config.json.\nyarn run fetch --noverify --cfgdir \"\"\n
\n

...or if you'd like to use GPG to verify the downloaded package:

\n
# Fetch the Element public key from the element.io web server over a secure connection and import\n# it into your local GPG keychain (you'll need GPG installed). You only need to to do this\n# once.\nyarn run fetch --importkey\n# Fetch the package and verify the signature\nyarn run fetch --cfgdir \"\"\n
\n

...or either of the above, but fetching a specific version of Element:

\n
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version\n# fetched will be the same as the local element-desktop package.\nyarn run fetch --noverify --cfgdir \"\" v1.5.6\n
\n

If you only want to run the app locally and don't need to build packages, you can\nprovide the webapp directory directly:

\n
# Assuming you've checked out and built a copy of element-web in ../element-web\nln -s ../element-web/webapp ./\n
\n

[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]

\n

Building

\n

Native Build

\n

TODO: List native pre-requisites

\n

Optionally, build the native modules,\nwhich include support for searching in encrypted rooms and secure storage. Skipping this step is fine, you just won't have those features.

\n

Then, run

\n
yarn run build\n
\n

This will do a couple of things:

\n\n

Docker

\n

Alternatively, you can also build using docker, which will always produce the linux package:

\n
# Run this once to make the docker image\nyarn run docker:setup\n\nyarn run docker:install\n# if you want to build the native modules (this will take a while)\nyarn run docker:build:native\nyarn run docker:build\n
\n

After running, the packages should be in dist/.

\n

Starting

\n

If you'd just like to run the electron app locally for development:

\n
# Install electron - we don't normally need electron itself as it's provided\n# by electron-builder when building packages\nyarn add electron\nyarn start\n
\n

Config

\n

If you'd like the packaged Element to have a configuration file, you can create a\nconfig directory and place config.json in there, then specify this directory\nwith the --cfgdir option to yarn run fetch, eg:

\n
mkdir myconfig\ncp /path/to/my/config.json myconfig/\nyarn run fetch --cfgdir myconfig\n
\n

The config dir for the official Element app is in element.io. If you use this,\nyour app will auto-update itself using builds from element.io.

\n

Profiles

\n

To run multiple instances of the desktop app for different accounts, you can\nlaunch the executable with the --profile argument followed by a unique\nidentifier, e.g element-desktop --profile Work for it to run a separate profile and\nnot interfere with the default one.

\n

Alternatively, a custom location for the profile data can be specified using the\n--profile-dir flag followed by the desired path.

\n

User-specified config.json

\n\n

In the paths above, $NAME is typically Element, unless you use --profile $PROFILE in which case it becomes Element-$PROFILE, or it is using one of\nthe above created by a pre-1.7 install, in which case it will be Riot or\nRiot-$PROFILE.

\n

Translations

\n

To add a new translation, head to the translating doc.

\n

For a developer guide, see the translating dev doc.

\n

\"translationsstatus\"

\n

Report bugs & give feedback

\n

If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.

\n

To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it. Please note that this issue tracker is associated with the element-web repo, but is also applied to the code in this repo as well.

\n
", "readmeOriginal": "

\"Build\"\n\"Static\n\"Weblate\"\n\"Quality\n\"Vulnerabilities\"\n\"Bugs\"

\n

Element Desktop

\n

Element Desktop is a Matrix client for desktop platforms with Element Web at its core.

\n

First Steps

\n

Before you do anything else, fetch the dependencies:

\n
yarn install\n
\n

Fetching Element

\n

Since this package is just the Electron wrapper for Element Web, it doesn't contain any of the Element Web code,\nso the first step is to get a working copy of Element Web. There are a few ways of doing this:

\n
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version\n# fetched will be the same as the local element-desktop package.\n# We're explicitly asking for no config, so the packaged Element will have no config.json.\nyarn run fetch --noverify --cfgdir \"\"\n
\n

...or if you'd like to use GPG to verify the downloaded package:

\n
# Fetch the Element public key from the element.io web server over a secure connection and import\n# it into your local GPG keychain (you'll need GPG installed). You only need to to do this\n# once.\nyarn run fetch --importkey\n# Fetch the package and verify the signature\nyarn run fetch --cfgdir \"\"\n
\n

...or either of the above, but fetching a specific version of Element:

\n
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version\n# fetched will be the same as the local element-desktop package.\nyarn run fetch --noverify --cfgdir \"\" v1.5.6\n
\n

If you only want to run the app locally and don't need to build packages, you can\nprovide the webapp directory directly:

\n
# Assuming you've checked out and built a copy of element-web in ../element-web\nln -s ../element-web/webapp ./\n
\n

[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]

\n

Building

\n

Native Build

\n

TODO: List native pre-requisites

\n

Optionally, build the native modules,\nwhich include support for searching in encrypted rooms and secure storage. Skipping this step is fine, you just won't have those features.

\n

Then, run

\n
yarn run build\n
\n

This will do a couple of things:

\n\n

Docker

\n

Alternatively, you can also build using docker, which will always produce the linux package:

\n
# Run this once to make the docker image\nyarn run docker:setup\n\nyarn run docker:install\n# if you want to build the native modules (this will take a while)\nyarn run docker:build:native\nyarn run docker:build\n
\n

After running, the packages should be in dist/.

\n

Starting

\n

If you'd just like to run the electron app locally for development:

\n
# Install electron - we don't normally need electron itself as it's provided\n# by electron-builder when building packages\nyarn add electron\nyarn start\n
\n

Config

\n

If you'd like the packaged Element to have a configuration file, you can create a\nconfig directory and place config.json in there, then specify this directory\nwith the --cfgdir option to yarn run fetch, eg:

\n
mkdir myconfig\ncp /path/to/my/config.json myconfig/\nyarn run fetch --cfgdir myconfig\n
\n

The config dir for the official Element app is in element.io. If you use this,\nyour app will auto-update itself using builds from element.io.

\n

Profiles

\n

To run multiple instances of the desktop app for different accounts, you can\nlaunch the executable with the --profile argument followed by a unique\nidentifier, e.g element-desktop --profile Work for it to run a separate profile and\nnot interfere with the default one.

\n

Alternatively, a custom location for the profile data can be specified using the\n--profile-dir flag followed by the desired path.

\n

User-specified config.json

\n\n

In the paths above, $NAME is typically Element, unless you use --profile $PROFILE in which case it becomes Element-$PROFILE, or it is using one of\nthe above created by a pre-1.7 install, in which case it will be Riot or\nRiot-$PROFILE.

\n

Translations

\n

To add a new translation, head to the translating doc.

\n

For a developer guide, see the translating dev doc.

\n

\"translationsstatus\"

\n

Report bugs & give feedback

\n

If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.

\n

To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it. Please note that this issue tracker is associated with the element-web repo, but is also applied to the code in this repo as well.

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.811Z" }, "runlet": { "readmeCleaned": "

\"Runlet Runlet

\n

\"GitHub\n\"GitHub\n\"Bugs\"\n\"Feature\n\"Gitter\"

\n

Runlet is a cloud-based job manager that offers device synchronization and reliable message delivery in a network of connected devices even after connectivity issues. This repository is where new releases are published, bugs are reported, and features are requested.

\n

Download

\n

All available distributions and versions can be found at releases.

\n

Contributing

\n

There are a couple of ways in which you can contribute to the app, for example:

\n\n

Feedback

\n\n

License

\n

Copyright (c) Runlet. All rights reserved.

\n
", "readmeOriginal": "

\"Runlet Runlet

\n

\"GitHub\n\"GitHub\n\"Bugs\"\n\"Feature\n\"Gitter\"

\n

Runlet is a cloud-based job manager that offers device synchronization and reliable message delivery in a network of connected devices even after connectivity issues. This repository is where new releases are published, bugs are reported, and features are requested.

\n

Download

\n

All available distributions and versions can be found at releases.

\n

Contributing

\n

There are a couple of ways in which you can contribute to the app, for example:

\n\n

Feedback

\n\n

License

\n

Copyright (c) Runlet. All rights reserved.

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.868Z" }, "responsively": { "readmeCleaned": "
\n \"Responsively\n

Responsively App \"GitHub

\n A must-have devtool for web developers for quicker responsive web development. 🚀\n
Save time by becoming 5x faster!
\n
\n
\n

\n \n \"Twitter\"\n \n \n \"contributors\"\n \n \n \"Slack\"\n \n \n \"XS:Code\"\n \n \n \"PRs\n \n \n \"Open\n \n

\n

\n \n \"ProductHunt\"\n \n

\n

\n Download Now (free!): \n responsively.app\n \n

\n
\n

Responsively App

\n
\n

A modified browser built using Electron that helps in responsive web development.

\n
\n
\n

\"Quick

\n

Features

\n
    \n
  1. Mirrored User-interactions across all devices.
  2. \n
  3. Customizable preview layout to suit all your needs.
  4. \n
  5. One handy elements inspector for all devices in preview.
  6. \n
  7. 30+ built-in device profiles with option to add custom devices.
  8. \n
  9. One-click screenshot all your devices.
  10. \n
  11. Hot reloading supported for developers.
  12. \n
\n

Please visit the website to know more about the application - https://responsively.app

\n

Download

\n

The application is available for Mac, Windows and Linux platforms. Please download it from the releases page

\n

Alternatively, MacOS users can use brew \"Homebrew

\n
brew install --cask responsively
\n

Also, Windows users can use chocolatey \"Chocolatey

\n
choco install responsively
\n

or winget:

\n
winget install ResponsivelyApp
\n

Linux users using an RPM Package Manager can use rpm

\n
sudo rpm -i https://github.com/responsively-org/responsively-app/releases/download/v[VERSION]/Responsively-App-[VERSION].x86_64.rpm
\n

otherwise download an AppImage from the releases page

\n

Follow on Twitter for future updates - \"Twitter

\n

Browser Extension

\n

Install the handy browser extension to easily send links from your browser to the app and preview instantly.

\n\n

Issues

\n

If you face any problems while using the application, please open an issue here - https://github.com/responsively-org/responsively-app/issues

\n

Roadmap

\n

Here is the roadmap of the desktop app - https://github.com/responsively-org/responsively-app/projects/12?fullscreen=true.

\n

Gold sponsors 🥇

\n

 

\n

\n \n \"Sponsor\n \n

\n

Become a sponsor and have your company logo here

\n

Contribute

\n
    \n
  1. Ensure you have installed node and yarn
  2. \n
  3. Go to desktop-app folder
  4. \n
  5. Run yarn to install dependencies
  6. \n
  7. Run yarn dev. This will start the app for local development with live reloading.
  8. \n
\n

Get in touch

\n

Come say hi to us on Slack! 👋

\n

Contributors

\n

Thanks go to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
Manoj Vivek

💻 ⚠️ 📆
\"\"
Suresh P

💻 ⚠️ 📆
\"\"
Sigit Prabowo

💻
\"\"
Leon Feng

📖
\"\"
Kishore S

💻
\"\"
José Javier Rodríguez Zas

💻 ⚠️
\"\"
Roman Akash

💻
\"\"
Romain Francony

💻
\"\"
AARYAN-MAHENDRA

💻
\"\"
Andy

💻
\"\"
Ryan Pais

💻 ⚠️
\"\"
Jonathan

💻
\"\"
Gema Anggada ✌︎

💻
\"\"
jonathanurias96

💻
\"\"
Federico Alecci

💻
\"\"
Abduraimov Muminjon

📖
\"\"
Víctor Lázaro

💻
\"\"
Kavita Nambissan

💻
\"\"
Prashant Palikhe

💻
\"\"
Jaune Sarmiento

🖋
\"\"
Diego Vieira

💻
\"\"
Ajaykumar

💻
\"\"
Kiruba Karan

💻
\"\"
Sebastián Rodríguez

💻
\"\"
Karthick Raja

💻
\"\"
Johnny Zabala

💻
\"\"
Ross Moody

🎨
\"\"
Mehrdad Shokri

🚇
\"\"
Abdelhak Akermi

💻
\"\"
Carlos Perez

💻
\"\"
Jayant Arya

💻
\"\"
John Rawlins

💻
\"\"
lepasq

💻
\"\"
mrfelfel

💻
\"\"
gorogoroumaru

💻
\"\"
Rui Saraiva

💻
\"\"
Mehmet Bakirci

💻
\"\"
Julien Bertazzo Lambert

💻
\"\"
Dinesh Balaji

💻
\"\"
MedBMoussa

💻
\"\"
Lucie Vrsovska

💻
\"\"
Jakub Cabak

💻
\"\"
Palakurthi Durga Kiran Kumar

💻
\"\"
Karl Labrador

💻
\"\"
Rishi Kumar Chawda

💻
\"\"
Carlos Rafael de Oliveira Carneiro

💻
\"\"
Zach Hoskins

💻
\"\"
KIWAN KIM

💻
\"\"
Andreas

💻
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeOriginal": "
\n \"Responsively\n

Responsively App \"GitHub

\n A must-have devtool for web developers for quicker responsive web development. 🚀\n
Save time by becoming 5x faster!
\n
\n
\n

\n \n \"Twitter\"\n \n \n \"contributors\"\n \n \n \"Slack\"\n \n \n \"XS:Code\"\n \n \n \"PRs\n \n \n \"Open\n \n

\n

\n \n \"ProductHunt\"\n \n

\n

\n Download Now (free!): \n responsively.app\n \n

\n
\n

Responsively App

\n
\n

A modified browser built using Electron that helps in responsive web development.

\n
\n
\n

\"Quick

\n

Features

\n
    \n
  1. Mirrored User-interactions across all devices.
  2. \n
  3. Customizable preview layout to suit all your needs.
  4. \n
  5. One handy elements inspector for all devices in preview.
  6. \n
  7. 30+ built-in device profiles with option to add custom devices.
  8. \n
  9. One-click screenshot all your devices.
  10. \n
  11. Hot reloading supported for developers.
  12. \n
\n

Please visit the website to know more about the application - https://responsively.app

\n

Download

\n

The application is available for Mac, Windows and Linux platforms. Please download it from the releases page

\n

Alternatively, MacOS users can use brew \"Homebrew

\n
brew install --cask responsively
\n

Also, Windows users can use chocolatey \"Chocolatey

\n
choco install responsively
\n

or winget:

\n
winget install ResponsivelyApp
\n

Linux users using an RPM Package Manager can use rpm

\n
sudo rpm -i https://github.com/responsively-org/responsively-app/releases/download/v[VERSION]/Responsively-App-[VERSION].x86_64.rpm
\n

otherwise download an AppImage from the releases page

\n

Follow on Twitter for future updates - \"Twitter

\n

Browser Extension

\n

Install the handy browser extension to easily send links from your browser to the app and preview instantly.

\n\n

Issues

\n

If you face any problems while using the application, please open an issue here - https://github.com/responsively-org/responsively-app/issues

\n

Roadmap

\n

Here is the roadmap of the desktop app - https://github.com/responsively-org/responsively-app/projects/12?fullscreen=true.

\n

Gold sponsors 🥇

\n

 

\n

\n \n \"Sponsor\n \n

\n

Become a sponsor and have your company logo here

\n

Contribute

\n
    \n
  1. Ensure you have installed node and yarn
  2. \n
  3. Go to desktop-app folder
  4. \n
  5. Run yarn to install dependencies
  6. \n
  7. Run yarn dev. This will start the app for local development with live reloading.
  8. \n
\n

Get in touch

\n

Come say hi to us on Slack! 👋

\n

Contributors

\n

Thanks go to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
Manoj Vivek

💻 ⚠️ 📆
\"\"
Suresh P

💻 ⚠️ 📆
\"\"
Sigit Prabowo

💻
\"\"
Leon Feng

📖
\"\"
Kishore S

💻
\"\"
José Javier Rodríguez Zas

💻 ⚠️
\"\"
Roman Akash

💻
\"\"
Romain Francony

💻
\"\"
AARYAN-MAHENDRA

💻
\"\"
Andy

💻
\"\"
Ryan Pais

💻 ⚠️
\"\"
Jonathan

💻
\"\"
Gema Anggada ✌︎

💻
\"\"
jonathanurias96

💻
\"\"
Federico Alecci

💻
\"\"
Abduraimov Muminjon

📖
\"\"
Víctor Lázaro

💻
\"\"
Kavita Nambissan

💻
\"\"
Prashant Palikhe

💻
\"\"
Jaune Sarmiento

🖋
\"\"
Diego Vieira

💻
\"\"
Ajaykumar

💻
\"\"
Kiruba Karan

💻
\"\"
Sebastián Rodríguez

💻
\"\"
Karthick Raja

💻
\"\"
Johnny Zabala

💻
\"\"
Ross Moody

🎨
\"\"
Mehrdad Shokri

🚇
\"\"
Abdelhak Akermi

💻
\"\"
Carlos Perez

💻
\"\"
Jayant Arya

💻
\"\"
John Rawlins

💻
\"\"
lepasq

💻
\"\"
mrfelfel

💻
\"\"
gorogoroumaru

💻
\"\"
Rui Saraiva

💻
\"\"
Mehmet Bakirci

💻
\"\"
Julien Bertazzo Lambert

💻
\"\"
Dinesh Balaji

💻
\"\"
MedBMoussa

💻
\"\"
Lucie Vrsovska

💻
\"\"
Jakub Cabak

💻
\"\"
Palakurthi Durga Kiran Kumar

💻
\"\"
Karl Labrador

💻
\"\"
Rishi Kumar Chawda

💻
\"\"
Carlos Rafael de Oliveira Carneiro

💻
\"\"
Zach Hoskins

💻
\"\"
KIWAN KIM

💻
\"\"
Andreas

💻
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeFetchedAt": "2022-05-10T00:08:06.961Z" }, "saadhn": { "readmeCleaned": "

Saadhn: Desktop App for JioSaavn

\n

A desktop client for JioSaavn, based on the official JioSaavn web app. Built with Electron.

\n

\"Screenshot\"

\n

This is NOT an official product. This project does not attempt to reverse engineer the JioSaavn API or attempt to reimplement any part of the JioSaavn client. Any communication between the user and JioSaavn servers is handled by official JioSaavn Web itself; this is just a native wrapper for JioSaavn Web, like a browser.

\n

Features

\n\n

Planned features:

\n\n

Installation

\n

Download and run the Saavn file from the latest release.

\n

Note: Windows and Linux versions are test release.

\n

How to use in Linux

\n

In order to execute the program in Linux, first you should give it permission to the App:

\n

sudo chmod u+x Saadhn
\n./Saadhn

\n

Contributions

\n

Contributions are welcome! For feature requests and bug reports please submit an issue.

\n

Build

\n

To build from the source, run the following commands:

\n

npm install
\nnpm run build

\n

## Building Windows build from non-Windows platforms

\n

Wine needs to be installed. On OS X, it is installable via Homebrew:
\nbrew install wine

\n

--

\n
\n

Made with ❤️ in 🇮🇳 at Zense and IIIT Bangalore

\n
\n

License

\n

\"FOSSA

\n
", "readmeOriginal": "

Saadhn: Desktop App for JioSaavn

\n

A desktop client for JioSaavn, based on the official JioSaavn web app. Built with Electron.

\n

\"Screenshot\"

\n

This is NOT an official product. This project does not attempt to reverse engineer the JioSaavn API or attempt to reimplement any part of the JioSaavn client. Any communication between the user and JioSaavn servers is handled by official JioSaavn Web itself; this is just a native wrapper for JioSaavn Web, like a browser.

\n

Features

\n\n

Planned features:

\n\n

Installation

\n

Download and run the Saavn file from the latest release.

\n

Note: Windows and Linux versions are test release.

\n

How to use in Linux

\n

In order to execute the program in Linux, first you should give it permission to the App:

\n

sudo chmod u+x Saadhn
\n./Saadhn

\n

Contributions

\n

Contributions are welcome! For feature requests and bug reports please submit an issue.

\n

Build

\n

To build from the source, run the following commands:

\n

npm install
\nnpm run build

\n

## Building Windows build from non-Windows platforms

\n

Wine needs to be installed. On OS X, it is installable via Homebrew:
\nbrew install wine

\n

--

\n
\n

Made with ❤️ in 🇮🇳 at Zense and IIIT Bangalore

\n
\n

License

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.031Z" }, "ridereceipts": { "readmeCleaned": "

\"Ride

\n

\n\n\n\n\n\n\n\n\n \n\n \n

\n
\n

Simple automation desktop app to download and organize your receipts from Uber and Lyft.

\n
\n

\"screenshot\"

\n

Download

\n

To download Ride Receipts or purchase Ride Receipts PRO, please visit https://www.ridereceipts.io

\n

Features

\n\n

Why

\n

Ride Receipts is essential for anyone who relies on Uber/Lyft for business travel. Whether you’re self-employed or get reimbursed by your employer for travel, you’ll likely need proper tax invoices for accounting purposes.

\n

This was a major pain point for us every year around tax season. Since the current Uber website does not allow you to download all of your receipts for the year at once, you have to manually download, rename, and organize each of your invoices. So you’re either doing it one by one, or if you have a business profile, you still have to download them one month at a time. Uber’s monthly business travel report is great for keeping track of your trips, but these aren’t actual receipts.

\n

We created Ride Receipts to address this painfully inefficient process, and now we’re sharing it with everyone who could benefit from this time-saving tool.

\n

Solution

\n

Automation! Ride Receipts is an open-source desktop app that automates the process of downloading, renaming, and organizing your Uber/Lyft receipts. Rather than logging into your Uber account to scan through each of your trips and manually download each receipt, Ride Receipts will automatically do it for you.

\n

Your invoices will be named according to the date and time of your trip, and organized by user account, year and month, in neat and tidy folders on your computer.

\n

Requirements

\n

For Uber and Lyft we utilize Gmail API to scan your email only for receipts.\nMake sure your system has latest Chrome Browser installed (v69 or above).

\n

Ride Receipts works on both Mac and PC.

\n

Security

\n

Ride Receipts does not store your login credentials, personal information or any other data. This application operates without a database. It only scans email for receipts with read-only access.

\n

Developer Notes

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# Navigate to renderer directory and copy config example to config.js and set Google Client Id and Outlook Id\ncp config.example.js config.js\n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build electron application for production\nnpm run build\n\n# build electron application for cross platform\nnpm run build -mwl (i.e m - macos , w - windows & l - Linux)\n\n\n# lint all JS/Vue component files in `src/`\nnpm run lint\n
\n

Powered by

\n\n

Support / Contribution

\n

Please feel free to give us suggestions or report a bug by creating a new issue via Github or messaging on Twitter: @ridereceipts. You can also email us at hello@ridereceipts.io.

\n

License

\n

License by default is LGPLv3. After purchase please refer COMM-LICENSE is applied

\n
", "readmeOriginal": "

\"Ride

\n

\n\n\n\n\n\n\n\n\n \n\n \n

\n
\n

Simple automation desktop app to download and organize your receipts from Uber and Lyft.

\n
\n

\"screenshot\"

\n

Download

\n

To download Ride Receipts or purchase Ride Receipts PRO, please visit https://www.ridereceipts.io

\n

Features

\n\n

Why

\n

Ride Receipts is essential for anyone who relies on Uber/Lyft for business travel. Whether you’re self-employed or get reimbursed by your employer for travel, you’ll likely need proper tax invoices for accounting purposes.

\n

This was a major pain point for us every year around tax season. Since the current Uber website does not allow you to download all of your receipts for the year at once, you have to manually download, rename, and organize each of your invoices. So you’re either doing it one by one, or if you have a business profile, you still have to download them one month at a time. Uber’s monthly business travel report is great for keeping track of your trips, but these aren’t actual receipts.

\n

We created Ride Receipts to address this painfully inefficient process, and now we’re sharing it with everyone who could benefit from this time-saving tool.

\n

Solution

\n

Automation! Ride Receipts is an open-source desktop app that automates the process of downloading, renaming, and organizing your Uber/Lyft receipts. Rather than logging into your Uber account to scan through each of your trips and manually download each receipt, Ride Receipts will automatically do it for you.

\n

Your invoices will be named according to the date and time of your trip, and organized by user account, year and month, in neat and tidy folders on your computer.

\n

Requirements

\n

For Uber and Lyft we utilize Gmail API to scan your email only for receipts.\nMake sure your system has latest Chrome Browser installed (v69 or above).

\n

Ride Receipts works on both Mac and PC.

\n

Security

\n

Ride Receipts does not store your login credentials, personal information or any other data. This application operates without a database. It only scans email for receipts with read-only access.

\n

Developer Notes

\n

Build Setup

\n
# install dependencies\nnpm install\n\n# Navigate to renderer directory and copy config example to config.js and set Google Client Id and Outlook Id\ncp config.example.js config.js\n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build electron application for production\nnpm run build\n\n# build electron application for cross platform\nnpm run build -mwl (i.e m - macos , w - windows & l - Linux)\n\n\n# lint all JS/Vue component files in `src/`\nnpm run lint\n
\n

Powered by

\n\n

Support / Contribution

\n

Please feel free to give us suggestions or report a bug by creating a new issue via Github or messaging on Twitter: @ridereceipts. You can also email us at hello@ridereceipts.io.

\n

License

\n

License by default is LGPLv3. After purchase please refer COMM-LICENSE is applied

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.045Z" }, "school-timetable": { "readmeCleaned": "

🐱‍🏍UPDATE: New version available here: https://github.com/natixco/revolt

\n

🐱‍🏍UPDATE: Mobile version: https://github.com/KDani-99/tabby-native

\n

Timetable

\n

We wanted to make a really simple, but useful application to manage your lessons/activities, so we made it.

\n

🆕 New features

\n\n

📝Current features

\n\n

🖼️ Screenshots

\n

\"Screenshot\n\"Screenshot\n\"Screenshot

\n
", "readmeOriginal": "

🐱‍🏍UPDATE: New version available here: https://github.com/natixco/revolt

\n

🐱‍🏍UPDATE: Mobile version: https://github.com/KDani-99/tabby-native

\n

Timetable

\n

We wanted to make a really simple, but useful application to manage your lessons/activities, so we made it.

\n

🆕 New features

\n\n

📝Current features

\n\n

🖼️ Screenshots

\n

\"Screenshot\n\"Screenshot\n\"Screenshot

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.097Z" }, "screencat": { "readmeCleaned": "

ScreenCat

\n

\"Icon@2x.png\"

\n

ScreenCat is an open source screen sharing + remote collaboration application. You can share your desktop with someone else while letting them share your mouse and keyboard remotely. Right now it is not as good as commercial alternatives, mostly because this is a hobby project and not a for-profit project. The big difference is that you can send PRs to make ScreenCat better!

\n

\"demo\"

\n

ScreenCat is named after cats, but also for the idea of 'catting' a screen (as in unix cat). It has two C/C++ dependencies, Electron (which includes node.js) and robotjs for creating mouse + keyboard events.

\n

ScreenCat is currently ALPHA STATUS and is intended for developers/early adopters. Check out the Issues to get involved. ScreenCat is a volunteer run project, your contributions and improvements are welcome!

\n

To download the latest build visit the releases page. Builds for your OS may not be available and you may have to build it yourself, sorry.

\n

\"js-standard-style\"

\n

\"Build

\n

\"screenshot.png\"

\n

How it works

\n

The app itself is written in JS, HTML and CSS. The CSS is from tachyons. The app is wrapped up in an electron application using the menubar module.

\n

One really cool feature of ScreenCat is the ability to screenshare with a normal browser. Using our remote control page you can send your invite code to a web user and they can remote control your computer. Currently Google Chrome is recommended. You can also screenshare between 2 ScreenCat.app users.

\n

\"remote-control.gif\"

\n

The screensharing takes advantage of an experimental feature built in to Chromium's WebRTC implementation called chromeMediaSource: 'screen'. This lets you share the host computers entire desktop over a WebRTC video channel. On the remote end, you can render the data in a <video> element.

\n

To initiate the WebRTC connection both peers must swap sdp connection information payloads. After compression, you can get the payloads down to about 1K. This is technically small enough to copy/paste through e.g. SMS, but it's on the larger side. Also you have to do a full round trip, where user A sends their code to user B, and vice versa before a connection can be established.

\n

To simplify the connection process the app uses cat-lobby, a minimal lobby server using HTTP and Server-Sent Events. This simply lets users swap SDP payloads without having to copy/paste large text blocks back and forth.

\n

To hook up the mouse and keyboard, the remote end uses standard mousedown and keydown events and sends them over a WebRTC data channel to the host. On the host side the app must synthesize mouse and keyboard events on the host OS. This is the tricky part, and the only part where a custom native node addon (C++) is required. Luckily I found the robotjs project which while still being relatively new and rough around the edges still got the job done after some modifications.

\n

Currently the app works best between Macs, mostly because that is what the original author used. However, you can build it for Linux or Windows too.

\n

The motivation for making ScreenCat came from a lack of open source + easily hackable screen sharing tools. I collaborate with many remote open source developers and being able to customize the software we use to work together is important to me. ScreenCat will remain free and BSD licensed, and your contributions are welcome! Check out the issues, especially those marked as help wanted.

\n
Building the app
\n

For mac/linux:

\n
npm install # installs electron and all the deps\nnpm start # runs the app in the electron wrapper\nnpm run build # builds the mac app
\n

For windows:

\n

You will need Visual studio C++ installed so you can build the native modules. Here are instructions for cmd.exe:

\n
git clone https://github.com/maxogden/screencat.git\ncd screencat\nnpm install\nnpm install electron-rebuild\n.\\node_modules\\.bin\\electron-rebuild.cmd\nnpm start\n
\n

source code guide

\n\n
", "readmeOriginal": "

ScreenCat

\n

\"Icon@2x.png\"

\n

ScreenCat is an open source screen sharing + remote collaboration application. You can share your desktop with someone else while letting them share your mouse and keyboard remotely. Right now it is not as good as commercial alternatives, mostly because this is a hobby project and not a for-profit project. The big difference is that you can send PRs to make ScreenCat better!

\n

\"demo\"

\n

ScreenCat is named after cats, but also for the idea of 'catting' a screen (as in unix cat). It has two C/C++ dependencies, Electron (which includes node.js) and robotjs for creating mouse + keyboard events.

\n

ScreenCat is currently ALPHA STATUS and is intended for developers/early adopters. Check out the Issues to get involved. ScreenCat is a volunteer run project, your contributions and improvements are welcome!

\n

To download the latest build visit the releases page. Builds for your OS may not be available and you may have to build it yourself, sorry.

\n

\"js-standard-style\"

\n

\"Build

\n

\"screenshot.png\"

\n

How it works

\n

The app itself is written in JS, HTML and CSS. The CSS is from tachyons. The app is wrapped up in an electron application using the menubar module.

\n

One really cool feature of ScreenCat is the ability to screenshare with a normal browser. Using our remote control page you can send your invite code to a web user and they can remote control your computer. Currently Google Chrome is recommended. You can also screenshare between 2 ScreenCat.app users.

\n

\"remote-control.gif\"

\n

The screensharing takes advantage of an experimental feature built in to Chromium's WebRTC implementation called chromeMediaSource: 'screen'. This lets you share the host computers entire desktop over a WebRTC video channel. On the remote end, you can render the data in a <video> element.

\n

To initiate the WebRTC connection both peers must swap sdp connection information payloads. After compression, you can get the payloads down to about 1K. This is technically small enough to copy/paste through e.g. SMS, but it's on the larger side. Also you have to do a full round trip, where user A sends their code to user B, and vice versa before a connection can be established.

\n

To simplify the connection process the app uses cat-lobby, a minimal lobby server using HTTP and Server-Sent Events. This simply lets users swap SDP payloads without having to copy/paste large text blocks back and forth.

\n

To hook up the mouse and keyboard, the remote end uses standard mousedown and keydown events and sends them over a WebRTC data channel to the host. On the host side the app must synthesize mouse and keyboard events on the host OS. This is the tricky part, and the only part where a custom native node addon (C++) is required. Luckily I found the robotjs project which while still being relatively new and rough around the edges still got the job done after some modifications.

\n

Currently the app works best between Macs, mostly because that is what the original author used. However, you can build it for Linux or Windows too.

\n

The motivation for making ScreenCat came from a lack of open source + easily hackable screen sharing tools. I collaborate with many remote open source developers and being able to customize the software we use to work together is important to me. ScreenCat will remain free and BSD licensed, and your contributions are welcome! Check out the issues, especially those marked as help wanted.

\n
Building the app
\n

For mac/linux:

\n
npm install # installs electron and all the deps\nnpm start # runs the app in the electron wrapper\nnpm run build # builds the mac app
\n

For windows:

\n

You will need Visual studio C++ installed so you can build the native modules. Here are instructions for cmd.exe:

\n
git clone https://github.com/maxogden/screencat.git\ncd screencat\nnpm install\nnpm install electron-rebuild\n.\\node_modules\\.bin\\electron-rebuild.cmd\nnpm start\n
\n

source code guide

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:07.220Z" }, "screentray": { "readmeCleaned": "

\"ScreenTray\"

\n

ScreenTray is a macOS application for capturing, annotating and sharing screenshots. Quickly add comments, highlight what matters or blur any sensitive content. Upload screenshots to Google Drive or Dropbox. Copy screenshots to the clipboard and paste them directly into Slack, WhatsApp, Facebook, Twitter, Gmail, Jira, Trello and lots of other apps.

\n

Learn more at screentray.com

\n

Watch the demo video

\n

\"ScreenTray\"

\n
", "readmeOriginal": "

\"ScreenTray\"

\n

ScreenTray is a macOS application for capturing, annotating and sharing screenshots. Quickly add comments, highlight what matters or blur any sensitive content. Upload screenshots to Google Drive or Dropbox. Copy screenshots to the clipboard and paste them directly into Slack, WhatsApp, Facebook, Twitter, Gmail, Jira, Trello and lots of other apps.

\n

Learn more at screentray.com

\n

Watch the demo video

\n

\"ScreenTray\"

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.225Z" }, "seapig": { "readmeCleaned": "

SeaPig

\n

\"\"SeaPig is converter from markdown to html with marked.js and highlight.js.

\n

\"\"

\n

Usage

\n

SeaPig has two panes. Left pane is editor. Right pane is HTML previewer.

\n

When you input markdown, SeaPig refresh HTML preview.

\n

You can use GitHub Flavored Markdown.

\n

SeaPig has tool bar contains one drop down list and eight buttons.

\n

\"\"

\n

You can select key bindings from drop down list. (default/emacs/vim/sublime)

\n

Eight buttons has feature below.

\n\n

viz.js support

\n

When You write code block as graphviz language and write dot language, rendering graph image at svg as below.

\n
```graphviz\ndigraph g { a -> b; }\n```\n
\n

to

\n

\"\"

\n

uiflow support

\n

When You write code block as uiflow language and write uiflow language, rendering graph image at svg as below.

\n
```uiflow\n[top page]\nuser name\npassword\n--\nlogin\n==>mypage\n\n[mypage]\nfavorite list\n```\n
\n

to

\n

\"\"

\n

MathJax support (code block only)

\n
```math\nE=mc^2\n```\n
\n

to

\n

\"\"

\n

More example, test/mathjax.md

\n

mermaid support

\n

When You write code block as mermaid language and write mermaid language, rendering graph image at svg as below.

\n
```mermaid\nsequenceDiagram\n    participant main\n    participant renderer\n    participant previewer\n    main->>renderer: Open file\n    renderer->>previewer: Refresh preview\n```\n
\n

to

\n

\"\"

\n

For developers

\n

How to build

\n
$ git clone https://github.com/yasumichi/seapig.git\n$ cd seapig\n$ git submodule update -i\n$ npm install\n$ npm build-dep\n...\n
\n

How to lunch

\n
$ npm start\n
\n

How to package

\n
$ npm run package:win32\n
\n

How to package all (on Linux)

\n
$ ./build.sh\n
\n

ToDo

\n\n

Special Thanks

\n\n

License

\n

MIT (excludes photon, node_modules and icons)

\n

Copyright © 2016-2019 Yasumichi Akahoshi

\n

Icons copyright

\n\n

Copyright © いらすとや. All Rights Reserved.

\n
", "readmeOriginal": "

SeaPig

\n

\"\"SeaPig is converter from markdown to html with marked.js and highlight.js.

\n

\"\"

\n

Usage

\n

SeaPig has two panes. Left pane is editor. Right pane is HTML previewer.

\n

When you input markdown, SeaPig refresh HTML preview.

\n

You can use GitHub Flavored Markdown.

\n

SeaPig has tool bar contains one drop down list and eight buttons.

\n

\"\"

\n

You can select key bindings from drop down list. (default/emacs/vim/sublime)

\n

Eight buttons has feature below.

\n\n

viz.js support

\n

When You write code block as graphviz language and write dot language, rendering graph image at svg as below.

\n
```graphviz\ndigraph g { a -> b; }\n```\n
\n

to

\n

\"\"

\n

uiflow support

\n

When You write code block as uiflow language and write uiflow language, rendering graph image at svg as below.

\n
```uiflow\n[top page]\nuser name\npassword\n--\nlogin\n==>mypage\n\n[mypage]\nfavorite list\n```\n
\n

to

\n

\"\"

\n

MathJax support (code block only)

\n
```math\nE=mc^2\n```\n
\n

to

\n

\"\"

\n

More example, test/mathjax.md

\n

mermaid support

\n

When You write code block as mermaid language and write mermaid language, rendering graph image at svg as below.

\n
```mermaid\nsequenceDiagram\n    participant main\n    participant renderer\n    participant previewer\n    main->>renderer: Open file\n    renderer->>previewer: Refresh preview\n```\n
\n

to

\n

\"\"

\n

For developers

\n

How to build

\n
$ git clone https://github.com/yasumichi/seapig.git\n$ cd seapig\n$ git submodule update -i\n$ npm install\n$ npm build-dep\n...\n
\n

How to lunch

\n
$ npm start\n
\n

How to package

\n
$ npm run package:win32\n
\n

How to package all (on Linux)

\n
$ ./build.sh\n
\n

ToDo

\n\n

Special Thanks

\n\n

License

\n

MIT (excludes photon, node_modules and icons)

\n

Copyright © 2016-2019 Yasumichi Akahoshi

\n

Icons copyright

\n\n

Copyright © いらすとや. All Rights Reserved.

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.398Z" }, "seobrowse": { "readmeCleaned": "

SEOBrowse

\n

The world's first browser built for SEO

\n

SEOBrowse allows you to conduct accurate international SERP audits in our unique custom-built browser interface. SEOBrowse provides you with a guaranteed clean search environment to research, analysis and report on all aspects of the search results.

\n

Key features include:

\n\n

Google SERP checker

\n

SEOBrowse is a browser build around keyword research. Every search query is clean, proxied through a geo-specific VPN, and runs in a clean browser session giving you trustworthy accurate search results. This matches with what the majority of users see and what automatic rank checkers (ahrefs, semrush, moz) report. Every search has easy access to your specific city, state, country, language and device.

\n

Screenshots

\n

\"search\"\n\"browser\"

\n

Quick links: Download - Pricing

\n

Made by Ymedia Ventures BV

\n
", "readmeOriginal": "

SEOBrowse

\n

The world's first browser built for SEO

\n

SEOBrowse allows you to conduct accurate international SERP audits in our unique custom-built browser interface. SEOBrowse provides you with a guaranteed clean search environment to research, analysis and report on all aspects of the search results.

\n

Key features include:

\n\n

Google SERP checker

\n

SEOBrowse is a browser build around keyword research. Every search query is clean, proxied through a geo-specific VPN, and runs in a clean browser session giving you trustworthy accurate search results. This matches with what the majority of users see and what automatic rank checkers (ahrefs, semrush, moz) report. Every search has easy access to your specific city, state, country, language and device.

\n

Screenshots

\n

\"search\"\n\"browser\"

\n

Quick links: Download - Pricing

\n

Made by Ymedia Ventures BV

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.446Z" }, "scratch-for-discord": { "readmeCleaned": "

Scratch For Discord

\n

Scratch For Discord desktop app codebase.

\n

\"preview\"

\n

Features

\n\n

Structure

\n\n

Technologies

\n

Core

\n\n

Frontend

\n\n

is it free to use?

\n

Scratch For Discord is completely open-source and free to use.

\n
", "readmeOriginal": "

Scratch For Discord

\n

Scratch For Discord desktop app codebase.

\n

\"preview\"

\n

Features

\n\n

Structure

\n\n

Technologies

\n

Core

\n\n

Frontend

\n\n

is it free to use?

\n

Scratch For Discord is completely open-source and free to use.

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.470Z" }, "serina": { "readmeCleaned": "

Serina | GitHub page here

\n

\"Build\n\"License\"\n\"Built

\n
\n

GUI for create translation files for i18next

\n
\n

🖼 Preview (Serina R0.2.4)

\n

\"Serina

\n

💾 Download

\n

Serina can be downloaded here. Available versions for Linux, Windows (64bits) and Mac OS.

\n

To use, unzip in the desired location and execute Serina.

\n

If you need a different version, please follow the development instructions to make your own build from the source code

\n

📖 Usage

\n

Serina allows you to create translations for each language, you can access the different languages by clicking on their map in the languages list.

\n

Create translation for a language

\n

This page displays the list of languages and allows you to add a new language via a form using the ISO 639-1 language code. Example:\"FR\" or \"EN\".

\n

The display of the languages is available in two versions (card list or list) that can be set on the parameter page. The number of elements in a language is displayed under the name of the language.

\n

Edit translation

\n

This page displays the groups and translations of the first level of the translation and then recursively displays the sub-levels via access to a group allowing access to its content.

\n

Adding a group is done via a modal that allows you to enter the group name. The modification will also be done via a modal which will ask for the new name of the group. Deleting a group will ask for confirmation before deleting.

\n

The addition of a translation is done via a card added to the list of translations. The recording and deletion is done directly with the icons on the map.

\n

Changing a translation triggers a key or value change detection system to know whether to display the save button in order to have a good interface.

\n

Search

\n

A search bar represented by a magnifying glass is integrated in the toolbar. The research focuses on the \"keys\" of translations.\nThe first corresponding element will be selected to highlight it. And if several items match the search, a navigation between the corresponding items is displayed next to the search bar.

\n

Search is close if you navigate or delete a translation.

\n

Parallel edition of two languages

\n

Parallel entry of two languages is done via the \"swap\" (on the right-hand side of the groups and translations of the first level) comprising:\nthe main language (the one selected in the list of languages)\nthe second language that can be chosen from the other available languages.

\n

Then it is enough to validate and the second language is automatically added below each value of the main language. Parallel editing works exactly like simple language editing.

\n

Parameters

\n

The settings allow you to modify the app according to your preferences. A \"About\" section is also present to get details about the application.

\n

Basic parameters

\n\n

Advanced parameters

\n\n

Others parameters

\n\n

⁉️ FAQ

\n

Your language is not available in the app ?

\n

You can translate the application and submit your translation in PR. Or create issue.

\n

Your language doesn't have its flag displayed ?

\n

You can open a issue to explain your problem with a screenshot if possible.

\n

🔨 Development

\n

If you want to contribute to Serina, create a new different version of Serina, or compile it from source code, follow these instructions.

\n

Clone/download source code from the github repo. Make sure you have node, npm, yarn, bower already installed in your system:

\n
    \n
  1. yarn to install all the dependencies.
  2. \n
  3. yarn start to start API on localhost:7777.
  4. \n
  5. grunt serve to start Serina on localhost:9000.
  6. \n
  7. yarn run package to build serina for linux (build will be placed in packages folder).\n
      \n
    • grunt package to make builds for windows, linux and mac os.
    • \n
    • grunt package:win32 to make build for windows (64bits).
    • \n
    • grunt package:linux to make build for linux.
    • \n
    • grunt package:macos to make build for mac os (64bits).
    • \n
    \n
  8. \n
  9. grunt test to run the automated tests.\n
      \n
    • Please, ensure the tests are passing before creating a pull requests. Add tests for your changes.
    • \n
    \n
  10. \n
\n

👏Acknowledgments

\n\n

📖 License

\n

Serina is being developed and maintained as Open-Source software by @ORN-Fox (https://github.com/ORN-Fox) licensed under MIT LICENSE

\n

📝 Source Code

\n

The original source code can be found at: https://github.com/ORN-Fox/serina-1

\n
", "readmeOriginal": "

Serina | GitHub page here

\n

\"Build\n\"License\"\n\"Built

\n
\n

GUI for create translation files for i18next

\n
\n

🖼 Preview (Serina R0.2.4)

\n

\"Serina

\n

💾 Download

\n

Serina can be downloaded here. Available versions for Linux, Windows (64bits) and Mac OS.

\n

To use, unzip in the desired location and execute Serina.

\n

If you need a different version, please follow the development instructions to make your own build from the source code

\n

📖 Usage

\n

Serina allows you to create translations for each language, you can access the different languages by clicking on their map in the languages list.

\n

Create translation for a language

\n

This page displays the list of languages and allows you to add a new language via a form using the ISO 639-1 language code. Example:\"FR\" or \"EN\".

\n

The display of the languages is available in two versions (card list or list) that can be set on the parameter page. The number of elements in a language is displayed under the name of the language.

\n

Edit translation

\n

This page displays the groups and translations of the first level of the translation and then recursively displays the sub-levels via access to a group allowing access to its content.

\n

Adding a group is done via a modal that allows you to enter the group name. The modification will also be done via a modal which will ask for the new name of the group. Deleting a group will ask for confirmation before deleting.

\n

The addition of a translation is done via a card added to the list of translations. The recording and deletion is done directly with the icons on the map.

\n

Changing a translation triggers a key or value change detection system to know whether to display the save button in order to have a good interface.

\n

Search

\n

A search bar represented by a magnifying glass is integrated in the toolbar. The research focuses on the \"keys\" of translations.\nThe first corresponding element will be selected to highlight it. And if several items match the search, a navigation between the corresponding items is displayed next to the search bar.

\n

Search is close if you navigate or delete a translation.

\n

Parallel edition of two languages

\n

Parallel entry of two languages is done via the \"swap\" (on the right-hand side of the groups and translations of the first level) comprising:\nthe main language (the one selected in the list of languages)\nthe second language that can be chosen from the other available languages.

\n

Then it is enough to validate and the second language is automatically added below each value of the main language. Parallel editing works exactly like simple language editing.

\n

Parameters

\n

The settings allow you to modify the app according to your preferences. A \"About\" section is also present to get details about the application.

\n

Basic parameters

\n\n

Advanced parameters

\n\n

Others parameters

\n\n

⁉️ FAQ

\n

Your language is not available in the app ?

\n

You can translate the application and submit your translation in PR. Or create issue.

\n

Your language doesn't have its flag displayed ?

\n

You can open a issue to explain your problem with a screenshot if possible.

\n

🔨 Development

\n

If you want to contribute to Serina, create a new different version of Serina, or compile it from source code, follow these instructions.

\n

Clone/download source code from the github repo. Make sure you have node, npm, yarn, bower already installed in your system:

\n
    \n
  1. yarn to install all the dependencies.
  2. \n
  3. yarn start to start API on localhost:7777.
  4. \n
  5. grunt serve to start Serina on localhost:9000.
  6. \n
  7. yarn run package to build serina for linux (build will be placed in packages folder).\n
      \n
    • grunt package to make builds for windows, linux and mac os.
    • \n
    • grunt package:win32 to make build for windows (64bits).
    • \n
    • grunt package:linux to make build for linux.
    • \n
    • grunt package:macos to make build for mac os (64bits).
    • \n
    \n
  8. \n
  9. grunt test to run the automated tests.\n
      \n
    • Please, ensure the tests are passing before creating a pull requests. Add tests for your changes.
    • \n
    \n
  10. \n
\n

👏Acknowledgments

\n\n

📖 License

\n

Serina is being developed and maintained as Open-Source software by @ORN-Fox (https://github.com/ORN-Fox) licensed under MIT LICENSE

\n

📝 Source Code

\n

The original source code can be found at: https://github.com/ORN-Fox/serina-1

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.537Z" }, "ses": { "readmeCleaned": "

\n \n

Ses

\n

Open-source Sonos speaker controller for macOS

\n

Download the latest version

\n

\n

\"screenshot\"

\n

Alternatively, you can clone the repository and build the app on your own by running npm run build and npm run dist commands consecutively.

\n

Features

\n

Ses helps you to control your Sonos speakers from the system tray / menu bar easily.

\n

It is built with web technologies (Electron & React) and has the following features:

\n\n
", "readmeOriginal": "

\n \n

Ses

\n

Open-source Sonos speaker controller for macOS

\n

Download the latest version

\n

\n

\"screenshot\"

\n

Alternatively, you can clone the repository and build the app on your own by running npm run build and npm run dist commands consecutively.

\n

Features

\n

Ses helps you to control your Sonos speakers from the system tray / menu bar easily.

\n

It is built with web technologies (Electron & React) and has the following features:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:07.662Z" }, "shadowsocks-electron": { "readmeCleaned": "

\"GitHub \"Lines \"GitHub\"

\n

\"GitHub \"GitHub

\n

Shadowsocks Electron

\n
\n

Test on Ubuntu20.4/21.04/22.04 (amd64) ● MacOS catalina (x64) ● Windows 10/11 (x64)

\n
\n

Shadowsocks GUI client with cross-platform desktop support powered by Electron⚛️, made specially for Linux / Windows users.

\n

Features

\n

➣ Supported

\n\n

➣ In Testing

\n\n

➣ Comming Soon

\n\n

Supported Platforms & Arch

\n

\"system\"

\n
\n

More architecture will be supported if necessary, just give me an issue.

\n
\n\n

Screenshots

\n

Main Page

\n

\"main.png\"

\n

Dark Mode

\n

\"dark.png\"

\n

Fixed Menu

\n

\"fixed_menu.png\"

\n

Server Add

\n

\"add.png\"

\n

Context Menu

\n

\"context_menu.png\"

\n

Server Edit

\n

\"edit.png\"

\n

Server Share

\n

\"share.png\"

\n

Downloads

\n\n

Plugins Downloads

\n
\n

not necessary, just for some advanced users.

\n
\n\n

Why?

\n\n

This project was heavily inspired by shadowsocks/ShadowsocksX-NG, which uses local Shadowsocks-libev binary to avoid complex integration with native C code. This means it can always use the latest Shadowsocks-libev version.

\n

It also uses Electron to bring the most powerful cross-platform desktop support with great developing experience.

\n

Development

\n

1. Env

\n\n

2. Prepare

\n
\n

The step is not necessary, there are some buildin ssr/ss executable files provided in bin dir, Only do this when you want to use external bin for test/dev.

\n
\n\n
\nexport HTTP_PROXY=http://127.0.0.1:\">
# for ubuntu developers\n$: sudo apt install shadowsocks-libev\n$: sudo snap install multipass\n# for mac developers\n$: brew install shadowsocks-libev\n\n# proxy env set (if your local machine support)\nexport HTTPS_PROXY=http://127.0.0.1:<port>\nexport HTTP_PROXY=http://127.0.0.1:<port>
\n

3. Run commands in terminal

\n
# [01]clone\n$: git clone https://github.com/nojsja/shadowsocks-electron.git\n$: cd shadowsocks-electron\n\n# for china developers\n$: npm config set electron_custom_dir \"13.4.0\"\n$: npm config set electron_mirror http://npm.taobao.org/mirrors/electron/\n\n# [02]npm\n$: npm i -g yarn\n$: npm i\n\n# [03]run scripts/download.js for env prepare\n$: cd scripts\n$: node download.js\n\n# for ubuntu developers\n$: cp pac/gfwlist.txt ~/.config/shadowsocks-electron/pac/\n# for mac developers\n$: cp pac/gfwlist.txt ~/Library/Application\\ Support/shadowsocks-electron/pac/\n\n# [04]start\n$: npm start
\n

Mention

\n
\n

The repo is cloned from robertying/shadowsocks-electron which is no longer maintained. I create a new repo based on that in order to be found in github search list.

\n
\n

Credit

\n\n
", "readmeOriginal": "

\"GitHub \"Lines \"GitHub\"

\n

\"GitHub \"GitHub

\n

Shadowsocks Electron

\n
\n

Test on Ubuntu20.4/21.04/22.04 (amd64) ● MacOS catalina (x64) ● Windows 10/11 (x64)

\n
\n

Shadowsocks GUI client with cross-platform desktop support powered by Electron⚛️, made specially for Linux / Windows users.

\n

Features

\n

➣ Supported

\n\n

➣ In Testing

\n\n

➣ Comming Soon

\n\n

Supported Platforms & Arch

\n

\"system\"

\n
\n

More architecture will be supported if necessary, just give me an issue.

\n
\n\n

Screenshots

\n

Main Page

\n

\"main.png\"

\n

Dark Mode

\n

\"dark.png\"

\n

Fixed Menu

\n

\"fixed_menu.png\"

\n

Server Add

\n

\"add.png\"

\n

Context Menu

\n

\"context_menu.png\"

\n

Server Edit

\n

\"edit.png\"

\n

Server Share

\n

\"share.png\"

\n

Downloads

\n\n

Plugins Downloads

\n
\n

not necessary, just for some advanced users.

\n
\n\n

Why?

\n\n

This project was heavily inspired by shadowsocks/ShadowsocksX-NG, which uses local Shadowsocks-libev binary to avoid complex integration with native C code. This means it can always use the latest Shadowsocks-libev version.

\n

It also uses Electron to bring the most powerful cross-platform desktop support with great developing experience.

\n

Development

\n

1. Env

\n\n

2. Prepare

\n
\n

The step is not necessary, there are some buildin ssr/ss executable files provided in bin dir, Only do this when you want to use external bin for test/dev.

\n
\n\n
# for ubuntu developers\n$: sudo apt install shadowsocks-libev\n$: sudo snap install multipass\n# for mac developers\n$: brew install shadowsocks-libev\n\n# proxy env set (if your local machine support)\nexport HTTPS_PROXY=http://127.0.0.1:<port>\nexport HTTP_PROXY=http://127.0.0.1:<port>
\n

3. Run commands in terminal

\n
# [01]clone\n$: git clone https://github.com/nojsja/shadowsocks-electron.git\n$: cd shadowsocks-electron\n\n# for china developers\n$: npm config set electron_custom_dir \"13.4.0\"\n$: npm config set electron_mirror http://npm.taobao.org/mirrors/electron/\n\n# [02]npm\n$: npm i -g yarn\n$: npm i\n\n# [03]run scripts/download.js for env prepare\n$: cd scripts\n$: node download.js\n\n# for ubuntu developers\n$: cp pac/gfwlist.txt ~/.config/shadowsocks-electron/pac/\n# for mac developers\n$: cp pac/gfwlist.txt ~/Library/Application\\ Support/shadowsocks-electron/pac/\n\n# [04]start\n$: npm start
\n

Mention

\n
\n

The repo is cloned from robertying/shadowsocks-electron which is no longer maintained. I create a new repo based on that in order to be found in github search list.

\n
\n

Credit

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:07.680Z" }, "shuttle": { "readmeCleaned": "
\n
\n \"Shuttle\"\n
\n
\n
\n

\n The fastest access to your favorite applications.
\n

\n
\n \n \"Known\n \n \n \"build\" \n \n

\n

Installation

\n

TO DO

\n

Using git / Development

\n

Before, be sure to have node and golang installed !

\n
# clone the repository\n$ git clone https://github.com/ShuttleBrowser/Shuttle.git\n\n# change the working directory to shuttle\n$ cd Shuttle\n$ go mod tidy\n\n# install the requirements\n$ cd view\n$ npm install\n\n# Run dev\n$ npm run build && go run ../main.go\n
\n

Getting Started

\n

TO DO

\n

Built With

\n\n

Authors

\n\n

Many thanks to @echebbi, @Vahelnir and @TheRolf who accompanied us throughout the adventure.

\n

See also the list of contributors who participated in this project.

\n

License

\n

This project is licensed under the NPOSL 3.0 License.
\nThe logo and all associated visuals are under the CC BY-NC-ND 3.0 License.

\n
", "readmeOriginal": "
\n
\n \"Shuttle\"\n
\n
\n
\n

\n The fastest access to your favorite applications.
\n

\n
\n \n \"Known\n \n \n \"build\" \n \n

\n

Installation

\n

TO DO

\n

Using git / Development

\n

Before, be sure to have node and golang installed !

\n
# clone the repository\n$ git clone https://github.com/ShuttleBrowser/Shuttle.git\n\n# change the working directory to shuttle\n$ cd Shuttle\n$ go mod tidy\n\n# install the requirements\n$ cd view\n$ npm install\n\n# Run dev\n$ npm run build && go run ../main.go\n
\n

Getting Started

\n

TO DO

\n

Built With

\n\n

Authors

\n\n

Many thanks to @echebbi, @Vahelnir and @TheRolf who accompanied us throughout the adventure.

\n

See also the list of contributors who participated in this project.

\n

License

\n

This project is licensed under the NPOSL 3.0 License.
\nThe logo and all associated visuals are under the CC BY-NC-ND 3.0 License.

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.696Z" }, "signal": { "readmeCleaned": "
\n\n

Signal Desktop

\n

Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.

\n

Install the production version or help us out by installing the beta version.

\n

Got a question?

\n

You can find answers to a number of frequently asked questions on our support site.\nThe community forum is another good place for questions.

\n

Found a Bug?

\n

Please search for any existing issues that describe your bug in order to avoid duplicate submissions.

\n

Have a feature request, question, comment?

\n

Please use our community forum: https://community.signalusers.org/

\n

Contributing Translations

\n

Interested in helping to translate Signal? Contribute here:

\n

https://www.transifex.com/projects/p/signal-desktop

\n

Contributing Code

\n

Please see CONTRIBUTING.md\nfor setup instructions and guidelines for new contributors. Don't forget to sign the CLA.

\n

Contributing Funds

\n

You can donate to Signal development through the Signal Technology Foundation, an independent 501c3 nonprofit.

\n

Cryptography Notice

\n

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software.\nBEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.\nSee http://www.wassenaar.org/ for more information.

\n

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms.\nThe form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

\n

License

\n

Copyright 2013–2022 Signal, a 501c3 nonprofit

\n

Licensed under the AGPLv3: https://opensource.org/licenses/agpl-3.0

\n
", "readmeOriginal": "
\n\n

Signal Desktop

\n

Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.

\n

Install the production version or help us out by installing the beta version.

\n

Got a question?

\n

You can find answers to a number of frequently asked questions on our support site.\nThe community forum is another good place for questions.

\n

Found a Bug?

\n

Please search for any existing issues that describe your bug in order to avoid duplicate submissions.

\n

Have a feature request, question, comment?

\n

Please use our community forum: https://community.signalusers.org/

\n

Contributing Translations

\n

Interested in helping to translate Signal? Contribute here:

\n

https://www.transifex.com/projects/p/signal-desktop

\n

Contributing Code

\n

Please see CONTRIBUTING.md\nfor setup instructions and guidelines for new contributors. Don't forget to sign the CLA.

\n

Contributing Funds

\n

You can donate to Signal development through the Signal Technology Foundation, an independent 501c3 nonprofit.

\n

Cryptography Notice

\n

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software.\nBEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.\nSee http://www.wassenaar.org/ for more information.

\n

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms.\nThe form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

\n

License

\n

Copyright 2013–2022 Signal, a 501c3 nonprofit

\n

Licensed under the AGPLv3: https://opensource.org/licenses/agpl-3.0

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.759Z" }, "silex": { "readmeCleaned": "

Silex desktop

\n

This is the official Silex desktop version, an installable application for Windows, MacOS and linux.

\n

\"Silex

\n

We are looking for someone to create the releases every 2 months, and for testers to test each new version on Windows and MacOS and linux after each release, please apply here

\n

Support and documentation

\n

Please use the mother project's Silex issues and Silex documentation

\n

Instructions

\n

Go ahead and download the version for your system here

\n

Windows

\n

Download the .exe and double click it to start Silex.

\n

Mac

\n
    \n
  1. Download the .dmg
  2. \n
  3. Double click the .dmg file
  4. \n
  5. Drag and drop Silex icon to the Application folder
  6. \n
\n

The first time you want to open Silex:

\n
    \n
  1. Go to your Application folder
  2. \n
  3. Right-click silex app and select \"open\"
  4. \n
  5. Accept \"the risk\" in the security dialog
  6. \n
  7. Silex will show up
  8. \n
\n

The next time you want to open Silex, just click on Silex in your apps.

\n

Linux

\n

Downolad the .AppImage, make it executable (chmod +x the file) and run it.

\n

Note: in order to have the \"thumbnails\" in cloud explorer, you may need libvips-dev installed (apt install libvips-dev or dnf install vips-devel) and/or glib2.0-dev installed (apt install glib2.0-dev or dnf install glib-devel)

\n

Release a new version

\n

For developers, here is how to create a new release for the latest version of Silex

\n
$ npm version patch\n$ git push origin master --follow-tags\n
\n
", "readmeOriginal": "

Silex desktop

\n

This is the official Silex desktop version, an installable application for Windows, MacOS and linux.

\n

\"Silex

\n

We are looking for someone to create the releases every 2 months, and for testers to test each new version on Windows and MacOS and linux after each release, please apply here

\n

Support and documentation

\n

Please use the mother project's Silex issues and Silex documentation

\n

Instructions

\n

Go ahead and download the version for your system here

\n

Windows

\n

Download the .exe and double click it to start Silex.

\n

Mac

\n
    \n
  1. Download the .dmg
  2. \n
  3. Double click the .dmg file
  4. \n
  5. Drag and drop Silex icon to the Application folder
  6. \n
\n

The first time you want to open Silex:

\n
    \n
  1. Go to your Application folder
  2. \n
  3. Right-click silex app and select \"open\"
  4. \n
  5. Accept \"the risk\" in the security dialog
  6. \n
  7. Silex will show up
  8. \n
\n

The next time you want to open Silex, just click on Silex in your apps.

\n

Linux

\n

Downolad the .AppImage, make it executable (chmod +x the file) and run it.

\n

Note: in order to have the \"thumbnails\" in cloud explorer, you may need libvips-dev installed (apt install libvips-dev or dnf install vips-devel) and/or glib2.0-dev installed (apt install glib2.0-dev or dnf install glib-devel)

\n

Release a new version

\n

For developers, here is how to create a new release for the latest version of Silex

\n
$ npm version patch\n$ git push origin master --follow-tags\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:07.885Z" }, "simple-finder": { "readmeCleaned": "

Simple-Finder

\n

First of all, I would like to thank GitHub Desktop and Jeff Galbraith.

\n

This application is a basic function of file finder. The purpose of this application is to see the basic functions and possibilities of Electron through a relatively simple project.

\n

I hope many people can learn the function of Electron easily through the source of this project.

\n

\"ex_screenshot1\"

\n

Functions and Features

\n

Top feature: Local System File Explorer (Windows 10 only)

\n\n

Learning Point

\n\n

I Hope. After analyzing this source, you will be able to create your own cool application.

\n

Development environment Summary

\n

I started development with vue-cli-plugin-electron-builder. and ,

\n
os: windows 10\nnode: 12.18.3\nelectron: ^9.0.0\nvue: ^2.6.11\nvuetify\": ^2.2.11\neslint: ^6.7.2\n
\n

Installation

\n

Download the latest release from the releases page Or Clone git Repository.

\n
// if you clone this git repository\n\nnpm install\nnpm run electron:serve  <-- DEV MODE\nnpm run electron:build  <-- BUILD MODE\n
\n

More screenshot

\n

inder_sample_01
\ninder_sample_02
\ninder_sample_03

\n

Thanks once again

\n
    \n
  1. The main design of this application was brought from GitHub Desktop.
  2. \n
  3. The basic idea of this application came from Jeff Galbraith.
  4. \n
  5. Main Icon By Freepik from www.flaticon.com
  6. \n
\n

At the end

\n

Sorry that my english 😝

\n
", "readmeOriginal": "

Simple-Finder

\n

First of all, I would like to thank GitHub Desktop and Jeff Galbraith.

\n

This application is a basic function of file finder. The purpose of this application is to see the basic functions and possibilities of Electron through a relatively simple project.

\n

I hope many people can learn the function of Electron easily through the source of this project.

\n

\"ex_screenshot1\"

\n

Functions and Features

\n

Top feature: Local System File Explorer (Windows 10 only)

\n\n

Learning Point

\n\n

I Hope. After analyzing this source, you will be able to create your own cool application.

\n

Development environment Summary

\n

I started development with vue-cli-plugin-electron-builder. and ,

\n
os: windows 10\nnode: 12.18.3\nelectron: ^9.0.0\nvue: ^2.6.11\nvuetify\": ^2.2.11\neslint: ^6.7.2\n
\n

Installation

\n

Download the latest release from the releases page Or Clone git Repository.

\n
// if you clone this git repository\n\nnpm install\nnpm run electron:serve  <-- DEV MODE\nnpm run electron:build  <-- BUILD MODE\n
\n

More screenshot

\n

inder_sample_01
\ninder_sample_02
\ninder_sample_03

\n

Thanks once again

\n
    \n
  1. The main design of this application was brought from GitHub Desktop.
  2. \n
  3. The basic idea of this application came from Jeff Galbraith.
  4. \n
  5. Main Icon By Freepik from www.flaticon.com
  6. \n
\n

At the end

\n

Sorry that my english 😝

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.891Z" }, "simplenote": { "readmeCleaned": "

Simplenote for Electron

\n

\"Screenshot\"

\n

A Simplenote React client packaged in Electron. Learn more about Simplenote at Simplenote.com.

\n

Running

\n
    \n
  1. Clone the repo: git clone https://github.com/Automattic/simplenote-electron.git
  2. \n
  3. cd simplenote-electron
  4. \n
  5. npm install
  6. \n
  7. npm run dev
  8. \n
  9. The dev server will start on http://localhost:4000, and the Electron app will launch automatically.
  10. \n
  11. For all logging from Electron to be printed to the terminal (e.g. console.log statements within app.js), you might need to set env ELECTRON_ENABLE_LOGGING=1.
  12. \n
  13. Sign up for a new account within the app. Use the account for testing purposes only as all note data will be periodically cleared out on the server.
  14. \n
\n

Note: Simplenote API features such as sharing and publishing will not work with development builds. Due to a limitation of make installation paths used for build cannot have spaces.

\n

Building

\n\n

Testing

\n

Unit tests are run with npm test.

\n

End-to-end tests are run with npm run test-e2e.\nNote that the Spectron version corresponds with the version of Electron we are using.\nUse the corresponding API docs for webdriver-io which correspond to the Spectron version.\nAt the time of writing you will want to refer to the webdriver-io v4.13 API docs.

\n

Coding Guidelines

\n

Please adhere to the same guidelines as found in wp-calypso.

\n

See CONTRIBUTING.md for more guidelines.

\n

Dependencies

\n\n

Simplenote for Other Platforms

\n

simplenote-electron is the official Simplenote desktop app for Windows and Linux.

\n

For other platforms, see:

\n\n
", "readmeOriginal": "

Simplenote for Electron

\n

\"Screenshot\"

\n

A Simplenote React client packaged in Electron. Learn more about Simplenote at Simplenote.com.

\n

Running

\n
    \n
  1. Clone the repo: git clone https://github.com/Automattic/simplenote-electron.git
  2. \n
  3. cd simplenote-electron
  4. \n
  5. npm install
  6. \n
  7. npm run dev
  8. \n
  9. The dev server will start on http://localhost:4000, and the Electron app will launch automatically.
  10. \n
  11. For all logging from Electron to be printed to the terminal (e.g. console.log statements within app.js), you might need to set env ELECTRON_ENABLE_LOGGING=1.
  12. \n
  13. Sign up for a new account within the app. Use the account for testing purposes only as all note data will be periodically cleared out on the server.
  14. \n
\n

Note: Simplenote API features such as sharing and publishing will not work with development builds. Due to a limitation of make installation paths used for build cannot have spaces.

\n

Building

\n\n

Testing

\n

Unit tests are run with npm test.

\n

End-to-end tests are run with npm run test-e2e.\nNote that the Spectron version corresponds with the version of Electron we are using.\nUse the corresponding API docs for webdriver-io which correspond to the Spectron version.\nAt the time of writing you will want to refer to the webdriver-io v4.13 API docs.

\n

Coding Guidelines

\n

Please adhere to the same guidelines as found in wp-calypso.

\n

See CONTRIBUTING.md for more guidelines.

\n

Dependencies

\n\n

Simplenote for Other Platforms

\n

simplenote-electron is the official Simplenote desktop app for Windows and Linux.

\n

For other platforms, see:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:07.958Z" }, "simpleinstabot": { "readmeCleaned": "

SimpleInstaBot 🤖

\n

Use a robot to attract more followers. Now as a simple desktop app!

\n

\"Demo\"

\n

How does it work?

\n

It runs as a desktop application on your computer and will every day follow up to 150 users (configurable). You choose a list of instagram users whose market you want to target. The bot navigates to each of these, finds the last people to have followed them and then follows each of them. Then after 5 days (also configurable), it will unfollow the users. Simple and effective.

\n

The bot will remember every user it has followed, so if you quit the app and open it later, it will still clean up by unfollowing users that it previously followed.

\n

You can find logs and data in your the \"App Data\" folder. See userData. For example on Mac OS:

\n
Library/Application\\ Support/SimpleInstaBot/followed.json\n
\n

Features

\n

What makes it different from other bots?

\n\n

Download

\n\n

NOTE: After installing you may need to bypass \"Untrusted app\" dialogs. This is because Microsoft requires a costly certificate to remove this dialog (I'm not going to pay for that.) Alternatively try to google windows run untrusted app.

\n

A word of warning

\n

Many people are getting Action Blocked message these days with this bot as well as other bots (it seems even people just manually following using the app) Instagram is tightening their rules by not allowing promiscuous behavior like following and liking strangers' photos as much as before, and imposing temp blocks when they think you crossed the limit.

\n

You use this app at your own risk! I have had great success with this app but I am not responsible for any consequences it may have for your Instagram account.

\n

Tips to avoid ban

\n

I advise you to follow these guidelines:

\n\n

API / programmatic bot

\n

SimpleInstaBot is built on instauto - you can instead use that if you want to program your own headless bot.

\n

How to run on Raspberry PI

\n
# SSH into your PI\nssh pi@ip.of.pi\n\n# Download the Raspberry Pi binary\nwget https://github.com/mifi/SimpleInstaBot/releases/latest/download/SimpleInstaBot-linux-armv7l.tar.bz2\n\n# Extract it\ntar xvf SimpleInstaBot-linux-armv7l.tar.bz2\ncd SimpleInstaBot-linux-armv7l\n\n# run it\nDISPLAY=:0 ./simpleinstabot\n\n# or:\nDISPLAY=:0 ./simpleinstabot --no-sandbox
\n

Troubleshooting

\n\n

FAQ

\n\n

Donate 🙈

\n

This project is maintained by me alone. The project will always remain free and open source, but if it's useful for you, consider supporting me. :) It will give me extra motivation to improve it.

\n

Paypal | crypto

\n

Credits

\n

Animations by:

\n\n

Icons made by Freepik from www.flaticon.com

\n

See also

\n\n

Releasing

\n
npm version patch\ngit push && git push --tags\n
\n

Wait for github actions and go to https://github.com/mifi/SimpleInstaBot/releases

\n
\n

Made with ❤️ in 🇳🇴

\n

More apps by mifi.no

\n

Follow me on GitHub, YouTube, IG, Twitter for more awesome content!

\n
", "readmeOriginal": "

SimpleInstaBot 🤖

\n

Use a robot to attract more followers. Now as a simple desktop app!

\n

\"Demo\"

\n

How does it work?

\n

It runs as a desktop application on your computer and will every day follow up to 150 users (configurable). You choose a list of instagram users whose market you want to target. The bot navigates to each of these, finds the last people to have followed them and then follows each of them. Then after 5 days (also configurable), it will unfollow the users. Simple and effective.

\n

The bot will remember every user it has followed, so if you quit the app and open it later, it will still clean up by unfollowing users that it previously followed.

\n

You can find logs and data in your the \"App Data\" folder. See userData. For example on Mac OS:

\n
Library/Application\\ Support/SimpleInstaBot/followed.json\n
\n

Features

\n

What makes it different from other bots?

\n\n

Download

\n\n

NOTE: After installing you may need to bypass \"Untrusted app\" dialogs. This is because Microsoft requires a costly certificate to remove this dialog (I'm not going to pay for that.) Alternatively try to google windows run untrusted app.

\n

A word of warning

\n

Many people are getting Action Blocked message these days with this bot as well as other bots (it seems even people just manually following using the app) Instagram is tightening their rules by not allowing promiscuous behavior like following and liking strangers' photos as much as before, and imposing temp blocks when they think you crossed the limit.

\n

You use this app at your own risk! I have had great success with this app but I am not responsible for any consequences it may have for your Instagram account.

\n

Tips to avoid ban

\n

I advise you to follow these guidelines:

\n\n

API / programmatic bot

\n

SimpleInstaBot is built on instauto - you can instead use that if you want to program your own headless bot.

\n

How to run on Raspberry PI

\n
# SSH into your PI\nssh pi@ip.of.pi\n\n# Download the Raspberry Pi binary\nwget https://github.com/mifi/SimpleInstaBot/releases/latest/download/SimpleInstaBot-linux-armv7l.tar.bz2\n\n# Extract it\ntar xvf SimpleInstaBot-linux-armv7l.tar.bz2\ncd SimpleInstaBot-linux-armv7l\n\n# run it\nDISPLAY=:0 ./simpleinstabot\n\n# or:\nDISPLAY=:0 ./simpleinstabot --no-sandbox
\n

Troubleshooting

\n\n

FAQ

\n\n

Donate 🙈

\n

This project is maintained by me alone. The project will always remain free and open source, but if it's useful for you, consider supporting me. :) It will give me extra motivation to improve it.

\n

Paypal | crypto

\n

Credits

\n

Animations by:

\n\n

Icons made by Freepik from www.flaticon.com

\n

See also

\n\n

Releasing

\n
npm version patch\ngit push && git push --tags\n
\n

Wait for github actions and go to https://github.com/mifi/SimpleInstaBot/releases

\n
\n

Made with ❤️ in 🇳🇴

\n

More apps by mifi.no

\n

Follow me on GitHub, YouTube, IG, Twitter for more awesome content!

\n
", "readmeFetchedAt": "2022-05-10T00:08:07.978Z" }, "singlebox": { "readmeCleaned": "

Neutron \"License: \"macOS

\n

Archived

\n

This repository is archived. To help us better improve the product and protect our intellectual assets, the development has been moved to Photon, a new core with closed source code base.

\n

Introduction

\n

The source code of the Neutron - the core that powers:

\n\n

Development

\n
# clone the project:\ngit clone https://github.com/webcatalog/neutron.git\ncd neutron
\n

For the app to be fully functional, set these environment variables:

\n
ELECTRON_APP_SENTRY_DSN=\nELECTRON_APP_GOOGLE_API_KEY=\nREACT_APP_AMPLITUDE_API_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_SEARCH_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_API_ENDPOINT=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_ENGINE_NAME=\n
\n

Modify public/app.json to change template app configuration. For example:

\n
{\n  \"id\": \"gmail\",\n  \"name\": \"Gmail\",\n  \"url\": \"https://mail.google.com\"\n}
\n\n

Distribution

\n

Release as/for:

\n\n
", "readmeOriginal": "

Neutron \"License: \"macOS

\n

Archived

\n

This repository is archived. To help us better improve the product and protect our intellectual assets, the development has been moved to Photon, a new core with closed source code base.

\n

Introduction

\n

The source code of the Neutron - the core that powers:

\n\n

Development

\n
# clone the project:\ngit clone https://github.com/webcatalog/neutron.git\ncd neutron
\n

For the app to be fully functional, set these environment variables:

\n
ELECTRON_APP_SENTRY_DSN=\nELECTRON_APP_GOOGLE_API_KEY=\nREACT_APP_AMPLITUDE_API_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_SEARCH_KEY=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_API_ENDPOINT=\nREACT_APP_ELASTIC_CLOUD_APP_SEARCH_ENGINE_NAME=\n
\n

Modify public/app.json to change template app configuration. For example:

\n
{\n  \"id\": \"gmail\",\n  \"name\": \"Gmail\",\n  \"url\": \"https://mail.google.com\"\n}
\n\n

Distribution

\n

Release as/for:

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:08.088Z" }, "sleek": { "readmeCleaned": "

sleek

\n

sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. It's available for Windows, MacOS and Linux

\n\n

sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. Stripped down to only the most necessary features, and with a clean and simple interface, sleek aims to help you focus on getting things done.

\n

All classic todo.txt attributes are supported and enhanced by additional features. Creating todos is straightforward, and tag-based filtering in tandem with highly customisable grouping and smart full-text search allow for rapid information retrieval. Completed todos can be hidden or archived into separate done.txt files. Easy integration with other todo.txt apps is facilitated by continuously scanning todo.txt files for changes.

\n

sleek is available for Windows, MacOS and Linux, and in several languages. For a detailed list of features, see below.

\n

Screenshots

\n

\"Alt\n\"Alt

\n

sleeks state of development

\n

A prioritized backlog of new features and known issues as well as an overview on what is being worked on at the moment can be found here.

\n

Support sleek

\n\n

Get sleek from Apple Mac App Store

\n

\"Get

\n

Get sleek from Microsoft Store

\n

\"English

\n

Get sleek from Snap Store

\n

\"Get

\n

Install sleek from Snap Store using: sudo snap install sleek

\n

Get sleek from Flathub

\n

\"Download

\n

Install sleek from Flathub using: flatpak install flathub com.github.ransome1.sleek

\n

Run it using: flatpak run com.github.ransome1.sleek

\n

Get sleek from Homebrew

\n

Install sleek from Homebrew.\nbrew install --cask sleek

\n

Get sleek from Arch User Repository

\n

Install sleek from AUR.

\n
    \n
  1. Setup Yay
  2. \n
  3. yay -S sleek
  4. \n
\n

Download sleek

\n

You can download sleek for Windows, MacOS and Linux from

\n\n

Build sleek from source code

\n
    \n
  1. Setup Git, node.js and yarn.
  2. \n
  3. Clone sleek git clone https://github.com/ransome1/sleek.git and cd into sleeks directory
  4. \n
  5. Install dependencies yarn install --production
  6. \n
  7. Build sleek yarn build:windows or yarn build:linux or yarn build:macos
  8. \n
\n

Features

\n\n

A more detailed documentation can be found in sleeks wiki.

\n

Used libraries

\n\n
", "readmeOriginal": "

sleek

\n

sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. It's available for Windows, MacOS and Linux

\n\n

sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. Stripped down to only the most necessary features, and with a clean and simple interface, sleek aims to help you focus on getting things done.

\n

All classic todo.txt attributes are supported and enhanced by additional features. Creating todos is straightforward, and tag-based filtering in tandem with highly customisable grouping and smart full-text search allow for rapid information retrieval. Completed todos can be hidden or archived into separate done.txt files. Easy integration with other todo.txt apps is facilitated by continuously scanning todo.txt files for changes.

\n

sleek is available for Windows, MacOS and Linux, and in several languages. For a detailed list of features, see below.

\n

Screenshots

\n

\"Alt\n\"Alt

\n

sleeks state of development

\n

A prioritized backlog of new features and known issues as well as an overview on what is being worked on at the moment can be found here.

\n

Support sleek

\n\n

Get sleek from Apple Mac App Store

\n

\"Get

\n

Get sleek from Microsoft Store

\n

\"English

\n

Get sleek from Snap Store

\n

\"Get

\n

Install sleek from Snap Store using: sudo snap install sleek

\n

Get sleek from Flathub

\n

\"Download

\n

Install sleek from Flathub using: flatpak install flathub com.github.ransome1.sleek

\n

Run it using: flatpak run com.github.ransome1.sleek

\n

Get sleek from Homebrew

\n

Install sleek from Homebrew.\nbrew install --cask sleek

\n

Get sleek from Arch User Repository

\n

Install sleek from AUR.

\n
    \n
  1. Setup Yay
  2. \n
  3. yay -S sleek
  4. \n
\n

Download sleek

\n

You can download sleek for Windows, MacOS and Linux from

\n\n

Build sleek from source code

\n
    \n
  1. Setup Git, node.js and yarn.
  2. \n
  3. Clone sleek git clone https://github.com/ransome1/sleek.git and cd into sleeks directory
  4. \n
  5. Install dependencies yarn install --production
  6. \n
  7. Build sleek yarn build:windows or yarn build:linux or yarn build:macos
  8. \n
\n

Features

\n\n

A more detailed documentation can be found in sleeks wiki.

\n

Used libraries

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:08.134Z" }, "snailfm": { "readmeCleaned": "

SnailFM

\n

\"Snap\"\nSnailFM is a radio station by the SnailDOS community.\nYou can easily tune into SnailFM with this software.\nSnailFM is a online radiostation, with no copyright music. It has no lyrics, so it's great for background music, or just studying or even coding!\nSnailFM is fast free and secure!\nFor linux installation, follow the guide below.

\n

INSTALLATION

\n

Follow the WIKI!\nhttps://github.com/snaildos/SnailFM-Application/wiki/Installation

\n

Building by source

\n

You can easily build SnailFM. I recommend linux.\nyarn\nyarn start\nthen building can be:\nyarn build (linux only)

\n

Contributing

\n

Feel free to contribute! Fork, commit, PR!

\n

\"FOSSA

\n
", "readmeOriginal": "

SnailFM

\n

\"Snap\"\nSnailFM is a radio station by the SnailDOS community.\nYou can easily tune into SnailFM with this software.\nSnailFM is a online radiostation, with no copyright music. It has no lyrics, so it's great for background music, or just studying or even coding!\nSnailFM is fast free and secure!\nFor linux installation, follow the guide below.

\n

INSTALLATION

\n

Follow the WIKI!\nhttps://github.com/snaildos/SnailFM-Application/wiki/Installation

\n

Building by source

\n

You can easily build SnailFM. I recommend linux.\nyarn\nyarn start\nthen building can be:\nyarn build (linux only)

\n

Contributing

\n

Feel free to contribute! Fork, commit, PR!

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.194Z" }, "snipcommand": { "readmeCleaned": "

SnipCommand

\n

A free and open source command snippets manager for organize and copy fast.

\n

\n \n

\n

\n \"GitHub\n \"GitHub\"\n

\n

\n \n

\n

\n Built with Electron & React
\n Built for Windows, macOS and Linux\n

\n

Overview

\n

\n \n

\n

It helps you create, organize and store your commands (Excel formulas, Sql Queries, Terminal commands, etc.) with dynamic parameters for quick copy to it. Describe your commands with dynamic parameters also support documentation about your snippets. You can select or specify your dynamic values using with selectbox/inputbox for ready to paste the workspace. You can organize with tags.

\n

Features

\n\n

Contribution

\n

Contribution are always welcome and recommended! Here is how:

\n\n
git clone https://github.com/YOUR_USERNAME/SnipCommand.git\n
\n\n

Build Setup

\n
# install dependencies\nyarn install\n\n# serve with hot reload\nyarn electron-dev\n\n# build electron application for production\nyarn release\n
\n

Releases

\n

Visit the this link

\n

Documentation

\n

Visit the this link

\n

Change Logs

\n

You can check logs from this link

\n

License

\n

SnipCommand is an open source project that is licensed under the MIT license.

\n

Donations

\n

Donations are greatly appreciated!

\n

BUY ME A COFFEE

\n
", "readmeOriginal": "

SnipCommand

\n

A free and open source command snippets manager for organize and copy fast.

\n

\n \n

\n

\n \"GitHub\n \"GitHub\"\n

\n

\n \n

\n

\n Built with Electron & React
\n Built for Windows, macOS and Linux\n

\n

Overview

\n

\n \n

\n

It helps you create, organize and store your commands (Excel formulas, Sql Queries, Terminal commands, etc.) with dynamic parameters for quick copy to it. Describe your commands with dynamic parameters also support documentation about your snippets. You can select or specify your dynamic values using with selectbox/inputbox for ready to paste the workspace. You can organize with tags.

\n

Features

\n\n

Contribution

\n

Contribution are always welcome and recommended! Here is how:

\n\n
git clone https://github.com/YOUR_USERNAME/SnipCommand.git\n
\n\n

Build Setup

\n
# install dependencies\nyarn install\n\n# serve with hot reload\nyarn electron-dev\n\n# build electron application for production\nyarn release\n
\n

Releases

\n

Visit the this link

\n

Documentation

\n

Visit the this link

\n

Change Logs

\n

You can check logs from this link

\n

License

\n

SnipCommand is an open source project that is licensed under the MIT license.

\n

Donations

\n

Donations are greatly appreciated!

\n

BUY ME A COFFEE

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.223Z" }, "snippetstore": { "readmeCleaned": "

SnippetStore

\n

\n🎉 A snippet management app for developers 🚀\n

\n

\n⚠️ This project is no longer maintained, see #74 ⚠️\n

\n

\n \n \"twitter\"\n \n

\n

\n\"travis\"\n\n \"version\"\n\n\n \"total\n\n\n \"stars\"\n\n\n \"forks\"\n\n

\n

\n \n

\n

About this project

\n

SnippetStore is an application for developers to store their snippets and quickly retrieve them when needed. SnippetStore mainly focus on storing code therefor its interface is small and simple, perfect for busy developers who doesn't care about small details.

\n

Donate

\n

There are many requests for macOS support and I'm sure many of you guys who are mac users will want\nSnippetStore to be available in homebrew and able to run on macOS too. But in order to do that, I need help from you guys to afford a mac to test & build this project and many more other projects in the future. It would be a huge help if you can buy me a coffee 😄

\n

\"Buy

\n

SnippetStore is also available on issuehunt

\n

\"Let's

\n

A massive thank you to these donators

\n\n\n\n\n\n\n\n\n\n\n\n
Trevor Robertson
\"\"
\n

Download

\n

Currently SnippetStore only available for linux and windows.

\n

If you're using MacOS, you can also build a version for you OS too (not guarantee it will work!)

\n
npm run dist:mac\n
\n

You can get the latest release of SnippetStore here

\n

Theme

\n

SnippetStore currently support 2 themes dark and light

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Light themeDark theme
\n

Tag support

\n

With SnippetStore you can assign multiple tags to your snippet and easy find them using the tag list on the right bar

\n

\n \n

\n

Multi file snippet

\n

Not satisfied with a single file snippet? With SnippetStore you can now store multiple files within a snippet

\n

\n \n

\n

Snippet list layout

\n

SnippetStore currently support 2 snippet list layout:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OriginalList and details
\n

Internalization

\n

SnippetStore currently support 2 languages:

\n\n

Shortcut

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ActionKey
Open create snippet modalctrl + n
Open setting modalctrl + ,
Toggle small sidebar modectrl + b
Close all modalesc
Save snippetctrl + s
Discard snippet changesesc
Navigate in snippet listctrl + pageup, ctrl + pagedown
\n

Tech Stack

\n\n

Contributing

\n

Check out contributing.md

\n

Author & Maintainer

\n\n

License

\n\n
", "readmeOriginal": "

SnippetStore

\n

\n🎉 A snippet management app for developers 🚀\n

\n

\n⚠️ This project is no longer maintained, see #74 ⚠️\n

\n

\n \n \"twitter\"\n \n

\n

\n\"travis\"\n\n \"version\"\n\n\n \"total\n\n\n \"stars\"\n\n\n \"forks\"\n\n

\n

\n \n

\n

About this project

\n

SnippetStore is an application for developers to store their snippets and quickly retrieve them when needed. SnippetStore mainly focus on storing code therefor its interface is small and simple, perfect for busy developers who doesn't care about small details.

\n

Donate

\n

There are many requests for macOS support and I'm sure many of you guys who are mac users will want\nSnippetStore to be available in homebrew and able to run on macOS too. But in order to do that, I need help from you guys to afford a mac to test & build this project and many more other projects in the future. It would be a huge help if you can buy me a coffee 😄

\n

\"Buy

\n

SnippetStore is also available on issuehunt

\n

\"Let's

\n

A massive thank you to these donators

\n\n\n\n\n\n\n\n\n\n\n\n
Trevor Robertson
\"\"
\n

Download

\n

Currently SnippetStore only available for linux and windows.

\n

If you're using MacOS, you can also build a version for you OS too (not guarantee it will work!)

\n
npm run dist:mac\n
\n

You can get the latest release of SnippetStore here

\n

Theme

\n

SnippetStore currently support 2 themes dark and light

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Light themeDark theme
\n

Tag support

\n

With SnippetStore you can assign multiple tags to your snippet and easy find them using the tag list on the right bar

\n

\n \n

\n

Multi file snippet

\n

Not satisfied with a single file snippet? With SnippetStore you can now store multiple files within a snippet

\n

\n \n

\n

Snippet list layout

\n

SnippetStore currently support 2 snippet list layout:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OriginalList and details
\n

Internalization

\n

SnippetStore currently support 2 languages:

\n\n

Shortcut

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ActionKey
Open create snippet modalctrl + n
Open setting modalctrl + ,
Toggle small sidebar modectrl + b
Close all modalesc
Save snippetctrl + s
Discard snippet changesesc
Navigate in snippet listctrl + pageup, ctrl + pagedown
\n

Tech Stack

\n\n

Contributing

\n

Check out contributing.md

\n

Author & Maintainer

\n\n

License

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:08.366Z" }, "social-amnesia": { "readmeCleaned": "

\"Social\n\"Quick

\n

Social Amnesia

\n

Social Amnesia aims to make your social media (twitter/reddit) only exist within a time period that you choose. For many people, there is no reason they want to have years old tweets or reddit comments publicly accessible. With Social Amnesia, set the time period you want to keep, whitelist posts and items you want to preserve indefinitely, and let Social Amnesia wipe the rest out of existence.

\n

\"Awesome

\n

Sponsor the development of Social Amnesia

\n

You can sponsor me on GitHub to fund the continued development of Social Amnesia! ❤️\nYou can also make a one-time donation directly via:

\n\n

\"DonateQR\"

\n

And please follow me on Twitter to receive updates on the development of Social Amnesia!

\n

How to build/run Social Amnesia

\n

Executables

\n

This is the simplest option. Bundled and easily usable files for Mac, Windows and Linux are available on the releases page.

\n

How to run Social Amnesia from the command line

\n

First, clone this repo.

\n

In order to run Social Amnesia, you will need to set up Reddit and Twitter APIs.

\n

For Reddit, you will want to create an installed app using https://www.reddit.com/prefs/apps. Set your redirect url to be https://google.com. Then you will need to create a redditSecrets.ts file in the src/ directory:

\n
const redditAPI = {\n  userAgent: \"Social-Amnesia-2.0\",\n  clientId: \"YOUR_CLIENT_ID\"\n};\n\nexport default redditAPI;
\n

For Twitter, create an app using https://developer.twitter.com/en/apps, enable Sign in with Twitter, set the Callback URL to be https://google.com, and then create a twitterSecrets.ts file in the src/ directory:

\n
const twitterAPI = {\n  consumerKey: \"YOUR_CONSUMER_KEY\",\n  consumerSecret: \"YOUR_CONSUMER_SECRET\",\n  accessToken: \"YOUR_ACCESS_TOKEN\",\n  accessTokenSecret: \"YOUR_ACCESS_TOKEN_SECRET\"\n};\n\nexport default twitterAPI;
\n

Then you can run yarn run electron:serve and start developing!

\n

How to build the executables for Social Amnesia

\n

Simply run yarn run electron:serve once you have completed the steps above. Output is sent to the dist_electron folder.

\n

Sites and Features

\n

Reddit

\n\n

Twitter

\n\n

Contributing

\n

Contributions are not only welcomed but greatly appreciated. If you have any idea for a new feature, or find a bug, you can open up a new issue and report it. Better yet, fork this project, write up some code, and submit a new pull request.

\n

Don't feel comfortable coding? That's okay! There are plenty of other ways to contribute to this project:

\n\n

Limitations

\n\n

Tech talks / Blog Posts

\n

Note: These talks and posts may be using the user interface from Social Media 1.0, which looks significantly different from the new version!

\n

@NickGottschlich spoke about Social Amnesia at the Austin Python Monthly Meetup on April 10th, 2019.

\n

Youtube link: https://www.youtube.com/watch?v=wPv_pLofedU

\n

Link to slides: https://nickpgott.com/files/AbusingSocialMediaAPIs.pdf

\n

Medium Article about Social Amnesia: https://medium.com/@nickpgott/ab-using-social-media-apis-using-python-for-privacys-sake-7091b3f76666

\n

Links

\n\n

Related software

\n\n
", "readmeOriginal": "

\"Social\n\"Quick

\n

Social Amnesia

\n

Social Amnesia aims to make your social media (twitter/reddit) only exist within a time period that you choose. For many people, there is no reason they want to have years old tweets or reddit comments publicly accessible. With Social Amnesia, set the time period you want to keep, whitelist posts and items you want to preserve indefinitely, and let Social Amnesia wipe the rest out of existence.

\n

\"Awesome

\n

Sponsor the development of Social Amnesia

\n

You can sponsor me on GitHub to fund the continued development of Social Amnesia! ❤️\nYou can also make a one-time donation directly via:

\n\n

\"DonateQR\"

\n

And please follow me on Twitter to receive updates on the development of Social Amnesia!

\n

How to build/run Social Amnesia

\n

Executables

\n

This is the simplest option. Bundled and easily usable files for Mac, Windows and Linux are available on the releases page.

\n

How to run Social Amnesia from the command line

\n

First, clone this repo.

\n

In order to run Social Amnesia, you will need to set up Reddit and Twitter APIs.

\n

For Reddit, you will want to create an installed app using https://www.reddit.com/prefs/apps. Set your redirect url to be https://google.com. Then you will need to create a redditSecrets.ts file in the src/ directory:

\n
const redditAPI = {\n  userAgent: \"Social-Amnesia-2.0\",\n  clientId: \"YOUR_CLIENT_ID\"\n};\n\nexport default redditAPI;
\n

For Twitter, create an app using https://developer.twitter.com/en/apps, enable Sign in with Twitter, set the Callback URL to be https://google.com, and then create a twitterSecrets.ts file in the src/ directory:

\n
const twitterAPI = {\n  consumerKey: \"YOUR_CONSUMER_KEY\",\n  consumerSecret: \"YOUR_CONSUMER_SECRET\",\n  accessToken: \"YOUR_ACCESS_TOKEN\",\n  accessTokenSecret: \"YOUR_ACCESS_TOKEN_SECRET\"\n};\n\nexport default twitterAPI;
\n

Then you can run yarn run electron:serve and start developing!

\n

How to build the executables for Social Amnesia

\n

Simply run yarn run electron:serve once you have completed the steps above. Output is sent to the dist_electron folder.

\n

Sites and Features

\n

Reddit

\n\n

Twitter

\n\n

Contributing

\n

Contributions are not only welcomed but greatly appreciated. If you have any idea for a new feature, or find a bug, you can open up a new issue and report it. Better yet, fork this project, write up some code, and submit a new pull request.

\n

Don't feel comfortable coding? That's okay! There are plenty of other ways to contribute to this project:

\n\n

Limitations

\n\n

Tech talks / Blog Posts

\n

Note: These talks and posts may be using the user interface from Social Media 1.0, which looks significantly different from the new version!

\n

@NickGottschlich spoke about Social Amnesia at the Austin Python Monthly Meetup on April 10th, 2019.

\n

Youtube link: https://www.youtube.com/watch?v=wPv_pLofedU

\n

Link to slides: https://nickpgott.com/files/AbusingSocialMediaAPIs.pdf

\n

Medium Article about Social Amnesia: https://medium.com/@nickpgott/ab-using-social-media-apis-using-python-for-privacys-sake-7091b3f76666

\n

Links

\n\n

Related software

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:08.410Z" }, "socially": { "readmeCleaned": "
\n
\n

\n \n \"Logo\"\n \n

Socially

\n

\n Group all of your socials into one window!\n

\n

\n\n

Table of Contents

\n\n\n

About The Project

\n

\"Socially

\n

Socially is an application which combines all of your social media DM's and chats into one single window. The aim of this app is to increase productivity and reduce the need for having multiple browser tabs open.

\n

Built With

\n\n\n

Getting Started

\n

To get a local copy up and running follow these simple steps.

\n

Prerequisites

\n

First you need to install Node.JS and NPM. Then you can setup the project.

\n

Installation

\n
    \n
  1. Clone the repo
  2. \n
\n
git clone https://github.com/JackHumphries9/Socially.git
\n
    \n
  1. Install NPM packages
  2. \n
\n
npm install
\n

If you are going to develop this project, change line 6 in the package.json to:

\n
\"main\": \"src/electron.js\",
\n

and in the src/electron.js file, make sure that you set isDev to true (I will be fixing this to use the environment rather than manually):

\n
let isDev = true;
\n

To run this project, you need to run the React server in one terminal:

\n
npm start
\n

And then run the electron app:

\n
npm run electron
\n

This repo contains two scripts (these scripts have been used on MacOS but should work on Linux):

\n

The build script executed by:

\n
./build.sh
\n

will build the React project then copy the src/electron.js and src/preload.js files over into the build folder. From there, electron-builder is ran to compile for all platforms (this may error out on Linux due to MacOS apps not being able to be signed).

\n

Building for MacOS may be problematic as the code was signed by me using a Provisioning profile. You may need to delete some parts of the electron-builder.json file in order to build it properly. (Possibly the provisionProfile field)

\n

The cleanup script executed by:

\n
./cleanup.sh
\n\n

Releases

\n

See the releases page for all releases and to download the binaries.

\n\n

Roadmap

\n

See the open issues for a list of proposed features (and known issues).

\n\n

Contributing

\n

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

\n
    \n
  1. Fork the Project
  2. \n
  3. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  4. \n
  5. Commit your Changes (git commit -m 'Add some AmazingFeature')
  6. \n
  7. Push to the Branch (git push origin feature/AmazingFeature)
  8. \n
  9. Open a Pull Request
  10. \n
\n\n

License

\n

Distributed under the GNU General Public License v3.0 License. See LICENSE for more information.

\n\n

Contact

\n

Your Name - @JackPHumphries - me@jackhumphries.co.uk

\n

Project Link: https://github.com/JackHumphries9/Socially

\n

Website Link: https://getsocially.app

\n
", "readmeOriginal": "
\n
\n

\n \n \"Logo\"\n \n

Socially

\n

\n Group all of your socials into one window!\n

\n

\n\n

Table of Contents

\n\n\n

About The Project

\n

\"Socially

\n

Socially is an application which combines all of your social media DM's and chats into one single window. The aim of this app is to increase productivity and reduce the need for having multiple browser tabs open.

\n

Built With

\n\n\n

Getting Started

\n

To get a local copy up and running follow these simple steps.

\n

Prerequisites

\n

First you need to install Node.JS and NPM. Then you can setup the project.

\n

Installation

\n
    \n
  1. Clone the repo
  2. \n
\n
git clone https://github.com/JackHumphries9/Socially.git
\n
    \n
  1. Install NPM packages
  2. \n
\n
npm install
\n

If you are going to develop this project, change line 6 in the package.json to:

\n
\"main\": \"src/electron.js\",
\n

and in the src/electron.js file, make sure that you set isDev to true (I will be fixing this to use the environment rather than manually):

\n
let isDev = true;
\n

To run this project, you need to run the React server in one terminal:

\n
npm start
\n

And then run the electron app:

\n
npm run electron
\n

This repo contains two scripts (these scripts have been used on MacOS but should work on Linux):

\n

The build script executed by:

\n
./build.sh
\n

will build the React project then copy the src/electron.js and src/preload.js files over into the build folder. From there, electron-builder is ran to compile for all platforms (this may error out on Linux due to MacOS apps not being able to be signed).

\n

Building for MacOS may be problematic as the code was signed by me using a Provisioning profile. You may need to delete some parts of the electron-builder.json file in order to build it properly. (Possibly the provisionProfile field)

\n

The cleanup script executed by:

\n
./cleanup.sh
\n\n

Releases

\n

See the releases page for all releases and to download the binaries.

\n\n

Roadmap

\n

See the open issues for a list of proposed features (and known issues).

\n\n

Contributing

\n

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

\n
    \n
  1. Fork the Project
  2. \n
  3. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  4. \n
  5. Commit your Changes (git commit -m 'Add some AmazingFeature')
  6. \n
  7. Push to the Branch (git push origin feature/AmazingFeature)
  8. \n
  9. Open a Pull Request
  10. \n
\n\n

License

\n

Distributed under the GNU General Public License v3.0 License. See LICENSE for more information.

\n\n

Contact

\n

Your Name - @JackPHumphries - me@jackhumphries.co.uk

\n

Project Link: https://github.com/JackHumphries9/Socially

\n

Website Link: https://getsocially.app

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.479Z" }, "soundboard": { "readmeCleaned": "

Soundboard

\n

A simple soundboard desktop app (like EXP Soundboard).
\nIt allows two sources: you can add your local sounds or play sounds from MyInstants

\n

\"soundboard-demo\"

\n

Features

\n\n

Missing features

\n\n

How to install

\n\n

To redirect the audio to a communication app (like Discord)

\n

You need to install & setup Voicemeeter Banana and Virtual Audio Cable
\nI personally followed two excellent videos from a youtuber to setup everything up, it is in French but you can watch it with subtitles or follow another video.

\n\n

Development

\n

Stack

\n

Electron
\nReact
\nReact Router
\nWebpack
\nReact Fast Refresh

\n

Starting Development

\n

Start the app in the dev environment:

\n
yarn start
\n

Packaging for Production

\n

To package apps for the local platform:

\n
yarn package
\n

electron-react-boilerplate docs

\n

See our docs and guides here

\n
", "readmeOriginal": "

Soundboard

\n

A simple soundboard desktop app (like EXP Soundboard).
\nIt allows two sources: you can add your local sounds or play sounds from MyInstants

\n

\"soundboard-demo\"

\n

Features

\n\n

Missing features

\n\n

How to install

\n\n

To redirect the audio to a communication app (like Discord)

\n

You need to install & setup Voicemeeter Banana and Virtual Audio Cable
\nI personally followed two excellent videos from a youtuber to setup everything up, it is in French but you can watch it with subtitles or follow another video.

\n\n

Development

\n

Stack

\n

Electron
\nReact
\nReact Router
\nWebpack
\nReact Fast Refresh

\n

Starting Development

\n

Start the app in the dev environment:

\n
yarn start
\n

Packaging for Production

\n

To package apps for the local platform:

\n
yarn package
\n

electron-react-boilerplate docs

\n

See our docs and guides here

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.483Z" }, "sofia": { "readmeCleaned": "

\n
\n

\n

\n \"Buy\n

\n

\n \n \n \n

\n

[FR] Sofia est un logiciel pour personnaliser son status discord.
\n[EN] Sofia is a program to customize your discord status.

\n

\n

\n
", "readmeOriginal": "

\n
\n

\n

\n \"Buy\n

\n

\n \n \n \n

\n

[FR] Sofia est un logiciel pour personnaliser son status discord.
\n[EN] Sofia is a program to customize your discord status.

\n

\n

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.585Z" }, "soundglass": { "readmeCleaned": "

Soundglass

\n

Is a cross-platform Soundboard that play sound from audio files on your computer to your favourite voice chat app 🚀

\n

\"Soundglass

\n

Why Soundglass

\n\n

Installation

\n
    \n
  1. Download Soundglass
  2. \n
  3. Download Virtual Audio Device for your operating system, I recommend these:
  4. \n
\n\n
    \n
  1. Install Virtual Audio Device
  2. \n
  3. Run Soundglass
  4. \n
\n

Setup

\n
    \n
  1. Click arrow button to toggle settings
  2. \n
  3. Select your Virtual Audio Device in Output 1
  4. \n
  5. Select your Speakers in Output 2
  6. \n
\n

Preparing for Development

\n
    \n
  1. Clone this repository
  2. \n
  3. Navigate to root directory
  4. \n
  5. Run npm i
  6. \n
  7. Run npm run watch
  8. \n
  9. Open new terminal inside root directory
  10. \n
  11. Run npm run dev
  12. \n
\n

Warning: App may crash if you use Visual Studio Code terminal on macOS. It's recommended to use the default OS terminal.

\n
", "readmeOriginal": "

Soundglass

\n

Is a cross-platform Soundboard that play sound from audio files on your computer to your favourite voice chat app 🚀

\n

\"Soundglass

\n

Why Soundglass

\n\n

Installation

\n
    \n
  1. Download Soundglass
  2. \n
  3. Download Virtual Audio Device for your operating system, I recommend these:
  4. \n
\n\n
    \n
  1. Install Virtual Audio Device
  2. \n
  3. Run Soundglass
  4. \n
\n

Setup

\n
    \n
  1. Click arrow button to toggle settings
  2. \n
  3. Select your Virtual Audio Device in Output 1
  4. \n
  5. Select your Speakers in Output 2
  6. \n
\n

Preparing for Development

\n
    \n
  1. Clone this repository
  2. \n
  3. Navigate to root directory
  4. \n
  5. Run npm i
  6. \n
  7. Run npm run watch
  8. \n
  9. Open new terminal inside root directory
  10. \n
  11. Run npm run dev
  12. \n
\n

Warning: App may crash if you use Visual Studio Code terminal on macOS. It's recommended to use the default OS terminal.

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.628Z" }, "spaceeye": { "readmeCleaned": "

SpaceEye

\n

Live satellite imagery for your Mac or Windows desktop background.

\n

\"Build\"\n\"Latest\n\"Supported\n\"License\"

\n

\"Latest\n\"Latest\n\"Latest

\n

\"App

\n

Install

\n

Mac

\n

\"Download

\n\n

Windows

\n

\"Download

\n\n

About

\n

SpaceEye is an open source desktop app which sets live, publicly available\nsatellite imagery as your desktop background.

\n

New images are downloaded approximately every 10 minutes to an hour (depending\non the view), giving an up-to-date, high resolution view of the Earth from\nspace.

\n

Currently, the app provides 12 views of the Earth from 5 different geostationary\nweather satellites: Himawari-8, GOES-17 (West), GOES-16 (East), Meteosat-8, and\nMeteosat-11. This list will hopefully be expanded in the future.

\n

Acknowledgements

\n

Special thanks to NOAA STAR\nand the Regional and Mesoscale Meteorology Branch\n(RAMMB) of NOAA/NESDIS (located at Colorado\nState University) for providing the satellite imagery.

\n

Issues

\n

If you encounter a bug or have a feature request, please create an issue on the\nIssues page.

\n

Development

\n

Requirements

\n\n

VS Code is recommended for development, but not\nrequired. The repo includes configs and recommended extensions.

\n

Setup

\n
git clone https://github.com/KYDronePilot/SpaceEye.git\ncd SpaceEye\nyarn\nyarn run build
\n

Start in dev mode

\n

Opens Chromium dev tools and watches renderer files.

\n
yarn run start-dev
\n

Package the app

\n

Builds and packages app for distribution.

\n

If on macOS, creates DMG and ZIP files, or if on Windows, creates NSIS\nexecutable installer.

\n
yarn run dist
\n

Privacy

\n

The only data collected are server logs when downloading the satellite config\nfile.\nThis config file contains metadata and links to the satellite images provided by\nNOAA and RAMMB.

\n

License

\n

MIT © Michael Galliers

\n
", "readmeOriginal": "

SpaceEye

\n

Live satellite imagery for your Mac or Windows desktop background.

\n

\"Build\"\n\"Latest\n\"Supported\n\"License\"

\n

\"Latest\n\"Latest\n\"Latest

\n

\"App

\n

Install

\n

Mac

\n

\"Download

\n\n

Windows

\n

\"Download

\n\n

About

\n

SpaceEye is an open source desktop app which sets live, publicly available\nsatellite imagery as your desktop background.

\n

New images are downloaded approximately every 10 minutes to an hour (depending\non the view), giving an up-to-date, high resolution view of the Earth from\nspace.

\n

Currently, the app provides 12 views of the Earth from 5 different geostationary\nweather satellites: Himawari-8, GOES-17 (West), GOES-16 (East), Meteosat-8, and\nMeteosat-11. This list will hopefully be expanded in the future.

\n

Acknowledgements

\n

Special thanks to NOAA STAR\nand the Regional and Mesoscale Meteorology Branch\n(RAMMB) of NOAA/NESDIS (located at Colorado\nState University) for providing the satellite imagery.

\n

Issues

\n

If you encounter a bug or have a feature request, please create an issue on the\nIssues page.

\n

Development

\n

Requirements

\n\n

VS Code is recommended for development, but not\nrequired. The repo includes configs and recommended extensions.

\n

Setup

\n
git clone https://github.com/KYDronePilot/SpaceEye.git\ncd SpaceEye\nyarn\nyarn run build
\n

Start in dev mode

\n

Opens Chromium dev tools and watches renderer files.

\n
yarn run start-dev
\n

Package the app

\n

Builds and packages app for distribution.

\n

If on macOS, creates DMG and ZIP files, or if on Windows, creates NSIS\nexecutable installer.

\n
yarn run dist
\n

Privacy

\n

The only data collected are server logs when downloading the satellite config\nfile.\nThis config file contains metadata and links to the satellite images provided by\nNOAA and RAMMB.

\n

License

\n

MIT © Michael Galliers

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.780Z" }, "source-me": { "readmeCleaned": "

\"screenshot\"

\n

Source me

\n
\n

Source Me is a cross platform desktop application which has some essential tools while making a project.

\n
\n

Version: 0.2.1

\n

Features

\n\n

Use

\n

Download the latest version of Source me from the releases page

\n

Build

\n

The app can be used locally by following commands:

\n
$ git clone https://github.com/theIYD/source-me.git\n$ cd source-me\n$ npm install\n$ npm run dev
\n

The application has been abandoned and further updates have been stopped.

\n
", "readmeOriginal": "

\"screenshot\"

\n

Source me

\n
\n

Source Me is a cross platform desktop application which has some essential tools while making a project.

\n
\n

Version: 0.2.1

\n

Features

\n\n

Use

\n

Download the latest version of Source me from the releases page

\n

Build

\n

The app can be used locally by following commands:

\n
$ git clone https://github.com/theIYD/source-me.git\n$ cd source-me\n$ npm install\n$ npm run dev
\n

The application has been abandoned and further updates have been stopped.

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.785Z" }, "spinshare-client": { "readmeCleaned": "

SpinSha.re Client

\n

This is the main repository for the SpinSha.re client. Please check out the \"connect\" branch for the current development branch.

\n

Project setup

\n
npm install\n
\n

Compiles and hot-reloads for development

\n
npm run serve\n
\n
", "readmeOriginal": "

SpinSha.re Client

\n

This is the main repository for the SpinSha.re client. Please check out the \"connect\" branch for the current development branch.

\n

Project setup

\n
npm install\n
\n

Compiles and hot-reloads for development

\n
npm run serve\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:08.796Z" }, "spofly": { "readmeCleaned": "

\"Banner\"\nDesktop app for spoflyv1.herokuapp.com

\n

It helps you to find lyrics of song you are currently listening on spotify without authentication.

\n

Screenshots

\n

\"Image\n\"Image

\n

Security

\n\n
", "readmeOriginal": "

\"Banner\"\nDesktop app for spoflyv1.herokuapp.com

\n

It helps you to find lyrics of song you are currently listening on spotify without authentication.

\n

Screenshots

\n

\"Image\n\"Image

\n

Security

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:08.852Z" }, "sqlectron": { "readmeCleaned": "

\"Slack\n\"Build\"

\n

\n \n
\n A simple and lightweight SQL client with cross database and platform support.\n

\n

Demo (version 1.0.0)

\n

\"demo\"

\n\n

How to pronounce

\n

It is pronounced \"sequel-eck-tron\" - https://translate.google.com/?source=osdd#en/en/sequel-eck-tron

\n
", "readmeOriginal": "

\"Slack\n\"Build\"

\n

\n \n
\n A simple and lightweight SQL client with cross database and platform support.\n

\n

Demo (version 1.0.0)

\n

\"demo\"

\n\n

How to pronounce

\n

It is pronounced \"sequel-eck-tron\" - https://translate.google.com/?source=osdd#en/en/sequel-eck-tron

\n
", "readmeFetchedAt": "2022-05-10T00:08:08.985Z" }, "spotspot": { "readmeCleaned": "

SpotSpot

\n

SpotSpot is no longer maintained. It was a fun project, but I simply do not\nuse it any more. A great alternative looks to be\nLofi which is also more feature rich than\nSpotSpot.

\n

Development

\n

git clone git@github.com:will-stone/SpotSpot.git

\n

cd spotspot

\n

yarn

\n

yarn start

\n

To package use yarn run package

\n
", "readmeOriginal": "

SpotSpot

\n

SpotSpot is no longer maintained. It was a fun project, but I simply do not\nuse it any more. A great alternative looks to be\nLofi which is also more feature rich than\nSpotSpot.

\n

Development

\n

git clone git@github.com:will-stone/SpotSpot.git

\n

cd spotspot

\n

yarn

\n

yarn start

\n

To package use yarn run package

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.016Z" }, "sqlui-native": { "readmeCleaned": "

\"build-main\"

\n

sqlui-native

\n

\"64\"

\n

sqlui-native is a simple UI client for most SQL Engines written in Electron. It is compatible with most desktop OS's and support most dialects of RMBDs like MySQL, Microsoft SQL Server, Postgres, SQLite, Cassandra, MongoDB and Redis.\nIt supports multiple Windows, so you can have different sets of queries and connections side by side. The connections and queries are all stored locally, so you can continue where you left off in later visits.

\n

Downloads

\n

Refer to the following link for download information.

\n\n

Supported OS's

\n\n

Supported Database Adapters

\n

The list below are supported data stores.\nYou can also refer to this link for General Queries

\n\n

Features

\n

Overall Demo

\n

\"demo-full\"

\n

Import and Export

\n

Import and Export can be used to share connections across different machines and users. Below is a sample import config.

\n
[\n  {\n    \"_type\": \"connection\",\n    \"id\": \"connection.1643485516220.4798705129674932\",\n    \"connection\": \"postgres://postgres:password@localhost:5432\",\n    \"name\": \"sy postgres\"\n  },\n  {\n    \"_type\": \"query\",\n    \"id\": \"query.1643561715854.5278536054107370\",\n    \"name\": \"Employee Query on Postgres\",\n    \"sql\": \"SELECT\\n  *\\nFROM\\n  employees\\nLIMIT\\n  10\",\n    \"connectionId\": \"connection.1643485516220.4798705129674932\",\n    \"databaseId\": \"music_store\"\n  }\n]\n
\n

You can also drag and drop the file directly into sqlui-native application. At the moment, we only support drag and drop for a single file.

\n

\"demo-import-export\"

\n

Session Management

\n

This application supports multiple windows / instances. Sessions are used to control which instances it persist the data with.\nAlso these sessions, and the associated connections and queries are persisted locally. So you can continue where you left off in the future.

\n

\"demo-session\"

\n

Dark Mode

\n

Dark mode will be turned on automatically with respect to your OS Preference. You can update settings to prefer Dark Mode or Light Mode if desired.

\n

\"demo-darkmode\"

\n

Query Tabs

\n

Query Tab Orientation

\n

When there is more than 20 tabs, the query tabs will be wrapped vertically.

\n

\"image\"

\n

Reordering Query Tabs

\n

Query tabs can be re-ordered by drag and drop the query tabs bar.

\n

\"tab-ordering\"

\n

Resizing the sidebar

\n

The left sidebar can be resized by clicking and dragging the small section between the sidebar and the query box.

\n

\"sidebar-resize\"

\n

Command Palette

\n

Similar to VS Code and Sublime Text, sqlui-native comes with a command palette that lets you reach your mostly used command via a key combo CMD + P or Ctrl + P on Windows.

\n

\"image\"

\n

Connection Hints

\n

Sample URI connection string can be accessed by clicking on the Show Connection Hints on New / Edit Connection Page. Then you can click on the sample URI connection to use that sample connection string as a starting place.

\n

\"image\"

\n

Settings

\n

Settings can be accessed via the top right menu icon. It allows you to set up preferred settings for things like Editor and Color Theme, etc...

\n

\"image\"

\n

\"image\"

\n

Contributing

\n\n

Dev Note

\n

Here is the link where you can find information about how run this application locally.

\n\n

Features / TODO's:

\n\n

Limitations

\n

Cassandra Limitations

\n

Cassandra Keyspaces are mapped to sqlui-native databases. And Cassandra Column Families are mapped to sqlui-native table.

\n

MongoDB Limitations

\n

MongoDB Collections is mapped to sqlui-native table. We scan the first 5 Documents to come up with the schema for the columns.

\n

Create new MongoDB Database

\n

Given the limitation of the mongodb NodeJS library, there is not a direct API that we can use to create the MongoDB database.

\n\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

Redis Limitations

\n

Due to the size of keys within Redis connection, we will not show all keys in the Redis cache.

\n

Suggestion?

\n

Use the following link to file a bug or a suggestion.

\n\n
", "readmeOriginal": "

\"build-main\"

\n

sqlui-native

\n

\"64\"

\n

sqlui-native is a simple UI client for most SQL Engines written in Electron. It is compatible with most desktop OS's and support most dialects of RMBDs like MySQL, Microsoft SQL Server, Postgres, SQLite, Cassandra, MongoDB and Redis.\nIt supports multiple Windows, so you can have different sets of queries and connections side by side. The connections and queries are all stored locally, so you can continue where you left off in later visits.

\n

Downloads

\n

Refer to the following link for download information.

\n\n

Supported OS's

\n\n

Supported Database Adapters

\n

The list below are supported data stores.\nYou can also refer to this link for General Queries

\n\n

Features

\n

Overall Demo

\n

\"demo-full\"

\n

Import and Export

\n

Import and Export can be used to share connections across different machines and users. Below is a sample import config.

\n
[\n  {\n    \"_type\": \"connection\",\n    \"id\": \"connection.1643485516220.4798705129674932\",\n    \"connection\": \"postgres://postgres:password@localhost:5432\",\n    \"name\": \"sy postgres\"\n  },\n  {\n    \"_type\": \"query\",\n    \"id\": \"query.1643561715854.5278536054107370\",\n    \"name\": \"Employee Query on Postgres\",\n    \"sql\": \"SELECT\\n  *\\nFROM\\n  employees\\nLIMIT\\n  10\",\n    \"connectionId\": \"connection.1643485516220.4798705129674932\",\n    \"databaseId\": \"music_store\"\n  }\n]\n
\n

You can also drag and drop the file directly into sqlui-native application. At the moment, we only support drag and drop for a single file.

\n

\"demo-import-export\"

\n

Session Management

\n

This application supports multiple windows / instances. Sessions are used to control which instances it persist the data with.\nAlso these sessions, and the associated connections and queries are persisted locally. So you can continue where you left off in the future.

\n

\"demo-session\"

\n

Dark Mode

\n

Dark mode will be turned on automatically with respect to your OS Preference. You can update settings to prefer Dark Mode or Light Mode if desired.

\n

\"demo-darkmode\"

\n

Query Tabs

\n

Query Tab Orientation

\n

When there is more than 20 tabs, the query tabs will be wrapped vertically.

\n

\"image\"

\n

Reordering Query Tabs

\n

Query tabs can be re-ordered by drag and drop the query tabs bar.

\n

\"tab-ordering\"

\n

Resizing the sidebar

\n

The left sidebar can be resized by clicking and dragging the small section between the sidebar and the query box.

\n

\"sidebar-resize\"

\n

Command Palette

\n

Similar to VS Code and Sublime Text, sqlui-native comes with a command palette that lets you reach your mostly used command via a key combo CMD + P or Ctrl + P on Windows.

\n

\"image\"

\n

Connection Hints

\n

Sample URI connection string can be accessed by clicking on the Show Connection Hints on New / Edit Connection Page. Then you can click on the sample URI connection to use that sample connection string as a starting place.

\n

\"image\"

\n

Settings

\n

Settings can be accessed via the top right menu icon. It allows you to set up preferred settings for things like Editor and Color Theme, etc...

\n

\"image\"

\n

\"image\"

\n

Contributing

\n\n

Dev Note

\n

Here is the link where you can find information about how run this application locally.

\n\n

Features / TODO's:

\n\n

Limitations

\n

Cassandra Limitations

\n

Cassandra Keyspaces are mapped to sqlui-native databases. And Cassandra Column Families are mapped to sqlui-native table.

\n

MongoDB Limitations

\n

MongoDB Collections is mapped to sqlui-native table. We scan the first 5 Documents to come up with the schema for the columns.

\n

Create new MongoDB Database

\n

Given the limitation of the mongodb NodeJS library, there is not a direct API that we can use to create the MongoDB database.

\n\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

Redis Limitations

\n

Due to the size of keys within Redis connection, we will not show all keys in the Redis cache.

\n

Suggestion?

\n

Use the following link to file a bug or a suggestion.

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:09.046Z" }, "stacker": { "readmeCleaned": "

\n

Want to ensure that a user journey which involves several steps with different protocols is working properly?\nDependencies messages have become a pain?\nHave you ever wondered how awesome it would be to have a GUI tool to save you from this agonizing pain?
\nYou're welcome

\n

\"screenshot-1\"

\n

Check out its full documentation

\n
", "readmeOriginal": "

\n

Want to ensure that a user journey which involves several steps with different protocols is working properly?\nDependencies messages have become a pain?\nHave you ever wondered how awesome it would be to have a GUI tool to save you from this agonizing pain?
\nYou're welcome

\n

\"screenshot-1\"

\n

Check out its full documentation

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.123Z" }, "standard-notes": { "readmeCleaned": "

Standard Notes

\n
\n

\"latest\n\"License\"\n\"Slack\"\n\"Twitter

\n
\n

This application makes use of the core JS/CSS/HTML code found in the web repo. For issues related to the actual app experience, please post issues in the web repo.

\n

Running Locally

\n

Make sure Yarn is installed on your system.

\n
yarn setup\nyarn build:web # Or `yarn dev:web`\nyarn dev\n\n# In another terminal\nyarn start
\n

We use commitlint to validate commit messages.\nBefore making a pull request, make sure to check the output of the following commands:

\n
yarn lint\nyarn test # Make sure to start `yarn dev` before running the tests, and quit any running Standard Notes applications so they don't conflict.
\n

Pull requests should target the develop branch.

\n

Installing dependencies

\n

To determine where to install a dependency:

\n\n

Building

\n

Build for all platforms:

\n\n

Building natively on arm64

\n

Building arm64 releases on amd64 systems is only possible with AppImage, Debian and universal \"dir\" targets.

\n

Building arm64 releases natively on arm64 systems requires some additional preparation:

\n\n

A native fpm installation is needed for Debian builds. fpm needs to be available in $PATH, which can be achieved by running

\n\n

and making sure $GEM_HOME/bin is added to $PATH.

\n

Snap releases also require a working snapcraft / snapd installation.

\n

Building can then be done by running:

\n\n

Followed by

\n\n

Installation

\n

On Linux, download the latest AppImage from the Releases page, and give it executable permission:

\n

chmod u+x standard-notes*.AppImage

\n
", "readmeOriginal": "

Standard Notes

\n
\n

\"latest\n\"License\"\n\"Slack\"\n\"Twitter

\n
\n

This application makes use of the core JS/CSS/HTML code found in the web repo. For issues related to the actual app experience, please post issues in the web repo.

\n

Running Locally

\n

Make sure Yarn is installed on your system.

\n
yarn setup\nyarn build:web # Or `yarn dev:web`\nyarn dev\n\n# In another terminal\nyarn start
\n

We use commitlint to validate commit messages.\nBefore making a pull request, make sure to check the output of the following commands:

\n
yarn lint\nyarn test # Make sure to start `yarn dev` before running the tests, and quit any running Standard Notes applications so they don't conflict.
\n

Pull requests should target the develop branch.

\n

Installing dependencies

\n

To determine where to install a dependency:

\n\n

Building

\n

Build for all platforms:

\n\n

Building natively on arm64

\n

Building arm64 releases on amd64 systems is only possible with AppImage, Debian and universal \"dir\" targets.

\n

Building arm64 releases natively on arm64 systems requires some additional preparation:

\n\n

A native fpm installation is needed for Debian builds. fpm needs to be available in $PATH, which can be achieved by running

\n\n

and making sure $GEM_HOME/bin is added to $PATH.

\n

Snap releases also require a working snapcraft / snapd installation.

\n

Building can then be done by running:

\n\n

Followed by

\n\n

Installation

\n

On Linux, download the latest AppImage from the Releases page, and give it executable permission:

\n

chmod u+x standard-notes*.AppImage

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.223Z" }, "stay-hydrated": { "readmeOriginal": null, "readmeFetchedAt": "2022-05-10T00:08:09.240Z" }, "standup-picker": { "readmeCleaned": "

\"Travis\n\"Coverage\n\"Github

\n

\"Make\n\"License\"

\n

Standup Picker

\n

A desktop application which can be used in Scrum teams to initiate the daily Scrum meeting.

\n

\"Standup\n\"Standup\n\"Standup

\n

\"Standup

\n

Features

\n\n

Used assets

\n\n
", "readmeOriginal": "

\"Travis\n\"Coverage\n\"Github

\n

\"Make\n\"License\"

\n

Standup Picker

\n

A desktop application which can be used in Scrum teams to initiate the daily Scrum meeting.

\n

\"Standup\n\"Standup\n\"Standup

\n

\"Standup

\n

Features

\n\n

Used assets

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:09.245Z" }, "stickynotes": { "readmeCleaned": "

Description

\n

\"Logo\"\n\"ScreenShot\"

\n

A Open Source Sticky Note Application.

\n

Automatically Save Notes

\n

Sync Your Note With Dropbox Account(Use This Account To Start Your Sticky Notes Where You Left Off)

\n

Choose Background And Title Bar Color You Like

\n

Editing Options Like Font,Bold,Size,Italic,List,Align.etc

\n

Add Images To Note From Local Drive

\n

Add Audio To Note From Local Drive

\n

Add Video To Note From Local Drive

\n

Lock The Note

\n

Import Note From A File

\n

Export Note To A File

\n

Undo,Redo Options

\n

Spellcheck

\n

Profiles

\n

Light And Dark Theme

\n

If you like my App please consider buying me a coffee at HERE!

\n

Stable Release

\n

For Linux

\n

\"Get

\n

Unstable Release

\n

For Development Version Follow the instructions below

\n

if you want to try it install nodejs, git, Vue CLI, pnpm and clone this repository

\n
git clone https://github.com/Playork/StickyNotes
\n

point to source directory

\n
cd /path/to/source/of/StickyNotes
\n

and install dependence by

\n
pnpm install
\n

to try application or develop run application by this command

\n
pnpm start
\n

for daily use or production build application by this command

\n
pnpm run build
\n

Licence

\n

MIT License (MIT)

\n

Copyright (c) 2020 Playork

\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n
", "readmeOriginal": "

Description

\n

\"Logo\"\n\"ScreenShot\"

\n

A Open Source Sticky Note Application.

\n

Automatically Save Notes

\n

Sync Your Note With Dropbox Account(Use This Account To Start Your Sticky Notes Where You Left Off)

\n

Choose Background And Title Bar Color You Like

\n

Editing Options Like Font,Bold,Size,Italic,List,Align.etc

\n

Add Images To Note From Local Drive

\n

Add Audio To Note From Local Drive

\n

Add Video To Note From Local Drive

\n

Lock The Note

\n

Import Note From A File

\n

Export Note To A File

\n

Undo,Redo Options

\n

Spellcheck

\n

Profiles

\n

Light And Dark Theme

\n

If you like my App please consider buying me a coffee at HERE!

\n

Stable Release

\n

For Linux

\n

\"Get

\n

Unstable Release

\n

For Development Version Follow the instructions below

\n

if you want to try it install nodejs, git, Vue CLI, pnpm and clone this repository

\n
git clone https://github.com/Playork/StickyNotes
\n

point to source directory

\n
cd /path/to/source/of/StickyNotes
\n

and install dependence by

\n
pnpm install
\n

to try application or develop run application by this command

\n
pnpm start
\n

for daily use or production build application by this command

\n
pnpm run build
\n

Licence

\n

MIT License (MIT)

\n

Copyright (c) 2020 Playork

\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n

THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.387Z" }, "stockifier": { "readmeCleaned": "

Stockifier \"Stockifier.png\"

\n

A notification and insights app for stock markets

\n

Downloads

\n

Windows Release - Windows x64

\n

Mac OSX Release - Mac OSX

\n

Features

\n\n

Screenshots

\n

\"Home\"\n\"Home\"\n\"Analyze.png\"\n\"Analyze.png\"\n\"Predictions.png\"\n\"Notifications.png\"\n\"Notifications.png\"\n\"Notifications.png\"\n\"Notifications.png\"

\n

\"View

\n

Built With

\n\n

Contributing

\n

Prerequisites:

\n\n

Configuring development environment

\n

Once you have cloned/downloaded the repository, issue the npm install command in the root directory. This should install all the required packages including Electron.

\n

Once complete, you may issue the npm start command to launch the Electron window and start the app.

\n

Special Mentions

\n
    \n
  1. \n

    AlphaVantage API - NPM Package

    \n
  2. \n
  3. \n

    TensorFlow JS

    \n
  4. \n
\n

LICENSE

\n

Licensed under MIT. Please view LICENSE for more details.

\n
", "readmeOriginal": "

Stockifier \"Stockifier.png\"

\n

A notification and insights app for stock markets

\n

Downloads

\n

Windows Release - Windows x64

\n

Mac OSX Release - Mac OSX

\n

Features

\n\n

Screenshots

\n

\"Home\"\n\"Home\"\n\"Analyze.png\"\n\"Analyze.png\"\n\"Predictions.png\"\n\"Notifications.png\"\n\"Notifications.png\"\n\"Notifications.png\"\n\"Notifications.png\"

\n

\"View

\n

Built With

\n\n

Contributing

\n

Prerequisites:

\n\n

Configuring development environment

\n

Once you have cloned/downloaded the repository, issue the npm install command in the root directory. This should install all the required packages including Electron.

\n

Once complete, you may issue the npm start command to launch the Electron window and start the app.

\n

Special Mentions

\n
    \n
  1. \n

    AlphaVantage API - NPM Package

    \n
  2. \n
  3. \n

    TensorFlow JS

    \n
  4. \n
\n

LICENSE

\n

Licensed under MIT. Please view LICENSE for more details.

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.450Z" }, "stopawu": { "readmeCleaned": "

Stopawu

\n

Easily disable Windows automatic updates

\n

\"A

\n
", "readmeOriginal": "

Stopawu

\n

Easily disable Windows automatic updates

\n

\"A

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.462Z" }, "stinker": { "readmeCleaned": "

Stinker

\n

Laravel tinker snippet app.

\n

\"screenshot\"

\n

Project setup

\n
yarn install\n
\n

Compiles and hot-reloads for development

\n
yarn electron:serve\n
\n

Compiles and minifies for production

\n
yarn electron:build\n
\n

Lints and fixes files

\n
yarn lint\n
\n

Customize configurations

\n\n
", "readmeOriginal": "

Stinker

\n

Laravel tinker snippet app.

\n

\"screenshot\"

\n

Project setup

\n
yarn install\n
\n

Compiles and hot-reloads for development

\n
yarn electron:serve\n
\n

Compiles and minifies for production

\n
yarn electron:build\n
\n

Lints and fixes files

\n
yarn lint\n
\n

Customize configurations

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:09.469Z" }, "soundnode": { "readmeCleaned": "

\"Join

\n

Soundnode App

\n

Soundnode App is an Open-Source project to support Soundcloud for desktop Mac, Windows, and Linux.
\nIt's built with Electron, Node.js, Angular.js, and uses the Soundcloud API.

\n
\n

Be aware that Soundnode relies on Soundcloud API which only allows third party apps to play 15 thousand tracks daily. When the rate limit is reached all users are blocked from playing/streaming tracks. The stream will be re-enable one day after (at the same time) streams were blocked.

\n
\n

Follow us on twitter for updates @Soundnodeapp.

\n

Featured on Producthunt, TNW\nand Gizmodo

\n

\"alt

\n

Features

\n\n

And much more!

\n

Configuration

\n

Since soundcloud applies a rate limit to third party apps, you need to configure your own API key to make soundnode work.

\n

Unfortunately soundcloud suspended new application creation, so to retrieve your api key, you have to dig into the soundcloud website.

\n\n

How to contribute

\n

First, building, testing, and reporting bugs is highly appreciated. Please include the console's output and steps to reproduce the problem in your bug report, if possible.

\n

If you want to develop, you can look at the issues, especially the bugs, and then fix them.\nHere's a list of issues.

\n

Please follow the contribution guidelines.

\n

Development

\n

See the Development page for a complete guide on how to build\nthe app locally on your computer.

\n

Check out Electron documentation

\n

Supported Platforms

\n\n

Author

\n\n

Contributors

\n

Thanks to all contributors that are helping or helped making Soundnode better.

\n

License

\n

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 license.

\n
", "readmeOriginal": "

\"Join

\n

Soundnode App

\n

Soundnode App is an Open-Source project to support Soundcloud for desktop Mac, Windows, and Linux.
\nIt's built with Electron, Node.js, Angular.js, and uses the Soundcloud API.

\n
\n

Be aware that Soundnode relies on Soundcloud API which only allows third party apps to play 15 thousand tracks daily. When the rate limit is reached all users are blocked from playing/streaming tracks. The stream will be re-enable one day after (at the same time) streams were blocked.

\n
\n

Follow us on twitter for updates @Soundnodeapp.

\n

Featured on Producthunt, TNW\nand Gizmodo

\n

\"alt

\n

Features

\n\n

And much more!

\n

Configuration

\n

Since soundcloud applies a rate limit to third party apps, you need to configure your own API key to make soundnode work.

\n

Unfortunately soundcloud suspended new application creation, so to retrieve your api key, you have to dig into the soundcloud website.

\n\n

How to contribute

\n

First, building, testing, and reporting bugs is highly appreciated. Please include the console's output and steps to reproduce the problem in your bug report, if possible.

\n

If you want to develop, you can look at the issues, especially the bugs, and then fix them.\nHere's a list of issues.

\n

Please follow the contribution guidelines.

\n

Development

\n

See the Development page for a complete guide on how to build\nthe app locally on your computer.

\n

Check out Electron documentation

\n

Supported Platforms

\n\n

Author

\n\n

Contributors

\n

Thanks to all contributors that are helping or helped making Soundnode better.

\n

License

\n

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 license.

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.596Z" }, "storm": { "readmeCleaned": "

What is Storm?

\n

Storm is a service that enables you to syncronize files between all of your computers.\nGo to http://www.stormfolder.com to create an account.

\n

Current version v0.3.10

\n
", "readmeOriginal": "

What is Storm?

\n

Storm is a service that enables you to syncronize files between all of your computers.\nGo to http://www.stormfolder.com to create an account.

\n

Current version v0.3.10

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.664Z" }, "streambop": { "readmeCleaned": "

StreamBop

\n

StreamBop is a software that allows you to play music on your livestreams, credit currently playing music, avoid legal issues, allow audio mixing, customizability and more..

\n

Downloading

\n

Linux users can use Snap.\n\"Snap\"

\n
snap install streambop\n
\n

Windows users can check the releases tab, or:

\n
winget install streambop\n
\n

on windows 11.

\n

\"FOSSA

\n
", "readmeOriginal": "

StreamBop

\n

StreamBop is a software that allows you to play music on your livestreams, credit currently playing music, avoid legal issues, allow audio mixing, customizability and more..

\n

Downloading

\n

Linux users can use Snap.\n\"Snap\"

\n
snap install streambop\n
\n

Windows users can check the releases tab, or:

\n
winget install streambop\n
\n

on windows 11.

\n

\"FOSSA

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.678Z" }, "storaji": { "readmeCleaned": "

The project is no longer maintained, but you still can use this with your own private server. Check out the development section how to install it.

\n

\n \n

Storaji

\n

The Light/Responsive Inventory Management System

\n

\n \"Platforms\"\n \"Donate\"\n

\n

\n \"GitHub\n \"Travis\"\n \"AppVeyor\"\n \"Downloads\"\n

\n

\n

Downloads

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOS 10.9+Windows 7+Linux
Download v1.0.0-beta.9Download v1.0.0-beta.9Download v1.0.0-beta.9
\n

More Download Options

\n

Technologies

\n\n

Features

\n\n

If you think Storaji is useful, let me know by putting a star on this project 😉

\n

Screenshots

\n

\n \n

\n

Why

\n

Mainly designed for small-to-medium companies, Storaji is a modern and very intuitive inventory management application built with some of the trendiest web technologies.\nRight off the bat, it's worth pointing out that this is by no means a professional software for inventory management. Be that as it may, it can still prove itself fairly useful as it boasts an interesting set of primary features.

\n

I believe there are many people who needs a simple tool to manage everything from product inventories to orders and of course it's free to use.

\n

Development

\n

System Requirements

\n\n

Backend

\n\n

Frontend

\n\n

When you have make changes and everything works on angular, and wanna check on desktop app.

\n\n

For linting and testing

\n\n
\n

This is still in beta and it's far from perfect so feedbacks, issues or PRs are greatly appreciated! :)

\n
\n

Note that on Linux you will need additional dependencies to provide the icns2png and gm commands. Ubuntu/Debian users can run: sudo apt install -y icnsutils graphicsmagick.

\n

License

\n

MIT License © 2017-Present Indomaxim Technology. All rights reserved.

\n

End User License Agreement (EULA)

\n\n

Legal

\n

This is a free and open source app. Use it at your own risk.

\n
", "readmeOriginal": "

The project is no longer maintained, but you still can use this with your own private server. Check out the development section how to install it.

\n

\n \n

Storaji

\n

The Light/Responsive Inventory Management System

\n

\n \"Platforms\"\n \"Donate\"\n

\n

\n \"GitHub\n \"Travis\"\n \"AppVeyor\"\n \"Downloads\"\n

\n

\n

Downloads

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
macOS 10.9+Windows 7+Linux
Download v1.0.0-beta.9Download v1.0.0-beta.9Download v1.0.0-beta.9
\n

More Download Options

\n

Technologies

\n\n

Features

\n\n

If you think Storaji is useful, let me know by putting a star on this project 😉

\n

Screenshots

\n

\n \n

\n

Why

\n

Mainly designed for small-to-medium companies, Storaji is a modern and very intuitive inventory management application built with some of the trendiest web technologies.\nRight off the bat, it's worth pointing out that this is by no means a professional software for inventory management. Be that as it may, it can still prove itself fairly useful as it boasts an interesting set of primary features.

\n

I believe there are many people who needs a simple tool to manage everything from product inventories to orders and of course it's free to use.

\n

Development

\n

System Requirements

\n\n

Backend

\n\n

Frontend

\n\n

When you have make changes and everything works on angular, and wanna check on desktop app.

\n\n

For linting and testing

\n\n
\n

This is still in beta and it's far from perfect so feedbacks, issues or PRs are greatly appreciated! :)

\n
\n

Note that on Linux you will need additional dependencies to provide the icns2png and gm commands. Ubuntu/Debian users can run: sudo apt install -y icnsutils graphicsmagick.

\n

License

\n

MIT License © 2017-Present Indomaxim Technology. All rights reserved.

\n

End User License Agreement (EULA)

\n\n

Legal

\n

This is a free and open source app. Use it at your own risk.

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.702Z" }, "studymd": { "readmeCleaned": "

\n \"Icon\"\n
\n StudyMD\n
\n

\n

About

\n

A cool app to study with markdown.\nTurns your Markdown-Summaries to Flashcard.

\n

\"Animated\"

\n
Example (Card-Title header-level is choosable):
\n
# Example\n### Use Markdown\n**Bold** *Italic* and [link](github.com)\n### Use Tables\n| 1    | first step  |\n| ---- | ----------- |\n| 2    | second step |\n| 3    | third step  |\n### *Math!!* e.g. What is f(x)?\n$y = \\frac{27}{4}$
\n

Stack/Dependencies

\n

\"Electron\"\n\"React\"\n\"React\n\"Yarn\"\n \"Electron\"

\n

and:

\n\n

Download

\n

To download for Mac, Windows or Linux click here.

\n

Run Locally

\n

You will need yarn and git.

\n
# Clone this repository\ngit clone https://github.com/jotron/StudyMD.git\n# Go into the repository\ncd StudyMD\n# Install dependencies\nyarn install\n# Run the app\nyarn start
\n

License

\n

MIT © Joel André

\n
", "readmeOriginal": "

\n \"Icon\"\n
\n StudyMD\n
\n

\n

About

\n

A cool app to study with markdown.\nTurns your Markdown-Summaries to Flashcard.

\n

\"Animated\"

\n
Example (Card-Title header-level is choosable):
\n
# Example\n### Use Markdown\n**Bold** *Italic* and [link](github.com)\n### Use Tables\n| 1    | first step  |\n| ---- | ----------- |\n| 2    | second step |\n| 3    | third step  |\n### *Math!!* e.g. What is f(x)?\n$y = \\frac{27}{4}$
\n

Stack/Dependencies

\n

\"Electron\"\n\"React\"\n\"React\n\"Yarn\"\n \"Electron\"

\n

and:

\n\n

Download

\n

To download for Mac, Windows or Linux click here.

\n

Run Locally

\n

You will need yarn and git.

\n
# Clone this repository\ngit clone https://github.com/jotron/StudyMD.git\n# Go into the repository\ncd StudyMD\n# Install dependencies\nyarn install\n# Run the app\nyarn start
\n

License

\n

MIT © Joel André

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.873Z" }, "subordination": { "readmeCleaned": "

Subordination

\n

Subordination is a desktop application for translating and editing subtitles. Currently only SRT format is supported.

\n

Building from source

\n

Subordination is an Electron app. It's written in JavaScript with extensive use of Vue.js, Vuex and highly customised version of Photon. Note that you need to have npm and git installed on you machine. First get the source code:

\n
git clone https://github.com/sunabozu/subordination.git\ncd subordination
\n

Now install the dependencies for development and runtime. Note that the webchimera.js package may fail to install. It's a native module and npm will try to compile it from source, but it's not necessary, because Subordination loads its binary version separately. Just ignore all errors related to it.

\n

Also note that Subordination uses a project structure with two package.json files. See more for details.

\n
cd app\nnpm run prepare\ncd ..\nnpm install
\n

Now you can build and launch a debug version:

\n
npm run build-dev\nnpm start
\n

Or you can try to build a full-fledged binary. All the executables are stored inside the installers folder.

\n
npm run build-release\nnpm run dist:osx\nnpm run dist:win
\n

A Linux version

\n

Currently Subordination is available only on Mac and Windows. The author doesn't use Linux on desktop and can't create anything decent for it. But there is no fundamental problem with it. All the components used in Subordinations can be run on Linux as well. If you want to contribute, please let me know, I'd gladly accept your pull requests.

\n
", "readmeOriginal": "

Subordination

\n

Subordination is a desktop application for translating and editing subtitles. Currently only SRT format is supported.

\n

Building from source

\n

Subordination is an Electron app. It's written in JavaScript with extensive use of Vue.js, Vuex and highly customised version of Photon. Note that you need to have npm and git installed on you machine. First get the source code:

\n
git clone https://github.com/sunabozu/subordination.git\ncd subordination
\n

Now install the dependencies for development and runtime. Note that the webchimera.js package may fail to install. It's a native module and npm will try to compile it from source, but it's not necessary, because Subordination loads its binary version separately. Just ignore all errors related to it.

\n

Also note that Subordination uses a project structure with two package.json files. See more for details.

\n
cd app\nnpm run prepare\ncd ..\nnpm install
\n

Now you can build and launch a debug version:

\n
npm run build-dev\nnpm start
\n

Or you can try to build a full-fledged binary. All the executables are stored inside the installers folder.

\n
npm run build-release\nnpm run dist:osx\nnpm run dist:win
\n

A Linux version

\n

Currently Subordination is available only on Mac and Windows. The author doesn't use Linux on desktop and can't create anything decent for it. But there is no fundamental problem with it. All the components used in Subordinations can be run on Linux as well. If you want to contribute, please let me know, I'd gladly accept your pull requests.

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.885Z" }, "subtitler": { "readmeCleaned": "

\n
\n

\n Subtitler is built using Electron React Boilerplate. That includes Electron, React, Redux, React Router, Webpack and React Hot Loader .\n

\n
\n
\n
\n \n \n \n\n subtitler-intro.mp4\n \n \n\n \n
\n\n\n
\n
\n

Install

\n

First, clone the repo via git and install dependencies:

\n
yarn
\n

Run Development

\n

Start the app in the dev environment. This starts the renderer process in hot-module-replacement mode and starts a webpack dev server that sends hot updates to the renderer process:

\n
yarn dev
\n

Packaging for Production

\n

To package apps for the local platform:

\n
yarn package
\n

Debugging on Production

\n

To package apps for the local platform:

\n
yarn cross-env DEBUG_PROD=true yarn build yarn cross-env DEBUG_PROD=true yarn start
\n\n

Maintainers

\n\n

License

\n

MIT © Sachin Srinivasan

\n

Thanks to

\n\n

Disclaimer

\n

📢📢

\n
    \n
  1. The app doesn't track you down in ANY way. Not Google Analytics, or any other service. Open a bug and let me know what do you think.
  2. \n
  3. The app doesn't store ANY media files ANYWHERE except on the device who use this app.
  4. \n
  5. This app downloads only public data available from Open Subtitles.
  6. \n
\n

🕵

\n

Download

\n\n

Find your download: https://github.com/s8sachin/subtitler/releases/latest

\n
", "readmeOriginal": "

\n
\n

\n Subtitler is built using Electron React Boilerplate. That includes Electron, React, Redux, React Router, Webpack and React Hot Loader .\n

\n
\n
\n
\n \n \n \n\n subtitler-intro.mp4\n \n \n\n \n
\n\n\n
\n
\n

Install

\n

First, clone the repo via git and install dependencies:

\n
yarn
\n

Run Development

\n

Start the app in the dev environment. This starts the renderer process in hot-module-replacement mode and starts a webpack dev server that sends hot updates to the renderer process:

\n
yarn dev
\n

Packaging for Production

\n

To package apps for the local platform:

\n
yarn package
\n

Debugging on Production

\n

To package apps for the local platform:

\n
yarn cross-env DEBUG_PROD=true yarn build yarn cross-env DEBUG_PROD=true yarn start
\n\n

Maintainers

\n\n

License

\n

MIT © Sachin Srinivasan

\n

Thanks to

\n\n

Disclaimer

\n

📢📢

\n
    \n
  1. The app doesn't track you down in ANY way. Not Google Analytics, or any other service. Open a bug and let me know what do you think.
  2. \n
  3. The app doesn't store ANY media files ANYWHERE except on the device who use this app.
  4. \n
  5. This app downloads only public data available from Open Subtitles.
  6. \n
\n

🕵

\n

Download

\n\n

Find your download: https://github.com/s8sachin/subtitler/releases/latest

\n
", "readmeFetchedAt": "2022-05-10T00:08:09.947Z" }, "streamlabs-obs": { "readmeCleaned": "

Streamlabs Desktop

\n

\"Build

\n

Simple, powerful, and efficient live streaming software built on Electron and OBS.

\n

\"Streamlabs

\n

This application currently only supports OSX 10.14+ and 64-bit Windows.

\n

Dependencies

\n

Node.js

\n

Node is required for installing npm packages and for running\nvarious scripts. We recommend the latest LTS release.

\n

https://nodejs.org

\n

Yarn

\n

We use Yarn as our package manager. We use yarn modern (berry) with\nthe yarn version checked in to version control. To get the yarn CLI,\nwe currently recommend installing it with npm:

\n
npm install -g yarn\n
\n

Bash

\n

Some of our scripts assume a bash-like environment. On Windows, we recommend\nusing Git Bash, which is included with Git for Windows. On macOS, the\ndefault shell should work fine.

\n

Native Modules

\n

Streamlabs Desktop uses several native C++ modules. These are NPM modules\nthat live in separate repositories, and are automatically installed as prebuilt\nbinaries by Yarn. If you are not doing any development on these native modules,\nno additional action is required to install native modules.

\n

Installation

\n

Install all node modules via yarn:

\n
yarn install\n
\n

Then, compile assets with webpack:

\n
yarn compile\n
\n

Alternatively, you can watch for changes to app files:

\n
yarn watch\n
\n

Starting

\n

You can start the app by running:

\n
yarn start\n
\n

Environment Variables

\n

These variables can be used in development to force certain behavior.

\n

SLOBS_FORCE_AUTO_UPDATE: Force the auto-updater to run in development. Normally\nthis would only run in production.

\n

SLOBS_CACHE_DIR: Force a different location for the user data cache directory.

\n

SLOBS_DISABLE_MAIN_LOGGING: Disable javascript logging in the main process.

\n

SLOBS_REPORT_TO_SENTRY: Report errors to sentry in the dev environment

\n

SLOBS_PRODUCTION_DEBUG: Forces dev tools to open when the app starts

\n

Development

\n

You can open dev tools by clicking the </> button on the sidebar.\nIn the development environment, the titlebar of the main window will\nlight up red when an exception occurs in any window.

\n

Our app is comprised of several windows, which are essential separate\ncopies of the same Javascript app, which are running different pieces\nof the code and communicating via Electron IPC.

\n

worker - This is a persistent invisible window that runs our entire\nservices layer.

\n

main - This is the main window of the application. It communicates\nwith the worker window to perform actions.

\n

child - This window is always running in the background, and appears\nto show windows like Source Properties. It stays always running because\nElectron windows can take several seconds to initialize, so we keep it\nready in the background.

\n

There are potentially many other JS runtime processes that can be running\ndepending on use, for features like Apps, embedded webviews, one-off windows\nlike projectors, pop-outs etc.

\n

Sync / Async

\n

Given the heavy reliance on interprocess communication in our application,\nwe strongly recommend using asynchronous IPC whenever possible. When\naccessing a service, calling it as an action will call it asynchronously.

\n

For example the following (synchronous):

\n
StreamingService.toggleStreaming()\n
\n

Can be rewritten as (asynchronous):

\n
StreamingService.actions.toggleStreaming()\n
\n

The return type of the latter will automatically be void as actions\nare unable to return values. In general, receiving information from\nservices is best done via views. views are executed in-window, and\nbacked by our vuex data store, which is replicated across windows.

\n

Vue / React

\n

We are in the process of migrating from Vue to React. There are many components\nof both frameworks in our codebase currently. All new components should be\nwritten in React, and major non-trivial changes to existing Vue components\nshould be accompanied with a rewrite to React.

\n

We exclusively use functional components in React, relying on the hooks API\nfor things like component state and lifecycle.

\n

Contributing

\n

We accept outside contributions, and do our best to respond to Pull Requests.\nWe ask that all contributors sign a Contributor License Agreement before merging\ncode. We do not guarantee that all external Pull Requests will be merged, but\nwe deeply appreciate any and all changes submitted. Thank you for your interest\nand contribution.

\n

Translations

\n

At this time, we are not able to accept translations submitted to GitHub, as we\nuse a professional translation team that manages translations elsewhere.

\n

Packaging/Distribution

\n

For Windows:

\n
yarn package\n
\n

For macOS:

\n
yarn package:mac\n
\n

Note that both of these commands require code signing certificates to be\npresent in the environment, and in the case of macOS, a valid Apple developer\naccount for notarization of the app package.

\n

There are some environment variables that can be passed to skip these steps:

\n

SLOBS_NO_SIGN Do not attempt to codesign the app package

\n

SLOBS_NO_NOTARIZE Do not attempt to notarize the macOS package

\n

OBS Developers

\n

At its core, Streamlabs Desktop is powered by the OBS\nproject. We want to thank all of the developers over at the OBS project for\ntheir years of tireless hard work, without which Streamlabs Desktop wouldn't exist today.

\n
", "readmeOriginal": "

Streamlabs Desktop

\n

\"Build

\n

Simple, powerful, and efficient live streaming software built on Electron and OBS.

\n

\"Streamlabs

\n

This application currently only supports OSX 10.14+ and 64-bit Windows.

\n

Dependencies

\n

Node.js

\n

Node is required for installing npm packages and for running\nvarious scripts. We recommend the latest LTS release.

\n

https://nodejs.org

\n

Yarn

\n

We use Yarn as our package manager. We use yarn modern (berry) with\nthe yarn version checked in to version control. To get the yarn CLI,\nwe currently recommend installing it with npm:

\n
npm install -g yarn\n
\n

Bash

\n

Some of our scripts assume a bash-like environment. On Windows, we recommend\nusing Git Bash, which is included with Git for Windows. On macOS, the\ndefault shell should work fine.

\n

Native Modules

\n

Streamlabs Desktop uses several native C++ modules. These are NPM modules\nthat live in separate repositories, and are automatically installed as prebuilt\nbinaries by Yarn. If you are not doing any development on these native modules,\nno additional action is required to install native modules.

\n

Installation

\n

Install all node modules via yarn:

\n
yarn install\n
\n

Then, compile assets with webpack:

\n
yarn compile\n
\n

Alternatively, you can watch for changes to app files:

\n
yarn watch\n
\n

Starting

\n

You can start the app by running:

\n
yarn start\n
\n

Environment Variables

\n

These variables can be used in development to force certain behavior.

\n

SLOBS_FORCE_AUTO_UPDATE: Force the auto-updater to run in development. Normally\nthis would only run in production.

\n

SLOBS_CACHE_DIR: Force a different location for the user data cache directory.

\n

SLOBS_DISABLE_MAIN_LOGGING: Disable javascript logging in the main process.

\n

SLOBS_REPORT_TO_SENTRY: Report errors to sentry in the dev environment

\n

SLOBS_PRODUCTION_DEBUG: Forces dev tools to open when the app starts

\n

Development

\n

You can open dev tools by clicking the </> button on the sidebar.\nIn the development environment, the titlebar of the main window will\nlight up red when an exception occurs in any window.

\n

Our app is comprised of several windows, which are essential separate\ncopies of the same Javascript app, which are running different pieces\nof the code and communicating via Electron IPC.

\n

worker - This is a persistent invisible window that runs our entire\nservices layer.

\n

main - This is the main window of the application. It communicates\nwith the worker window to perform actions.

\n

child - This window is always running in the background, and appears\nto show windows like Source Properties. It stays always running because\nElectron windows can take several seconds to initialize, so we keep it\nready in the background.

\n

There are potentially many other JS runtime processes that can be running\ndepending on use, for features like Apps, embedded webviews, one-off windows\nlike projectors, pop-outs etc.

\n

Sync / Async

\n

Given the heavy reliance on interprocess communication in our application,\nwe strongly recommend using asynchronous IPC whenever possible. When\naccessing a service, calling it as an action will call it asynchronously.

\n

For example the following (synchronous):

\n
StreamingService.toggleStreaming()\n
\n

Can be rewritten as (asynchronous):

\n
StreamingService.actions.toggleStreaming()\n
\n

The return type of the latter will automatically be void as actions\nare unable to return values. In general, receiving information from\nservices is best done via views. views are executed in-window, and\nbacked by our vuex data store, which is replicated across windows.

\n

Vue / React

\n

We are in the process of migrating from Vue to React. There are many components\nof both frameworks in our codebase currently. All new components should be\nwritten in React, and major non-trivial changes to existing Vue components\nshould be accompanied with a rewrite to React.

\n

We exclusively use functional components in React, relying on the hooks API\nfor things like component state and lifecycle.

\n

Contributing

\n

We accept outside contributions, and do our best to respond to Pull Requests.\nWe ask that all contributors sign a Contributor License Agreement before merging\ncode. We do not guarantee that all external Pull Requests will be merged, but\nwe deeply appreciate any and all changes submitted. Thank you for your interest\nand contribution.

\n

Translations

\n

At this time, we are not able to accept translations submitted to GitHub, as we\nuse a professional translation team that manages translations elsewhere.

\n

Packaging/Distribution

\n

For Windows:

\n
yarn package\n
\n

For macOS:

\n
yarn package:mac\n
\n

Note that both of these commands require code signing certificates to be\npresent in the environment, and in the case of macOS, a valid Apple developer\naccount for notarization of the app package.

\n

There are some environment variables that can be passed to skip these steps:

\n

SLOBS_NO_SIGN Do not attempt to codesign the app package

\n

SLOBS_NO_NOTARIZE Do not attempt to notarize the macOS package

\n

OBS Developers

\n

At its core, Streamlabs Desktop is powered by the OBS\nproject. We want to thank all of the developers over at the OBS project for\ntheir years of tireless hard work, without which Streamlabs Desktop wouldn't exist today.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.136Z" }, "switch": { "readmeCleaned": "

\"Switch

\n

\"Build \"Build

\n

Keyboard-driven commands to navigate your apps faster. Available for 🪟 Windows & 🍏 macOS

\n
\n

🆕 🥳 Hurray! We are happy to announce that Switch is now available for macOS. Download now 👌

\n
\n
\n

ℹ️ Switch 2 for Windows is around the corner. Have a feature in mind? Let us know! 👈

\n
\n

Features

\n\n
\n

Download Switch now 🪟 🍏

\n
\n

Screenshot

\n

\"Switch

\n

Components

\n

Switch as two main components.

\n\n

Contributing

\n

If you have found any bugs or just want to see some new features in Switch, feel free to open an issue. I'm open to any suggestions and bug reports would be really helpful. Switch is under development and some bugs may occur. Also, please don't hesitate to open a pull request.

\n

Running

\n

Before running Switch in development mode, please ensure you have Node.js installed on your machine.

\n

Clone this repo, and cd into it, Then:

\n
$npm i\n$npm run get-ss-prebuild\n$npm run dev
\n

License

\n

Read LICENSE.md

\n
", "readmeOriginal": "

\"Switch

\n

\"Build \"Build

\n

Keyboard-driven commands to navigate your apps faster. Available for 🪟 Windows & 🍏 macOS

\n
\n

🆕 🥳 Hurray! We are happy to announce that Switch is now available for macOS. Download now 👌

\n
\n
\n

ℹ️ Switch 2 for Windows is around the corner. Have a feature in mind? Let us know! 👈

\n
\n

Features

\n\n
\n

Download Switch now 🪟 🍏

\n
\n

Screenshot

\n

\"Switch

\n

Components

\n

Switch as two main components.

\n\n

Contributing

\n

If you have found any bugs or just want to see some new features in Switch, feel free to open an issue. I'm open to any suggestions and bug reports would be really helpful. Switch is under development and some bugs may occur. Also, please don't hesitate to open a pull request.

\n

Running

\n

Before running Switch in development mode, please ensure you have Node.js installed on your machine.

\n

Clone this repo, and cd into it, Then:

\n
$npm i\n$npm run get-ss-prebuild\n$npm run dev
\n

License

\n

Read LICENSE.md

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.140Z" }, "super-productivity": { "readmeCleaned": "

\"Stand

\n\n \"Banner\"\n\n

\n\n \"MIT\n\n\n \"GitHub\n\n\n \"On\n\n\n \"tweet\"\n\n
\n
\n\n \"Get\n\n\n \"English\n\n\n \"App\n\n\n \"Play\n\n

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities.

\n

🌐 Open Web App or 💻 Download

\n

✔️ Features

\n\n

And much more!

\n

\"Work

\n

How to use it

\n

If you need some help, the best place to start is this article on dev.to.

\n

If you prefer there is also a (long) youtube video available.

\n

There is another article on how I personally might use the app - and still another one on how I implement the 'eat the frog' prioritizing scheme in the app .

\n

If you have further questions, please refer to the discussions page.

\n
\n Keyboard shortcuts and short-syntax\n

Keyboard shortcuts (most importan)

\n
    \n
  • Shift+A: Open add task bar
  • \n
  • Enter: Edit currently focussed task title
  • \n
  • Arrow keys: Navigate around task list
  • \n
  • D: Mark currently focused task as done
  • \n
  • A: Add subtask to currently focused task
  • \n
  • Y: Toggle tracking time to currently focused task
  • \n
  • S: Open schedule dialog for currently focused task
  • \n
  • Backspace: Delete currently focused task
  • \n
  • ArrowRight: Open additional info panel for currently focused task
  • \n
  • Ctrl+Shift+ArrowUp: Move currently focused task up in list
  • \n
  • Ctrl+Shift+ArrowDown: Move currently focused task down in list
  • \n
\n

Short-Syntax

\n

Can be used when adding a task.

\n
    \n
  • # <tag-name>: add a tag to the task
    \n(\"task-description #tag1\")
  • \n
  • <number>m or <number>h: set time-estimate for the task
    \n(\"task-description 10m\" or \"task-description 5h\")
  • \n
  • + <project-name>: add the task to an existing project
    \n(\"task-description +Important Project\")
  • \n
\n
\n

🌐 Web Version

\n

Check out the web version eventhough it is a bit limited: Time tracking only works if the app is open and for idle time tracking to work, the chrome extension has to be installed.

\n

If you want the Jira integration and idle time tracking to work, you have to also download and install the Super Productivity Chrome Extension.

\n

💻 Downloads & Install

\n

All Platforms

\n

Install from the releases page.

\n

Windows

\n

Due to certification issues it's recommended to download the app from the Microsoft Store:

\n

\"English

\n

Linux

\n
# stable\nsudo snap install superproductivity\n\n# edge channel releases\n sudo snap install --channel=edge superproductivity\n\n # it is also recommended to disable updates to the app while it is running:\n sudo snap set core experimental.refresh-app-awareness=true\n
\n\n \"Get\n\n

Arch

\n
git clone https://aur.archlinux.org/superproductivity-bin.git\ncd superproductivity-bin\nmakepkg -si
\n

MacOS

\n

Install via homebrew cask:

\n
brew install --cask superproductivity\n
\n\n \"App\n\n

Android

\n

There is a very early(!) Android version available. The sources can be found here.

\n\n \"App\n\n

♥️ Contributing

\n

Please check out the CONTRIBUTING.md

\n

There are several ways to help.

\n
    \n
  1. \n

    Spread the word: More users means more people testing and contributing to the app which in turn means better stability and possibly more and better features. You can vote for Super Productivity on Slant, Product Hunt, Softpedia or on AlternativeTo, you can tweet about it, share it on LinkedIn, reddit or any of your favorite social media platforms. Every little bit helps!

    \n
  2. \n
  3. \n

    Provide a Pull Request: Here is a list of the most popular community requests and here some info on how to run the development build.\nPlease make sure that you're following the angular commit guidelines and to also include the issue number in your commit message, if you're fixing a particular issue (e.g.: feat: add nice feature with the number #31).

    \n
  4. \n
  5. \n

    Answer questions: You know the answer to another user's problem? Share your knowledge!

    \n
  6. \n
  7. \n

    Provide your opinion: Some community suggestions are controversial. Your input might be helpful and if it is just an up- or down-vote.

    \n
  8. \n
  9. \n

    Provide a more refined ui spec for existing feature requests

    \n
  10. \n
  11. \n

    Report bugs

    \n
  12. \n
  13. \n

    Make a feature or improvement request: Something can be be done better? Something essential missing? Let us know!

    \n
  14. \n
  15. \n

    Translations, Icons, etc.: You don't have to be programmer to help. Some of the icons really need improvement and many of the translations could use some love.

    \n
  16. \n
  17. \n

    Sponsor the project

    \n
  18. \n
\n

Running the development server

\n

To run the development server you need to have node installed at least in the version 14. Go to https://nodejs.org for installation instructions.

\n

Clone repo

\n
git clone https://github.com/johannesjo/super-productivity.git\n
\n

Install dependencies

\n
cd super-productivity\nnpm i -g @angular/cli\nnpm i\n
\n

Run the dev server

\n
ng serve\n
\n

Afterwards you can open http://localhost:4200 in your browser. For most adjustments this should be enough and also enables you to use the redux dev tools.

\n

If you want to run the app standalone do the following:

\n
ng serve\n\n# in a new console tab\nnpm start\n
\n

Packaging the app

\n

Packaging the app is done via electron-builder. To start packaging run npm run dist. If you want to add new platforms and experiment with the build options the easiest way to do so is manipulating the build property in the package.json, but you can also use the command line interface of electron builder.

\n

Run as Docker Container

\n
docker run -d -p 80:80 johannesjo/super-productivity:latest\n
\n

Custom themes (desktop only)

\n

In addition to color coding your projects and tags and to the dark and light theme you can also load completely custom css to restyle everything. To load a custom theme you simply need put them into a new file named styles.css directly in the user data folder.

\n

There is a great set of themes available for download in this repository as well as some info on how to role out your own custom themes.

\n

Custom WebDAV Syncing

\n

If using the integrated WebDAV Syncing is not working out for you, you can also try to sync all app files, which are located in the user data folder.

\n

Automatic Backups

\n

For the desktop version automatic backups are stored per default in the backup sub folder of the user data folder. Once you located a backup you can restore it on the settings page under Sync & Export/Import/Export/Import from file.

\n

User Data Folder

\n

Where user data is stored differs from os to os. The most common locations are:\nMac OS: ~/Library/Application Support/superProductivity/\nWindows: C:\\Users\\<YOUR_USER_NAME>\\AppData\\Roaming\\superProductivity/ or %APPDATA%\\superProductivity\nLinux: ~/.config/superProductivity/

\n

The path should be shown when you go to the \"Automatic Backups` section on the configuration page (minus the \"backup\" sub folder). You can also see it printed out when you start the app from the command line.

\n

For web browsers data is simply stored for the current user inside the browser storage.

\n

Using a custom folder to save user data

\n

You can specify a custom folder for saving your data by starting the application with the --user-data-dir parameter like so:

\n
superproductivity --user-data-dir=/path/to/my/data\n
\n
", "readmeOriginal": "

\"Stand

\n\n \"Banner\"\n\n

\n\n \"MIT\n\n\n \"GitHub\n\n\n \"On\n\n\n \"tweet\"\n\n
\n
\n\n \"Get\n\n\n \"English\n\n\n \"App\n\n\n \"Play\n\n

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities.

\n

🌐 Open Web App or 💻 Download

\n

✔️ Features

\n\n

And much more!

\n

\"Work

\n

How to use it

\n

If you need some help, the best place to start is this article on dev.to.

\n

If you prefer there is also a (long) youtube video available.

\n

There is another article on how I personally might use the app - and still another one on how I implement the 'eat the frog' prioritizing scheme in the app .

\n

If you have further questions, please refer to the discussions page.

\n
\n Keyboard shortcuts and short-syntax\n

Keyboard shortcuts (most importan)

\n
    \n
  • Shift+A: Open add task bar
  • \n
  • Enter: Edit currently focussed task title
  • \n
  • Arrow keys: Navigate around task list
  • \n
  • D: Mark currently focused task as done
  • \n
  • A: Add subtask to currently focused task
  • \n
  • Y: Toggle tracking time to currently focused task
  • \n
  • S: Open schedule dialog for currently focused task
  • \n
  • Backspace: Delete currently focused task
  • \n
  • ArrowRight: Open additional info panel for currently focused task
  • \n
  • Ctrl+Shift+ArrowUp: Move currently focused task up in list
  • \n
  • Ctrl+Shift+ArrowDown: Move currently focused task down in list
  • \n
\n

Short-Syntax

\n

Can be used when adding a task.

\n
    \n
  • # <tag-name>: add a tag to the task
    \n(\"task-description #tag1\")
  • \n
  • <number>m or <number>h: set time-estimate for the task
    \n(\"task-description 10m\" or \"task-description 5h\")
  • \n
  • + <project-name>: add the task to an existing project
    \n(\"task-description +Important Project\")
  • \n
\n
\n

🌐 Web Version

\n

Check out the web version eventhough it is a bit limited: Time tracking only works if the app is open and for idle time tracking to work, the chrome extension has to be installed.

\n

If you want the Jira integration and idle time tracking to work, you have to also download and install the Super Productivity Chrome Extension.

\n

💻 Downloads & Install

\n

All Platforms

\n

Install from the releases page.

\n

Windows

\n

Due to certification issues it's recommended to download the app from the Microsoft Store:

\n

\"English

\n

Linux

\n
# stable\nsudo snap install superproductivity\n\n# edge channel releases\n sudo snap install --channel=edge superproductivity\n\n # it is also recommended to disable updates to the app while it is running:\n sudo snap set core experimental.refresh-app-awareness=true\n
\n\n \"Get\n\n

Arch

\n
git clone https://aur.archlinux.org/superproductivity-bin.git\ncd superproductivity-bin\nmakepkg -si
\n

MacOS

\n

Install via homebrew cask:

\n
brew install --cask superproductivity\n
\n\n \"App\n\n

Android

\n

There is a very early(!) Android version available. The sources can be found here.

\n\n \"App\n\n

♥️ Contributing

\n

Please check out the CONTRIBUTING.md

\n

There are several ways to help.

\n
    \n
  1. \n

    Spread the word: More users means more people testing and contributing to the app which in turn means better stability and possibly more and better features. You can vote for Super Productivity on Slant, Product Hunt, Softpedia or on AlternativeTo, you can tweet about it, share it on LinkedIn, reddit or any of your favorite social media platforms. Every little bit helps!

    \n
  2. \n
  3. \n

    Provide a Pull Request: Here is a list of the most popular community requests and here some info on how to run the development build.\nPlease make sure that you're following the angular commit guidelines and to also include the issue number in your commit message, if you're fixing a particular issue (e.g.: feat: add nice feature with the number #31).

    \n
  4. \n
  5. \n

    Answer questions: You know the answer to another user's problem? Share your knowledge!

    \n
  6. \n
  7. \n

    Provide your opinion: Some community suggestions are controversial. Your input might be helpful and if it is just an up- or down-vote.

    \n
  8. \n
  9. \n

    Provide a more refined ui spec for existing feature requests

    \n
  10. \n
  11. \n

    Report bugs

    \n
  12. \n
  13. \n

    Make a feature or improvement request: Something can be be done better? Something essential missing? Let us know!

    \n
  14. \n
  15. \n

    Translations, Icons, etc.: You don't have to be programmer to help. Some of the icons really need improvement and many of the translations could use some love.

    \n
  16. \n
  17. \n

    Sponsor the project

    \n
  18. \n
\n

Running the development server

\n

To run the development server you need to have node installed at least in the version 14. Go to https://nodejs.org for installation instructions.

\n

Clone repo

\n
git clone https://github.com/johannesjo/super-productivity.git\n
\n

Install dependencies

\n
cd super-productivity\nnpm i -g @angular/cli\nnpm i\n
\n

Run the dev server

\n
ng serve\n
\n

Afterwards you can open http://localhost:4200 in your browser. For most adjustments this should be enough and also enables you to use the redux dev tools.

\n

If you want to run the app standalone do the following:

\n
ng serve\n\n# in a new console tab\nnpm start\n
\n

Packaging the app

\n

Packaging the app is done via electron-builder. To start packaging run npm run dist. If you want to add new platforms and experiment with the build options the easiest way to do so is manipulating the build property in the package.json, but you can also use the command line interface of electron builder.

\n

Run as Docker Container

\n
docker run -d -p 80:80 johannesjo/super-productivity:latest\n
\n

Custom themes (desktop only)

\n

In addition to color coding your projects and tags and to the dark and light theme you can also load completely custom css to restyle everything. To load a custom theme you simply need put them into a new file named styles.css directly in the user data folder.

\n

There is a great set of themes available for download in this repository as well as some info on how to role out your own custom themes.

\n

Custom WebDAV Syncing

\n

If using the integrated WebDAV Syncing is not working out for you, you can also try to sync all app files, which are located in the user data folder.

\n

Automatic Backups

\n

For the desktop version automatic backups are stored per default in the backup sub folder of the user data folder. Once you located a backup you can restore it on the settings page under Sync & Export/Import/Export/Import from file.

\n

User Data Folder

\n

Where user data is stored differs from os to os. The most common locations are:\nMac OS: ~/Library/Application Support/superProductivity/\nWindows: C:\\Users\\<YOUR_USER_NAME>\\AppData\\Roaming\\superProductivity/ or %APPDATA%\\superProductivity\nLinux: ~/.config/superProductivity/

\n

The path should be shown when you go to the \"Automatic Backups` section on the configuration page (minus the \"backup\" sub folder). You can also see it printed out when you start the app from the command line.

\n

For web browsers data is simply stored for the current user inside the browser storage.

\n

Using a custom folder to save user data

\n

You can specify a custom folder for saving your data by starting the application with the --user-data-dir parameter like so:

\n
superproductivity --user-data-dir=/path/to/my/data\n
\n
", "readmeFetchedAt": "2022-05-10T00:08:10.177Z" }, "switchhosts": { "readmeCleaned": "

SwitchHosts

\n\n

Homepage: https://swh.app

\n

SwitchHosts is an App for managing hosts file, it is based on Electron\n, React, UmiJS\n, Chakra UI, CodeMirror, etc.

\n

Screenshot

\n

\"Capture\"

\n

Features

\n\n

Install

\n

Download

\n

You can download the source code and build it yourself, or download the built version from following\nlinks:

\n\n

Backup

\n

SwitchHosts stores data at ~/.SwitchHosts (Or folder .SwitchHosts under the current user's home\npath on Windows), the ~/.SwitchHosts/data folder contains data, while the ~/.SwitchHosts/config\nfolder contains various configuration information.

\n

Develop and build

\n

Development

\n\n

Build and package

\n\n
# build\nnpm run build\n\n# make\nnpm run make # the packed files will be in ./dist
\n

Copyright

\n

SwitchHosts is a free and open source software, it is released under the Apache License.

\n
", "readmeOriginal": "

SwitchHosts

\n\n

Homepage: https://swh.app

\n

SwitchHosts is an App for managing hosts file, it is based on Electron\n, React, UmiJS\n, Chakra UI, CodeMirror, etc.

\n

Screenshot

\n

\"Capture\"

\n

Features

\n\n

Install

\n

Download

\n

You can download the source code and build it yourself, or download the built version from following\nlinks:

\n\n

Backup

\n

SwitchHosts stores data at ~/.SwitchHosts (Or folder .SwitchHosts under the current user's home\npath on Windows), the ~/.SwitchHosts/data folder contains data, while the ~/.SwitchHosts/config\nfolder contains various configuration information.

\n

Develop and build

\n

Development

\n\n

Build and package

\n\n
# build\nnpm run build\n\n# make\nnpm run make # the packed files will be in ./dist
\n

Copyright

\n

SwitchHosts is a free and open source software, it is released under the Apache License.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.205Z" }, "tabby": { "readmeCleaned": "

About

\n

Simple, beautiful timetable application to track your school schedule. You can add tasks, change theme with available dark mode and choose language.\nMade by me and KDani-99. We used this bootstrap to make it https://github.com/maximegris/angular-electron.

\n

To use it, just download the latest version from the releases and run it.\nAvailable for Windows, Mac, Android and iOS.

\n

Android & iOS version: https://github.com/KDani-99/tabby-native

\n

Screenshots

\n

\"Screenshot\n\"Screenshot\n\"Screenshot

\n

Currently available languages

\n

English, Hungarian, German, Argentinian Spanish, French, Vietnamese, Brazilian Portuguese, Simplified Chinese, Korean, Russian and Ukrainian.

\n

Bugs

\n

If you think something is broken, open an issue ticket.

\n
", "readmeOriginal": "

About

\n

Simple, beautiful timetable application to track your school schedule. You can add tasks, change theme with available dark mode and choose language.\nMade by me and KDani-99. We used this bootstrap to make it https://github.com/maximegris/angular-electron.

\n

To use it, just download the latest version from the releases and run it.\nAvailable for Windows, Mac, Android and iOS.

\n

Android & iOS version: https://github.com/KDani-99/tabby-native

\n

Screenshots

\n

\"Screenshot\n\"Screenshot\n\"Screenshot

\n

Currently available languages

\n

English, Hungarian, German, Argentinian Spanish, French, Vietnamese, Brazilian Portuguese, Simplified Chinese, Korean, Russian and Ukrainian.

\n

Bugs

\n

If you think something is broken, open an issue ticket.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.415Z" }, "syng": { "readmeCleaned": "

\n \"Syng\n

\n

Syng | 词应

\n
Dictionary App | 词典应用
\n

About

\n

Syng is a free, open source, Chinese-To-English and English-To-Chinese Dictionary app that makes it easy to lookup words and phrases quickly. Currently Syng works on macOS, Windows, and Linux systems.

\n

Name

\n

Syng is a stylized spelling of cíyīng, the Pinyin for 词应. 词应 has been shorted from 词典应用, literally translating to Dictionary App.

\n

Features

\n\n

What's new?

\n

These are few feature additions and visual changes in v1.5.0. For a full list of changes, see the changelog.

\n
    \n
  1. Added support for custom tone colors
  2. \n
\n

Screenshots

\n

More screenshots available on the Syng website.

\n

\"image\"

\n

Installing

\n

Linux

\n

To install Syng on Linux, you can you use the pre-built installation script by copy and pasting the code below into terminal. It's good to be cautious about what you are putting in your terminal, you can read the 64-bit install script here and the 32-bit install script here.

\n

For 64-bit systems:

\n
wget -O- https://bit.ly/2weiJxU | bash\n
\n

For 32-bit systems:

\n
wget -O- https://bit.ly/2OLXtay | bash\n
\n

Alternatively, if you aren't comfortable running the pre-built installation script, you can install manually by downloading the 64-bit candidate here and the 32-bit candidate here and then following the installation instructions provided.

\n

macOS

\n

To install Syng on macOS, simply download the .dmg file from here and then drag and drop the Syng app into your Applications folder.

\n

Windows

\n

To install Syng on Windows, you can download the 64-bit installer from here and the 32-bit installer from here and use it to install Syng.

\n

Maintainers

\n\n

License

\n

This software is licensed under the GNU Public License 3. The file at app/src/db/cc-cedict.json is licensed under the Creative Commons Attribution-Share Alike 3.0 License.

\n
", "readmeOriginal": "

\n \"Syng\n

\n

Syng | 词应

\n
Dictionary App | 词典应用
\n

About

\n

Syng is a free, open source, Chinese-To-English and English-To-Chinese Dictionary app that makes it easy to lookup words and phrases quickly. Currently Syng works on macOS, Windows, and Linux systems.

\n

Name

\n

Syng is a stylized spelling of cíyīng, the Pinyin for 词应. 词应 has been shorted from 词典应用, literally translating to Dictionary App.

\n

Features

\n\n

What's new?

\n

These are few feature additions and visual changes in v1.5.0. For a full list of changes, see the changelog.

\n
    \n
  1. Added support for custom tone colors
  2. \n
\n

Screenshots

\n

More screenshots available on the Syng website.

\n

\"image\"

\n

Installing

\n

Linux

\n

To install Syng on Linux, you can you use the pre-built installation script by copy and pasting the code below into terminal. It's good to be cautious about what you are putting in your terminal, you can read the 64-bit install script here and the 32-bit install script here.

\n

For 64-bit systems:

\n
wget -O- https://bit.ly/2weiJxU | bash\n
\n

For 32-bit systems:

\n
wget -O- https://bit.ly/2OLXtay | bash\n
\n

Alternatively, if you aren't comfortable running the pre-built installation script, you can install manually by downloading the 64-bit candidate here and the 32-bit candidate here and then following the installation instructions provided.

\n

macOS

\n

To install Syng on macOS, simply download the .dmg file from here and then drag and drop the Syng app into your Applications folder.

\n

Windows

\n

To install Syng on Windows, you can download the 64-bit installer from here and the 32-bit installer from here and use it to install Syng.

\n

Maintainers

\n\n

License

\n

This software is licensed under the GNU Public License 3. The file at app/src/db/cc-cedict.json is licensed under the Creative Commons Attribution-Share Alike 3.0 License.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.418Z" }, "swifty": { "readmeCleaned": "

\"\"

\n

Free Offline-first Password Manager for MacOS, Windows and Linux.

\n
\n

\"\"

\n

\"Actions\n\"Financial \"GitHub\n\"GitHub\n\"Encryption\"

\n
\n

❤️ it? Then ⭐️ it on GitHub or Tweet about it.

\n

Features

\n\n

Screenshots

\n

\"img\"

\n

\"img\"

\n

Install

\n

Check Latest Releases page for recent version of packaged app for MacOS, Windows or Linux.

\n

Alternatively you can build app yourself:

\n
git clone git@github.com:swiftyapp/swifty.git\nyarn install\nbozon package mac\n
\n

Contributors

\n

Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

GNU/GPL Version 3

\n
", "readmeOriginal": "

\"\"

\n

Free Offline-first Password Manager for MacOS, Windows and Linux.

\n
\n

\"\"

\n

\"Actions\n\"Financial \"GitHub\n\"GitHub\n\"Encryption\"

\n
\n

❤️ it? Then ⭐️ it on GitHub or Tweet about it.

\n

Features

\n\n

Screenshots

\n

\"img\"

\n

\"img\"

\n

Install

\n

Check Latest Releases page for recent version of packaged app for MacOS, Windows or Linux.

\n

Alternatively you can build app yourself:

\n
git clone git@github.com:swiftyapp/swifty.git\nyarn install\nbozon package mac\n
\n

Contributors

\n

Code Contributors

\n

This project exists thanks to all the people who contribute. [Contribute].\n

\n

Financial Contributors

\n

Become a financial contributor and help us sustain our community. [Contribute]

\n

Individuals

\n

\n

Organizations

\n

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

\n

\n\n\n\n\n\n\n\n\n

\n

License

\n

GNU/GPL Version 3

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.527Z" }, "symphony": { "readmeCleaned": "

\"FINOS\n\"Symphony\n\"Continuous\n\"Known

\n

SymphonyElectron

\n

About:

\n

SymphonyElectron is a desktop client of the Symphony Communication Platform built for macOS, Windows 10, Windows 7\nand Linux (experimental)\n. We've built this using the popular electron framework to support cross platform desktop apps loaded in a chromium container.

\n

Contributing

\n
    \n
  1. Fork it (https://github.com/symphonyoss/SymphonyElectron/fork)
  2. \n
  3. Create your feature branch (git checkout -b feature/fooBar)
  4. \n
  5. Read our contribution guidelines and Community Code of Conduct
  6. \n
  7. Commit your changes (git commit -am 'Add some fooBar')
  8. \n
  9. Push to the branch (git push origin feature/fooBar)
  10. \n
  11. Create a new Pull Request
  12. \n
\n

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

\n

Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org

\n

Project Goals:

\n

Our goal is to improve the performance and development agility of Symphony's desktop wrapper and build a path to support other wrappers by:

\n
    \n
  1. Standardizing the JS to native interfaces
  2. \n
  3. Standardizing the app to app interfaces (current embedding API)
  4. \n
  5. Provide an open and free reference implementation that anyone can contribute to, modify, and make derivative works.
  6. \n
\n

In order to achieve those goals Symphony is participating and working in close collaboration with the Foundation Desktop Wrapper Working Group

\n

Development Setup & Running

\n

Read Dev Setup

\n

License

\n

The code in this repository is distributed under the Apache License, Version 2.0.

\n

Copyright 2021 Symphony LLC

\n
", "readmeOriginal": "

\"FINOS\n\"Symphony\n\"Continuous\n\"Known

\n

SymphonyElectron

\n

About:

\n

SymphonyElectron is a desktop client of the Symphony Communication Platform built for macOS, Windows 10, Windows 7\nand Linux (experimental)\n. We've built this using the popular electron framework to support cross platform desktop apps loaded in a chromium container.

\n

Contributing

\n
    \n
  1. Fork it (https://github.com/symphonyoss/SymphonyElectron/fork)
  2. \n
  3. Create your feature branch (git checkout -b feature/fooBar)
  4. \n
  5. Read our contribution guidelines and Community Code of Conduct
  6. \n
  7. Commit your changes (git commit -am 'Add some fooBar')
  8. \n
  9. Push to the branch (git push origin feature/fooBar)
  10. \n
  11. Create a new Pull Request
  12. \n
\n

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

\n

Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org

\n

Project Goals:

\n

Our goal is to improve the performance and development agility of Symphony's desktop wrapper and build a path to support other wrappers by:

\n
    \n
  1. Standardizing the JS to native interfaces
  2. \n
  3. Standardizing the app to app interfaces (current embedding API)
  4. \n
  5. Provide an open and free reference implementation that anyone can contribute to, modify, and make derivative works.
  6. \n
\n

In order to achieve those goals Symphony is participating and working in close collaboration with the Foundation Desktop Wrapper Working Group

\n

Development Setup & Running

\n

Read Dev Setup

\n

License

\n

The code in this repository is distributed under the Apache License, Version 2.0.

\n

Copyright 2021 Symphony LLC

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.594Z" }, "system-designer": { "readmeCleaned": "

System Designer

\n

\"cucumber

\n

\"Image

\n

What is System Designer ?

\n

No matter the frameworks you use and the code you write, the most important is the model that you define to create your system. System Designer helps you to design this model and to generate the classes and components to build your system.

\n

What is a system ?

\n

With System Designer you create in fact a system and not an application. But what is a system ?

\n

A system:

\n\n

\"Image

\n

What can I do with System Designer ?

\n

Design your system with ease

\n

If you look at the different JavaScript frameworks on the market, you will notice that they all have their own way to define a model, generally only with code.

\n

System Designer uses UML, a standard, to define your model. So you probably already know how to design in System Designer even if you have never run it.

\n

The definition of the model is stored on a JSON format called MSON. With MSON you can define types, classes, one to one / one to many relationships and multi inheritance between classes.

\n

Code the behavior of your system

\n

Once you have created your model, System Designer generates the skeletons of all your methods. You only have then to add your code to implement them.

\n

System Designer provides you helpers to manage your components. You can easily navigate through components to create your application.

\n

Create components graphically

\n

There is no need to code to instantiate a component. Create a component in System Designer is like creating a document in a NoSQL Database.

\n

In fact, System Designer acts as an ODM (Object-Document Mapper) to manage your components as NoSQL Documents.

\n

Run your system

\n

You can run your system directly from System Designer and then export it to HTML, JSON, JavaScript, a Node.js module or a Graphviz file (* macOS, Windows, Linux and PWA version only).

\n

Because you have defined a model for your application, a Dynamic Type Check is done on every action of your system. All warnings are send and shown in System Designer.

\n

Debug your system

\n

System Designer can load the model of any system that runs on the browser or on Node.js. You can see the schemas, models, components and methods of the running system and you can edit them.

\n

All modifications to the model done inside System Designer will be send to the running system. There is no need to reload to see your modifications.

\n

Design on the go

\n

System Designer can be used on Windows, macOS, Linux, iOS, iPad, Android or any browsers. You can also install it in your project: System Designer requires no backend to work, it is a full web application.

\n

System Designer has a GitHub module to synchronize your work between all these apps. You can begin your design on your Mac and then continue it on your iPad.

\n

Build

\n

Installation

\n

Clone the repository:

\n
git clone https://github.com/design-first/system-designer.git
\n

Once you have cloned the repository, install the dependencies:

\n
npm i
\n

Build for web

\n

Here are the different tasks you can use to build and start System Designer as a Progressive Web App (PWA):

\n
npm run web
\n

Then you can start the server:

\n
npm run start
\n

Once server started, go to http://localhost:8080/.

\n

Build for macOS / Windows / Linux

\n

To build System Designer for Electron:

\n
npm run electron
\n

Copy the content of /dist directory into your System Designer for Electron project.

\n

Then in your System Designer for Electron project:

\n
# build for macOS\nnpm run macOS\n\n# build for Windows\nnpm run windows\n\n# build for Linux\nnpm run linux
\n

Build for iOS / Android

\n

To build System Designer for Cordova:

\n
npm run cordova
\n

Copy the content of /dist directory into your System Designer for Cordova project.

\n

Then in your System Designer for Cordova project:

\n
# build for ios\nnpx cordova build ios\n\n# build for android\nnpx cordova build android
\n

Development

\n

Web

\n

To start System Designer in development mode for web:

\n
npm run dev
\n

Once server started, go to http://localhost:9001/. All the modifications to the source code of System Designer will rebuild the solution and refresh the page.

\n

Mobile devices

\n

To start System Designer in development mode for mobile devices:

\n
npm run dev-cordova
\n

Once server started, go to http://localhost:9001/. All the modifications to the source code of System Designer will rebuild the solution and refresh the page.

\n

Documentation

\n\n

Community

\n\n

License

\n

Copyright © 2022 Erwan Carriou

\n

Licensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at

\n
http://www.apache.org/licenses/LICENSE-2.0\n
\n

Unless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.

\n

Do not use System Designer if you do not believe in Equality and Diversity.

\n

System Designer is not for people of hate.

\n
", "readmeOriginal": "

System Designer

\n

\"cucumber

\n

\"Image

\n

What is System Designer ?

\n

No matter the frameworks you use and the code you write, the most important is the model that you define to create your system. System Designer helps you to design this model and to generate the classes and components to build your system.

\n

What is a system ?

\n

With System Designer you create in fact a system and not an application. But what is a system ?

\n

A system:

\n\n

\"Image

\n

What can I do with System Designer ?

\n

Design your system with ease

\n

If you look at the different JavaScript frameworks on the market, you will notice that they all have their own way to define a model, generally only with code.

\n

System Designer uses UML, a standard, to define your model. So you probably already know how to design in System Designer even if you have never run it.

\n

The definition of the model is stored on a JSON format called MSON. With MSON you can define types, classes, one to one / one to many relationships and multi inheritance between classes.

\n

Code the behavior of your system

\n

Once you have created your model, System Designer generates the skeletons of all your methods. You only have then to add your code to implement them.

\n

System Designer provides you helpers to manage your components. You can easily navigate through components to create your application.

\n

Create components graphically

\n

There is no need to code to instantiate a component. Create a component in System Designer is like creating a document in a NoSQL Database.

\n

In fact, System Designer acts as an ODM (Object-Document Mapper) to manage your components as NoSQL Documents.

\n

Run your system

\n

You can run your system directly from System Designer and then export it to HTML, JSON, JavaScript, a Node.js module or a Graphviz file (* macOS, Windows, Linux and PWA version only).

\n

Because you have defined a model for your application, a Dynamic Type Check is done on every action of your system. All warnings are send and shown in System Designer.

\n

Debug your system

\n

System Designer can load the model of any system that runs on the browser or on Node.js. You can see the schemas, models, components and methods of the running system and you can edit them.

\n

All modifications to the model done inside System Designer will be send to the running system. There is no need to reload to see your modifications.

\n

Design on the go

\n

System Designer can be used on Windows, macOS, Linux, iOS, iPad, Android or any browsers. You can also install it in your project: System Designer requires no backend to work, it is a full web application.

\n

System Designer has a GitHub module to synchronize your work between all these apps. You can begin your design on your Mac and then continue it on your iPad.

\n

Build

\n

Installation

\n

Clone the repository:

\n
git clone https://github.com/design-first/system-designer.git
\n

Once you have cloned the repository, install the dependencies:

\n
npm i
\n

Build for web

\n

Here are the different tasks you can use to build and start System Designer as a Progressive Web App (PWA):

\n
npm run web
\n

Then you can start the server:

\n
npm run start
\n

Once server started, go to http://localhost:8080/.

\n

Build for macOS / Windows / Linux

\n

To build System Designer for Electron:

\n
npm run electron
\n

Copy the content of /dist directory into your System Designer for Electron project.

\n

Then in your System Designer for Electron project:

\n
# build for macOS\nnpm run macOS\n\n# build for Windows\nnpm run windows\n\n# build for Linux\nnpm run linux
\n

Build for iOS / Android

\n

To build System Designer for Cordova:

\n
npm run cordova
\n

Copy the content of /dist directory into your System Designer for Cordova project.

\n

Then in your System Designer for Cordova project:

\n
# build for ios\nnpx cordova build ios\n\n# build for android\nnpx cordova build android
\n

Development

\n

Web

\n

To start System Designer in development mode for web:

\n
npm run dev
\n

Once server started, go to http://localhost:9001/. All the modifications to the source code of System Designer will rebuild the solution and refresh the page.

\n

Mobile devices

\n

To start System Designer in development mode for mobile devices:

\n
npm run dev-cordova
\n

Once server started, go to http://localhost:9001/. All the modifications to the source code of System Designer will rebuild the solution and refresh the page.

\n

Documentation

\n\n

Community

\n\n

License

\n

Copyright © 2022 Erwan Carriou

\n

Licensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at

\n
http://www.apache.org/licenses/LICENSE-2.0\n
\n

Unless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.

\n

Do not use System Designer if you do not believe in Equality and Diversity.

\n

System Designer is not for people of hate.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.719Z" }, "tabby-terminal": { "readmeCleaned": "

\"\"

\n

\n \"GitHub     \"Matrix\"   \"Translate\"   \"Twitter\"\n

\n

\n \n \n \n

\n
\n

Downloads:

\n\n
\n

\nThis README is also available in: 🇷🇺 Русский · 🇰🇷 한국어 · 🇨🇳 简体中文 · 🇮🇹 Italiano · 🇩🇪 Deutsch\n

\n
\n

Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux

\n\n

Contents

\n\n

\n

What Tabby is and isn't

\n\n

\n

Terminal features

\n

\"\"

\n\n

\n

SSH Client

\n

\"\"

\n\n

\n

Serial Terminal

\n\n

\n

Portable

\n

Tabby will run as a portable app on Windows, if you create a data folder in the same location where Tabby.exe lives.

\n

\n

Plugins

\n

Plugins and themes can be installed directly from the Settings view inside Tabby.

\n\n

\n

Themes

\n\n

Sponsors

\n

\"\"

\n

packagecloud has provided free Debian/RPM repository hosting

\n

\n

Contributing

\n

Pull requests and plugins are welcome!

\n

See HACKING.md and API docs for information of how the project is laid out, and a very brief plugin development tutorial.

\n
\n

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
Russell Myers

💻
\"\"
Austin Warren

💻
\"\"
Felicia Hummel

💻
\"\"
Mike MacCana

⚠️ 🎨
\"\"
Yacine Kanzari

💻
\"\"
BBJip

💻
\"\"
Futagirl

🎨
\"\"
Levin Rickert

💻
\"\"
OJ Kwon

💻
\"\"
domain

🔌 💻
\"\"
James Brumond

🔌
\"\"
Daniel Imms

💻 🔌 ⚠️
\"\"
Florian Bachmann

💻
\"\"
Michael Kühnel

💻 🎨
\"\"
Tilmann Meyer

💻
\"\"
PM Extra

🐛
\"\"
Jonathan

💻
\"\"
Hans Koch

💻
\"\"
Dak Smyth

💻
\"\"
Wang Zhi

💻
\"\"
jack1142

💻
\"\"
Howie Douglas

💻
\"\"
Chris Kaczor

💻
\"\"
Johannes Kadak

💻
\"\"
LeSeulArtichaut

💻
\"\"
Cyril Taylor

💻
\"\"
nstefanou

💻 🔌
\"\"
orin220444

💻
\"\"
Gobius Dolhain

💻
\"\"
Gwilherm Folliot

💻
\"\"
Dmitry Pronin

💻
\"\"
Jonathan Beverley

💻
\"\"
Zenghai Liang

💻
\"\"
Mateusz Tracz

💻
\"\"
pinpin

💻
\"\"
Takuro Onoda

💻
\"\"
frauhottelmann

💻
\"\"
Piotr Patalong

🎨
\"\"
Clark Wang

💻
\"\"
iamchating

💻
\"\"
starxg

🔌
\"\"
Alisue

🎨
\"\"
Dominic Yin

💻
\"\"
Brandon Rothweiler

🎨
\"\"
Logic Machine

📖
\"\"
cypherbits

📖
\"\"
Matthew Davidson

💻
\"\"
Alexander Wiedemann

💻
\"\"
장보연

📖
\"\"
zZ

💻
\"\"
Aaron Davison

💻
\"\"
Przemyslaw Kozik

🎨
\"\"
Alfredo Arellano de la Fuente

💻
\"\"
MH Kim

💻
\"\"
Marmota

🎨
\"\"
Ares Andrew

📖
\"\"
George Korsnick

💵
\"\"
Artem Smirnov

💵
\"\"
Tim Kopplow

💵
\"\"
mrthock

💵
\"\"
Lukas Rottach

💵
\"\"
boonkerz

💻 🌍
\"\"
Milo Ivir

🌍
\"\"
JasonCubic

🎨
\"\"
MaxWaldorf

🚇
\"\"
Michael Wizner

💻
\"\"
Martin

💻
\"\"
Piersandro Guerrera

📖 🌍
\"\"
X-0x01

💻
\"\"
Allenator

📖
\"\"
Matheus Castello

💻
\"\"
Jai A P

📦
\"\"
Richard Yu

💻
\"\"
artu-ole

💻
\"\"
Timofey Gribanov

📖 🌍
\"\"
Christian Bingman

💻
\"\"
zhipeng

💻
\"\"
woodmeal

💻
\"\"
MagicLike

📖
\"\"
Hisam Fahri

💻
\"\"
Liangcheng Juves

💻
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeOriginal": "

\"\"

\n

\n \"GitHub     \"Matrix\"   \"Translate\"   \"Twitter\"\n

\n

\n \n \n \n

\n
\n

Downloads:

\n\n
\n

\nThis README is also available in: 🇷🇺 Русский · 🇰🇷 한국어 · 🇨🇳 简体中文 · 🇮🇹 Italiano · 🇩🇪 Deutsch\n

\n
\n

Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH and serial client for Windows, macOS and Linux

\n\n

Contents

\n\n

\n

What Tabby is and isn't

\n\n

\n

Terminal features

\n

\"\"

\n\n

\n

SSH Client

\n

\"\"

\n\n

\n

Serial Terminal

\n\n

\n

Portable

\n

Tabby will run as a portable app on Windows, if you create a data folder in the same location where Tabby.exe lives.

\n

\n

Plugins

\n

Plugins and themes can be installed directly from the Settings view inside Tabby.

\n\n

\n

Themes

\n\n

Sponsors

\n

\"\"

\n

packagecloud has provided free Debian/RPM repository hosting

\n

\n

Contributing

\n

Pull requests and plugins are welcome!

\n

See HACKING.md and API docs for information of how the project is laid out, and a very brief plugin development tutorial.

\n
\n

\n

Thanks goes to these wonderful people (emoji key):

\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\"\"
Russell Myers

💻
\"\"
Austin Warren

💻
\"\"
Felicia Hummel

💻
\"\"
Mike MacCana

⚠️ 🎨
\"\"
Yacine Kanzari

💻
\"\"
BBJip

💻
\"\"
Futagirl

🎨
\"\"
Levin Rickert

💻
\"\"
OJ Kwon

💻
\"\"
domain

🔌 💻
\"\"
James Brumond

🔌
\"\"
Daniel Imms

💻 🔌 ⚠️
\"\"
Florian Bachmann

💻
\"\"
Michael Kühnel

💻 🎨
\"\"
Tilmann Meyer

💻
\"\"
PM Extra

🐛
\"\"
Jonathan

💻
\"\"
Hans Koch

💻
\"\"
Dak Smyth

💻
\"\"
Wang Zhi

💻
\"\"
jack1142

💻
\"\"
Howie Douglas

💻
\"\"
Chris Kaczor

💻
\"\"
Johannes Kadak

💻
\"\"
LeSeulArtichaut

💻
\"\"
Cyril Taylor

💻
\"\"
nstefanou

💻 🔌
\"\"
orin220444

💻
\"\"
Gobius Dolhain

💻
\"\"
Gwilherm Folliot

💻
\"\"
Dmitry Pronin

💻
\"\"
Jonathan Beverley

💻
\"\"
Zenghai Liang

💻
\"\"
Mateusz Tracz

💻
\"\"
pinpin

💻
\"\"
Takuro Onoda

💻
\"\"
frauhottelmann

💻
\"\"
Piotr Patalong

🎨
\"\"
Clark Wang

💻
\"\"
iamchating

💻
\"\"
starxg

🔌
\"\"
Alisue

🎨
\"\"
Dominic Yin

💻
\"\"
Brandon Rothweiler

🎨
\"\"
Logic Machine

📖
\"\"
cypherbits

📖
\"\"
Matthew Davidson

💻
\"\"
Alexander Wiedemann

💻
\"\"
장보연

📖
\"\"
zZ

💻
\"\"
Aaron Davison

💻
\"\"
Przemyslaw Kozik

🎨
\"\"
Alfredo Arellano de la Fuente

💻
\"\"
MH Kim

💻
\"\"
Marmota

🎨
\"\"
Ares Andrew

📖
\"\"
George Korsnick

💵
\"\"
Artem Smirnov

💵
\"\"
Tim Kopplow

💵
\"\"
mrthock

💵
\"\"
Lukas Rottach

💵
\"\"
boonkerz

💻 🌍
\"\"
Milo Ivir

🌍
\"\"
JasonCubic

🎨
\"\"
MaxWaldorf

🚇
\"\"
Michael Wizner

💻
\"\"
Martin

💻
\"\"
Piersandro Guerrera

📖 🌍
\"\"
X-0x01

💻
\"\"
Allenator

📖
\"\"
Matheus Castello

💻
\"\"
Jai A P

📦
\"\"
Richard Yu

💻
\"\"
artu-ole

💻
\"\"
Timofey Gribanov

📖 🌍
\"\"
Christian Bingman

💻
\"\"
zhipeng

💻
\"\"
woodmeal

💻
\"\"
MagicLike

📖
\"\"
Hisam Fahri

💻
\"\"
Liangcheng Juves

💻
\n\n\n\n

This project follows the all-contributors specification. Contributions of any kind welcome!

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.745Z" }, "taskview": { "readmeCleaned": "

TaskView

\n

Telegram\nDocs\nService for daily planning, aimed at achieving results. For personal affairs, work tasks and teamwork. www.handscream.com

\n

TaskViewServer work in progress.

\n

TaskView

\n

\n \n

\n

Main workspace

\n

\n \n

\n

See more information in Wiki

\n

If you have any question or a bug report please open a Issue

\n

Team LF

\n

Hi!
\nI am looking for designer to my project for future development!
\nThe main goal of this project is easy project management and time control.
\nNow available only desktop version, server side and mobile version coming soon.

\n

If you can create beautiful interface or you are interested with you are welcome!
\nWrite PM or to email hello@handscream.com.

\n

TODO

\n

[-] Optimize list
\n[-] Show completed tasks in table
\n[-] Add \"Notes\" component
\n[-] Add diagram creator\n[-] Create backend

\n

How to add a new translation

\n
    \n
  1. \n

    Translate one of the existing files in locale folder

    \n
      \n
    • Don't change the keys!
    • \n
    • Example:\n
        \n
      • en.js\n\"selectDatabaseFile\": \"Select database file\",
      • \n
      • ru.js\n\"selectDatabaseFile\": \"Выберите файл базы данных\",
      • \n
      \n
    • \n
    \n
  2. \n
  3. \n

    Save your file with the language code according to ISO 639-1

    \n\n
  4. \n
  5. \n

    Make a pull request.

    \n
  6. \n
\n

Thanks for the help

\n\n

Devel

\n

TaskView use better-sqlite3 for storage see sql diagram before start

\n\n

Build Setup

\n
\n

An electron-vue project

\n
\n
# install dependencies\nnpm install\n\n# add config file task_view.app.conf.ts and export let notarizeConfig\n# notarizeConfig has next property [appBundleId: sting, appPath: string, appleId: string, appleIdPassword: string] \n# all property is required for app notarize in MacOS \n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build electron application for production\nnpm run build\n\n# run unit & end-to-end tests\nnpm test\n\n\n# lint all JS/Vue component files in `src/`\nnpm run lint\n
\n

Windows build

\n
\n

Required software

\n
\n\n

Clear cache MAC OS

\n\n

This project was generated with electron-vue using vue-cli. Documentation about the original structure can be found here.

\n
", "readmeOriginal": "

TaskView

\n

Telegram\nDocs\nService for daily planning, aimed at achieving results. For personal affairs, work tasks and teamwork. www.handscream.com

\n

TaskViewServer work in progress.

\n

TaskView

\n

\n \n

\n

Main workspace

\n

\n \n

\n

See more information in Wiki

\n

If you have any question or a bug report please open a Issue

\n

Team LF

\n

Hi!
\nI am looking for designer to my project for future development!
\nThe main goal of this project is easy project management and time control.
\nNow available only desktop version, server side and mobile version coming soon.

\n

If you can create beautiful interface or you are interested with you are welcome!
\nWrite PM or to email hello@handscream.com.

\n

TODO

\n

[-] Optimize list
\n[-] Show completed tasks in table
\n[-] Add \"Notes\" component
\n[-] Add diagram creator\n[-] Create backend

\n

How to add a new translation

\n
    \n
  1. \n

    Translate one of the existing files in locale folder

    \n
      \n
    • Don't change the keys!
    • \n
    • Example:\n
        \n
      • en.js\n\"selectDatabaseFile\": \"Select database file\",
      • \n
      • ru.js\n\"selectDatabaseFile\": \"Выберите файл базы данных\",
      • \n
      \n
    • \n
    \n
  2. \n
  3. \n

    Save your file with the language code according to ISO 639-1

    \n\n
  4. \n
  5. \n

    Make a pull request.

    \n
  6. \n
\n

Thanks for the help

\n\n

Devel

\n

TaskView use better-sqlite3 for storage see sql diagram before start

\n\n

Build Setup

\n
\n

An electron-vue project

\n
\n
# install dependencies\nnpm install\n\n# add config file task_view.app.conf.ts and export let notarizeConfig\n# notarizeConfig has next property [appBundleId: sting, appPath: string, appleId: string, appleIdPassword: string] \n# all property is required for app notarize in MacOS \n\n# serve with hot reload at localhost:9080\nnpm run dev\n\n# build electron application for production\nnpm run build\n\n# run unit & end-to-end tests\nnpm test\n\n\n# lint all JS/Vue component files in `src/`\nnpm run lint\n
\n

Windows build

\n
\n

Required software

\n
\n\n

Clear cache MAC OS

\n\n

This project was generated with electron-vue using vue-cli. Documentation about the original structure can be found here.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.772Z" }, "tagspaces": { "readmeCleaned": "

\"tagspaces

\n

\"Join \"Github

\n

TagSpaces is a free, no vendor lock-in, open source application for organizing, annotating and managing local files with the help of tags. It features advanced note taking functionalities and some capabilities of to-do apps. The application is available for Windows, Linux, Mac OS and Android. We provide a web clipper extension for Firefox, Edge and Chrome for easy collecting of online content in the form of local files.

\n

\"tagspaces-screenshot

\n

More information about can be found from the following sources:

\n\n

Downloads

\n

You can find the latest release of TagSpaces in the Github release section

\n

A full list of the changes is available in the changelog

\n

Main Features

\n\n

Infos for developers

\n

The core of TagSpaces starting from version 3 is built with react.js and the great material-ui framework.

\n

The native Windows, Linux and Mac OS versions of TagSpaces are built with Electron. Electron is an app runtime based on Chromium and node.js. In order to combine it with react we have used the electron-react-boilerplate.

\n

Repository Directory Structure

\n
./app................ contains the application core\n./app/locales........ contains the language files needed for the application internationalization\n./app/node_modules... contains the TagSpaces extension modules\n./cordova............ contains the code needed for running the Android version\n./dll................ contains the files needed for live reload in development mode\n./internals.......... contains files needed for supporting Flow and Eslint\n./node_modules....... after yarn install, you will find here the external dependencies of the application\n./resources.......... contains images and other files needed for the application building\n./scripts............ contains js script needed for the yarn/npm tasks\n./test............... contains unit and e2e tests of the app\n./web................ contains assets needed for the web version of the app\n
\n

How to run TagSpaces from the source code?

\n

In order to run TagSpaces on your Windows, Mac OS or Linux from the source code published here, you will need the following prerequisites:

\n\n

Get the TagSpaces source code by cloning its repository:

\n
$ git clone https://github.com/tagspaces/tagspaces.git\n
\n

Go to the folder where the code was cloned to and select the branch you want to test. Use the master branch for the last officially released version or the branch develop for a kind of a nightly build, containing the changes we are preparing for the next release of the application.

\n

Switch to the folder where you have cloned the repository:

\n
$ cd tagspaces\n
\n

Change to the branch with the name develop:

\n
$ git checkout develop\n
\n

and install the project dependencies:

\n
$ yarn install\n
\n

The last command will automatically build the application with webpack. Now it is time to install all the TagSpaces extensions:

\n
$ yarn install-ext-node\n
\n

Starting from v4 of the application, a web service is running locally as a separate process. The web service is responsible for the search index creation and the generation of the thumbnails for most of the images formats. A key is required in order for the main application to communicate with the web server. It should be defined in the .env file located in app folder. This is an example for an .env file.

\n
KEY=a_custom_key\n
\n

Having a custom key, ensures that another instance of TagSpaces will not communicate with the web service of the initial instance, since it is always running on the same port.

\n

Now you are ready and can build and start (bs) the application with:

\n
$ yarn bs\n
\n

If you want to try the development mode, you can start it by:

\n
$ yarn dev\n
\n

This will start a development server in background, which watches for changes in background and refreshes the application automatically once you have done some changes in the source code.

\n

Package for Windows, Linux and macOS

\n

Building of the packages can be accomplished with the integrated yarn scripts:

\n
$ yarn package-win\n\n$ yarn package-linux\n\n$ yarn package-mac\n\n$ yarn package-mac-arm64
\n

The commands will create packages for Windows, Linux, Mac OS and Mac OS with the M1 processor respectively. Do not forget to run the yarn build script before packaging.

\n

Package the Android

\n

Building of the packages for Android can be accomplished with the integrated yarn scripts:

\n
$ yarn version-meta\n\n$ yarn prepare-cordova\n\n$ yarn package-android
\n

Start the web version locally

\n

For developing purposes and local tests, the web version of the app can be started with the following yarn command:

\n
$ yarn run-web\n
\n

Running Tests

\n

To run tests, run the following command

\n
yarn test-unit\n\nyarn test-e2e-electron\n\nyarn test-e2e-web
\n

Developing viewer and editor for TagSpaces

\n

TagSpaces can be easily extended with the help of extensions. Currently we use the extensions for supporting the opening and editing of different file types in the application. More information about this topic can be found on the extension page of our website.

\n

Contribute

\n

TagSpaces is an open source software, and as such, the code is publicly available on GitHub, and forking is particularly recommended! Still, contribution must be done following some guidelines.\nContributor License Agreement

\n

The CLA is an agreement commonly used in major open source project, which aims at protecting all parties implied by a contribution: the contributor, the main code author, and above all, the community. The CLA model we have chosen basically tells the following: the contribution’s copyright is shared between the contributor and the main author. This means each party can do whatever she want in term of relicensing with this contributed piece of code. This is important, because, if in the future, the author wants to change the license in something more in favor of the community, a singular contributor cannot block the process.

\n

The Contributor License Agreement can be signed online on the following CLA form.

\n

Localisation

\n

TagSpaces is currently available in more than 20 languages. You can help the translation of this application in your language by joining the translation teams on Transifex.

\n

Ideas and Suggestion

\n

If you have ideas or suggestions on how we can improve our application, you can check the following Trello board. Here you will find numerous ideas already proposed by other users. If you want to post something new, please follow this link

\n

Support and Bugs

\n

If you are having troubles using TagSpaces or have found a bug please open a ticket on GitHub.

\n

Known issues

\n\n

Feeds

\n\n

License

\n

This project is dual-licensed under the AGPL (GNU Affero General Public License) Version 3 for FOSS projects and under a commercial license for independent software vendors and resellers. If you want to modify this application under different conditions, feel free to contact us.

\n
", "readmeOriginal": "

\"tagspaces

\n

\"Join \"Github

\n

TagSpaces is a free, no vendor lock-in, open source application for organizing, annotating and managing local files with the help of tags. It features advanced note taking functionalities and some capabilities of to-do apps. The application is available for Windows, Linux, Mac OS and Android. We provide a web clipper extension for Firefox, Edge and Chrome for easy collecting of online content in the form of local files.

\n

\"tagspaces-screenshot

\n

More information about can be found from the following sources:

\n\n

Downloads

\n

You can find the latest release of TagSpaces in the Github release section

\n

A full list of the changes is available in the changelog

\n

Main Features

\n\n

Infos for developers

\n

The core of TagSpaces starting from version 3 is built with react.js and the great material-ui framework.

\n

The native Windows, Linux and Mac OS versions of TagSpaces are built with Electron. Electron is an app runtime based on Chromium and node.js. In order to combine it with react we have used the electron-react-boilerplate.

\n

Repository Directory Structure

\n
./app................ contains the application core\n./app/locales........ contains the language files needed for the application internationalization\n./app/node_modules... contains the TagSpaces extension modules\n./cordova............ contains the code needed for running the Android version\n./dll................ contains the files needed for live reload in development mode\n./internals.......... contains files needed for supporting Flow and Eslint\n./node_modules....... after yarn install, you will find here the external dependencies of the application\n./resources.......... contains images and other files needed for the application building\n./scripts............ contains js script needed for the yarn/npm tasks\n./test............... contains unit and e2e tests of the app\n./web................ contains assets needed for the web version of the app\n
\n

How to run TagSpaces from the source code?

\n

In order to run TagSpaces on your Windows, Mac OS or Linux from the source code published here, you will need the following prerequisites:

\n\n

Get the TagSpaces source code by cloning its repository:

\n
$ git clone https://github.com/tagspaces/tagspaces.git\n
\n

Go to the folder where the code was cloned to and select the branch you want to test. Use the master branch for the last officially released version or the branch develop for a kind of a nightly build, containing the changes we are preparing for the next release of the application.

\n

Switch to the folder where you have cloned the repository:

\n
$ cd tagspaces\n
\n

Change to the branch with the name develop:

\n
$ git checkout develop\n
\n

and install the project dependencies:

\n
$ yarn install\n
\n

The last command will automatically build the application with webpack. Now it is time to install all the TagSpaces extensions:

\n
$ yarn install-ext-node\n
\n

Starting from v4 of the application, a web service is running locally as a separate process. The web service is responsible for the search index creation and the generation of the thumbnails for most of the images formats. A key is required in order for the main application to communicate with the web server. It should be defined in the .env file located in app folder. This is an example for an .env file.

\n
KEY=a_custom_key\n
\n

Having a custom key, ensures that another instance of TagSpaces will not communicate with the web service of the initial instance, since it is always running on the same port.

\n

Now you are ready and can build and start (bs) the application with:

\n
$ yarn bs\n
\n

If you want to try the development mode, you can start it by:

\n
$ yarn dev\n
\n

This will start a development server in background, which watches for changes in background and refreshes the application automatically once you have done some changes in the source code.

\n

Package for Windows, Linux and macOS

\n

Building of the packages can be accomplished with the integrated yarn scripts:

\n
$ yarn package-win\n\n$ yarn package-linux\n\n$ yarn package-mac\n\n$ yarn package-mac-arm64
\n

The commands will create packages for Windows, Linux, Mac OS and Mac OS with the M1 processor respectively. Do not forget to run the yarn build script before packaging.

\n

Package the Android

\n

Building of the packages for Android can be accomplished with the integrated yarn scripts:

\n
$ yarn version-meta\n\n$ yarn prepare-cordova\n\n$ yarn package-android
\n

Start the web version locally

\n

For developing purposes and local tests, the web version of the app can be started with the following yarn command:

\n
$ yarn run-web\n
\n

Running Tests

\n

To run tests, run the following command

\n
yarn test-unit\n\nyarn test-e2e-electron\n\nyarn test-e2e-web
\n

Developing viewer and editor for TagSpaces

\n

TagSpaces can be easily extended with the help of extensions. Currently we use the extensions for supporting the opening and editing of different file types in the application. More information about this topic can be found on the extension page of our website.

\n

Contribute

\n

TagSpaces is an open source software, and as such, the code is publicly available on GitHub, and forking is particularly recommended! Still, contribution must be done following some guidelines.\nContributor License Agreement

\n

The CLA is an agreement commonly used in major open source project, which aims at protecting all parties implied by a contribution: the contributor, the main code author, and above all, the community. The CLA model we have chosen basically tells the following: the contribution’s copyright is shared between the contributor and the main author. This means each party can do whatever she want in term of relicensing with this contributed piece of code. This is important, because, if in the future, the author wants to change the license in something more in favor of the community, a singular contributor cannot block the process.

\n

The Contributor License Agreement can be signed online on the following CLA form.

\n

Localisation

\n

TagSpaces is currently available in more than 20 languages. You can help the translation of this application in your language by joining the translation teams on Transifex.

\n

Ideas and Suggestion

\n

If you have ideas or suggestions on how we can improve our application, you can check the following Trello board. Here you will find numerous ideas already proposed by other users. If you want to post something new, please follow this link

\n

Support and Bugs

\n

If you are having troubles using TagSpaces or have found a bug please open a ticket on GitHub.

\n

Known issues

\n\n

Feeds

\n\n

License

\n

This project is dual-licensed under the AGPL (GNU Affero General Public License) Version 3 for FOSS projects and under a commercial license for independent software vendors and resellers. If you want to modify this application under different conditions, feel free to contact us.

\n
", "readmeFetchedAt": "2022-05-10T00:08:10.881Z" }, "ten-hands": { "readmeCleaned": "

\n \n \"Ten\n \n

\n Ten Hands\n

\n

\n

\n One place to run your command-line tasks\n

\n

\"Build

\n

What is this?

\n

Do you keep opening terminals to run your scripts/commands/tasks etc,. If you have to do that everyday for same project (Example running scripts from package.json for multiple projects), Ten Hands makes it easier to organize all your tasks in one place.\nYou can organize tasks into projects and run them whenever you want with a click of a button.

\n

UI

\n

Please visit website to see intro video.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DarkLight
\n

Downloads

\n

Downloads are available in releases section if you just want to download and run.

\n

If you want to get latest updates, you can click on \"Azure Pipelines\" badge above to download latest builds from CI. These may have small bugs. But, please create an issue if you find any.

\n

Installing browser version

\n

This project can be run in browser instead of desktop version. Before installing browser version, check what additional features the desktop version has currently.

\n
    \n
  1. Drag & Drop package.json to add project.
  2. \n
  3. Link to open project directory in file explorer.
  4. \n
\n

To run in browser.

\n
    \n
  1. Install ten-hands-cli tool from npm.
  2. \n
\n
  npm install --global ten-hands-cli\n\n  (or)\n\n  yarn global add ten-hands-cli\n
\n
    \n
  1. Start app
  2. \n
\n
  ten-hands start\n
\n
    \n
  1. Your teminal will show you the localhost address with port where Ten Hands is running. Copy and open it in browser.
  2. \n
\n

Configuration

\n

A config.json is supported which is placed at ~/.ten-hands/ path.

\n
\n

Check Configration at Wiki for configuration options.

\n
\n

You have to restart the app when you change configuration.

\n

FAQ

\n
\n

FAQ section has been moved to Wiki at FAQ.

\n
\n

Contributions

\n

Check CONTRIBUTING for project setup and folder structure details. Please use issue tracker for any kind of bugs/suggestions/discussions.

\n

Thank you

\n

Thank you Sentry for supporting this Open Source project with their Sentry for Open Source initiative.

\n
", "readmeOriginal": "

\n \n \"Ten\n \n

\n Ten Hands\n

\n

\n

\n One place to run your command-line tasks\n

\n

\"Build

\n

What is this?

\n

Do you keep opening terminals to run your scripts/commands/tasks etc,. If you have to do that everyday for same project (Example running scripts from package.json for multiple projects), Ten Hands makes it easier to organize all your tasks in one place.\nYou can organize tasks into projects and run them whenever you want with a click of a button.

\n

UI

\n

Please visit website to see intro video.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DarkLight
\n

Downloads

\n

Downloads are available in releases section if you just want to download and run.

\n

If you want to get latest updates, you can click on \"Azure Pipelines\" badge above to download latest builds from CI. These may have small bugs. But, please create an issue if you find any.

\n

Installing browser version

\n

This project can be run in browser instead of desktop version. Before installing browser version, check what additional features the desktop version has currently.

\n
    \n
  1. Drag & Drop package.json to add project.
  2. \n
  3. Link to open project directory in file explorer.
  4. \n
\n

To run in browser.

\n
    \n
  1. Install ten-hands-cli tool from npm.
  2. \n
\n
  npm install --global ten-hands-cli\n\n  (or)\n\n  yarn global add ten-hands-cli\n
\n
    \n
  1. Start app
  2. \n
\n
  ten-hands start\n
\n
    \n
  1. Your teminal will show you the localhost address with port where Ten Hands is running. Copy and open it in browser.
  2. \n
\n

Configuration

\n

A config.json is supported which is placed at ~/.ten-hands/ path.

\n
\n

Check Configration at Wiki for configuration options.

\n
\n

You have to restart the app when you change configuration.

\n

FAQ

\n
\n

FAQ section has been moved to Wiki at FAQ.

\n
\n

Contributions

\n

Check CONTRIBUTING for project setup and folder structure details. Please use issue tracker for any kind of bugs/suggestions/discussions.

\n

Thank you

\n

Thank you Sentry for supporting this Open Source project with their Sentry for Open Source initiative.

\n
", "readmeFetchedAt": "2022-05-10T00:08:11.004Z" }, "tch-filector": { "readmeCleaned": "

FileCtor

\n

File inspector with interactive javascript console.

\n

Notice: MacOS version is not compatible with Apple Silicon (ARM)

\n

\"Javascript

\n

The idea is to have something similar to other file system managers, e.g. TotalCommander. But this app is intended for Developers as it allows to run various JS scripts against files and directories.

\n

\"Files

\n

There are multiple script Snippets installed with the app. They will give you some functionality right away, without having to write your own first. Then you can of course write and save your own.

\n

\"Saved

\n

Contents

\n
    \n
  1. Installation
  2. \n
  3. Important Notes
  4. \n
  5. How to Use
  6. \n
  7. Included script Snippets
  8. \n
  9. Roadmap
  10. \n
\n

Installation

\n

Windows

\n
    \n
  1. Download latest Win32 release from here.
  2. \n
  3. Unzip anywhere, then you can copy the folder wherever you want the app to be, there is no installation.
  4. \n
  5. Run the app, optionally create shortcut to use.
  6. \n
\n

MacOS

\n
    \n
  1. Download latest Darwin release from here.
  2. \n
  3. Unzip anywhere, then copy app to your Applications folder.
  4. \n
  5. Run the app, optionally create shortcut to use.
  6. \n
\n

Ubuntu

\n
    \n
  1. Download latest Deb release from here.
  2. \n
  3. Unzip anywhere, then install the package.
  4. \n
  5. Run the app, optionally create shortcut to use.
  6. \n
\n

Important Notes

\n

This app is intended to be cross-platform, currently developed and tested on Windows 10, MacOS and Ubuntu 18.04 LTS.

\n

App is using Electron and React as it was originally meant for me to improve my skill with Electron and learn properly React.

\n

How to Use

\n

Execute script

\n
    \n
  1. On the main Files view, click the code button. Either in the files row on the right or at the bottom near the current directory.
  2. \n
  3. \n
      \n
    1. Now you have console open for you with current directory preselected for use by script.
    2. \n
    3. If you used the button inside the files row, then you have also the file/s preselected, but this is not yet fully implemented.
    4. \n
    \n
  4. \n
  5. Inside the top box is Javascript editor, here you can write code that will be executed.
  6. \n
  7. If you hit the question mark button, you will see current API reference for global variables and functions.
  8. \n
  9. Execute the code by hitting execute button. WARNING: be sure that you are in the correct directory and have correct selected files before you execute the script. I will NOT be responsible for any damage that you cause to yor own PC.
  10. \n
  11. Inside the middle box you will see result and any console.log that you used with your script. Here you will also see error.
  12. \n
\n

Save script

\n
    \n
  1. \n
      \n
    1. When you have already open console with written script, click the save button.
    2. \n
    3. Go to the Snippets view and click new snippet button to open the console. Write your script and then save with the save button.
    4. \n
    \n
  2. \n
\n

Script API reference

\n
    \n
  1. Open the console using any of the previously mentioned ways.
  2. \n
  3. Click the question mark button.
  4. \n
\n

Want more capabilities (variables/methods)

\n
    \n
  1. \n
      \n
    1. Write your request in here.
    2. \n
    3. Or use the contact form inside the app's About view.
    4. \n
    \n
  2. \n
\n

Included script Snippets

\n

Simple Example

\n

This is just a basic script example that does almost nothing, but demonstrate that execution works.

\n

Rename Files

\n

Rename files to a new name and append with number if there are more than one.

\n

Rename Files (part of name)

\n

Rename files to a new name by changing part of name with provided new part.

\n

Rename Host Sql

\n

Script for renaming host inside Sql query. E.g. rename host of WP website when migrating from Dev to Prod. Should work on large Sql files.

\n

TinyPNG Compress/Resize/Crop Images

\n

Two scripts for images (PNG & JPG), one can compress them, the other can resize or crop. Crop is intelligent in determining area of interest. You need TinyPNG API key for them to work.

\n

Roadmap

\n\n
", "readmeOriginal": "

FileCtor

\n

File inspector with interactive javascript console.

\n

Notice: MacOS version is not compatible with Apple Silicon (ARM)

\n

\"Javascript

\n

The idea is to have something similar to other file system managers, e.g. TotalCommander. But this app is intended for Developers as it allows to run various JS scripts against files and directories.

\n

\"Files

\n

There are multiple script Snippets installed with the app. They will give you some functionality right away, without having to write your own first. Then you can of course write and save your own.

\n

\"Saved

\n

Contents

\n
    \n
  1. Installation
  2. \n
  3. Important Notes
  4. \n
  5. How to Use
  6. \n
  7. Included script Snippets
  8. \n
  9. Roadmap
  10. \n
\n

Installation

\n

Windows

\n
    \n
  1. Download latest Win32 release from here.
  2. \n
  3. Unzip anywhere, then you can copy the folder wherever you want the app to be, there is no installation.
  4. \n
  5. Run the app, optionally create shortcut to use.
  6. \n
\n

MacOS

\n
    \n
  1. Download latest Darwin release from here.
  2. \n
  3. Unzip anywhere, then copy app to your Applications folder.
  4. \n
  5. Run the app, optionally create shortcut to use.
  6. \n
\n

Ubuntu

\n
    \n
  1. Download latest Deb release from here.
  2. \n
  3. Unzip anywhere, then install the package.
  4. \n
  5. Run the app, optionally create shortcut to use.
  6. \n
\n

Important Notes

\n

This app is intended to be cross-platform, currently developed and tested on Windows 10, MacOS and Ubuntu 18.04 LTS.

\n

App is using Electron and React as it was originally meant for me to improve my skill with Electron and learn properly React.

\n

How to Use

\n

Execute script

\n
    \n
  1. On the main Files view, click the code button. Either in the files row on the right or at the bottom near the current directory.
  2. \n
  3. \n
      \n
    1. Now you have console open for you with current directory preselected for use by script.
    2. \n
    3. If you used the button inside the files row, then you have also the file/s preselected, but this is not yet fully implemented.
    4. \n
    \n
  4. \n
  5. Inside the top box is Javascript editor, here you can write code that will be executed.
  6. \n
  7. If you hit the question mark button, you will see current API reference for global variables and functions.
  8. \n
  9. Execute the code by hitting execute button. WARNING: be sure that you are in the correct directory and have correct selected files before you execute the script. I will NOT be responsible for any damage that you cause to yor own PC.
  10. \n
  11. Inside the middle box you will see result and any console.log that you used with your script. Here you will also see error.
  12. \n
\n

Save script

\n
    \n
  1. \n
      \n
    1. When you have already open console with written script, click the save button.
    2. \n
    3. Go to the Snippets view and click new snippet button to open the console. Write your script and then save with the save button.
    4. \n
    \n
  2. \n
\n

Script API reference

\n
    \n
  1. Open the console using any of the previously mentioned ways.
  2. \n
  3. Click the question mark button.
  4. \n
\n

Want more capabilities (variables/methods)

\n
    \n
  1. \n
      \n
    1. Write your request in here.
    2. \n
    3. Or use the contact form inside the app's About view.
    4. \n
    \n
  2. \n
\n

Included script Snippets

\n

Simple Example

\n

This is just a basic script example that does almost nothing, but demonstrate that execution works.

\n

Rename Files

\n

Rename files to a new name and append with number if there are more than one.

\n

Rename Files (part of name)

\n

Rename files to a new name by changing part of name with provided new part.

\n

Rename Host Sql

\n

Script for renaming host inside Sql query. E.g. rename host of WP website when migrating from Dev to Prod. Should work on large Sql files.

\n

TinyPNG Compress/Resize/Crop Images

\n

Two scripts for images (PNG & JPG), one can compress them, the other can resize or crop. Crop is intelligent in determining area of interest. You need TinyPNG API key for them to work.

\n

Roadmap

\n\n
", "readmeFetchedAt": "2022-05-10T00:08:11.008Z" }, "teseve": { "readmeCleaned": "

Tèsèvè

\n
\n

A simple static webserver, in an app.

\n
\n
\n

\"screenshot\"

\n
\n

Getting Started

\n

Download the binaries

\n

You can download the binaries on the releases page.

\n

Cask

\n

If you are on Mac OS X and use Cask, you can install Teseve by typing the following command in your terminal : brew cask install teseve.

\n

Build the app from the source

\n

You can build the app by yourself:

\n
    \n
  1. Clone the repository
  2. \n
  3. Run npm install to get the dependencies
  4. \n
  5. Run grunt to build & run the app
  6. \n
  7. Use grunt release if you want to build a binary.
  8. \n
\n

Contributing

\n

Tèsèvè is currently in heavy development. If you want to contribute, try to follow the existing codestyle.

\n

TODO

\n\n

Release History

\n\n

License

\n

Tèsèvè is free and unencumbered software released into the public domain.

\n
", "readmeOriginal": "

Tèsèvè

\n
\n

A simple static webserver, in an app.

\n
\n
\n

\"screenshot\"

\n
\n

Getting Started

\n

Download the binaries

\n

You can download the binaries on the releases page.

\n

Cask

\n

If you are on Mac OS X and use Cask, you can install Teseve by typing the following command in your terminal : brew cask install teseve.

\n

Build the app from the source

\n

You can build the app by yourself:

\n
    \n
  1. Clone the repository
  2. \n
  3. Run npm install to get the dependencies
  4. \n
  5. Run grunt to build & run the app
  6. \n
  7. Use grunt release if you want to build a binary.
  8. \n
\n

Contributing

\n

Tèsèvè is currently in heavy development. If you want to contribute, try to follow the existing codestyle.

\n

TODO

\n\n

Release History

\n\n

License

\n

Tèsèvè is free and unencumbered software released into the public domain.

\n
", "readmeFetchedAt": "2022-05-10T00:08:11.028Z" }, "tess": { "readmeCleaned": "
\n

Tess

\n

Hackable, Simple, Rapid & Beautiful
\nterminal for the new era of technology.

\n
\n

\"Badge\n\"Badge\n\"Badge\n\"Badge
\n\"Badge\n\"Badge\n\"Badge
\n\"Badge\n\"Badge\n\"Badge\n\"Badge
\n\"Badge\n\"Badge

\n
\n

Check the Wiki on how to use Tess

\n
\n

Installation

\n

Packages

\n

ArchLinux: Wiki link\n
\nDebian / Ubuntu: Wiki link\n
\nFedora / RedHat: Wiki link\n
\nWindows: Wiki link\n
\nSnap package: Wiki link\n
\nChocolatey package: Wiki link\n
\nWinget Package: Wiki link

\n

Preview

\n
\n \"Preview1\"\n \"Preview2\"\n \"Preview3\"\n \"Preview4\"\n
\n

Contributors

\n

\"Squitch

\n

License

\n

Tess | Mozilla Public License 2.0

\n\n\n\n\n
", "readmeOriginal": "
\n

Tess

\n

Hackable, Simple, Rapid & Beautiful
\nterminal for the new era of technology.

\n
\n

\"Badge\n\"Badge\n\"Badge\n\"Badge
\n\"Badge\n\"Badge\n\"Badge
\n\"Badge\n\"Badge\n\"Badge\n\"Badge
\n\"Badge\n\"Badge

\n
\n

Check the Wiki on how to use Tess

\n
\n

Installation

\n

Packages

\n

ArchLinux: Wiki link\n
\nDebian / Ubuntu: Wiki link\n
\nFedora / RedHat: Wiki link\n
\nWindows: Wiki link\n
\nSnap package: Wiki link\n
\nChocolatey package: Wiki link\n
\nWinget Package: Wiki link

\n

Preview

\n
\n \"Preview1\"\n \"Preview2\"\n \"Preview3\"\n \"Preview4\"\n
\n

Contributors

\n

\"Squitch

\n

License

\n

Tess | Mozilla Public License 2.0

\n\n\n\n\n
", "readmeFetchedAt": "2022-05-10T00:08:11.098Z" }, "texturelab": { "readmeCleaned": "

\n TextureLab\n

\n

\n \n \n \n \"Discord\n
\n Free, Cross-Platform, GPU-Accelerated Procedural Texture Generator.
\n DOWNLOAD AT ITCH.IO | JOIN OUR DISCORD SERVER\n

\n

\"Screenshot\"

\n

Building

\n

Building is done with yarn. Install it here if you havent already.

\n
git clone https://github.com/njbrown/texturelab.git\n\ncd texturelab\n\n# if you want to pull down assets (textures and node icons)\ngit submodule update --init\n\nyarn install\nyarn electron:serve\n
\n

Feedback

\n

Got ideas, suggestions or feedback? Reach out to me on twitter

\n

Built Using

\n\n

Licence

\n

GPLv3

\n
", "readmeOriginal": "

\n TextureLab\n

\n

\n \n \n \n \"Discord\n
\n Free, Cross-Platform, GPU-Accelerated Procedural Texture Generator.
\n DOWNLOAD AT ITCH.IO | JOIN OUR DISCORD SERVER\n

\n

\"Screenshot\"

\n

Building

\n

Building is done with yarn. Install it here if you havent already.

\n
git clone https://github.com/njbrown/texturelab.git\n\ncd texturelab\n\n# if you want to pull down assets (textures and node icons)\ngit submodule update --init\n\nyarn install\nyarn electron:serve\n
\n

Feedback

\n

Got ideas, suggestions or feedback? Reach out to me on twitter

\n

Built Using

\n\n

Licence

\n

GPLv3

\n
", "readmeFetchedAt": "2022-05-10T00:08:11.212Z" }, "texpaste": { "readmeCleaned": "

\"texpaste\n\"texpaste

\n

Input TeX code to get a live preview. Press ENTER or click the green checkmark to copy the result to the clipboard and use it in another application. ESCAPE or clicking the close button will discard the output. Custom macros can be created in the settings.

\n

Made with Electron and KaTeX.

\n

\"Demonstration

\n

Installation

\n

Download options for Windows and Linux can be found in the latest release. If you are using macOS, you will have to run this app from source. Listed below are the different kinds of files available to run or install texpaste.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FilePlatformType
texpaste_(version)_linux.AppImageLinuxStandalone app
texpaste_(version)_linux.debLinuxInstallable package for Debian
texpaste_(version)_linux.tar.gzLinuxArchive containing executable and program files
texpaste_(version)_win.zipWindowsArchive containing executable and program files
texpaste_(version)_win_portable.exeWindowsStandalone app (slow startup)
texpaste_(version)_win_setup.exeWindowsInstallation wizard
\n

⚠️ Windows users will be presented with a security warning on first launch. This is because I cannot afford a certificate to sign my code. You can circumvent the warning by clicking on \"More info\" and \"Run anyway\".

\n

Development

\n

To build or run this app directly from the source code, you will need Node.js with npm v7 or later. Clone or download the repository and use the following commands.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
CommandDescription
npm installInstalls the required dependencies.
npm startLaunches the application.
npm run packPackages the application (output is located in the \"dist\" folder).
npm run distPackages while also creating an installer.
\n

Upcoming features

\n

Autocomplete. Feel free to suggest something or file a bug report on the issue tracker.

\n
", "readmeOriginal": "

\"texpaste\n\"texpaste

\n

Input TeX code to get a live preview. Press ENTER or click the green checkmark to copy the result to the clipboard and use it in another application. ESCAPE or clicking the close button will discard the output. Custom macros can be created in the settings.

\n

Made with Electron and KaTeX.

\n

\"Demonstration

\n

Installation

\n

Download options for Windows and Linux can be found in the latest release. If you are using macOS, you will have to run this app from source. Listed below are the different kinds of files available to run or install texpaste.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FilePlatformType
texpaste_(version)_linux.AppImageLinuxStandalone app
texpaste_(version)_linux.debLinuxInstallable package for Debian
texpaste_(version)_linux.tar.gzLinuxArchive containing executable and program files
texpaste_(version)_win.zipWindowsArchive containing executable and program files
texpaste_(version)_win_portable.exeWindowsStandalone app (slow startup)
texpaste_(version)_win_setup.exeWindowsInstallation wizard
\n

⚠️ Windows users will be presented with a security warning on first launch. This is because I cannot afford a certificate to sign my code. You can circumvent the warning by clicking on \"More info\" and \"Run anyway\".

\n

Development

\n

To build or run this app directly from the source code, you will need Node.js with npm v7 or later. Clone or download the repository and use the following commands.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
CommandDescription
npm installInstalls the required dependencies.
npm startLaunches the application.
npm run packPackages the application (output is located in the \"dist\" folder).
npm run distPackages while also creating an installer.
\n

Upcoming features

\n

Autocomplete. Feel free to suggest something or file a bug report on the issue tracker.

\n
", "readmeFetchedAt": "2022-05-10T00:08:11.220Z" }, "testmace": { "readmeCleaned": "

TestMace-issues

\n

Issues-only repository for issue management of TestMace

\n
", "readmeOriginal": "

TestMace-issues

\n

Issues-only repository for issue management of TestMace

\n
", "readmeFetchedAt": "2022-05-10T00:08:11.230Z" }, "thorium-reader": { "readmeCleaned": "

Thorium Reader

\n

Thorium Reader is an easy to use EPUB reading application for Windows 10/10S, MacOS and Linux. After importing e-books from a directory or OPDS feed, you'll be able to read on any screen size, customize layout settings, navigate via the table of contents or page list, set bookmarks ... A great care is taken to ensure the accessibility of the application for visual impaired people using NVDA, JAWS or Narrator.

\n

Free application. No ads. No private data flowing anywhere.

\n

This project is in constant evolution, corrections and new features will be added soon and your support is welcome for that. The application is based on the open-source Readium Desktop toolkit.

\n

It is currently localized in following languages:

\n\n

See: https://github.com/edrlab/thorium-reader/wiki/Localization-(l10n)-language-translations

\n

\"library\"\n\"publication\n\"reader\"

\n

Build status

\n

TravisCI, develop branch:

\n

\"Build

\n

Prerequisites

\n
    \n
  1. NodeJS 14 (check with node --version)
  2. \n
  3. NPM 6 (check with npm --version)
  4. \n
  5. Optionally: C++ compiler for native NodeJS modules, should work out of the box in Linux and MacOS. On Windows, Visual Studio can be installed, or simply call npm install -g windows-build-tools.
  6. \n
\n

Technologies

\n\n

Quick start

\n

Install dependencies

\n\n

Start application in development environment

\n

(with hot-reload dev server, web inspectors / debuggers)

\n\n

Start application in production environment

\n\n

Build installers

\n\n

Code Signing information: https://github.com/edrlab/thorium-reader/wiki/Code-Signing

\n

Command line

\n
[args]\n\nCommands:\n thorium opds <url> import opds feed\n thorium import <path> import epub or lpcl file\n thorium read <title> searches already-imported publications with the\n provided TITLE, and opens the reader with the\n first match\n thorium [path] import and read an epub or lcpl file [default]\n thorium completion generate bash completion script\n\nPositionals:\n path path of your publication, it can be an absolute, relative path [string]\n\nOptions:\n --version Show version number [boolean]\n --help Show help [boolean]\"><pre class=\"notranslate\"><code class=\"notranslate\">thorium <cmd> [args]\n\nCommands:\n thorium opds <title> <url> import opds feed\n thorium import <path> import epub or lpcl file\n thorium read <title> searches already-imported publications with the\n provided TITLE, and opens the reader with the\n first match\n thorium [path] import and read an epub or lcpl file [default]\n thorium completion generate bash completion script\n\nPositionals:\n path path of your publication, it can be an absolute, relative path [string]\n\nOptions:\n --version Show version number [boolean]\n --help Show help [boolean]\n</code></pre></div>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-thorium-reader\" class=\"anchor\" aria-hidden=\"true\" href=\"#thorium-reader\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Thorium Reader</h1>\n<p dir=\"auto\">Thorium Reader is an easy to use EPUB reading application for Windows 10/10S, MacOS and Linux. After importing e-books from a directory or OPDS feed, you'll be able to read on any screen size, customize layout settings, navigate via the table of contents or page list, set bookmarks ... A great care is taken to ensure the accessibility of the application for visual impaired people using NVDA, JAWS or Narrator.</p>\n<p dir=\"auto\">Free application. No ads. No private data flowing anywhere.</p>\n<p dir=\"auto\">This project is in constant evolution, corrections and new features will be added soon and your support is welcome for that. The application is based on the open-source Readium Desktop toolkit.</p>\n<p dir=\"auto\">It is currently localized in following languages:</p>\n<ul dir=\"auto\">\n<li>English</li>\n<li>French</li>\n<li>Portuguese</li>\n<li>Swedish</li>\n<li>Russian</li>\n<li>Lithuanian</li>\n<li>Italian</li>\n<li>Japanese</li>\n<li>Dutch</li>\n<li>Spanish</li>\n<li>German</li>\n<li>Finnish</li>\n<li>Chinese</li>\n<li>Korean</li>\n<li>Georgian</li>\n</ul>\n<p dir=\"auto\">See: <a href=\"https://github.com/edrlab/thorium-reader/wiki/Localization-(l10n)-language-translations\">https://github.com/edrlab/thorium-reader/wiki/Localization-(l10n)-language-translations</a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"img/library.png\"><img src=\"img/library.png\" alt=\"library\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"img/info.png\"><img src=\"img/info.png\" alt=\"publication info\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"img/reader.png\"><img src=\"img/reader.png\" alt=\"reader\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-build-status\" class=\"anchor\" aria-hidden=\"true\" href=\"#build-status\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build status</h2>\n<p dir=\"auto\">TravisCI, <code>develop</code> branch:</p>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/edrlab/thorium-reader\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/0c537508d06293c43446ec49231a4001813e6c5c1a13f8bd5392c83cb0ef5b50/68747470733a2f2f7472617669732d63692e6f72672f6564726c61622f74686f7269756d2d7265616465722e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/edrlab/thorium-reader.svg?branch=master\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-prerequisites\" class=\"anchor\" aria-hidden=\"true\" href=\"#prerequisites\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Prerequisites</h2>\n<ol dir=\"auto\">\n<li>NodeJS 14 (check with <code>node --version</code>)</li>\n<li>NPM 6 (check with <code>npm --version</code>)</li>\n<li>Optionally: C++ compiler for native NodeJS modules, should work out of the box in Linux and MacOS. On Windows, Visual Studio can be installed, or simply call <code>npm install -g windows-build-tools</code>.</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-technologies\" class=\"anchor\" aria-hidden=\"true\" href=\"#technologies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Technologies</h2>\n<ul dir=\"auto\">\n<li>typescript</li>\n<li>electron</li>\n<li>reactjs</li>\n<li>redux</li>\n<li>saga</li>\n<li>i18next</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-quick-start\" class=\"anchor\" aria-hidden=\"true\" href=\"#quick-start\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Quick start</h2>\n<h3 dir=\"auto\"><a id=\"user-content-install-dependencies\" class=\"anchor\" aria-hidden=\"true\" href=\"#install-dependencies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install dependencies</h3>\n<ul dir=\"auto\">\n<li><code>npm install</code> (or <code>npm ci</code>): initialize local <code>node_modules</code> packages from dependencies declared in <code>package.json</code> (this will also automatically call a long-running compilation stage in <code>npm run postinstall</code>)</li>\n<li>in case of failure to NPM \"install\" because of \"Divina player\" SHA integrity mismatch, please try running the following command in your shell: <code>node scripts/package-lock-patch.js && cat package-lock.json | grep -i divina-player-js</code> (this converts SSH GitHub references to HTTPS ones)</li>\n<li>in case of NPM / Node GYP failing to compile native libs in Windows under Visual Studio 2019's command line tools: <code>npm config set msvs_version 2019 --global</code> and <code>npm config set msbuild_path \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe\"</code> (adjust with your own path, for example <code>Enterprise</code> or <code>Professional</code> instead of <code>Community</code>)</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-start-application-in-development-environment\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-application-in-development-environment\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start application in development environment</h3>\n<p dir=\"auto\">(with hot-reload dev server, web inspectors / debuggers)</p>\n<ul dir=\"auto\">\n<li><code>npm run start:dev</code> (or <code>npm run start:dev:quick</code> to bypass TypeScript checks / launch the app faster)</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-start-application-in-production-environment\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-application-in-production-environment\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start application in production environment</h3>\n<ul dir=\"auto\">\n<li><code>npm start</code> (or <code>npm run start</code>)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-build-installers\" class=\"anchor\" aria-hidden=\"true\" href=\"#build-installers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build installers</h2>\n<ul dir=\"auto\">\n<li><code>npm run package:win</code> or <code>npm run package:mac</code> or <code>npm run package:linux</code></li>\n</ul>\n<p dir=\"auto\">Code Signing information: <a href=\"https://github.com/edrlab/thorium-reader/wiki/Code-Signing\">https://github.com/edrlab/thorium-reader/wiki/Code-Signing</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-command-line\" class=\"anchor\" aria-hidden=\"true\" href=\"#command-line\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Command line</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"thorium <cmd> [args]\n\nCommands:\n thorium opds <title> <url> import opds feed\n thorium import <path> import epub or lpcl file\n thorium read <title> searches already-imported publications with the\n provided TITLE, and opens the reader with the\n first match\n thorium [path] import and read an epub or lcpl file [default]\n thorium completion generate bash completion script\n\nPositionals:\n path path of your publication, it can be an absolute, relative path [string]\n\nOptions:\n --version Show version number [boolean]\n --help Show help [boolean]\"><pre class=\"notranslate\"><code class=\"notranslate\">thorium <cmd> [args]\n\nCommands:\n thorium opds <title> <url> import opds feed\n thorium import <path> import epub or lpcl file\n thorium read <title> searches already-imported publications with the\n provided TITLE, and opens the reader with the\n first match\n thorium [path] import and read an epub or lcpl file [default]\n thorium completion generate bash completion script\n\nPositionals:\n path path of your publication, it can be an absolute, relative path [string]\n\nOptions:\n --version Show version number [boolean]\n --help Show help [boolean]\n</code></pre></div>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.402Z" }, "thismypc": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-this-my-pc\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#this-my-pc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>This My PC</h1>\n<div align=\"center\" dir=\"auto\">\n <a href=\"http://thismypc.com/\" rel=\"nofollow\">\n <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/logo/logo-mini.png\" style=\"max-width: 100%;\">\n </a>\n</div>\n<br>\n<div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a href=\"http://thismypc.com/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/7b6afe1f2d53ebebe20cfd56eec4b3bcdca275a5668951bec31dda5cff166983/68747470733a2f2f666f7274686562616467652e636f6d2f696d616765732f6261646765732f6d6164652d776974682d6a6176617363726970742e737667\" alt=\"forthebadge\" data-canonical-src=\"https://forthebadge.com/images/badges/made-with-javascript.svg\" style=\"max-width: 100%;\"></a>\n<br>\n<a href=\"https://app.codacy.com/app/supunlakmal/thismypc?utm_source=github.com&utm_medium=referral&utm_content=supunlakmal/thismypc&utm_campaign=Badge_Grade_Dashboard\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/891dadbca3282d7c6e7f781088b6f6fe429e83db56cc16de1a83dcebc84dc0a8/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3562363737653630376465663434363662383038346562373662653466306437\" alt=\"Codacy Badge\" data-canonical-src=\"https://api.codacy.com/project/badge/Grade/5b677e607def4466b8084eb76be4f0d7\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/f5054ffcd4245c10d3ec85ef059e07aacf787b560f83ad4aec2236364437d097/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/f5054ffcd4245c10d3ec85ef059e07aacf787b560f83ad4aec2236364437d097/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174\" alt=\"contributions welcome\" data-canonical-src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/supunlakmal/thismypc/graphs/commit-activity\"><img src=\"https://camo.githubusercontent.com/6e4da91cb02711349e6b9d0aba6a767362818c1d17891a02f06fded4415f6172/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61696e7461696e65642533462d7965732d677265656e2e737667\" alt=\"Maintenance\" data-canonical-src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" style=\"max-width: 100%;\"></a> <a href=\"http://thismypc.com/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/dc954b1e6af0e39a8148a4908ac9a4e49e4f17340977c9c88173e3788af10eb6/68747470733a2f2f696d672e736869656c64732e696f2f776562736974652d75702d646f776e2d677265656e2d7265642f687474702f736869656c64732e696f2e737667\" alt=\"Website thismypc.com\" data-canonical-src=\"https://img.shields.io/website-up-down-green-red/http/shields.io.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/supunlakmal/thismypc/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/6ae43f07818e28c456bc0e4f35a61ebb4f08677499bf4eaa31c508107ccec75f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265\" alt=\"GitHub license\" data-canonical-src=\"https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a href=\"https://gitter.im/Thismypc/community\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/ab2281d11c2e6f7632f27099243da7d518b60efeb493cc4ea622c72dc780cdaa/68747470733a2f2f6261646765732e6769747465722e696d2f67697474657248512f6769747465722e737667\" alt=\"Gitter\" data-canonical-src=\"https://badges.gitter.im/gitterHQ/gitter.svg\" style=\"max-width: 100%;\"></a></p>\n</div>\n<blockquote>\n<p dir=\"auto\">ThisMyPC provides a neat web interface that can be used for browsing your desktop drives from any device in your browser itself. With the help of NodeJs, the file details are displayed in JSON format that can then be easily displayed in web browsers.</p>\n</blockquote>\n<blockquote>\n<p dir=\"auto\">The source code is open so that you can download the source code and set it up with ease if you would like to have your own exclusive environment.</p>\n</blockquote>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/web_site_system.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/web_site_system.gif\" alt=\"Web Site System\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-app-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#app-screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>App Screenshots</h2>\n<table>\n<thead>\n<tr>\n<th align=\"center\">Desktop App Login</th>\n<th align=\"center\">Desktop App Open</th>\n<th align=\"center\">Web App computer hard drives</th>\n<th align=\"center\">Web App computer hard drives Open</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-login.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-login.PNG\" title=\"Desktop App Login \" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-home.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-home.PNG\" title=\"Desktop App Open\" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\" title=\"Web App PC Drivers\" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\" title=\"Web App PC Drivers\" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-folder-structure\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#folder-structure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Folder Structure</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\".\n├── .github/ISSUE_TEMPLATE\n├── doc # All Api doc and gif files\n├── thisMyPCApp # Electron JS app folder\n├── thisMyPCServer # Node JS MongoDB and Express JS server folder\n├── thisMyPCWeb # Angular website folder\n├── .gitignore\n├── .gitlab-ci.yml\n├── CODE_OF_CONDUCT.md\n├── LICENSE\n└── README.md\"><pre class=\"notranslate\"><code class=\"notranslate\">.\n├── .github/ISSUE_TEMPLATE\n├── doc # All Api doc and gif files\n├── thisMyPCApp # Electron JS app folder\n├── thisMyPCServer # Node JS MongoDB and Express JS server folder\n├── thisMyPCWeb # Angular website folder\n├── .gitignore\n├── .gitlab-ci.yml\n├── CODE_OF_CONDUCT.md\n├── LICENSE\n└── README.md\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-what-this-my-pc-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#what-this-my-pc-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What (This my pc) ?</h2>\n<p dir=\"auto\">The concept behind thismypc app was to transfer your computer folder and file information through a nodeJS server to the web end as JSON data.</p>\n<h2 dir=\"auto\"><a id=\"user-content-why-this-my-pc-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#why-this-my-pc-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Why (This my pc) ?</h2>\n<ul dir=\"auto\">\n<li>The app's responsive web interface helps you to browse file in any resolution device.</li>\n<li>You can use source code for your own projects.</li>\n<li>It works well in low bandwidth environments.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-wiki-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#how-to-wiki-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How to (Wiki) ?</h2>\n<p dir=\"auto\">All usage instruction and information update on <a href=\"https://github.com/supunlakmal/thismypc/wiki\">Github Wiki</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-developing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#developing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Developing</h2>\n<h3 dir=\"auto\"><a id=\"user-content-platforms\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#platforms\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Platforms</h3>\n<table>\n<thead>\n<tr>\n<th>Platform</th>\n<th>Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Microsoft Windows</td>\n<td>Developing</td>\n</tr>\n<tr>\n<td>Linux</td>\n<td>Pending</td>\n</tr>\n<tr>\n<td>Mac os</td>\n<td>Pending</td>\n</tr>\n<tr>\n<td>Android</td>\n<td>Developing</td>\n</tr>\n</tbody>\n</table>\n<h4 dir=\"auto\"><a id=\"user-content-built-with\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#built-with\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Built With</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://nodejs.org/en/\" rel=\"nofollow\">Node JS</a></li>\n<li><a href=\"http://graphql.org\" rel=\"nofollow\">GraphQL</a></li>\n<li><a href=\"https://expressjs.com/\" rel=\"nofollow\">Express JS</a></li>\n<li><a href=\"https://socket.io/\" rel=\"nofollow\">Socket IO</a></li>\n<li><a href=\"https://angularjs.org/\" rel=\"nofollow\">Angular</a></li>\n<li><a href=\"https://electronjs.org/\" rel=\"nofollow\">Electron JS</a></li>\n<li><a href=\"https://www.mongodb.com/\" rel=\"nofollow\">Mongodb</a></li>\n<li><a href=\"https://facebook.github.io/react-native/\" rel=\"nofollow\">React Native</a></li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-clone-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#clone-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone Project</h4>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/supunlakmal/thismypc.git\"><pre>git clone https://github.com/supunlakmal/thismypc.git</pre></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/gitClone.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/gitClone.gif\" alt=\"git clone https://github.com/supunlakmal/thismypc.git\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This Command will copy a full project to your local environment</p>\n<h2 dir=\"auto\"><a id=\"user-content-angular-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#angular-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Angular Project</h2>\n<h3 dir=\"auto\"><a id=\"user-content-setting-up-angular-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#setting-up-angular-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setting up Angular Project</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" cd thisMyPCWeb\n npm i\"><pre> <span class=\"pl-c1\">cd</span> thisMyPCWeb\n npm i</pre></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/angularSetup.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/angularSetup.gif\" alt=\"Setting up Angular Project\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><code>cd thisMyPCWeb</code> Move into angular Project Folder\n<code>npm i</code> install all dependency.</p>\n<h3 dir=\"auto\"><a id=\"user-content-run-angular-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#run-angular-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run Angular Project</h3>\n<p dir=\"auto\">Run <code>ng serve</code> for a dev server. Navigate to <code>http://localhost:4200/</code>. The app will automatically reload if you change any of the source files.</p>\n<h2 dir=\"auto\"><a id=\"user-content-electron-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#electron-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Electron Project</h2>\n<h3 dir=\"auto\"><a id=\"user-content-setting-up-electron-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#setting-up-electron-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setting up Electron Project</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd thisMyPCApp\nnpm i\"><pre><span class=\"pl-c1\">cd</span> thisMyPCApp\nnpm i</pre></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/electronSetup.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/electronSetup.gif\" alt=\" Setting up Electron Project\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><code>cd thisMyPCWeb</code> Move into Electron Project Folder\n<code>npm i</code> install all dependency.</p>\n<h3 dir=\"auto\"><a id=\"user-content-run-electron-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#run-electron-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run Electron Project</h3>\n<p dir=\"auto\">Run <code>npm run start</code> start electron app in debug mode</p>\n<h2 dir=\"auto\"><a id=\"user-content-node-server\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#node-server\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Node Server</h2>\n<h3 dir=\"auto\"><a id=\"user-content-setting-up-node-server\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#setting-up-node-server\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setting up Node Server</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd thisMyPCServer\nnpm i\"><pre><span class=\"pl-c1\">cd</span> thisMyPCServer\nnpm i</pre></div>\n<p dir=\"auto\"><code>cd thisMyPCServer</code> Move into Node Project Folder\n<code>npm i</code> install all dependency.</p>\n<h3 dir=\"auto\"><a id=\"user-content-run-node-project\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#run-node-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run Node Project</h3>\n<p dir=\"auto\">Run <code>npm node index.js</code> to start node server</p>\n<h2 dir=\"auto\"><a id=\"user-content-graphql\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#graphql\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Graphql</h2>\n<table>\n<thead>\n<tr>\n<th>URL</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/api/v1/graphql</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-rest-api\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#rest-api\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>REST API</h2>\n<h3 dir=\"auto\"><a id=\"user-content-api-reference\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#api-reference\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>API Reference</h3>\n<ul dir=\"auto\">\n<li>PC - Personal Computer</li>\n<li>thismypc.com:5000 - This is Thismypc web site API url. You can use your own localhost server link instead default Link.</li>\n<li>\":userID\" - User ID</li>\n<li>\":computerKey\" - Computer Key</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-web-api\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#web-api\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web API</h3>\n<table>\n<thead>\n<tr>\n<th>Web API</th>\n<th>URL</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>User Register</td>\n<td>/api/v1/user/register</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Login</td>\n<td>/api/v1/user/login</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Logout</td>\n<td>/api/v1/user/:userID/logout</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Auth</td>\n<td>/api/v1/user/authentication</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Info</td>\n<td>/api/v1/user/:userID</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Online PC List</td>\n<td>/api/v1/user/computer/online</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Public PC Access</td>\n<td>/api/v1/computer/public/access</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User PC List</td>\n<td>/api/v1/user/computer</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User Account</td>\n<td>/api/v1/user/update</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User Password</td>\n<td>/api/v1/user/password/edit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User PC Public status</td>\n<td>/api/v1/user/computer/public/status/update</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User PC Public Key</td>\n<td>/api/v1/user/computer/public/key/update</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 dir=\"auto\"><a id=\"user-content-web-socket-io\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#web-socket-io\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web socket IO</h3>\n<table>\n<thead>\n<tr>\n<th>Socket Name</th>\n<th>Socket</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Join Socket from Web</td>\n<td>joinFromWeb</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder or Driver Open Request</td>\n<td>openFolder</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>PC access Requests</td>\n<td>pcAccessRequest</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Get Hard Drive List</td>\n<td>hDDList</td>\n<td>on</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder or hard drive open data</td>\n<td>openFolderRequestToWeb</td>\n<td>on</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 dir=\"auto\"><a id=\"user-content-app-api\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#app-api\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>App API</h3>\n<table>\n<thead>\n<tr>\n<th>APP API</th>\n<th>URL</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>User Login From App</td>\n<td>/api/v1/user/computer/login</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Info</td>\n<td>/api/v1/user/:userID/computer/:computerKey</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Logout</td>\n<td>/api/v1/user/:userID/computer/logout</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 dir=\"auto\"><a id=\"user-content-app-socket-io\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#app-socket-io\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>App socket IO</h3>\n<table>\n<thead>\n<tr>\n<th>Socket Name</th>\n<th>Socket</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Join Socket from APP</td>\n<td>joinFromApp</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Send Hard Drive List</td>\n<td>hDDList</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Send Data inside Folder or Hard Drive</td>\n<td>sendOpenFolderRequest</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Send callback of Folder Create Function</td>\n<td>folderCreateCallback</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>PC access user and data</td>\n<td>pcAccessRequest</td>\n<td>on</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder or Hard drive open request</td>\n<td>openFolderRequest</td>\n<td>on</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder Validation</td>\n<td>validateFolderName</td>\n<td>on</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-database\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#database\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Database</h2>\n<p dir=\"auto\">MongoDB use as Database.</p>\n<h2 dir=\"auto\"><a id=\"user-content-licensing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/supunlakmal/thismypc/blob/master/#licensing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Licensing</h2>\n<p dir=\"auto\">The MIT License 2019 Supun Lakmal</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-this-my-pc\" class=\"anchor\" aria-hidden=\"true\" href=\"#this-my-pc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>This My PC</h1>\n<div align=\"center\" dir=\"auto\">\n <a href=\"http://thismypc.com/\" rel=\"nofollow\">\n <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/logo/logo-mini.png\" style=\"max-width: 100%;\">\n </a>\n</div>\n<br>\n<div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a href=\"http://thismypc.com/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/7b6afe1f2d53ebebe20cfd56eec4b3bcdca275a5668951bec31dda5cff166983/68747470733a2f2f666f7274686562616467652e636f6d2f696d616765732f6261646765732f6d6164652d776974682d6a6176617363726970742e737667\" alt=\"forthebadge\" data-canonical-src=\"https://forthebadge.com/images/badges/made-with-javascript.svg\" style=\"max-width: 100%;\"></a>\n<br>\n<a href=\"https://app.codacy.com/app/supunlakmal/thismypc?utm_source=github.com&utm_medium=referral&utm_content=supunlakmal/thismypc&utm_campaign=Badge_Grade_Dashboard\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/891dadbca3282d7c6e7f781088b6f6fe429e83db56cc16de1a83dcebc84dc0a8/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3562363737653630376465663434363662383038346562373662653466306437\" alt=\"Codacy Badge\" data-canonical-src=\"https://api.codacy.com/project/badge/Grade/5b677e607def4466b8084eb76be4f0d7\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/f5054ffcd4245c10d3ec85ef059e07aacf787b560f83ad4aec2236364437d097/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/f5054ffcd4245c10d3ec85ef059e07aacf787b560f83ad4aec2236364437d097/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174\" alt=\"contributions welcome\" data-canonical-src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/supunlakmal/thismypc/graphs/commit-activity\"><img src=\"https://camo.githubusercontent.com/6e4da91cb02711349e6b9d0aba6a767362818c1d17891a02f06fded4415f6172/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61696e7461696e65642533462d7965732d677265656e2e737667\" alt=\"Maintenance\" data-canonical-src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" style=\"max-width: 100%;\"></a> <a href=\"http://thismypc.com/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/dc954b1e6af0e39a8148a4908ac9a4e49e4f17340977c9c88173e3788af10eb6/68747470733a2f2f696d672e736869656c64732e696f2f776562736974652d75702d646f776e2d677265656e2d7265642f687474702f736869656c64732e696f2e737667\" alt=\"Website thismypc.com\" data-canonical-src=\"https://img.shields.io/website-up-down-green-red/http/shields.io.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/supunlakmal/thismypc/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/6ae43f07818e28c456bc0e4f35a61ebb4f08677499bf4eaa31c508107ccec75f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265\" alt=\"GitHub license\" data-canonical-src=\"https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a href=\"https://gitter.im/Thismypc/community\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/ab2281d11c2e6f7632f27099243da7d518b60efeb493cc4ea622c72dc780cdaa/68747470733a2f2f6261646765732e6769747465722e696d2f67697474657248512f6769747465722e737667\" alt=\"Gitter\" data-canonical-src=\"https://badges.gitter.im/gitterHQ/gitter.svg\" style=\"max-width: 100%;\"></a></p>\n</div>\n<blockquote>\n<p dir=\"auto\">ThisMyPC provides a neat web interface that can be used for browsing your desktop drives from any device in your browser itself. With the help of NodeJs, the file details are displayed in JSON format that can then be easily displayed in web browsers.</p>\n</blockquote>\n<blockquote>\n<p dir=\"auto\">The source code is open so that you can download the source code and set it up with ease if you would like to have your own exclusive environment.</p>\n</blockquote>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/web_site_system.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/web_site_system.gif\" alt=\"Web Site System\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-app-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#app-screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>App Screenshots</h2>\n<table>\n<thead>\n<tr>\n<th align=\"center\">Desktop App Login</th>\n<th align=\"center\">Desktop App Open</th>\n<th align=\"center\">Web App computer hard drives</th>\n<th align=\"center\">Web App computer hard drives Open</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-login.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-login.PNG\" title=\"Desktop App Login \" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-home.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-home.PNG\" title=\"Desktop App Open\" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\" title=\"Web App PC Drivers\" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n<td align=\"center\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\" title=\"Web App PC Drivers\" width=\"100%\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-folder-structure\" class=\"anchor\" aria-hidden=\"true\" href=\"#folder-structure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Folder Structure</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\".\n├── .github/ISSUE_TEMPLATE\n├── doc # All Api doc and gif files\n├── thisMyPCApp # Electron JS app folder\n├── thisMyPCServer # Node JS MongoDB and Express JS server folder\n├── thisMyPCWeb # Angular website folder\n├── .gitignore\n├── .gitlab-ci.yml\n├── CODE_OF_CONDUCT.md\n├── LICENSE\n└── README.md\"><pre class=\"notranslate\"><code class=\"notranslate\">.\n├── .github/ISSUE_TEMPLATE\n├── doc # All Api doc and gif files\n├── thisMyPCApp # Electron JS app folder\n├── thisMyPCServer # Node JS MongoDB and Express JS server folder\n├── thisMyPCWeb # Angular website folder\n├── .gitignore\n├── .gitlab-ci.yml\n├── CODE_OF_CONDUCT.md\n├── LICENSE\n└── README.md\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-what-this-my-pc-\" class=\"anchor\" aria-hidden=\"true\" href=\"#what-this-my-pc-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What (This my pc) ?</h2>\n<p dir=\"auto\">The concept behind thismypc app was to transfer your computer folder and file information through a nodeJS server to the web end as JSON data.</p>\n<h2 dir=\"auto\"><a id=\"user-content-why-this-my-pc-\" class=\"anchor\" aria-hidden=\"true\" href=\"#why-this-my-pc-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Why (This my pc) ?</h2>\n<ul dir=\"auto\">\n<li>The app's responsive web interface helps you to browse file in any resolution device.</li>\n<li>You can use source code for your own projects.</li>\n<li>It works well in low bandwidth environments.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-wiki-\" class=\"anchor\" aria-hidden=\"true\" href=\"#how-to-wiki-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How to (Wiki) ?</h2>\n<p dir=\"auto\">All usage instruction and information update on <a href=\"https://github.com/supunlakmal/thismypc/wiki\">Github Wiki</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-developing\" class=\"anchor\" aria-hidden=\"true\" href=\"#developing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Developing</h2>\n<h3 dir=\"auto\"><a id=\"user-content-platforms\" class=\"anchor\" aria-hidden=\"true\" href=\"#platforms\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Platforms</h3>\n<table>\n<thead>\n<tr>\n<th>Platform</th>\n<th>Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Microsoft Windows</td>\n<td>Developing</td>\n</tr>\n<tr>\n<td>Linux</td>\n<td>Pending</td>\n</tr>\n<tr>\n<td>Mac os</td>\n<td>Pending</td>\n</tr>\n<tr>\n<td>Android</td>\n<td>Developing</td>\n</tr>\n</tbody>\n</table>\n<h4 dir=\"auto\"><a id=\"user-content-built-with\" class=\"anchor\" aria-hidden=\"true\" href=\"#built-with\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Built With</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://nodejs.org/en/\" rel=\"nofollow\">Node JS</a></li>\n<li><a href=\"http://graphql.org\" rel=\"nofollow\">GraphQL</a></li>\n<li><a href=\"https://expressjs.com/\" rel=\"nofollow\">Express JS</a></li>\n<li><a href=\"https://socket.io/\" rel=\"nofollow\">Socket IO</a></li>\n<li><a href=\"https://angularjs.org/\" rel=\"nofollow\">Angular</a></li>\n<li><a href=\"https://electronjs.org/\" rel=\"nofollow\">Electron JS</a></li>\n<li><a href=\"https://www.mongodb.com/\" rel=\"nofollow\">Mongodb</a></li>\n<li><a href=\"https://facebook.github.io/react-native/\" rel=\"nofollow\">React Native</a></li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-clone-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#clone-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone Project</h4>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/supunlakmal/thismypc.git\"><pre>git clone https://github.com/supunlakmal/thismypc.git</pre></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/gitClone.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/gitClone.gif\" alt=\"git clone https://github.com/supunlakmal/thismypc.git\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This Command will copy a full project to your local environment</p>\n<h2 dir=\"auto\"><a id=\"user-content-angular-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#angular-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Angular Project</h2>\n<h3 dir=\"auto\"><a id=\"user-content-setting-up-angular-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#setting-up-angular-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setting up Angular Project</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" cd thisMyPCWeb\n npm i\"><pre> <span class=\"pl-c1\">cd</span> thisMyPCWeb\n npm i</pre></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/angularSetup.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/angularSetup.gif\" alt=\"Setting up Angular Project\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><code>cd thisMyPCWeb</code> Move into angular Project Folder\n<code>npm i</code> install all dependency.</p>\n<h3 dir=\"auto\"><a id=\"user-content-run-angular-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-angular-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run Angular Project</h3>\n<p dir=\"auto\">Run <code>ng serve</code> for a dev server. Navigate to <code>http://localhost:4200/</code>. The app will automatically reload if you change any of the source files.</p>\n<h2 dir=\"auto\"><a id=\"user-content-electron-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#electron-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Electron Project</h2>\n<h3 dir=\"auto\"><a id=\"user-content-setting-up-electron-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#setting-up-electron-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setting up Electron Project</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd thisMyPCApp\nnpm i\"><pre><span class=\"pl-c1\">cd</span> thisMyPCApp\nnpm i</pre></div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/electronSetup.gif\"><img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/electronSetup.gif\" alt=\" Setting up Electron Project\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><code>cd thisMyPCWeb</code> Move into Electron Project Folder\n<code>npm i</code> install all dependency.</p>\n<h3 dir=\"auto\"><a id=\"user-content-run-electron-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-electron-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run Electron Project</h3>\n<p dir=\"auto\">Run <code>npm run start</code> start electron app in debug mode</p>\n<h2 dir=\"auto\"><a id=\"user-content-node-server\" class=\"anchor\" aria-hidden=\"true\" href=\"#node-server\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Node Server</h2>\n<h3 dir=\"auto\"><a id=\"user-content-setting-up-node-server\" class=\"anchor\" aria-hidden=\"true\" href=\"#setting-up-node-server\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setting up Node Server</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd thisMyPCServer\nnpm i\"><pre><span class=\"pl-c1\">cd</span> thisMyPCServer\nnpm i</pre></div>\n<p dir=\"auto\"><code>cd thisMyPCServer</code> Move into Node Project Folder\n<code>npm i</code> install all dependency.</p>\n<h3 dir=\"auto\"><a id=\"user-content-run-node-project\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-node-project\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run Node Project</h3>\n<p dir=\"auto\">Run <code>npm node index.js</code> to start node server</p>\n<h2 dir=\"auto\"><a id=\"user-content-graphql\" class=\"anchor\" aria-hidden=\"true\" href=\"#graphql\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Graphql</h2>\n<table>\n<thead>\n<tr>\n<th>URL</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/api/v1/graphql</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-rest-api\" class=\"anchor\" aria-hidden=\"true\" href=\"#rest-api\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>REST API</h2>\n<h3 dir=\"auto\"><a id=\"user-content-api-reference\" class=\"anchor\" aria-hidden=\"true\" href=\"#api-reference\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>API Reference</h3>\n<ul dir=\"auto\">\n<li>PC - Personal Computer</li>\n<li>thismypc.com:5000 - This is Thismypc web site API url. You can use your own localhost server link instead default Link.</li>\n<li>\":userID\" - User ID</li>\n<li>\":computerKey\" - Computer Key</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-web-api\" class=\"anchor\" aria-hidden=\"true\" href=\"#web-api\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web API</h3>\n<table>\n<thead>\n<tr>\n<th>Web API</th>\n<th>URL</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>User Register</td>\n<td>/api/v1/user/register</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Login</td>\n<td>/api/v1/user/login</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Logout</td>\n<td>/api/v1/user/:userID/logout</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Auth</td>\n<td>/api/v1/user/authentication</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Info</td>\n<td>/api/v1/user/:userID</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Online PC List</td>\n<td>/api/v1/user/computer/online</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Public PC Access</td>\n<td>/api/v1/computer/public/access</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User PC List</td>\n<td>/api/v1/user/computer</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User Account</td>\n<td>/api/v1/user/update</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User Password</td>\n<td>/api/v1/user/password/edit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User PC Public status</td>\n<td>/api/v1/user/computer/public/status/update</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Update User PC Public Key</td>\n<td>/api/v1/user/computer/public/key/update</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 dir=\"auto\"><a id=\"user-content-web-socket-io\" class=\"anchor\" aria-hidden=\"true\" href=\"#web-socket-io\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web socket IO</h3>\n<table>\n<thead>\n<tr>\n<th>Socket Name</th>\n<th>Socket</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Join Socket from Web</td>\n<td>joinFromWeb</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder or Driver Open Request</td>\n<td>openFolder</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>PC access Requests</td>\n<td>pcAccessRequest</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Get Hard Drive List</td>\n<td>hDDList</td>\n<td>on</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder or hard drive open data</td>\n<td>openFolderRequestToWeb</td>\n<td>on</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 dir=\"auto\"><a id=\"user-content-app-api\" class=\"anchor\" aria-hidden=\"true\" href=\"#app-api\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>App API</h3>\n<table>\n<thead>\n<tr>\n<th>APP API</th>\n<th>URL</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>User Login From App</td>\n<td>/api/v1/user/computer/login</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Info</td>\n<td>/api/v1/user/:userID/computer/:computerKey</td>\n<td>-</td>\n</tr>\n<tr>\n<td>User Logout</td>\n<td>/api/v1/user/:userID/computer/logout</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 dir=\"auto\"><a id=\"user-content-app-socket-io\" class=\"anchor\" aria-hidden=\"true\" href=\"#app-socket-io\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>App socket IO</h3>\n<table>\n<thead>\n<tr>\n<th>Socket Name</th>\n<th>Socket</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Join Socket from APP</td>\n<td>joinFromApp</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Send Hard Drive List</td>\n<td>hDDList</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Send Data inside Folder or Hard Drive</td>\n<td>sendOpenFolderRequest</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Send callback of Folder Create Function</td>\n<td>folderCreateCallback</td>\n<td>emit</td>\n<td>-</td>\n</tr>\n<tr>\n<td>PC access user and data</td>\n<td>pcAccessRequest</td>\n<td>on</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder or Hard drive open request</td>\n<td>openFolderRequest</td>\n<td>on</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Folder Validation</td>\n<td>validateFolderName</td>\n<td>on</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-database\" class=\"anchor\" aria-hidden=\"true\" href=\"#database\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Database</h2>\n<p dir=\"auto\">MongoDB use as Database.</p>\n<h2 dir=\"auto\"><a id=\"user-content-licensing\" class=\"anchor\" aria-hidden=\"true\" href=\"#licensing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Licensing</h2>\n<p dir=\"auto\">The MIT License 2019 Supun Lakmal</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.409Z" }, "threema-for-desktop": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-threema-for-desktop\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/GeekCornerGH/Threema-For-Desktop/blob/master/#threema-for-desktop\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Threema For Desktop</h1>\n<h2 dir=\"auto\"><a id=\"user-content-unofficial-desktop-app-for-threema\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/GeekCornerGH/Threema-For-Desktop/blob/master/#unofficial-desktop-app-for-threema\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unofficial desktop app for Threema</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/GeekCornerGH/threema-for-desktop/blob/master/docs/imgs/Landing_screen.png?raw=true\"><img src=\"https://github.com/GeekCornerGH/threema-for-desktop/raw/master/docs/imgs/Landing_screen.png?raw=true\" style=\"max-width: 100%;\"></a><br>\n<em>What is the best theme for you? Just change the theme settings on your computer!</em></p>\n<h3 dir=\"auto\"><a id=\"user-content-faq\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/GeekCornerGH/Threema-For-Desktop/blob/master/#faq\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>FAQ</h3>\n<p dir=\"auto\"><strong>What is Threema?</strong>\nThreema is a swiss-made <g-emoji class=\"g-emoji\" alias=\"switzerland\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ed.png\">🇨🇭</g-emoji> communication app like WhatsApp, with end-to-end encryption <g-emoji class=\"g-emoji\" alias=\"closed_lock_with_key\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f510.png\">🔐</g-emoji>. Source code of Threema is also avaliable <a href=\"https://github.com/threema-ch\">here</a>.<br>\n<strong>Why this software?</strong><br>\nI created this application because I wanted a real desktop app for Threema, just like WhatsApp, Telegram or Signal.\nAlso, I added some features to suit my needs. You can request features by opening an issue.\nSome features:</p>\n<ul dir=\"auto\">\n<li>Push Notifications</li>\n<li>Discord RPC</li>\n<li>Redirect to main browser for externals links</li>\n<li>Cross-platform (Windows / macOS / Linux)</li>\n<li>Dark theme (Using your computer settings)</li>\n</ul>\n<p dir=\"auto\"><strong>How does it works?</strong><br>\nCheck out <a href=\"https://github.com/GeekCornerGH/threema-for-desktop/blob/master/docs/HOW%20THE%20APP%20WORKS.MD\">this page</a></p>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/GeekCornerGH/Threema-For-Desktop/blob/master/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<p dir=\"auto\"><a href=\"https://github.com/geekcornergh/threema-for-desktop/releases/latest\"><img src=\"https://camo.githubusercontent.com/9d4acb829f3fffbb10fc1ab6795be716c6a5b384e7487cc03c761dd436704260/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/v/release/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Head over <a href=\"https://github.com/GeekCornerGH/threema-for-desktop/releases/latest\">latest releases page</a>, then refer to the table below:</p>\n<table>\n<thead>\n<tr>\n<th>Windows installer (x86 + x64 + arm64)</th>\n<th>Windows portable (x86 + x64 + arm64)</th>\n<th>macOS (Intel+Arm)</th>\n<th>Linux (any)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Threema-For-Desktop-setup-VERSION.exe</td>\n<td>Threema-For-Desktop-portable-version</td>\n<td>Threema-For-Desktop-mac-universal-VERSION.dmg</td>\n<td>Threema-For-Desktop-linux-VERSION.AppImage</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">Now, choose your OS:</p>\n<ul dir=\"auto\">\n <details> \n <summary>Windows</summary>\n Download the exe file, then run it. Select run anyways on SmartScreen step (code-signing is so expansive...). If you are running the setup file, you need to follow the steps to install Threema For Desktop. You are done!\n </details>\n <details> \n <summary>macOS</summary>\n Download the dmg file, then it. Drop the <code>Threema For Desktop.app</code> file into Applications folder. Run the .APP file by following theses steps: Finder > Applications > Right click on <code>Threema For Desktop.app</code> > Open > Open. After that, you will be able to launch Threema For Desktop from Launchpad or Spotlight, but you'll need to do this again everytime you update the app (That's because Apple's code signing is verry expansive...).\n </details>\n <details>\n <summary>Linux</summary>\n Install AppImage Launcher from <a href=\"https://github.com/TheAssassin/AppImageLauncher/releases/latest\">here</a>. This will allow you to install Threema For Desktop like another software. Then download AppImage file from releases page. Finally, double click the file. It's done.\n </details>\n \n</ul>\n<details>\n<summary>Some badges, if you want</summary>\n<a href=\"https://github.com/GeekCornerGH/threema-for-desktop/actions/workflows/CI.yml\"><img src=\"https://camo.githubusercontent.com/60a490cbddcc55d2b10778129a74951f72f79e930e8e582c9e0f8d26b7b2a3fd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f702f54687265656d61253230466f722532304465736b746f7025323043493f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/workflow/status/geekcornergh/threema-for-desktop/Threema%20For%20Desktop%20CI?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://david-dm.org/geekcornergh/threema-for-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/fa385423b4eeb411e1a86237fac86704f177b3a6b0915a43eadc37b19bc4599e/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/david/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop\"><img src=\"https://camo.githubusercontent.com/99bd2fac1b84404929c6cb0837a60b2421326a553477e5fc0ea4ea9129902e03/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/languages/code-size/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop\"><img src=\"https://camo.githubusercontent.com/f7c6b44e9c1b64d7d4f5ccaf3c503a29a16ed7c0dcbdad8229a0cd45fa614c06/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/repo-size/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop\"><img src=\"https://camo.githubusercontent.com/15b5cdf67ff695efada847d72be104a74b5659b5c7aaaa53b2336cbbe0f5afda/68747470733a2f2f696d672e736869656c64732e696f2f746f6b65692f6c696e65732f6769746875622f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/tokei/lines/github/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.codefactor.io/repository/github/geekcornergh/threema-for-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bf070911d7d869df9cf5a83aa564aa05c26c423e5d9464e3f276bc0e1ba504c4/68747470733a2f2f696d672e736869656c64732e696f2f636f6465666163746f722f67726164652f6769746875622f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/codefactor/grade/github/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\">\n</a><a href=\"https://github.com/geekcornergh/threema-for-desktop/releases\"><img src=\"https://camo.githubusercontent.com/c068754b28720244a5729f3af4f8ea1ad50c5ce0d266478e095f9637c84dee2e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f702f746f74616c3f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/downloads/geekcornergh/threema-for-desktop/total?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop/pulls\"><img src=\"https://camo.githubusercontent.com/77c646c2628d85633d55535d6e760c049ed3acf304704ef773c11969c3e8049b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/issues-pr/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop/issues\"><img src=\"https://camo.githubusercontent.com/0f0cb760d8c3651edaa3802e99c0cdf11621ff03226d6333283f31742349a273/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/issues/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop/releases/latest\"><img src=\"https://camo.githubusercontent.com/9d4acb829f3fffbb10fc1ab6795be716c6a5b384e7487cc03c761dd436704260/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/v/release/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://cutt.ly/1nezoij\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/5d2692bb86c88b13f42b5b29dd8ec44a7bf11c478fc5585297e180d00ac7b546/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d414445253230494e2d535749545a45524c414e442546302539462538372541382546302539462538372541442d637269746963616c3f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/badge/MADE%20IN-SWITZERLAND%F0%9F%87%A8%F0%9F%87%AD-critical?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n</details></article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-threema-for-desktop\" class=\"anchor\" aria-hidden=\"true\" href=\"#threema-for-desktop\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Threema For Desktop</h1>\n<h2 dir=\"auto\"><a id=\"user-content-unofficial-desktop-app-for-threema\" class=\"anchor\" aria-hidden=\"true\" href=\"#unofficial-desktop-app-for-threema\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unofficial desktop app for Threema</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/GeekCornerGH/threema-for-desktop/blob/master/docs/imgs/Landing_screen.png?raw=true\"><img src=\"https://github.com/GeekCornerGH/threema-for-desktop/raw/master/docs/imgs/Landing_screen.png?raw=true\" style=\"max-width: 100%;\"></a><br>\n<em>What is the best theme for you? Just change the theme settings on your computer!</em></p>\n<h3 dir=\"auto\"><a id=\"user-content-faq\" class=\"anchor\" aria-hidden=\"true\" href=\"#faq\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>FAQ</h3>\n<p dir=\"auto\"><strong>What is Threema?</strong>\nThreema is a swiss-made <g-emoji class=\"g-emoji\" alias=\"switzerland\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1ed.png\">🇨🇭</g-emoji> communication app like WhatsApp, with end-to-end encryption <g-emoji class=\"g-emoji\" alias=\"closed_lock_with_key\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f510.png\">🔐</g-emoji>. Source code of Threema is also avaliable <a href=\"https://github.com/threema-ch\">here</a>.<br>\n<strong>Why this software?</strong><br>\nI created this application because I wanted a real desktop app for Threema, just like WhatsApp, Telegram or Signal.\nAlso, I added some features to suit my needs. You can request features by opening an issue.\nSome features:</p>\n<ul dir=\"auto\">\n<li>Push Notifications</li>\n<li>Discord RPC</li>\n<li>Redirect to main browser for externals links</li>\n<li>Cross-platform (Windows / macOS / Linux)</li>\n<li>Dark theme (Using your computer settings)</li>\n</ul>\n<p dir=\"auto\"><strong>How does it works?</strong><br>\nCheck out <a href=\"https://github.com/GeekCornerGH/threema-for-desktop/blob/master/docs/HOW%20THE%20APP%20WORKS.MD\">this page</a></p>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<p dir=\"auto\"><a href=\"https://github.com/geekcornergh/threema-for-desktop/releases/latest\"><img src=\"https://camo.githubusercontent.com/9d4acb829f3fffbb10fc1ab6795be716c6a5b384e7487cc03c761dd436704260/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/v/release/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Head over <a href=\"https://github.com/GeekCornerGH/threema-for-desktop/releases/latest\">latest releases page</a>, then refer to the table below:</p>\n<table>\n<thead>\n<tr>\n<th>Windows installer (x86 + x64 + arm64)</th>\n<th>Windows portable (x86 + x64 + arm64)</th>\n<th>macOS (Intel+Arm)</th>\n<th>Linux (any)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Threema-For-Desktop-setup-VERSION.exe</td>\n<td>Threema-For-Desktop-portable-version</td>\n<td>Threema-For-Desktop-mac-universal-VERSION.dmg</td>\n<td>Threema-For-Desktop-linux-VERSION.AppImage</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">Now, choose your OS:</p>\n<ul dir=\"auto\">\n <details> \n <summary>Windows</summary>\n Download the exe file, then run it. Select run anyways on SmartScreen step (code-signing is so expansive...). If you are running the setup file, you need to follow the steps to install Threema For Desktop. You are done!\n </details>\n <details> \n <summary>macOS</summary>\n Download the dmg file, then it. Drop the <code>Threema For Desktop.app</code> file into Applications folder. Run the .APP file by following theses steps: Finder > Applications > Right click on <code>Threema For Desktop.app</code> > Open > Open. After that, you will be able to launch Threema For Desktop from Launchpad or Spotlight, but you'll need to do this again everytime you update the app (That's because Apple's code signing is verry expansive...).\n </details>\n <details>\n <summary>Linux</summary>\n Install AppImage Launcher from <a href=\"https://github.com/TheAssassin/AppImageLauncher/releases/latest\">here</a>. This will allow you to install Threema For Desktop like another software. Then download AppImage file from releases page. Finally, double click the file. It's done.\n </details>\n \n</ul>\n<details>\n<summary>Some badges, if you want</summary>\n<a href=\"https://github.com/GeekCornerGH/threema-for-desktop/actions/workflows/CI.yml\"><img src=\"https://camo.githubusercontent.com/60a490cbddcc55d2b10778129a74951f72f79e930e8e582c9e0f8d26b7b2a3fd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f702f54687265656d61253230466f722532304465736b746f7025323043493f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/workflow/status/geekcornergh/threema-for-desktop/Threema%20For%20Desktop%20CI?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://david-dm.org/geekcornergh/threema-for-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/fa385423b4eeb411e1a86237fac86704f177b3a6b0915a43eadc37b19bc4599e/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/david/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop\"><img src=\"https://camo.githubusercontent.com/99bd2fac1b84404929c6cb0837a60b2421326a553477e5fc0ea4ea9129902e03/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/languages/code-size/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop\"><img src=\"https://camo.githubusercontent.com/f7c6b44e9c1b64d7d4f5ccaf3c503a29a16ed7c0dcbdad8229a0cd45fa614c06/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/repo-size/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop\"><img src=\"https://camo.githubusercontent.com/15b5cdf67ff695efada847d72be104a74b5659b5c7aaaa53b2336cbbe0f5afda/68747470733a2f2f696d672e736869656c64732e696f2f746f6b65692f6c696e65732f6769746875622f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/tokei/lines/github/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.codefactor.io/repository/github/geekcornergh/threema-for-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bf070911d7d869df9cf5a83aa564aa05c26c423e5d9464e3f276bc0e1ba504c4/68747470733a2f2f696d672e736869656c64732e696f2f636f6465666163746f722f67726164652f6769746875622f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/codefactor/grade/github/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\">\n</a><a href=\"https://github.com/geekcornergh/threema-for-desktop/releases\"><img src=\"https://camo.githubusercontent.com/c068754b28720244a5729f3af4f8ea1ad50c5ce0d266478e095f9637c84dee2e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f702f746f74616c3f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/downloads/geekcornergh/threema-for-desktop/total?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop/pulls\"><img src=\"https://camo.githubusercontent.com/77c646c2628d85633d55535d6e760c049ed3acf304704ef773c11969c3e8049b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/issues-pr/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop/issues\"><img src=\"https://camo.githubusercontent.com/0f0cb760d8c3651edaa3802e99c0cdf11621ff03226d6333283f31742349a273/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/issues/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/geekcornergh/threema-for-desktop/releases/latest\"><img src=\"https://camo.githubusercontent.com/9d4acb829f3fffbb10fc1ab6795be716c6a5b384e7487cc03c761dd436704260/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6765656b636f726e657267682f74687265656d612d666f722d6465736b746f703f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/github/v/release/geekcornergh/threema-for-desktop?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a href=\"https://cutt.ly/1nezoij\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/5d2692bb86c88b13f42b5b29dd8ec44a7bf11c478fc5585297e180d00ac7b546/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d414445253230494e2d535749545a45524c414e442546302539462538372541382546302539462538372541442d637269746963616c3f7374796c653d666f722d7468652d6261646765\" data-canonical-src=\"https://img.shields.io/badge/MADE%20IN-SWITZERLAND%F0%9F%87%A8%F0%9F%87%AD-critical?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n</details></article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.451Z" }, "tilde": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/logo_github.png\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/logo_github.png\" alt=\"logo\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-tilde-is-the-most-beautiful-and-elegant-podcast-client\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#tilde-is-the-most-beautiful-and-elegant-podcast-client\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tilde is the most beautiful and elegant podcast client.</h3>\n<p dir=\"auto\">It allows you to search, subscribe and play all your favorite podcasts.</p>\n<table>\n <tbody><tr>\n <th colspan=\"3\">Sections</th>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#search\">Search</a></td>\n <td align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#feed\">Feed</a></td>\n <td align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#new-episodes\">New Episodes</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#favorites\">Favorites</a></td>\n <td align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#archive\">Archive</a></td>\n <td align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#settings\">Settings</a></td>\n </tr>\n <tr>\n <td colspan=\"3\" align=\"center\"><a href=\"https://github.com/paologiua/tilde/blob/main/#nerdy-things\">Nerdy Things</a></td>\n </tr>\n</tbody></table>\n<h1 dir=\"auto\"><a id=\"user-content--search-for-new-podcasts-via-itunes-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#-search-for-new-podcasts-via-itunes-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"mag\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f50d.png\">🔍</g-emoji> Search for new podcasts via iTunes <span id=\"user-content-search\"></span></h1>\n<p dir=\"auto\">The search, based on the iTunes API, allows you to reach any Podcast and view its feed in an instant.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/screenshots/dark6.png\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/screenshots/dark6.png\" alt=\"screenshot1\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-️-viewing-the-feeds-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#️-viewing-the-feeds-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"spiral_notepad\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f5d2.png\">🗒️</g-emoji> Viewing the Feeds <span id=\"user-content-feed\"></span></h1>\n<p dir=\"auto\">By opening the feed of a podcast, the interface shows all the main informations about it, such as:</p>\n<ul dir=\"auto\">\n<li>the name of the podcast</li>\n<li>the name of the podcaster</li>\n<li>the description</li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/screenshots/dark7.png\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/screenshots/dark7.png\" alt=\"screenshot2\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\">After the information section, the list of episodes is shown.</p>\n<h1 dir=\"auto\"><a id=\"user-content-️-new-episodes-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#️-new-episodes-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"studio_microphone\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f399.png\">🎙️</g-emoji> New episodes <span id=\"user-content-new-episodes\"></span></h1>\n<p dir=\"auto\">The section of new episodes is displayed when the app is launched. It shows the most recent episodes published during the last week.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/screenshots/dark1.png\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/screenshots/dark1.png\" alt=\"screenshot3\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-️-favorites-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#️-favorites-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"heart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2764.png\">❤️</g-emoji> Favorites <span id=\"user-content-favorites\"></span></h1>\n<p dir=\"auto\">Episodes from a podcast are shown in the section of new episodes only after you have added it to your favorites.</p>\n<p dir=\"auto\">The section of favorites allows you to have quick links to all the podcasts you love most.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/screenshots/dark2.png\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/screenshots/dark2.png\" alt=\"screenshot4\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content--archive-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#-archive-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"inbox_tray\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e5.png\">📥</g-emoji> Archive <span id=\"user-content-archive\"></span></h1>\n<p dir=\"auto\">You can keep the most interesting episodes in your personal archive.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/screenshots/dark3.png\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/screenshots/dark3.png\" alt=\"screenshot5\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-️-settings-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#️-settings-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"gear\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2699.png\">⚙️</g-emoji> Settings <span id=\"user-content-settings\"></span></h1>\n<p dir=\"auto\">In the settings you can choose the theme you prefer.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/paologiua/tilde/blob/main/images/screenshots/theme.gif\"><img src=\"https://raw.githubusercontent.com/paologiua/tilde/main/images/screenshots/theme.gif\" alt=\"screenshot6\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content--nerdy-things-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#-nerdy-things-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"space_invader\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f47e.png\">👾</g-emoji> Nerdy Things <span id=\"user-content-nerdy-things\"><span></span></span></h1>\n<p dir=\"auto\"><strong><g-emoji class=\"g-emoji\" alias=\"construction\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png\">🚧</g-emoji> Work in progress <g-emoji class=\"g-emoji\" alias=\"construction\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png\">🚧</g-emoji></strong></p>\n<h3 dir=\"auto\"><a id=\"user-content-this-project-is-a-fork-of-poddycast\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/paologiua/tilde/blob/main/#this-project-is-a-fork-of-poddycast\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>This project is a fork of <a href=\"https://github.com/MrChuckomo/poddycast\">Poddycast</a></h3>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/logo_github.png\"><img src=\"images/logo_github.png\" alt=\"logo\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-tilde-is-the-most-beautiful-and-elegant-podcast-client\" class=\"anchor\" aria-hidden=\"true\" href=\"#tilde-is-the-most-beautiful-and-elegant-podcast-client\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tilde is the most beautiful and elegant podcast client.</h3>\n<p dir=\"auto\">It allows you to search, subscribe and play all your favorite podcasts.</p>\n<table>\n <tbody><tr>\n <th colspan=\"3\">Sections</th>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"#search\">Search</a></td>\n <td align=\"center\"><a href=\"#feed\">Feed</a></td>\n <td align=\"center\"><a href=\"#new-episodes\">New Episodes</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"#favorites\">Favorites</a></td>\n <td align=\"center\"><a href=\"#archive\">Archive</a></td>\n <td align=\"center\"><a href=\"#settings\">Settings</a></td>\n </tr>\n <tr>\n <td colspan=\"3\" align=\"center\"><a href=\"#nerdy-things\">Nerdy Things</a></td>\n </tr>\n</tbody></table>\n<h1 dir=\"auto\"><a id=\"user-content--search-for-new-podcasts-via-itunes-\" class=\"anchor\" aria-hidden=\"true\" href=\"#-search-for-new-podcasts-via-itunes-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"mag\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f50d.png\">🔍</g-emoji> Search for new podcasts via iTunes <span id=\"user-content-search\"></span></h1>\n<p dir=\"auto\">The search, based on the iTunes API, allows you to reach any Podcast and view its feed in an instant.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/dark6.png\"><img src=\"images/screenshots/dark6.png\" alt=\"screenshot1\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-️-viewing-the-feeds-\" class=\"anchor\" aria-hidden=\"true\" href=\"#️-viewing-the-feeds-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"spiral_notepad\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f5d2.png\">🗒️</g-emoji> Viewing the Feeds <span id=\"user-content-feed\"></span></h1>\n<p dir=\"auto\">By opening the feed of a podcast, the interface shows all the main informations about it, such as:</p>\n<ul dir=\"auto\">\n<li>the name of the podcast</li>\n<li>the name of the podcaster</li>\n<li>the description</li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/dark7.png\"><img src=\"images/screenshots/dark7.png\" alt=\"screenshot2\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">After the information section, the list of episodes is shown.</p>\n<h1 dir=\"auto\"><a id=\"user-content-️-new-episodes-\" class=\"anchor\" aria-hidden=\"true\" href=\"#️-new-episodes-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"studio_microphone\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f399.png\">🎙️</g-emoji> New episodes <span id=\"user-content-new-episodes\"></span></h1>\n<p dir=\"auto\">The section of new episodes is displayed when the app is launched. It shows the most recent episodes published during the last week.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/dark1.png\"><img src=\"images/screenshots/dark1.png\" alt=\"screenshot3\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-️-favorites-\" class=\"anchor\" aria-hidden=\"true\" href=\"#️-favorites-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"heart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2764.png\">❤️</g-emoji> Favorites <span id=\"user-content-favorites\"></span></h1>\n<p dir=\"auto\">Episodes from a podcast are shown in the section of new episodes only after you have added it to your favorites.</p>\n<p dir=\"auto\">The section of favorites allows you to have quick links to all the podcasts you love most.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/dark2.png\"><img src=\"images/screenshots/dark2.png\" alt=\"screenshot4\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content--archive-\" class=\"anchor\" aria-hidden=\"true\" href=\"#-archive-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"inbox_tray\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e5.png\">📥</g-emoji> Archive <span id=\"user-content-archive\"></span></h1>\n<p dir=\"auto\">You can keep the most interesting episodes in your personal archive.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/dark3.png\"><img src=\"images/screenshots/dark3.png\" alt=\"screenshot5\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-️-settings-\" class=\"anchor\" aria-hidden=\"true\" href=\"#️-settings-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"gear\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2699.png\">⚙️</g-emoji> Settings <span id=\"user-content-settings\"></span></h1>\n<p dir=\"auto\">In the settings you can choose the theme you prefer.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/theme.gif\"><img src=\"images/screenshots/theme.gif\" alt=\"screenshot6\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content--nerdy-things-\" class=\"anchor\" aria-hidden=\"true\" href=\"#-nerdy-things-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"space_invader\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f47e.png\">👾</g-emoji> Nerdy Things <span id=\"user-content-nerdy-things\"><span></span></span></h1>\n<p dir=\"auto\"><strong><g-emoji class=\"g-emoji\" alias=\"construction\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png\">🚧</g-emoji> Work in progress <g-emoji class=\"g-emoji\" alias=\"construction\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png\">🚧</g-emoji></strong></p>\n<h3 dir=\"auto\"><a id=\"user-content-this-project-is-a-fork-of-poddycast\" class=\"anchor\" aria-hidden=\"true\" href=\"#this-project-is-a-fork-of-poddycast\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>This project is a fork of <a href=\"https://github.com/MrChuckomo/poddycast\">Poddycast</a></h3>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.630Z" }, "thunderdocs": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/b2af7c1395ac9d2087c2017d8ac9c310d5782a98599e9c9fb8b9c2ffd58390d2/68747470733a2f2f63646e2e7261776769742e636f6d2f5669737461316e696b2f5468756e646572446f63732f35623538643432312f6173736574732f69636f6e732f7765622f333230783332302e706e67\"><img src=\"https://camo.githubusercontent.com/b2af7c1395ac9d2087c2017d8ac9c310d5782a98599e9c9fb8b9c2ffd58390d2/68747470733a2f2f63646e2e7261776769742e636f6d2f5669737461316e696b2f5468756e646572446f63732f35623538643432312f6173736574732f69636f6e732f7765622f333230783332302e706e67\" alt=\"Logo\" data-canonical-src=\"https://cdn.rawgit.com/Vista1nik/ThunderDocs/5b58d421/assets/icons/web/320x320.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-thunderdocs\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Vista1nik/ThunderDocs/blob/master/#thunderdocs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ThunderDocs</h2>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/Vista1nik/ThunderDocs\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9a31c8480b19f5638e8947aea459cc32c9b5abb40dc509523fb537bc88786090/68747470733a2f2f7472617669732d63692e6f72672f5669737461316e696b2f5468756e646572446f63732e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/Vista1nik/ThunderDocs.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/16fda3d83d29027bdc6363b9a670d91e3874c906d57af576b5af03043bbbfb8d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5669737461316e696b2f47446f63732f746f74616c2e737667\"><img src=\"https://camo.githubusercontent.com/16fda3d83d29027bdc6363b9a670d91e3874c906d57af576b5af03043bbbfb8d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5669737461316e696b2f47446f63732f746f74616c2e737667\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/Vista1nik/GDocs/total.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/9a4860b2da333767b52ed3429f44ceb55d7f36babcba8d8d46fb8af0a59e742e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456c656374726f6e2d312e382e342d627269676874677265656e2e737667\"><img src=\"https://camo.githubusercontent.com/9a4860b2da333767b52ed3429f44ceb55d7f36babcba8d8d46fb8af0a59e742e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456c656374726f6e2d312e382e342d627269676874677265656e2e737667\" alt=\"Electron Version\" data-canonical-src=\"https://img.shields.io/badge/Electron-1.8.4-brightgreen.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"https://snapcraft.io/thunderdocs\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/353bcf397acd2a7663c45bc69cd2b202417a66c24d3b38f861f9cc0fe1a25324/68747470733a2f2f736e617063726166742e696f2f7374617469632f696d616765732f6261646765732f656e2f736e61702d73746f72652d77686974652e737667\" alt=\"Get it from the Snap Store\" data-canonical-src=\"https://snapcraft.io/static/images/badges/en/snap-store-white.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Unofficial Google Docs desktop app</p>\n<h3 dir=\"auto\"><a id=\"user-content-screenshot\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Vista1nik/ThunderDocs/blob/master/#screenshot\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshot</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/8e247fbe1e909479153399a92da8bf990c9dca11c1a27d9dea156a22fe0d6ed0/68747470733a2f2f692e696d6775722e636f6d2f564453623967642e706e67\"><img src=\"https://camo.githubusercontent.com/8e247fbe1e909479153399a92da8bf990c9dca11c1a27d9dea156a22fe0d6ed0/68747470733a2f2f692e696d6775722e636f6d2f564453623967642e706e67\" alt=\"\" data-canonical-src=\"https://i.imgur.com/VDSb9gd.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-building-and-running\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Vista1nik/ThunderDocs/blob/master/#building-and-running\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building and Running</h2>\n<p dir=\"auto\"><strong>Run:</strong></p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nelectron .\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nelectron .\n</code></pre></div>\n<p dir=\"auto\"><strong>Build:</strong></p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nnpm install electron-packager --save-dev\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nnpm install electron-packager --save-dev\n</code></pre></div>\n<p dir=\"auto\">Windows:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"electron-packager . --overwrite --platform=win32 --arch=x64 --icon=assets/icons/win/icon.ico\"><pre class=\"notranslate\"><code class=\"notranslate\">electron-packager . --overwrite --platform=win32 --arch=x64 --icon=assets/icons/win/icon.ico\n</code></pre></div>\n<p dir=\"auto\">macOS:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns\"><pre class=\"notranslate\"><code class=\"notranslate\">electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns\n</code></pre></div>\n<p dir=\"auto\">Linux:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png\"><pre class=\"notranslate\"><code class=\"notranslate\">electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png\n</code></pre></div>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/b2af7c1395ac9d2087c2017d8ac9c310d5782a98599e9c9fb8b9c2ffd58390d2/68747470733a2f2f63646e2e7261776769742e636f6d2f5669737461316e696b2f5468756e646572446f63732f35623538643432312f6173736574732f69636f6e732f7765622f333230783332302e706e67\"><img src=\"https://camo.githubusercontent.com/b2af7c1395ac9d2087c2017d8ac9c310d5782a98599e9c9fb8b9c2ffd58390d2/68747470733a2f2f63646e2e7261776769742e636f6d2f5669737461316e696b2f5468756e646572446f63732f35623538643432312f6173736574732f69636f6e732f7765622f333230783332302e706e67\" alt=\"Logo\" data-canonical-src=\"https://cdn.rawgit.com/Vista1nik/ThunderDocs/5b58d421/assets/icons/web/320x320.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-thunderdocs\" class=\"anchor\" aria-hidden=\"true\" href=\"#thunderdocs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ThunderDocs</h2>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/Vista1nik/ThunderDocs\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9a31c8480b19f5638e8947aea459cc32c9b5abb40dc509523fb537bc88786090/68747470733a2f2f7472617669732d63692e6f72672f5669737461316e696b2f5468756e646572446f63732e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/Vista1nik/ThunderDocs.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/16fda3d83d29027bdc6363b9a670d91e3874c906d57af576b5af03043bbbfb8d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5669737461316e696b2f47446f63732f746f74616c2e737667\"><img src=\"https://camo.githubusercontent.com/16fda3d83d29027bdc6363b9a670d91e3874c906d57af576b5af03043bbbfb8d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5669737461316e696b2f47446f63732f746f74616c2e737667\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/Vista1nik/GDocs/total.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/9a4860b2da333767b52ed3429f44ceb55d7f36babcba8d8d46fb8af0a59e742e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456c656374726f6e2d312e382e342d627269676874677265656e2e737667\"><img src=\"https://camo.githubusercontent.com/9a4860b2da333767b52ed3429f44ceb55d7f36babcba8d8d46fb8af0a59e742e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456c656374726f6e2d312e382e342d627269676874677265656e2e737667\" alt=\"Electron Version\" data-canonical-src=\"https://img.shields.io/badge/Electron-1.8.4-brightgreen.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"https://snapcraft.io/thunderdocs\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/353bcf397acd2a7663c45bc69cd2b202417a66c24d3b38f861f9cc0fe1a25324/68747470733a2f2f736e617063726166742e696f2f7374617469632f696d616765732f6261646765732f656e2f736e61702d73746f72652d77686974652e737667\" alt=\"Get it from the Snap Store\" data-canonical-src=\"https://snapcraft.io/static/images/badges/en/snap-store-white.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Unofficial Google Docs desktop app</p>\n<h3 dir=\"auto\"><a id=\"user-content-screenshot\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshot\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshot</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/8e247fbe1e909479153399a92da8bf990c9dca11c1a27d9dea156a22fe0d6ed0/68747470733a2f2f692e696d6775722e636f6d2f564453623967642e706e67\"><img src=\"https://camo.githubusercontent.com/8e247fbe1e909479153399a92da8bf990c9dca11c1a27d9dea156a22fe0d6ed0/68747470733a2f2f692e696d6775722e636f6d2f564453623967642e706e67\" alt=\"\" data-canonical-src=\"https://i.imgur.com/VDSb9gd.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-building-and-running\" class=\"anchor\" aria-hidden=\"true\" href=\"#building-and-running\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building and Running</h2>\n<p dir=\"auto\"><strong>Run:</strong></p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nelectron .\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nelectron .\n</code></pre></div>\n<p dir=\"auto\"><strong>Build:</strong></p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nnpm install electron-packager --save-dev\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nnpm install electron-packager --save-dev\n</code></pre></div>\n<p dir=\"auto\">Windows:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"electron-packager . --overwrite --platform=win32 --arch=x64 --icon=assets/icons/win/icon.ico\"><pre class=\"notranslate\"><code class=\"notranslate\">electron-packager . --overwrite --platform=win32 --arch=x64 --icon=assets/icons/win/icon.ico\n</code></pre></div>\n<p dir=\"auto\">macOS:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns\"><pre class=\"notranslate\"><code class=\"notranslate\">electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns\n</code></pre></div>\n<p dir=\"auto\">Linux:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png\"><pre class=\"notranslate\"><code class=\"notranslate\">electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png\n</code></pre></div>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.640Z" }, "themebuilder": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-custom-elements\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wurde/themebuilder/blob/main/#custom-elements\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Custom Elements</h1>\n<p dir=\"auto\">An example of the Bit framework. <a href=\"https://bit.dev\" rel=\"nofollow\">https://bit.dev</a></p>\n<p dir=\"auto\">Bit stands at the intersection between product and\nengineering. It helps you take complex product\nrequirements, and break them down into independent, and\nreusable pieces called \"components\". It allows you to\ncreate components and compose them with each other.\nComponents are described by names and APIs, and contain\nsource code implementation. They can be of different kinds\nlike apps, pages, UI components, backend services and even\ncontent. You can think of almost anything in components.</p>\n<h2 dir=\"auto\"><a id=\"user-content-prerequisites\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wurde/themebuilder/blob/main/#prerequisites\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Prerequisites</h2>\n<p dir=\"auto\">This project requires the <code>bit</code> CLI is installed.</p>\n<p dir=\"auto\"><a href=\"https://bit.dev/docs/getting-started/installing-bit/installing-bit\" rel=\"nofollow\">https://bit.dev/docs/getting-started/installing-bit/installing-bit</a></p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npx @teambit/bvm install\"><pre>npx @teambit/bvm install</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wurde/themebuilder/blob/main/#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/wurde/custom-elements\ncd custom-elements\n\n# Start the development server (open localhost:3000)\nbit start\n\n# Or run the app in production mode\nbit run comic\n\n# Generate a dependencies graph\nbit graph\n\n# Print a list of other commands\nbit help\"><pre>git clone https://github.com/wurde/custom-elements\n<span class=\"pl-c1\">cd</span> custom-elements\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Start the development server (open localhost:3000)</span>\nbit start\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Or run the app in production mode</span>\nbit run comic\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Generate a dependencies graph</span>\nbit graph\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Print a list of other commands</span>\nbit <span class=\"pl-c1\">help</span></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wurde/themebuilder/blob/main/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is <strong>FREE</strong> to use, reuse, remix, and resell.\nThis is made possible by the <a href=\"https://github.com/wurde/themebuilder/blob/main//LICENSE\">MIT license</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-custom-elements\" class=\"anchor\" aria-hidden=\"true\" href=\"#custom-elements\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Custom Elements</h1>\n<p dir=\"auto\">An example of the Bit framework. <a href=\"https://bit.dev\" rel=\"nofollow\">https://bit.dev</a></p>\n<p dir=\"auto\">Bit stands at the intersection between product and\nengineering. It helps you take complex product\nrequirements, and break them down into independent, and\nreusable pieces called \"components\". It allows you to\ncreate components and compose them with each other.\nComponents are described by names and APIs, and contain\nsource code implementation. They can be of different kinds\nlike apps, pages, UI components, backend services and even\ncontent. You can think of almost anything in components.</p>\n<h2 dir=\"auto\"><a id=\"user-content-prerequisites\" class=\"anchor\" aria-hidden=\"true\" href=\"#prerequisites\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Prerequisites</h2>\n<p dir=\"auto\">This project requires the <code>bit</code> CLI is installed.</p>\n<p dir=\"auto\"><a href=\"https://bit.dev/docs/getting-started/installing-bit/installing-bit\" rel=\"nofollow\">https://bit.dev/docs/getting-started/installing-bit/installing-bit</a></p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npx @teambit/bvm install\"><pre>npx @teambit/bvm install</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/wurde/custom-elements\ncd custom-elements\n\n# Start the development server (open localhost:3000)\nbit start\n\n# Or run the app in production mode\nbit run comic\n\n# Generate a dependencies graph\nbit graph\n\n# Print a list of other commands\nbit help\"><pre>git clone https://github.com/wurde/custom-elements\n<span class=\"pl-c1\">cd</span> custom-elements\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Start the development server (open localhost:3000)</span>\nbit start\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Or run the app in production mode</span>\nbit run comic\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Generate a dependencies graph</span>\nbit graph\n\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Print a list of other commands</span>\nbit <span class=\"pl-c1\">help</span></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is <strong>FREE</strong> to use, reuse, remix, and resell.\nThis is made possible by the <a href=\"/LICENSE\">MIT license</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.646Z" }, "tockler": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a href=\"https://tockler.io/#gh-light-mode-only\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/tockler-logo-light.svg\" width=\"318px\" alt=\"Tockler logo\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://tockler.io/#gh-dark-mode-only\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/tockler-logo-dark.svg\" width=\"318px\" alt=\"Tockler logo\" style=\"max-width: 100%;\">\n </a>\n</p>\n<p dir=\"auto\"><strong>Automatically track applications usage and working time.</strong></p>\n<blockquote>\n<p dir=\"auto\">With Tockler you can go back in time and see what you were working on. You can get information on what apps were used - exactly at what time - and what title the application had at that moment. This is enough to determine how much you did something.</p>\n</blockquote>\n<p dir=\"auto\"><strong>Track how you spent your time on a computer.</strong></p>\n<blockquote>\n<p dir=\"auto\">Tockler tracks active applications usage and computer state. It records active application titles. It tracks idle, offline, and online state. You can see this data with a nice interactive timeline chart.</p>\n</blockquote>\n<p dir=\"auto\"><strong>Analyze your computer usage</strong></p>\n<blockquote>\n<p dir=\"auto\">See you total online time today, yesterday, or any other day. In monthly calendar views and with charts.</p>\n</blockquote>\n<br>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/MayGo/tockler/releases/latest\">\n <img src=\"https://camo.githubusercontent.com/0803b87515e869446ccc1a4c4ad803929e659d9314b6ceccd43587a97e51c15e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f4d6179476f2f746f636b6c6572\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/github/v/release/MayGo/tockler\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://github.com/MayGo/tockler/releases\">\n <img src=\"https://camo.githubusercontent.com/6a1395dd19510d23830d24d64b568aec2f4a07f8396b3f639f1c5e7dbff2cd13/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d6179676f2f746f636b6c65722f746f74616c\" alt=\"Total downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/maygo/tockler/total\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://github.com/MayGo/tockler/releases/latest\">\n <img src=\"https://camo.githubusercontent.com/adb32689ff327e801a1a1e5d8cc23e5909d5c401ed878d3965fa70169b381696/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d6179676f2f746f636b6c65722f6c61746573742f746f74616c\" alt=\"Latest downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/maygo/tockler/latest/total\" style=\"max-width: 100%;\">\n </a>\n</p>\n<br>\n\n<p align=\"center\" dir=\"auto\">Tockler needs <b>YOUR</b> support. Currently, every expense is coming from my pocket. <br>It would be awesome if this project would keep itself alive from donations.\n </p>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JAHHBZZCZVDMA\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/badges/Donate-PayPal-green.svg\" alt=\"Donate using PayPal\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://github.com/sponsors/maygo/\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/badges/GitHub-Badge.svg\" alt=\"Sponsor on GitHub\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://www.patreon.com/Tockler\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/badges/Patreon-Badge.svg\" alt=\"Become a patron\" style=\"max-width: 100%;\">\n </a>\n</p>\n\n<br>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://www.producthunt.com/posts/tockler?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-tockler\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/c75a705f873602a2cf0c9c9964aaad39ab2241fc27967f64ea093062682da99c/68747470733a2f2f6170692e70726f6475637468756e742e636f6d2f776964676574732f656d6265642d696d6167652f76312f66656174757265642e7376673f706f73745f69643d333034383930267468656d653d6c69676874\" alt=\"Tockler - Automatically track applications usage and working time. | Product Hunt\" style=\"width: 250px; height: 54px; max-width: 100%;\" width=\"250\" height=\"54\" data-canonical-src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=304890&theme=light\"></a>\n</p>\n<br>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/MayGo/tockler/releases/download/v3.21.12/tockler-3.21.12-setup-win.exe\"><img alt=\"Get it on Windows\" width=\"134px\" src=\"https://github.com/MayGo/tockler/raw/master/badges/BadgeWindows.png\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/MayGo/tockler/releases/download/v3.21.12/Tockler-3.21.12.dmg\"><img alt=\"Get it on macOS\" width=\"134px\" src=\"https://github.com/MayGo/tockler/raw/master/badges/BadgeMacOS.png\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/MayGo/tockler/releases/download/v3.21.12/Tockler-3.21.12.AppImage\"><img alt=\"Get it on Linux\" width=\"134px\" src=\"https://github.com/MayGo/tockler/raw/master/badges/BadgeLinux.png\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">Tockler is <b>free</b> to download and use.</p>\n<br>\n<h3 align=\"center\" dir=\"auto\"><a id=\"user-content-light-theme\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#light-theme\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Light theme</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-timeline.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-timeline.png\" alt=\"Timeline\" title=\"Timeline\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-settings.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-settings.png\" alt=\"Settings\" title=\"Settings\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-calendar.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-calendar.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-chart.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-chart.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-search.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-search.png\" alt=\"Search\" title=\"Search\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-tray.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-tray.png\" alt=\"Tray window\" title=\"Tray window\" style=\"max-width: 100%;\"></a></p>\n<h3 align=\"center\" dir=\"auto\"><a id=\"user-content-dark-theme\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#dark-theme\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Dark theme</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-timeline.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-timeline.png\" alt=\"Timeline\" title=\"Timeline\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-settings.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-settings.png\" alt=\"Settings\" title=\"Settings\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-calendar.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-calendar.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-chart.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-chart.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-search.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-search.png\" alt=\"Search\" title=\"Search\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-tray.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-tray.png\" alt=\"Tray window\" title=\"Tray window\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Theme by StyleStack.com</p>\n<h1 dir=\"auto\"><a id=\"user-content-feedback\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#feedback\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Feedback</h1>\n<p dir=\"auto\">Feel free to make feature requests by creating a issue and 'Star' this project.</p>\n<h1 dir=\"auto\"><a id=\"user-content-made-with\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#made-with\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Made with</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://electron.atom.io/\" rel=\"nofollow\">Electron</a> with <a href=\"https://webpack.github.io/\" rel=\"nofollow\">Webpack</a> and <a href=\"https://www.typescriptlang.org/\" rel=\"nofollow\">Typescript</a></li>\n<li><a href=\"https://reactjs.org/\" rel=\"nofollow\">React</a></li>\n<li><a href=\"https://d3js.org/\" rel=\"nofollow\">D3 v4</a> and <a href=\"http://formidable.com/open-source/victory/docs/victory-chart/\" rel=\"nofollow\">Victory Chart</a></li>\n<li><a href=\"https://chakra-ui.com/\" rel=\"nofollow\">Chakra UI</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-logs\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#logs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Logs</h2>\n<p dir=\"auto\">By default, tockler writes logs to the following locations:</p>\n<p dir=\"auto\">Linux: <code>~/.config/tockler/logs/main.log</code></p>\n<p dir=\"auto\">macOS: <code>~/Library/Logs/tockler/main.log</code></p>\n<p dir=\"auto\">Windows: <code>%USERPROFILE%\\AppData\\Roaming\\tockler\\logs\\main.log</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<h3 dir=\"auto\"><a id=\"user-content-quick-start\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#quick-start\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Quick Start</h3>\n<blockquote>\n<p dir=\"auto\">Prerequisites: <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node</a>, <a href=\"https://git-scm.com/\" rel=\"nofollow\">Git</a>.</p>\n</blockquote>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/Maygo/tockler.git # Download this project\n\nnpm install yarn -g # install yarn or binary from https://yarnpkg.com\"><pre>git clone https://github.com/Maygo/tockler.git <span class=\"pl-c\"><span class=\"pl-c\">#</span> Download this project</span>\n\nnpm install yarn -g <span class=\"pl-c\"><span class=\"pl-c\">#</span> install yarn or binary from https://yarnpkg.com</span></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-application\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#start-application\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start application</h3>\n<p dir=\"auto\">Renderer and main process builds have been separated. It's easier to boilerplate this project and switch client framework.</p>\n<h4 dir=\"auto\"><a id=\"user-content-react-client-renderer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#react-client-renderer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>React client (renderer)</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd client/\nyarn install # Install dependencies\nyarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">cd client/\nyarn install # Install dependencies\nyarn start\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-electron-main\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#electron-main\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Electron (main)</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd electron/\nyarn install # Install dependencies\nyarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">cd electron/\nyarn install # Install dependencies\nyarn start\n</code></pre></div>\n<p dir=\"auto\">Build scripts samples are in travis/appveyor files.</p>\n<h3 dir=\"auto\"><a id=\"user-content-testing-mas-build\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#testing-mas-build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Testing MAS build</h3>\n<p dir=\"auto\">In electron-builder.yml replace\ntype: development\nprovisioningProfile: development.provisionprofile</p>\n<h1 dir=\"auto\"><a id=\"user-content-signing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#signing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Signing</h1>\n<p dir=\"auto\"><a href=\"https://4sysops.com/archives/sign-your-powershell-scripts-to-increase-security/\" rel=\"nofollow\">https://4sysops.com/archives/sign-your-powershell-scripts-to-increase-security/</a>'\nin powershell as admin</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$cert = Get-ChildItem -Path Cert:\\CurrentUser\\My -CodeSigningCert\nSet-AuthenticodeSignature -FilePath '.\\app\\get-foreground-window-title.ps1' -Certificate $cert\"><pre class=\"notranslate\"><code class=\"notranslate\">$cert = Get-ChildItem -Path Cert:\\CurrentUser\\My -CodeSigningCert\nSet-AuthenticodeSignature -FilePath '.\\app\\get-foreground-window-title.ps1' -Certificate $cert\n</code></pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-snapcraft-token\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#snapcraft-token\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Snapcraft token</h1>\n<p dir=\"auto\">To generate SNAP_TOKEN run\n<code>snapcraft export-login --snaps=tockler --acls=package_upload,channel --channels=stable -</code>\nCopy output and Add SNAP_TOKEN to travis environment variables.\nIn travis we have:\n<code>echo \"$SNAP_TOKEN\" | snapcraft login --with -</code></p>\n<h1 dir=\"auto\"><a id=\"user-content-errors\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#errors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Errors</h1>\n<h3 dir=\"auto\"><a id=\"user-content-while-installing-electron-deps-electron-builder-error-unresolved-node-modules-ref\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#while-installing-electron-deps-electron-builder-error-unresolved-node-modules-ref\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>while installing electron deps: electron-builder Error: Unresolved node modules: ref</h3>\n<p dir=\"auto\">Quick fix: ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true yarn</p>\n<h1 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MayGo/tockler/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h1>\n<p dir=\"auto\">GNU General Public License v2.0\n2021 MayGo (<a href=\"https://github.com/MayGo\">https://github.com/MayGo</a>)</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a href=\"https://tockler.io/#gh-light-mode-only\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/tockler-logo-light.svg\" width=\"318px\" alt=\"Tockler logo\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://tockler.io/#gh-dark-mode-only\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/tockler-logo-dark.svg\" width=\"318px\" alt=\"Tockler logo\" style=\"max-width: 100%;\">\n </a>\n</p>\n<p dir=\"auto\"><strong>Automatically track applications usage and working time.</strong></p>\n<blockquote>\n<p dir=\"auto\">With Tockler you can go back in time and see what you were working on. You can get information on what apps were used - exactly at what time - and what title the application had at that moment. This is enough to determine how much you did something.</p>\n</blockquote>\n<p dir=\"auto\"><strong>Track how you spent your time on a computer.</strong></p>\n<blockquote>\n<p dir=\"auto\">Tockler tracks active applications usage and computer state. It records active application titles. It tracks idle, offline, and online state. You can see this data with a nice interactive timeline chart.</p>\n</blockquote>\n<p dir=\"auto\"><strong>Analyze your computer usage</strong></p>\n<blockquote>\n<p dir=\"auto\">See you total online time today, yesterday, or any other day. In monthly calendar views and with charts.</p>\n</blockquote>\n<br>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/MayGo/tockler/releases/latest\">\n <img src=\"https://camo.githubusercontent.com/0803b87515e869446ccc1a4c4ad803929e659d9314b6ceccd43587a97e51c15e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f4d6179476f2f746f636b6c6572\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/github/v/release/MayGo/tockler\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://github.com/MayGo/tockler/releases\">\n <img src=\"https://camo.githubusercontent.com/6a1395dd19510d23830d24d64b568aec2f4a07f8396b3f639f1c5e7dbff2cd13/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d6179676f2f746f636b6c65722f746f74616c\" alt=\"Total downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/maygo/tockler/total\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://github.com/MayGo/tockler/releases/latest\">\n <img src=\"https://camo.githubusercontent.com/adb32689ff327e801a1a1e5d8cc23e5909d5c401ed878d3965fa70169b381696/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d6179676f2f746f636b6c65722f6c61746573742f746f74616c\" alt=\"Latest downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/maygo/tockler/latest/total\" style=\"max-width: 100%;\">\n </a>\n</p>\n<br>\n\n<p align=\"center\" dir=\"auto\">Tockler needs <b>YOUR</b> support. Currently, every expense is coming from my pocket. <br>It would be awesome if this project would keep itself alive from donations.\n </p>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JAHHBZZCZVDMA\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/badges/Donate-PayPal-green.svg\" alt=\"Donate using PayPal\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://github.com/sponsors/maygo/\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/badges/GitHub-Badge.svg\" alt=\"Sponsor on GitHub\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://www.patreon.com/Tockler\" rel=\"nofollow\">\n <img src=\"https://github.com/MayGo/tockler/raw/master/badges/Patreon-Badge.svg\" alt=\"Become a patron\" style=\"max-width: 100%;\">\n </a>\n</p>\n\n<br>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://www.producthunt.com/posts/tockler?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-tockler\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/c75a705f873602a2cf0c9c9964aaad39ab2241fc27967f64ea093062682da99c/68747470733a2f2f6170692e70726f6475637468756e742e636f6d2f776964676574732f656d6265642d696d6167652f76312f66656174757265642e7376673f706f73745f69643d333034383930267468656d653d6c69676874\" alt=\"Tockler - Automatically track applications usage and working time. | Product Hunt\" style=\"width: 250px; height: 54px; max-width: 100%;\" width=\"250\" height=\"54\" data-canonical-src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=304890&theme=light\"></a>\n</p>\n<br>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/MayGo/tockler/releases/download/v3.21.12/tockler-3.21.12-setup-win.exe\"><img alt=\"Get it on Windows\" width=\"134px\" src=\"https://github.com/MayGo/tockler/raw/master/badges/BadgeWindows.png\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/MayGo/tockler/releases/download/v3.21.12/Tockler-3.21.12.dmg\"><img alt=\"Get it on macOS\" width=\"134px\" src=\"https://github.com/MayGo/tockler/raw/master/badges/BadgeMacOS.png\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/MayGo/tockler/releases/download/v3.21.12/Tockler-3.21.12.AppImage\"><img alt=\"Get it on Linux\" width=\"134px\" src=\"https://github.com/MayGo/tockler/raw/master/badges/BadgeLinux.png\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">Tockler is <b>free</b> to download and use.</p>\n<br>\n<h3 align=\"center\" dir=\"auto\"><a id=\"user-content-light-theme\" class=\"anchor\" aria-hidden=\"true\" href=\"#light-theme\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Light theme</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-timeline.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-timeline.png\" alt=\"Timeline\" title=\"Timeline\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-settings.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-settings.png\" alt=\"Settings\" title=\"Settings\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-calendar.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-calendar.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-chart.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-summary-chart.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-search.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-search.png\" alt=\"Search\" title=\"Search\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-tray.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/light/tockler-tray.png\" alt=\"Tray window\" title=\"Tray window\" style=\"max-width: 100%;\"></a></p>\n<h3 align=\"center\" dir=\"auto\"><a id=\"user-content-dark-theme\" class=\"anchor\" aria-hidden=\"true\" href=\"#dark-theme\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Dark theme</h3>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-timeline.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-timeline.png\" alt=\"Timeline\" title=\"Timeline\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-settings.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-settings.png\" alt=\"Settings\" title=\"Settings\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-calendar.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-calendar.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-chart.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-summary-chart.png\" alt=\"Summary\" title=\"Summary\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-search.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-search.png\" alt=\"Search\" title=\"Search\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-tray.png\"><img src=\"https://github.com/MayGo/tockler/raw/master/screenshots/dark/tockler-tray.png\" alt=\"Tray window\" title=\"Tray window\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Theme by StyleStack.com</p>\n<h1 dir=\"auto\"><a id=\"user-content-feedback\" class=\"anchor\" aria-hidden=\"true\" href=\"#feedback\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Feedback</h1>\n<p dir=\"auto\">Feel free to make feature requests by creating a issue and 'Star' this project.</p>\n<h1 dir=\"auto\"><a id=\"user-content-made-with\" class=\"anchor\" aria-hidden=\"true\" href=\"#made-with\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Made with</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://electron.atom.io/\" rel=\"nofollow\">Electron</a> with <a href=\"https://webpack.github.io/\" rel=\"nofollow\">Webpack</a> and <a href=\"https://www.typescriptlang.org/\" rel=\"nofollow\">Typescript</a></li>\n<li><a href=\"https://reactjs.org/\" rel=\"nofollow\">React</a></li>\n<li><a href=\"https://d3js.org/\" rel=\"nofollow\">D3 v4</a> and <a href=\"http://formidable.com/open-source/victory/docs/victory-chart/\" rel=\"nofollow\">Victory Chart</a></li>\n<li><a href=\"https://chakra-ui.com/\" rel=\"nofollow\">Chakra UI</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-logs\" class=\"anchor\" aria-hidden=\"true\" href=\"#logs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Logs</h2>\n<p dir=\"auto\">By default, tockler writes logs to the following locations:</p>\n<p dir=\"auto\">Linux: <code>~/.config/tockler/logs/main.log</code></p>\n<p dir=\"auto\">macOS: <code>~/Library/Logs/tockler/main.log</code></p>\n<p dir=\"auto\">Windows: <code>%USERPROFILE%\\AppData\\Roaming\\tockler\\logs\\main.log</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<h3 dir=\"auto\"><a id=\"user-content-quick-start\" class=\"anchor\" aria-hidden=\"true\" href=\"#quick-start\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Quick Start</h3>\n<blockquote>\n<p dir=\"auto\">Prerequisites: <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node</a>, <a href=\"https://git-scm.com/\" rel=\"nofollow\">Git</a>.</p>\n</blockquote>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/Maygo/tockler.git # Download this project\n\nnpm install yarn -g # install yarn or binary from https://yarnpkg.com\"><pre>git clone https://github.com/Maygo/tockler.git <span class=\"pl-c\"><span class=\"pl-c\">#</span> Download this project</span>\n\nnpm install yarn -g <span class=\"pl-c\"><span class=\"pl-c\">#</span> install yarn or binary from https://yarnpkg.com</span></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-application\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-application\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start application</h3>\n<p dir=\"auto\">Renderer and main process builds have been separated. It's easier to boilerplate this project and switch client framework.</p>\n<h4 dir=\"auto\"><a id=\"user-content-react-client-renderer\" class=\"anchor\" aria-hidden=\"true\" href=\"#react-client-renderer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>React client (renderer)</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd client/\nyarn install # Install dependencies\nyarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">cd client/\nyarn install # Install dependencies\nyarn start\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-electron-main\" class=\"anchor\" aria-hidden=\"true\" href=\"#electron-main\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Electron (main)</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd electron/\nyarn install # Install dependencies\nyarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">cd electron/\nyarn install # Install dependencies\nyarn start\n</code></pre></div>\n<p dir=\"auto\">Build scripts samples are in travis/appveyor files.</p>\n<h3 dir=\"auto\"><a id=\"user-content-testing-mas-build\" class=\"anchor\" aria-hidden=\"true\" href=\"#testing-mas-build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Testing MAS build</h3>\n<p dir=\"auto\">In electron-builder.yml replace\ntype: development\nprovisioningProfile: development.provisionprofile</p>\n<h1 dir=\"auto\"><a id=\"user-content-signing\" class=\"anchor\" aria-hidden=\"true\" href=\"#signing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Signing</h1>\n<p dir=\"auto\"><a href=\"https://4sysops.com/archives/sign-your-powershell-scripts-to-increase-security/\" rel=\"nofollow\">https://4sysops.com/archives/sign-your-powershell-scripts-to-increase-security/</a>'\nin powershell as admin</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$cert = Get-ChildItem -Path Cert:\\CurrentUser\\My -CodeSigningCert\nSet-AuthenticodeSignature -FilePath '.\\app\\get-foreground-window-title.ps1' -Certificate $cert\"><pre class=\"notranslate\"><code class=\"notranslate\">$cert = Get-ChildItem -Path Cert:\\CurrentUser\\My -CodeSigningCert\nSet-AuthenticodeSignature -FilePath '.\\app\\get-foreground-window-title.ps1' -Certificate $cert\n</code></pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-snapcraft-token\" class=\"anchor\" aria-hidden=\"true\" href=\"#snapcraft-token\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Snapcraft token</h1>\n<p dir=\"auto\">To generate SNAP_TOKEN run\n<code>snapcraft export-login --snaps=tockler --acls=package_upload,channel --channels=stable -</code>\nCopy output and Add SNAP_TOKEN to travis environment variables.\nIn travis we have:\n<code>echo \"$SNAP_TOKEN\" | snapcraft login --with -</code></p>\n<h1 dir=\"auto\"><a id=\"user-content-errors\" class=\"anchor\" aria-hidden=\"true\" href=\"#errors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Errors</h1>\n<h3 dir=\"auto\"><a id=\"user-content-while-installing-electron-deps-electron-builder-error-unresolved-node-modules-ref\" class=\"anchor\" aria-hidden=\"true\" href=\"#while-installing-electron-deps-electron-builder-error-unresolved-node-modules-ref\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>while installing electron deps: electron-builder Error: Unresolved node modules: ref</h3>\n<p dir=\"auto\">Quick fix: ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true yarn</p>\n<h1 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h1>\n<p dir=\"auto\">GNU General Public License v2.0\n2021 MayGo (<a href=\"https://github.com/MayGo\">https://github.com/MayGo</a>)</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.725Z" }, "todolist": { "readmeOriginal": null, "readmeFetchedAt": "2022-05-10T00:08:11.820Z" }, "timeseriesadmin": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/fc89b8fe27b1d08550d07fd478166cdabc76a973b500d03ce48ac62da1b11cbd/68747470733a2f2f74696d6573657269657361646d696e2e6769746875622e696f2f66617669636f6e2e737667\"><img src=\"https://camo.githubusercontent.com/fc89b8fe27b1d08550d07fd478166cdabc76a973b500d03ce48ac62da1b11cbd/68747470733a2f2f74696d6573657269657361646d696e2e6769746875622e696f2f66617669636f6e2e737667\" alt=\"Time Series Admin\" width=\"64\" height=\"64\" data-canonical-src=\"https://timeseriesadmin.github.io/favicon.svg\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-time-series-admin\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#time-series-admin\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Time Series Admin</h1>\n<p dir=\"auto\"><a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/24f01dd1b59774b101316a62baeda13703ed71ff9028f271e6ed0b25ca2a26af/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/timeseriesadmin/timeseriesadmin/releases/latest\"><img src=\"https://camo.githubusercontent.com/ce6c416a43fefea57034b4feb533f48ddf6fc5cdd866b125b3dfbe1fae541182/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"version\" data-canonical-src=\"https://img.shields.io/github/release/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://david-dm.org/timeseriesadmin/timeseriesadmin\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/dc23250f3d0dc81aa4a3740494401a722f627fa9abbdef75252439d4f0fb2c37/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"dependencies status\" data-canonical-src=\"https://img.shields.io/david/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://circleci.com/gh/timeseriesadmin/timeseriesadmin\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/5ca29346790827e73febe11d5d9f63b53ddbcde9c236d13f89e0cf66a04c5abd/68747470733a2f2f696d672e736869656c64732e696f2f636972636c6563692f70726f6a6563742f6769746875622f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2f6d61737465722e737667\" alt=\"CI build\" data-canonical-src=\"https://img.shields.io/circleci/project/github/timeseriesadmin/timeseriesadmin/master.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://codecov.io/gh/timeseriesadmin/timeseriesadmin\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e498511ea04b2c54c1833147cd8e76a55096f4aac67c8eccfdd876b945b99548/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"code coverage\" data-canonical-src=\"https://img.shields.io/codecov/c/github/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Time Series Admin is an open source administration panel and querying interface for <a href=\"https://www.influxdata.com/time-series-platform/influxdb/\" rel=\"nofollow\">InfluxDB</a> databases.</p>\n<p dir=\"auto\">Visit the <a href=\"https://timeseriesadmin.github.io/\" rel=\"nofollow\">PROJECT SITE</a> for more information, or download Time Series Admin directly from the <a href=\"https://github.com/timeseriesadmin/timeseriesadmin/releases/latest/\">LATEST RELEASES</a> page.</p>\n<a href=\"https://timeseriesadmin.github.io/\" title=\"Time Series Admin - project page\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/08473909ee1400a45a6afbd0af6073e573beeea30e3df98a9418c271038e035b/68747470733a2f2f74696d6573657269657361646d696e2e6769746875622e696f2f696d616765732d6d696e692f74696d6573657269657361646d696e2e706e67\" alt=\"Time Series Admin- project page\" style=\"width: 100%; max-width: 100%;\" data-canonical-src=\"https://timeseriesadmin.github.io/images-mini/timeseriesadmin.png\">\n</a>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<ol dir=\"auto\">\n<li><a href=\"https://timeseriesadmin.github.io/#download\" rel=\"nofollow\">Download</a></li>\n<li>Install by double clicking on downloaded file</li>\n<li>Use</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-docker\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#docker\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Docker</h2>\n<p dir=\"auto\">Time Series Admin is also available as a <a href=\"https://hub.docker.com/r/timeseriesadmin/timeseriesadmin/\" rel=\"nofollow\">Docker image</a>.\nRun it with:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"docker run -p 8085:80 -it timeseriesadmin/timeseriesadmin:latest\"><pre>docker run -p 8085:80 -it timeseriesadmin/timeseriesadmin:latest</pre></div>\n<p dir=\"auto\">Then visit <a href=\"http://localhost:8085\" rel=\"nofollow\">http://localhost:8085</a> to use Time Series Admin from your browser.</p>\n<h2 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<p dir=\"auto\">For usage related information go to the official project page <a href=\"https://timeseriesadmin.github.io\" rel=\"nofollow\">https://timeseriesadmin.github.io</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-todo\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#todo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TODO</h2>\n<p dir=\"auto\">List of things that are going to be implemented may be found inside <a href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/./TODO.md\">TODO.md</a> file.</p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<p dir=\"auto\">Check <a href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/./DEVELOPMENT.md\">DEVELOPMENT.md</a> file for information about application development.</p>\n<h2 dir=\"auto\"><a id=\"user-content-changelog\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#changelog\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Changelog</h2>\n<p dir=\"auto\">Check <a href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/./CHANGELOG.md\">CHANGELOG.md</a> to view changes in app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/./LICENSE\">MIT</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-author\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/timeseriesadmin/timeseriesadmin/blob/master/#author\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Author</h2>\n<p dir=\"auto\">Jan Grzegorowski</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/fc89b8fe27b1d08550d07fd478166cdabc76a973b500d03ce48ac62da1b11cbd/68747470733a2f2f74696d6573657269657361646d696e2e6769746875622e696f2f66617669636f6e2e737667\"><img src=\"https://camo.githubusercontent.com/fc89b8fe27b1d08550d07fd478166cdabc76a973b500d03ce48ac62da1b11cbd/68747470733a2f2f74696d6573657269657361646d696e2e6769746875622e696f2f66617669636f6e2e737667\" alt=\"Time Series Admin\" width=\"64\" height=\"64\" data-canonical-src=\"https://timeseriesadmin.github.io/favicon.svg\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-time-series-admin\" class=\"anchor\" aria-hidden=\"true\" href=\"#time-series-admin\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Time Series Admin</h1>\n<p dir=\"auto\"><a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/24f01dd1b59774b101316a62baeda13703ed71ff9028f271e6ed0b25ca2a26af/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/timeseriesadmin/timeseriesadmin/releases/latest\"><img src=\"https://camo.githubusercontent.com/ce6c416a43fefea57034b4feb533f48ddf6fc5cdd866b125b3dfbe1fae541182/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"version\" data-canonical-src=\"https://img.shields.io/github/release/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://david-dm.org/timeseriesadmin/timeseriesadmin\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/dc23250f3d0dc81aa4a3740494401a722f627fa9abbdef75252439d4f0fb2c37/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"dependencies status\" data-canonical-src=\"https://img.shields.io/david/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://circleci.com/gh/timeseriesadmin/timeseriesadmin\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/5ca29346790827e73febe11d5d9f63b53ddbcde9c236d13f89e0cf66a04c5abd/68747470733a2f2f696d672e736869656c64732e696f2f636972636c6563692f70726f6a6563742f6769746875622f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2f6d61737465722e737667\" alt=\"CI build\" data-canonical-src=\"https://img.shields.io/circleci/project/github/timeseriesadmin/timeseriesadmin/master.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://codecov.io/gh/timeseriesadmin/timeseriesadmin\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e498511ea04b2c54c1833147cd8e76a55096f4aac67c8eccfdd876b945b99548/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f74696d6573657269657361646d696e2f74696d6573657269657361646d696e2e737667\" alt=\"code coverage\" data-canonical-src=\"https://img.shields.io/codecov/c/github/timeseriesadmin/timeseriesadmin.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Time Series Admin is an open source administration panel and querying interface for <a href=\"https://www.influxdata.com/time-series-platform/influxdb/\" rel=\"nofollow\">InfluxDB</a> databases.</p>\n<p dir=\"auto\">Visit the <a href=\"https://timeseriesadmin.github.io/\" rel=\"nofollow\">PROJECT SITE</a> for more information, or download Time Series Admin directly from the <a href=\"https://github.com/timeseriesadmin/timeseriesadmin/releases/latest/\">LATEST RELEASES</a> page.</p>\n<a href=\"https://timeseriesadmin.github.io/\" title=\"Time Series Admin - project page\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/08473909ee1400a45a6afbd0af6073e573beeea30e3df98a9418c271038e035b/68747470733a2f2f74696d6573657269657361646d696e2e6769746875622e696f2f696d616765732d6d696e692f74696d6573657269657361646d696e2e706e67\" alt=\"Time Series Admin- project page\" style=\"width: 100%; max-width: 100%;\" data-canonical-src=\"https://timeseriesadmin.github.io/images-mini/timeseriesadmin.png\">\n</a>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<ol dir=\"auto\">\n<li><a href=\"https://timeseriesadmin.github.io/#download\" rel=\"nofollow\">Download</a></li>\n<li>Install by double clicking on downloaded file</li>\n<li>Use</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-docker\" class=\"anchor\" aria-hidden=\"true\" href=\"#docker\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Docker</h2>\n<p dir=\"auto\">Time Series Admin is also available as a <a href=\"https://hub.docker.com/r/timeseriesadmin/timeseriesadmin/\" rel=\"nofollow\">Docker image</a>.\nRun it with:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"docker run -p 8085:80 -it timeseriesadmin/timeseriesadmin:latest\"><pre>docker run -p 8085:80 -it timeseriesadmin/timeseriesadmin:latest</pre></div>\n<p dir=\"auto\">Then visit <a href=\"http://localhost:8085\" rel=\"nofollow\">http://localhost:8085</a> to use Time Series Admin from your browser.</p>\n<h2 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<p dir=\"auto\">For usage related information go to the official project page <a href=\"https://timeseriesadmin.github.io\" rel=\"nofollow\">https://timeseriesadmin.github.io</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-todo\" class=\"anchor\" aria-hidden=\"true\" href=\"#todo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TODO</h2>\n<p dir=\"auto\">List of things that are going to be implemented may be found inside <a href=\"./TODO.md\">TODO.md</a> file.</p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<p dir=\"auto\">Check <a href=\"./DEVELOPMENT.md\">DEVELOPMENT.md</a> file for information about application development.</p>\n<h2 dir=\"auto\"><a id=\"user-content-changelog\" class=\"anchor\" aria-hidden=\"true\" href=\"#changelog\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Changelog</h2>\n<p dir=\"auto\">Check <a href=\"./CHANGELOG.md\">CHANGELOG.md</a> to view changes in app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"./LICENSE\">MIT</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-author\" class=\"anchor\" aria-hidden=\"true\" href=\"#author\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Author</h2>\n<p dir=\"auto\">Jan Grzegorowski</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.881Z" }, "todo": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-to-do-webapp\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/luapp/ToDo/blob/main/#to-do-webapp\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To Do WebApp</h1>\n<p dir=\"auto\">This project is a Web application that allow the user to have a list of tasks to do. This Web application has been made with React*, Nodejs and Electronjs for desktop version (Windows, MacOS, Linux). Mobile version (iOS, Android) can use PWA by adding the website to home screen and use it just like a native app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-webapp-url--qr-code\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/luapp/ToDo/blob/main/#webapp-url--qr-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WebApp URL & QR code:</h2>\n<p dir=\"auto\"><strong>URL:</strong> <em><a href=\"https://to-do-tasks-lists.web.app/\" rel=\"nofollow\">https://to-do-tasks-lists.web.app/</a></em><br>\nOr scan the <strong>QR code:</strong><br>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/qrcode.png\"><img src=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/qrcode.png\" alt=\"https://to-do-tasks-lists.web.app/\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Note:</strong> Desktop app in the releases.</p>\n<p dir=\"auto\"><strong>Note:</strong> Please add to home screen if you are on mobile to use it as a native app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-beetle-bugtracker-beetle--bulb-suggestions-bulb\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/luapp/ToDo/blob/main/#beetle-bugtracker-beetle--bulb-suggestions-bulb\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"beetle\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1fab2.png\">🪲</g-emoji> BugTracker <g-emoji class=\"g-emoji\" alias=\"beetle\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1fab2.png\">🪲</g-emoji> & <g-emoji class=\"g-emoji\" alias=\"bulb\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png\">💡</g-emoji> suggestions <g-emoji class=\"g-emoji\" alias=\"bulb\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png\">💡</g-emoji></h2>\n<p dir=\"auto\"><strong>This is where you can report bug that need to be fixed in the WebApp and also request new feature.</strong></p>\n<h3 dir=\"auto\"><a id=\"user-content-links\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/luapp/ToDo/blob/main/#links\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Links:</h3>\n<p dir=\"auto\">Twitter: <a href=\"https://twitter.com/paul_le_gall\" rel=\"nofollow\">paul_le_gall</a> <g-emoji class=\"g-emoji\" alias=\"baby_chick\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f424.png\">🐤</g-emoji></p>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/luapp/ToDo/blob/main/#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots:</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2001.png\"><img src=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2001.png\" alt=\"\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2002.png\"><img src=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2002.png\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">(*This project has been generated with \"create-react-app\")</p>\n<p dir=\"auto\">Copyright © 2020 Paul Le Gall</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-to-do-webapp\" class=\"anchor\" aria-hidden=\"true\" href=\"#to-do-webapp\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To Do WebApp</h1>\n<p dir=\"auto\">This project is a Web application that allow the user to have a list of tasks to do. This Web application has been made with React*, Nodejs and Electronjs for desktop version (Windows, MacOS, Linux). Mobile version (iOS, Android) can use PWA by adding the website to home screen and use it just like a native app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-webapp-url--qr-code\" class=\"anchor\" aria-hidden=\"true\" href=\"#webapp-url--qr-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WebApp URL & QR code:</h2>\n<p dir=\"auto\"><strong>URL:</strong> <em><a href=\"https://to-do-tasks-lists.web.app/\" rel=\"nofollow\">https://to-do-tasks-lists.web.app/</a></em><br>\nOr scan the <strong>QR code:</strong><br>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/qrcode.png\"><img src=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/qrcode.png\" alt=\"https://to-do-tasks-lists.web.app/\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Note:</strong> Desktop app in the releases.</p>\n<p dir=\"auto\"><strong>Note:</strong> Please add to home screen if you are on mobile to use it as a native app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-beetle-bugtracker-beetle--bulb-suggestions-bulb\" class=\"anchor\" aria-hidden=\"true\" href=\"#beetle-bugtracker-beetle--bulb-suggestions-bulb\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"beetle\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1fab2.png\">🪲</g-emoji> BugTracker <g-emoji class=\"g-emoji\" alias=\"beetle\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1fab2.png\">🪲</g-emoji> & <g-emoji class=\"g-emoji\" alias=\"bulb\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png\">💡</g-emoji> suggestions <g-emoji class=\"g-emoji\" alias=\"bulb\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png\">💡</g-emoji></h2>\n<p dir=\"auto\"><strong>This is where you can report bug that need to be fixed in the WebApp and also request new feature.</strong></p>\n<h3 dir=\"auto\"><a id=\"user-content-links\" class=\"anchor\" aria-hidden=\"true\" href=\"#links\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Links:</h3>\n<p dir=\"auto\">Twitter: <a href=\"https://twitter.com/paul_le_gall\" rel=\"nofollow\">paul_le_gall</a> <g-emoji class=\"g-emoji\" alias=\"baby_chick\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f424.png\">🐤</g-emoji></p>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots:</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2001.png\"><img src=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2001.png\" alt=\"\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2002.png\"><img src=\"https://raw.githubusercontent.com/luapp/ToDo/main/images/desktop-electron-screenshot%2002.png\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">(*This project has been generated with \"create-react-app\")</p>\n<p dir=\"auto\">Copyright © 2020 Paul Le Gall</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.906Z" }, "todometer": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-todometer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/cassidoo/todometer//blob/master/#todometer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>todometer</h1>\n<p dir=\"auto\">A simple, meter-based to-do list built with Electron and React.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/cassidoo/todometer//blob/master/assets/screenshot.png\"><img src=\"https://raw.githubusercontent.com/cassidoo/todometer//master/assets/screenshot.png\" alt=\"todometer\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/cassidoo/todometer//blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">Nab the latest version from the <a href=\"https://github.com/cassidoo/todometer/releases\">Releases</a> page!</p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/cassidoo/todometer//blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<ul dir=\"auto\">\n<li>Clone the repo:</li>\n</ul>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/cassidoo/todometer.git\"><pre>$ git clone https://github.com/cassidoo/todometer.git</pre></div>\n<ul dir=\"auto\">\n<li>Go to the project directory and install dependencies:</li>\n</ul>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ cd todometer && yarn install\"><pre>$ <span class=\"pl-c1\">cd</span> todometer <span class=\"pl-k\">&&</span> yarn install</pre></div>\n<p dir=\"auto\">To show the Electron application window with your current build:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn run electron-dev\"><pre>$ yarn run electron-dev</pre></div>\n<p dir=\"auto\">To build a production-version:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn install\n$ yarn postinstall\n$ yarn pre-electron-pack\n$ yarn electron-pack\"><pre>$ yarn install\n$ yarn postinstall\n$ yarn pre-electron-pack\n$ yarn electron-pack</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/cassidoo/todometer//blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">So you want to contribute? Yay! Great! Fun!\nI love seeing new PRs for todometer. That being said, not every pull request will be merged. The general guidelines I'll follow are:</p>\n<ul dir=\"auto\">\n<li>Does it make developing todometer easier?</li>\n<li>Does it help other platforms (Windows, Mac, Linux) work better?</li>\n<li>Does it fix a bug?</li>\n<li>Does it break anything?</li>\n<li>Does it stick to the original goal of todometer (a <em>simple</em>, meter-based to-do list)</li>\n<li>Does it reduce the build size?</li>\n<li>Is it necessary?</li>\n</ul>\n<p dir=\"auto\">Regarding that last point, I don't expect all pull requests to be absolutely necessary. New features are good. That being said, if the new features make the app unnecessarily complex in some way without bringing value to the users, it won't be merged.</p>\n<p dir=\"auto\">Please don't be hurt if your PR isn't merged. You're lovely for working on it. If you are thinking about working on something, feel free to make an issue beforehand so that you can make sure it'll be worth your time!</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-todometer\" class=\"anchor\" aria-hidden=\"true\" href=\"#todometer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>todometer</h1>\n<p dir=\"auto\">A simple, meter-based to-do list built with Electron and React.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/screenshot.png\"><img src=\"assets/screenshot.png\" alt=\"todometer\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">Nab the latest version from the <a href=\"https://github.com/cassidoo/todometer/releases\">Releases</a> page!</p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<ul dir=\"auto\">\n<li>Clone the repo:</li>\n</ul>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/cassidoo/todometer.git\"><pre>$ git clone https://github.com/cassidoo/todometer.git</pre></div>\n<ul dir=\"auto\">\n<li>Go to the project directory and install dependencies:</li>\n</ul>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ cd todometer && yarn install\"><pre>$ <span class=\"pl-c1\">cd</span> todometer <span class=\"pl-k\">&&</span> yarn install</pre></div>\n<p dir=\"auto\">To show the Electron application window with your current build:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn run electron-dev\"><pre>$ yarn run electron-dev</pre></div>\n<p dir=\"auto\">To build a production-version:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn install\n$ yarn postinstall\n$ yarn pre-electron-pack\n$ yarn electron-pack\"><pre>$ yarn install\n$ yarn postinstall\n$ yarn pre-electron-pack\n$ yarn electron-pack</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">So you want to contribute? Yay! Great! Fun!\nI love seeing new PRs for todometer. That being said, not every pull request will be merged. The general guidelines I'll follow are:</p>\n<ul dir=\"auto\">\n<li>Does it make developing todometer easier?</li>\n<li>Does it help other platforms (Windows, Mac, Linux) work better?</li>\n<li>Does it fix a bug?</li>\n<li>Does it break anything?</li>\n<li>Does it stick to the original goal of todometer (a <em>simple</em>, meter-based to-do list)</li>\n<li>Does it reduce the build size?</li>\n<li>Is it necessary?</li>\n</ul>\n<p dir=\"auto\">Regarding that last point, I don't expect all pull requests to be absolutely necessary. New features are good. That being said, if the new features make the app unnecessarily complex in some way without bringing value to the users, it won't be merged.</p>\n<p dir=\"auto\">Please don't be hurt if your PR isn't merged. You're lovely for working on it. If you are thinking about working on something, feel free to make an issue beforehand so that you can make sure it'll be worth your time!</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:11.955Z" }, "tofino": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-project-tofino\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/mozilla/tofino/blob/master/#project-tofino\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Project Tofino</h1>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/mozilla/tofino\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a52dd6b0d9943eb06033af5bcb4c1f02c9617e8ed15182d87adc5045a4841327/68747470733a2f2f7472617669732d63692e6f72672f6d6f7a696c6c612f746f66696e6f2e7376673f6272616e63683d6d6173746572\" alt=\"Linux Build Status\" data-canonical-src=\"https://travis-ci.org/mozilla/tofino.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a href=\"https://ci.appveyor.com/project/Mozilla/tofino-u1hv8\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b7d97763873869107de102421d0d3e91549709da6ad08a440830c68217c3434b/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f376266396271707732347539336b6a6c3f7376673d74727565\" alt=\"Windows Build Status\" data-canonical-src=\"https://ci.appveyor.com/api/projects/status/7bf9bqpw24u93kjl?svg=true\" style=\"max-width: 100%;\"></a>\n<a href=\"https://coveralls.io/github/mozilla/tofino?branch=master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/8d77b8d09a743d113c541f5dff32abd3ea1a6f72f9cdfcd2e61038a81be300cc/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f6d6f7a696c6c612f746f66696e6f2f62616467652e7376673f6272616e63683d6d6173746572\" alt=\"Coverage Status\" data-canonical-src=\"https://coveralls.io/repos/github/mozilla/tofino/badge.svg?branch=master\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Project Tofino is a browser interaction experiment.</p>\n<p dir=\"auto\">The kinds of things we use browsers for on PCs and mobile devices are different\nthan they were when the current \"tabs across the top\" browsers were designed.\nWe believe we can do a lot better by focusing on the tasks and activities users\nengage browsers for. Project Tofino is one of our explorations.</p>\n<p dir=\"auto\">This project is extremely immature. It's currently at the \"OK, lets throw some\nstuff together to see what happens\" stage. Please adjust your expectations\naccordingly. The tools we're using are not a statement on the set of\ntechnologies we'll use to build a final product if these ideas pan out. We're\nlooking for the quickest way to build the experiments we want, not a long-term\ntechnical strategy.</p>\n<p dir=\"auto\">If you like a wild ride and you've got another browser for real work, we'd love\nto have your comments on what works and what doesn't. But right now the \"what\nworks\" list is a lot shorter than the \"what doesn't\" list, so maybe check back\nin a few weeks when there's more to look at.</p>\n<p dir=\"auto\">We blog here: <a href=\"https://medium.com/project-tofino\" rel=\"nofollow\">https://medium.com/project-tofino</a></p>\n<p dir=\"auto\">We hang out on Slack here: <a href=\"https://project-tofino.slack.com\" rel=\"nofollow\">https://project-tofino.slack.com</a> (you can get an\ninvite at <a href=\"http://tofino-slack-invite.mozilla.io\" rel=\"nofollow\">http://tofino-slack-invite.mozilla.io</a>)</p>\n<h2 dir=\"auto\"><a id=\"user-content-build\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/mozilla/tofino/blob/master/#build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build</h2>\n<p dir=\"auto\">Documentation for building is found in <a href=\"https://github.com/mozilla/tofino/blob/master//docs/building.md\">docs/building.md</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-developing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/mozilla/tofino/blob/master/#developing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Developing</h2>\n<ul dir=\"auto\">\n<li><code>npm start</code> - Runs the build in <code>production</code> mode. Should be similar to a\npackaged build.</li>\n<li><code>npm run dev</code> - Runs the build in <code>development</code> mode with hot module\nreloading.</li>\n<li><code>npm run package</code> - Creates a distributable package.</li>\n<li><code>npm run clobber</code> - Destroys a handful of temporary files (electron build,\nnode modules, configurations) to clean up invalid states. If running into\nstrange issues, try this command, followed by an <code>npm install</code>.</li>\n</ul>\n<p dir=\"auto\">Even though the user agent and content services are reused between multiple\nbrowser instances, they don't outlive their parent process by default when it\nexits, to ease development. To have them kept alive even when there are no more\nclients left, <code>npm run serve</code> will start these services standalone for finer\nlifetime control.</p>\n<h2 dir=\"auto\"><a id=\"user-content-testing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/mozilla/tofino/blob/master/#testing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Testing</h2>\n<p dir=\"auto\">Currently runs linting, unit and webdriver tests with mocha.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm test\"><pre class=\"notranslate\"><code class=\"notranslate\">npm test\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/mozilla/tofino/blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Please note that this project is released with a Contributor Code of Conduct.\nBy participating in this project you agree to abide by its terms.</p>\n<p dir=\"auto\">See <a href=\"https://github.com/mozilla/tofino/blob/master//CONTRIBUTING.md\">CONTRIBUTING.md</a> for further notes.</p>\n<p dir=\"auto\">This project is very new, so we'll probably revise these guidelines. Please\ncomment on a bug before putting significant effort in if you'd like to\ncontribute.</p>\n<p dir=\"auto\">The code uses examples from many different places, but the foundation was\nstarted from a set of posts from Paul Frazee:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/pfrazee/pfrazee.github.io/blob/moreaboutp2p/_posts/2015-09-08-building-electron-browser-pt1.md\">https://github.com/pfrazee/pfrazee.github.io/blob/moreaboutp2p/_posts/2015-09-08-building-electron-browser-pt1.md</a></li>\n<li><a href=\"https://github.com/pfraze/electron-browser\">https://github.com/pfraze/electron-browser</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/mozilla/tofino/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This software is licensed under the Apache License Version 2.\nSee <a href=\"https://github.com/mozilla/tofino/blob/master//LICENSE\">LICENSE</a> for details.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-project-tofino\" class=\"anchor\" aria-hidden=\"true\" href=\"#project-tofino\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Project Tofino</h1>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/mozilla/tofino\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a52dd6b0d9943eb06033af5bcb4c1f02c9617e8ed15182d87adc5045a4841327/68747470733a2f2f7472617669732d63692e6f72672f6d6f7a696c6c612f746f66696e6f2e7376673f6272616e63683d6d6173746572\" alt=\"Linux Build Status\" data-canonical-src=\"https://travis-ci.org/mozilla/tofino.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a href=\"https://ci.appveyor.com/project/Mozilla/tofino-u1hv8\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b7d97763873869107de102421d0d3e91549709da6ad08a440830c68217c3434b/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f376266396271707732347539336b6a6c3f7376673d74727565\" alt=\"Windows Build Status\" data-canonical-src=\"https://ci.appveyor.com/api/projects/status/7bf9bqpw24u93kjl?svg=true\" style=\"max-width: 100%;\"></a>\n<a href=\"https://coveralls.io/github/mozilla/tofino?branch=master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/8d77b8d09a743d113c541f5dff32abd3ea1a6f72f9cdfcd2e61038a81be300cc/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f6d6f7a696c6c612f746f66696e6f2f62616467652e7376673f6272616e63683d6d6173746572\" alt=\"Coverage Status\" data-canonical-src=\"https://coveralls.io/repos/github/mozilla/tofino/badge.svg?branch=master\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Project Tofino is a browser interaction experiment.</p>\n<p dir=\"auto\">The kinds of things we use browsers for on PCs and mobile devices are different\nthan they were when the current \"tabs across the top\" browsers were designed.\nWe believe we can do a lot better by focusing on the tasks and activities users\nengage browsers for. Project Tofino is one of our explorations.</p>\n<p dir=\"auto\">This project is extremely immature. It's currently at the \"OK, lets throw some\nstuff together to see what happens\" stage. Please adjust your expectations\naccordingly. The tools we're using are not a statement on the set of\ntechnologies we'll use to build a final product if these ideas pan out. We're\nlooking for the quickest way to build the experiments we want, not a long-term\ntechnical strategy.</p>\n<p dir=\"auto\">If you like a wild ride and you've got another browser for real work, we'd love\nto have your comments on what works and what doesn't. But right now the \"what\nworks\" list is a lot shorter than the \"what doesn't\" list, so maybe check back\nin a few weeks when there's more to look at.</p>\n<p dir=\"auto\">We blog here: <a href=\"https://medium.com/project-tofino\" rel=\"nofollow\">https://medium.com/project-tofino</a></p>\n<p dir=\"auto\">We hang out on Slack here: <a href=\"https://project-tofino.slack.com\" rel=\"nofollow\">https://project-tofino.slack.com</a> (you can get an\ninvite at <a href=\"http://tofino-slack-invite.mozilla.io\" rel=\"nofollow\">http://tofino-slack-invite.mozilla.io</a>)</p>\n<h2 dir=\"auto\"><a id=\"user-content-build\" class=\"anchor\" aria-hidden=\"true\" href=\"#build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build</h2>\n<p dir=\"auto\">Documentation for building is found in <a href=\"/docs/building.md\">docs/building.md</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-developing\" class=\"anchor\" aria-hidden=\"true\" href=\"#developing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Developing</h2>\n<ul dir=\"auto\">\n<li><code>npm start</code> - Runs the build in <code>production</code> mode. Should be similar to a\npackaged build.</li>\n<li><code>npm run dev</code> - Runs the build in <code>development</code> mode with hot module\nreloading.</li>\n<li><code>npm run package</code> - Creates a distributable package.</li>\n<li><code>npm run clobber</code> - Destroys a handful of temporary files (electron build,\nnode modules, configurations) to clean up invalid states. If running into\nstrange issues, try this command, followed by an <code>npm install</code>.</li>\n</ul>\n<p dir=\"auto\">Even though the user agent and content services are reused between multiple\nbrowser instances, they don't outlive their parent process by default when it\nexits, to ease development. To have them kept alive even when there are no more\nclients left, <code>npm run serve</code> will start these services standalone for finer\nlifetime control.</p>\n<h2 dir=\"auto\"><a id=\"user-content-testing\" class=\"anchor\" aria-hidden=\"true\" href=\"#testing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Testing</h2>\n<p dir=\"auto\">Currently runs linting, unit and webdriver tests with mocha.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm test\"><pre class=\"notranslate\"><code class=\"notranslate\">npm test\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Please note that this project is released with a Contributor Code of Conduct.\nBy participating in this project you agree to abide by its terms.</p>\n<p dir=\"auto\">See <a href=\"/CONTRIBUTING.md\">CONTRIBUTING.md</a> for further notes.</p>\n<p dir=\"auto\">This project is very new, so we'll probably revise these guidelines. Please\ncomment on a bug before putting significant effort in if you'd like to\ncontribute.</p>\n<p dir=\"auto\">The code uses examples from many different places, but the foundation was\nstarted from a set of posts from Paul Frazee:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/pfrazee/pfrazee.github.io/blob/moreaboutp2p/_posts/2015-09-08-building-electron-browser-pt1.md\">https://github.com/pfrazee/pfrazee.github.io/blob/moreaboutp2p/_posts/2015-09-08-building-electron-browser-pt1.md</a></li>\n<li><a href=\"https://github.com/pfraze/electron-browser\">https://github.com/pfraze/electron-browser</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This software is licensed under the Apache License Version 2.\nSee <a href=\"/LICENSE\">LICENSE</a> for details.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.038Z" }, "trackabi": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trackabi-desktop-time-tracking-app-for-windows-macos--linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Trackabi/desktop-time-tracking/blob/main/#trackabi-desktop-time-tracking-app-for-windows-macos--linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trackabi Desktop Time Tracking App for Windows, macOS, & Linux</h1>\n<ul dir=\"auto\">\n<li>Track time with a click: activity monitoring, idle detection</li>\n<li>Check daily stats with missing time alerts, days off, & more</li>\n<li>Monitor performance & avoid distractions</li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-desktop-banner.png\"><img src=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-desktop-banner.png\" alt=\"Trackabi desktop timer application\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong><a href=\"https://trackabi.com/time-tracking-desktop-application\" rel=\"nofollow\">Discover more & download ></a></strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-about-trackabi\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Trackabi/desktop-time-tracking/blob/main/#about-trackabi\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>About Trackabi</h2>\n<p dir=\"auto\"><a href=\"https://trackabi.com\" rel=\"nofollow\">Trackabi</a> is a platform for time tracking & employee leave management with many extras such as user activity monitoring, reports, invoicing, access roles, project estimates, or even turning Git commits into timesheet entries. Plus, we offer to play the time tracking game instead of just tracking time. We use gamification to make time tracking fun. As in video games, you can create achievements for your team based on different goals with badges, entertaining congratulation messages, & Karma points.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-main-banner.png\"><img src=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-main-banner.png\" alt=\"Trackabi — Free time tracking & leave management\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-key-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Trackabi/desktop-time-tracking/blob/main/#key-features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Key Features</h3>\n<ul dir=\"auto\">\n<li><strong>Desktop Timer Application</strong> for Windows, Linux, & macOS: The app can track time based on user activity. It can automatically launch and stop the timer, differentiate work and leisure activities, and provides excellent daily reports.</li>\n<li><strong>Gamification</strong> of time tracking: achievements and karma points for higher motivation and increased engagement.</li>\n<li><strong>Highly Customizable Timesheets:</strong> Timesheets can be edited like spreadsheets in Excel and offer many customization options (data to display, mandatory fields, additional custom fields, etc.).</li>\n<li><strong>Timesheets Locking:</strong> You can lock a specific period in timesheets to disallow your employees to add, modify, or delete their time entries at locked dates.</li>\n<li><strong>Employee Leave Management Integrated with Timesheets:</strong> Personal day-off calendar for every employee and a common leave schedule with the request/approval process. - Employee leaves can be within timesheets to make it easier for managers to ensure the data is complete.</li>\n<li><strong>Customizable Time Reports:</strong> Time reports can be generated from a timesheet based on user settings and shared through external links or exported to Excel or PDF.</li>\n<li><strong>Invoicing & Payments:</strong> Invoices can be created from reports or independently and sent to clients by email. The system allows entering client payments and tracking totals and overdue invoices.</li>\n<li><strong>Project Plans & Estimates:</strong> Project plans with a breakdown by milestones, tasks, and subtasks allow bottom-up time and budget estimating. Estimated amounts can be matched against real live data from employee timesheets.</li>\n<li><strong>User Access Roles:</strong> The system supports advanced user access roles based on editable privileges. Plus, every user may access many company accounts — join a company as an employee and create his company account utilizing the same username.</li>\n<li><strong>Client Access:</strong> Clients can be invited to access saved time reports, invoices, and timesheets related to their projects. It helps a client to keep an eye on the time spent by his contractor and control expenses.</li>\n<li><strong>Git Commits Import:</strong> Import of commits from Git and converting them into time entries is an excellent feature for software developers. The Git commits with comments can be converted into timesheet entries.</li>\n<li><strong>Informative Dashboards:</strong> A bird-eye view dashboard shows time worked summaries, employee absence days, and alerts about missing time reports (less time than expected).</li>\n<li><strong>Company Data Insights:</strong> Detailed overview of every employee's daily activity showing time worked, time added to a timesheet, applications used, idle time, etc.</li>\n</ul>\n<p dir=\"auto\"><strong><a href=\"https://trackabi.com/\" rel=\"nofollow\">Get started for free ></a></strong></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trackabi-desktop-time-tracking-app-for-windows-macos--linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#trackabi-desktop-time-tracking-app-for-windows-macos--linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trackabi Desktop Time Tracking App for Windows, macOS, & Linux</h1>\n<ul dir=\"auto\">\n<li>Track time with a click: activity monitoring, idle detection</li>\n<li>Check daily stats with missing time alerts, days off, & more</li>\n<li>Monitor performance & avoid distractions</li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-desktop-banner.png\"><img src=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-desktop-banner.png\" alt=\"Trackabi desktop timer application\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong><a href=\"https://trackabi.com/time-tracking-desktop-application\" rel=\"nofollow\">Discover more & download ></a></strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-about-trackabi\" class=\"anchor\" aria-hidden=\"true\" href=\"#about-trackabi\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>About Trackabi</h2>\n<p dir=\"auto\"><a href=\"https://trackabi.com\" rel=\"nofollow\">Trackabi</a> is a platform for time tracking & employee leave management with many extras such as user activity monitoring, reports, invoicing, access roles, project estimates, or even turning Git commits into timesheet entries. Plus, we offer to play the time tracking game instead of just tracking time. We use gamification to make time tracking fun. As in video games, you can create achievements for your team based on different goals with badges, entertaining congratulation messages, & Karma points.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-main-banner.png\"><img src=\"https://raw.githubusercontent.com/Trackabi/desktop-time-tracking/main/images/trackabi-main-banner.png\" alt=\"Trackabi — Free time tracking & leave management\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-key-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#key-features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Key Features</h3>\n<ul dir=\"auto\">\n<li><strong>Desktop Timer Application</strong> for Windows, Linux, & macOS: The app can track time based on user activity. It can automatically launch and stop the timer, differentiate work and leisure activities, and provides excellent daily reports.</li>\n<li><strong>Gamification</strong> of time tracking: achievements and karma points for higher motivation and increased engagement.</li>\n<li><strong>Highly Customizable Timesheets:</strong> Timesheets can be edited like spreadsheets in Excel and offer many customization options (data to display, mandatory fields, additional custom fields, etc.).</li>\n<li><strong>Timesheets Locking:</strong> You can lock a specific period in timesheets to disallow your employees to add, modify, or delete their time entries at locked dates.</li>\n<li><strong>Employee Leave Management Integrated with Timesheets:</strong> Personal day-off calendar for every employee and a common leave schedule with the request/approval process. - Employee leaves can be within timesheets to make it easier for managers to ensure the data is complete.</li>\n<li><strong>Customizable Time Reports:</strong> Time reports can be generated from a timesheet based on user settings and shared through external links or exported to Excel or PDF.</li>\n<li><strong>Invoicing & Payments:</strong> Invoices can be created from reports or independently and sent to clients by email. The system allows entering client payments and tracking totals and overdue invoices.</li>\n<li><strong>Project Plans & Estimates:</strong> Project plans with a breakdown by milestones, tasks, and subtasks allow bottom-up time and budget estimating. Estimated amounts can be matched against real live data from employee timesheets.</li>\n<li><strong>User Access Roles:</strong> The system supports advanced user access roles based on editable privileges. Plus, every user may access many company accounts — join a company as an employee and create his company account utilizing the same username.</li>\n<li><strong>Client Access:</strong> Clients can be invited to access saved time reports, invoices, and timesheets related to their projects. It helps a client to keep an eye on the time spent by his contractor and control expenses.</li>\n<li><strong>Git Commits Import:</strong> Import of commits from Git and converting them into time entries is an excellent feature for software developers. The Git commits with comments can be converted into timesheet entries.</li>\n<li><strong>Informative Dashboards:</strong> A bird-eye view dashboard shows time worked summaries, employee absence days, and alerts about missing time reports (less time than expected).</li>\n<li><strong>Company Data Insights:</strong> Detailed overview of every employee's daily activity showing time worked, time added to a timesheet, applications used, idle time, etc.</li>\n</ul>\n<p dir=\"auto\"><strong><a href=\"https://trackabi.com/\" rel=\"nofollow\">Get started for free ></a></strong></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.147Z" }, "transee": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/10ef563ace8125105bee2fa6e28efac4a55ed704e212f307488c8e7e7eb77203/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f69636f6e5f323536783235362e706e67\"><img src=\"https://camo.githubusercontent.com/10ef563ace8125105bee2fa6e28efac4a55ed704e212f307488c8e7e7eb77203/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f69636f6e5f323536783235362e706e67\" alt=\"Transee\" data-canonical-src=\"https://alessioforte.github.io/transee/static/icon_256x256.png\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-transee\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alessioforte/transee/blob/main/#transee\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Transee</h1>\n<p dir=\"auto\">Simple and useful tool for quick translation - reference to Google Translate</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d650316b999c47f82680c2e04fa3d5b7e0ea9c2e76fe854ba008b6c477358aab/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f7261696e626f772e706e67\"><img src=\"https://camo.githubusercontent.com/d650316b999c47f82680c2e04fa3d5b7e0ea9c2e76fe854ba008b6c477358aab/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f7261696e626f772e706e67\" alt=\"screenshot\" data-canonical-src=\"https://alessioforte.github.io/transee/static/rainbow.png\" style=\"max-width: 100%;\"></a></p>\n</div>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alessioforte/transee/blob/main/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<ol dir=\"auto\">\n<li>\n<p dir=\"auto\">Clone the git repository from GitHub:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" git clone https://github.com/alessioforte/transee.git\"><pre class=\"notranslate\"><code class=\"notranslate\"> git clone https://github.com/alessioforte/transee.git\n</code></pre></div>\n</li>\n<li>\n<p dir=\"auto\">Open the working directory:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" cd transee\"><pre class=\"notranslate\"><code class=\"notranslate\"> cd transee\n</code></pre></div>\n</li>\n<li>\n<p dir=\"auto\">Install the Node dependencies:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" npm install\"><pre class=\"notranslate\"><code class=\"notranslate\"> npm install\n</code></pre></div>\n</li>\n</ol>\n<p dir=\"auto\">Instead of <code>npm install</code> you may also install with <a href=\"https://github.com/yarnpkg/yarn\">yarn</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-running-transee\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alessioforte/transee/blob/main/#running-transee\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running Transee</h3>\n<p dir=\"auto\">In order to run this project 2 scripts will need to be executed <code>dev:react</code> and <code>dev:electron</code>, run each one in a different terminal and always run <code>dev:react</code> before <code>dev:electron</code>, or <code>dev</code> to run them in order automatically</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dev:react\"><pre>npm run dev:react</pre></div>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dev:electron\"><pre>npm run dev:electron</pre></div>\n<p dir=\"auto\">or</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dev\"><pre>npm run dev</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alessioforte/transee/blob/main/#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h2>\n<p dir=\"auto\">To generate a project package run <code>package</code></p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run package\"><pre>npm run package</pre></div>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div align=\"center\" dir=\"auto\">\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/10ef563ace8125105bee2fa6e28efac4a55ed704e212f307488c8e7e7eb77203/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f69636f6e5f323536783235362e706e67\"><img src=\"https://camo.githubusercontent.com/10ef563ace8125105bee2fa6e28efac4a55ed704e212f307488c8e7e7eb77203/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f69636f6e5f323536783235362e706e67\" alt=\"Transee\" data-canonical-src=\"https://alessioforte.github.io/transee/static/icon_256x256.png\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-transee\" class=\"anchor\" aria-hidden=\"true\" href=\"#transee\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Transee</h1>\n<p dir=\"auto\">Simple and useful tool for quick translation - reference to Google Translate</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d650316b999c47f82680c2e04fa3d5b7e0ea9c2e76fe854ba008b6c477358aab/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f7261696e626f772e706e67\"><img src=\"https://camo.githubusercontent.com/d650316b999c47f82680c2e04fa3d5b7e0ea9c2e76fe854ba008b6c477358aab/68747470733a2f2f616c657373696f666f7274652e6769746875622e696f2f7472616e7365652f7374617469632f7261696e626f772e706e67\" alt=\"screenshot\" data-canonical-src=\"https://alessioforte.github.io/transee/static/rainbow.png\" style=\"max-width: 100%;\"></a></p>\n</div>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<ol dir=\"auto\">\n<li>\n<p dir=\"auto\">Clone the git repository from GitHub:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" git clone https://github.com/alessioforte/transee.git\"><pre class=\"notranslate\"><code class=\"notranslate\"> git clone https://github.com/alessioforte/transee.git\n</code></pre></div>\n</li>\n<li>\n<p dir=\"auto\">Open the working directory:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" cd transee\"><pre class=\"notranslate\"><code class=\"notranslate\"> cd transee\n</code></pre></div>\n</li>\n<li>\n<p dir=\"auto\">Install the Node dependencies:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\" npm install\"><pre class=\"notranslate\"><code class=\"notranslate\"> npm install\n</code></pre></div>\n</li>\n</ol>\n<p dir=\"auto\">Instead of <code>npm install</code> you may also install with <a href=\"https://github.com/yarnpkg/yarn\">yarn</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-running-transee\" class=\"anchor\" aria-hidden=\"true\" href=\"#running-transee\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running Transee</h3>\n<p dir=\"auto\">In order to run this project 2 scripts will need to be executed <code>dev:react</code> and <code>dev:electron</code>, run each one in a different terminal and always run <code>dev:react</code> before <code>dev:electron</code>, or <code>dev</code> to run them in order automatically</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dev:react\"><pre>npm run dev:react</pre></div>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dev:electron\"><pre>npm run dev:electron</pre></div>\n<p dir=\"auto\">or</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dev\"><pre>npm run dev</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h2>\n<p dir=\"auto\">To generate a project package run <code>package</code></p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run package\"><pre>npm run package</pre></div>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.163Z" }, "trilium-notes": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trilium-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#trilium-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trilium Notes</h1>\n<p dir=\"auto\"><a href=\"https://github.com/zadam/trilium/blob/master/README.md\">English</a> | <a href=\"https://github.com/zadam/trilium/blob/master/README-ZH_CN.md\">Chinese</a> | <a href=\"https://github.com/zadam/trilium/blob/master/README.ru.md\">Russian</a></p>\n<p dir=\"auto\"><a href=\"https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4acb96157e9ecd501fc7bdbe88cf9640512d4daa04d2f428a032e6d371b30887/68747470733a2f2f6261646765732e6769747465722e696d2f7472696c69756d2d6e6f7465732f4c6f6262792e737667\" alt=\"Join the chat at https://gitter.im/trilium-notes/Lobby\" data-canonical-src=\"https://badges.gitter.im/trilium-notes/Lobby.svg\" style=\"max-width: 100%;\"></a>\nTrilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. See <a href=\"https://github.com/zadam/trilium/wiki/Screenshot-tour\">screenshots</a> for quick overview:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png\"><img src=\"https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Ukraine is currently suffering from Russian aggression, please consider donating to <a href=\"https://old.reddit.com/r/ukraine/comments/s6g5un/want_to_support_ukraine_heres_a_list_of_charities/\" rel=\"nofollow\">one of these charities</a>.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0aa6041fb0691d3d7384a9bf91dbd4b456fb5cfa21e3c537e395493d829d0064/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f342f34392f466c61675f6f665f556b7261696e652e737667\"><img src=\"https://camo.githubusercontent.com/0aa6041fb0691d3d7384a9bf91dbd4b456fb5cfa21e3c537e395493d829d0064/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f342f34392f466c61675f6f665f556b7261696e652e737667\" alt=\"drawing\" width=\"600\" data-canonical-src=\"https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see <a href=\"https://github.com/zadam/trilium/wiki/Cloning-notes\">cloning</a>)</li>\n<li>Rich WYSIWYG note editing including e.g. tables, images and <a href=\"https://github.com/zadam/trilium/wiki/Text-notes#math-support\">math</a> with markdown <a href=\"https://github.com/zadam/trilium/wiki/Text-notes#autoformat\">autoformat</a></li>\n<li>Support for editing <a href=\"https://github.com/zadam/trilium/wiki/Code-notes\">notes with source code</a>, including syntax highlighting</li>\n<li>Fast and easy <a href=\"https://github.com/zadam/trilium/wiki/Note-navigation\">navigation between notes</a>, full text search and <a href=\"https://github.com/zadam/trilium/wiki/Note-hoisting\">note hoisting</a></li>\n<li>Seamless <a href=\"https://github.com/zadam/trilium/wiki/Note-revisions\">note versioning</a></li>\n<li>Note <a href=\"https://github.com/zadam/trilium/wiki/Attributes\">attributes</a> can be used for note organization, querying and advanced <a href=\"https://github.com/zadam/trilium/wiki/Scripts\">scripting</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Synchronization\">Synchronization</a> with self-hosted sync server\n<ul dir=\"auto\">\n<li>there's a <a href=\"https://trilium.cc/paid-hosting\" rel=\"nofollow\">3rd party service for hosting synchronisation server</a></li>\n</ul>\n</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Sharing\">Sharing</a> (publishing) notes to public internet</li>\n<li>Strong <a href=\"https://github.com/zadam/trilium/wiki/Protected-notes\">note encryption</a> with per-note granularity</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Relation-map\">Relation maps</a> and <a href=\"https://github.com/zadam/trilium/wiki/Link-map\">link maps</a> for visualizing notes and their relations</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Scripts\">Scripting</a> - see <a href=\"https://github.com/zadam/trilium/wiki/Advanced-showcases\">Advanced showcases</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/ETAPI\">REST API</a> for automation</li>\n<li>Scales well in both usability and performance upwards of 100 000 notes</li>\n<li>Touch optimized <a href=\"https://github.com/zadam/trilium/wiki/Mobile-frontend\">mobile frontend</a> for smartphones and tablets</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Themes\">Night theme</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Evernote-import\">Evernote</a> and <a href=\"https://github.com/zadam/trilium/wiki/Markdown\">Markdown import & export</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Web-clipper\">Web Clipper</a> for easy saving of web content</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-builds\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#builds\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Builds</h2>\n<p dir=\"auto\">Trilium is provided as either desktop application (Linux and Windows) or web application hosted on your server (Linux). Mac OS desktop build is available, but it is <a href=\"https://github.com/zadam/trilium/wiki/FAQ#mac-os-support\">unsupported</a>.</p>\n<ul dir=\"auto\">\n<li>If you want to use Trilium on the desktop, download binary release for your platform from <a href=\"https://github.com/zadam/trilium/releases/latest\">latest release</a>, unzip the package and run <code>trilium</code> executable.</li>\n<li>If you want to install Trilium on server, follow <a href=\"https://github.com/zadam/trilium/wiki/Server-installation\">this page</a>.\n<ul dir=\"auto\">\n<li>Currently only recent Chrome and Firefox are supported (tested) browsers.</li>\n</ul>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h2>\n<p dir=\"auto\"><a href=\"https://github.com/zadam/trilium/wiki/\">See wiki for complete list of documentation pages.</a></p>\n<p dir=\"auto\">You can also read <a href=\"https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base\">Patterns of personal knowledge base</a> to get some inspiration on how you might use Trilium.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contribute</h2>\n<p dir=\"auto\">Use a browser based dev environment</p>\n<p dir=\"auto\"><a href=\"https://gitpod.io/#https://github.com/zadam/trilium\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/76e60919474807718793857d8eb615e7a50b18b04050577e5a35c19421f260a3/68747470733a2f2f676974706f642e696f2f627574746f6e2f6f70656e2d696e2d676974706f642e737667\" alt=\"Open in Gitpod\" data-canonical-src=\"https://gitpod.io/button/open-in-gitpod.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Or clone locally and run</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nnpm run start-server\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nnpm run start-server\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-shoutouts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#shoutouts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Shoutouts</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/ckeditor/ckeditor5\">CKEditor 5</a> - best WYSIWYG editor on the market, very interactive and listening team</li>\n<li><a href=\"https://github.com/mar10/fancytree\">FancyTree</a> - very feature rich tree library without real competition. Trilium Notes would not be the same without it.</li>\n<li><a href=\"https://github.com/codemirror/CodeMirror\">CodeMirror</a> - code editor with support for huge amount of languages</li>\n<li><a href=\"https://github.com/jsplumb/jsplumb\">jsPlumb</a> - visual connectivity library without competition. Used in <a href=\"https://github.com/zadam/trilium/wiki/Relation-map\">relation maps</a> and <a href=\"https://github.com/zadam/trilium/wiki/Link-map\">link maps</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-donating\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#donating\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Donating</h2>\n<p dir=\"auto\">You can donate using GitHub Sponsors, <a href=\"https://paypal.me/za4am\" rel=\"nofollow\">PayPal</a> or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zadam/trilium/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trilium-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"#trilium-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trilium Notes</h1>\n<p dir=\"auto\"><a href=\"https://github.com/zadam/trilium/blob/master/README.md\">English</a> | <a href=\"https://github.com/zadam/trilium/blob/master/README-ZH_CN.md\">Chinese</a> | <a href=\"https://github.com/zadam/trilium/blob/master/README.ru.md\">Russian</a></p>\n<p dir=\"auto\"><a href=\"https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4acb96157e9ecd501fc7bdbe88cf9640512d4daa04d2f428a032e6d371b30887/68747470733a2f2f6261646765732e6769747465722e696d2f7472696c69756d2d6e6f7465732f4c6f6262792e737667\" alt=\"Join the chat at https://gitter.im/trilium-notes/Lobby\" data-canonical-src=\"https://badges.gitter.im/trilium-notes/Lobby.svg\" style=\"max-width: 100%;\"></a>\nTrilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. See <a href=\"https://github.com/zadam/trilium/wiki/Screenshot-tour\">screenshots</a> for quick overview:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png\"><img src=\"https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Ukraine is currently suffering from Russian aggression, please consider donating to <a href=\"https://old.reddit.com/r/ukraine/comments/s6g5un/want_to_support_ukraine_heres_a_list_of_charities/\" rel=\"nofollow\">one of these charities</a>.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0aa6041fb0691d3d7384a9bf91dbd4b456fb5cfa21e3c537e395493d829d0064/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f342f34392f466c61675f6f665f556b7261696e652e737667\"><img src=\"https://camo.githubusercontent.com/0aa6041fb0691d3d7384a9bf91dbd4b456fb5cfa21e3c537e395493d829d0064/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f342f34392f466c61675f6f665f556b7261696e652e737667\" alt=\"drawing\" width=\"600\" data-canonical-src=\"https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see <a href=\"https://github.com/zadam/trilium/wiki/Cloning-notes\">cloning</a>)</li>\n<li>Rich WYSIWYG note editing including e.g. tables, images and <a href=\"https://github.com/zadam/trilium/wiki/Text-notes#math-support\">math</a> with markdown <a href=\"https://github.com/zadam/trilium/wiki/Text-notes#autoformat\">autoformat</a></li>\n<li>Support for editing <a href=\"https://github.com/zadam/trilium/wiki/Code-notes\">notes with source code</a>, including syntax highlighting</li>\n<li>Fast and easy <a href=\"https://github.com/zadam/trilium/wiki/Note-navigation\">navigation between notes</a>, full text search and <a href=\"https://github.com/zadam/trilium/wiki/Note-hoisting\">note hoisting</a></li>\n<li>Seamless <a href=\"https://github.com/zadam/trilium/wiki/Note-revisions\">note versioning</a></li>\n<li>Note <a href=\"https://github.com/zadam/trilium/wiki/Attributes\">attributes</a> can be used for note organization, querying and advanced <a href=\"https://github.com/zadam/trilium/wiki/Scripts\">scripting</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Synchronization\">Synchronization</a> with self-hosted sync server\n<ul dir=\"auto\">\n<li>there's a <a href=\"https://trilium.cc/paid-hosting\" rel=\"nofollow\">3rd party service for hosting synchronisation server</a></li>\n</ul>\n</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Sharing\">Sharing</a> (publishing) notes to public internet</li>\n<li>Strong <a href=\"https://github.com/zadam/trilium/wiki/Protected-notes\">note encryption</a> with per-note granularity</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Relation-map\">Relation maps</a> and <a href=\"https://github.com/zadam/trilium/wiki/Link-map\">link maps</a> for visualizing notes and their relations</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Scripts\">Scripting</a> - see <a href=\"https://github.com/zadam/trilium/wiki/Advanced-showcases\">Advanced showcases</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/ETAPI\">REST API</a> for automation</li>\n<li>Scales well in both usability and performance upwards of 100 000 notes</li>\n<li>Touch optimized <a href=\"https://github.com/zadam/trilium/wiki/Mobile-frontend\">mobile frontend</a> for smartphones and tablets</li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Themes\">Night theme</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Evernote-import\">Evernote</a> and <a href=\"https://github.com/zadam/trilium/wiki/Markdown\">Markdown import & export</a></li>\n<li><a href=\"https://github.com/zadam/trilium/wiki/Web-clipper\">Web Clipper</a> for easy saving of web content</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-builds\" class=\"anchor\" aria-hidden=\"true\" href=\"#builds\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Builds</h2>\n<p dir=\"auto\">Trilium is provided as either desktop application (Linux and Windows) or web application hosted on your server (Linux). Mac OS desktop build is available, but it is <a href=\"https://github.com/zadam/trilium/wiki/FAQ#mac-os-support\">unsupported</a>.</p>\n<ul dir=\"auto\">\n<li>If you want to use Trilium on the desktop, download binary release for your platform from <a href=\"https://github.com/zadam/trilium/releases/latest\">latest release</a>, unzip the package and run <code>trilium</code> executable.</li>\n<li>If you want to install Trilium on server, follow <a href=\"https://github.com/zadam/trilium/wiki/Server-installation\">this page</a>.\n<ul dir=\"auto\">\n<li>Currently only recent Chrome and Firefox are supported (tested) browsers.</li>\n</ul>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h2>\n<p dir=\"auto\"><a href=\"https://github.com/zadam/trilium/wiki/\">See wiki for complete list of documentation pages.</a></p>\n<p dir=\"auto\">You can also read <a href=\"https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base\">Patterns of personal knowledge base</a> to get some inspiration on how you might use Trilium.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"#contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contribute</h2>\n<p dir=\"auto\">Use a browser based dev environment</p>\n<p dir=\"auto\"><a href=\"https://gitpod.io/#https://github.com/zadam/trilium\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/76e60919474807718793857d8eb615e7a50b18b04050577e5a35c19421f260a3/68747470733a2f2f676974706f642e696f2f627574746f6e2f6f70656e2d696e2d676974706f642e737667\" alt=\"Open in Gitpod\" data-canonical-src=\"https://gitpod.io/button/open-in-gitpod.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Or clone locally and run</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nnpm run start-server\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nnpm run start-server\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-shoutouts\" class=\"anchor\" aria-hidden=\"true\" href=\"#shoutouts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Shoutouts</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/ckeditor/ckeditor5\">CKEditor 5</a> - best WYSIWYG editor on the market, very interactive and listening team</li>\n<li><a href=\"https://github.com/mar10/fancytree\">FancyTree</a> - very feature rich tree library without real competition. Trilium Notes would not be the same without it.</li>\n<li><a href=\"https://github.com/codemirror/CodeMirror\">CodeMirror</a> - code editor with support for huge amount of languages</li>\n<li><a href=\"https://github.com/jsplumb/jsplumb\">jsPlumb</a> - visual connectivity library without competition. Used in <a href=\"https://github.com/zadam/trilium/wiki/Relation-map\">relation maps</a> and <a href=\"https://github.com/zadam/trilium/wiki/Link-map\">link maps</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-donating\" class=\"anchor\" aria-hidden=\"true\" href=\"#donating\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Donating</h2>\n<p dir=\"auto\">You can donate using GitHub Sponsors, <a href=\"https://paypal.me/za4am\" rel=\"nofollow\">PayPal</a> or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.235Z" }, "trico": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trico-electron-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#trico-electron-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TriCo-electron-app</h1>\n<p dir=\"auto\"><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/6d4ef2145d4a2a40adb81948eb3a7d6e65f4cfecbdb5f085124c30cec0571312/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656c656173652d332e302e302d677265656e2e737667\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/badge/Release-3.0.0-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/package.json\"><img src=\"https://camo.githubusercontent.com/739907556e024729165be1630bce9e8802281849357e8bad922bf14785449a84/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f6e677564626861762f547269436f2d656c656374726f6e2d6170702e737667\" alt=\"Dependencies\" data-canonical-src=\"https://img.shields.io/david/ngudbhav/TriCo-electron-app.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/3829f5fc492d6cd60a41f9f7c001fe97fa850ee8b529d6fc8ce114ab6271c2d1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6e677564626861762f547269436f2d656c656374726f6e2d6170702f746f74616c2e737667\" alt=\"Downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/ngudbhav/TriCo-electron-app/total.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/24b57a0e096f1c400eb5209c11e104825a1e772679368cb8e1017a6dff434f7f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f6e677564626861762f547269436f2d656c656374726f6e2d6170702e737667\" alt=\"Last-Release\" data-canonical-src=\"https://img.shields.io/github/release-date/ngudbhav/TriCo-electron-app.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/e4b994bc4cfcca65db4386c8f2113de103c8cfe140f694be557ed19865f21d05/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d77696e25323025374325323064656225323025374325323072706d2d677265656e2e737667\" alt=\"Platforms\" data-canonical-src=\"https://img.shields.io/badge/platform-win%20%7C%20deb%20%7C%20rpm-green.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This App Converts your correctly formatted Excel Spreadsheet to a specified table/collection in specified Database in MYSQL/MongoDB.</p>\n<h2 dir=\"auto\"><a id=\"user-content-do-checkout-the-upcoming-features-in-changelogmd\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#do-checkout-the-upcoming-features-in-changelogmd\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Do checkout the upcoming features in CHANGELOG.md</h2>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ol dir=\"auto\">\n<li>Dump your excel/csv sheet into your preferred your DB.</li>\n<li>Batch Files support</li>\n<li>Do not want to dump the whole file? You can also try selecting a range of columns and rows.</li>\n<li>Automaticaly add <code>id</code> as primary key (MySQL)</li>\n<li>Scared of loosing your DB? Safe mode backs up the db before processing.</li>\n<li>Dump the excel sheet into a <code>.sql</code> instead (MySQL)</li>\n<li>History Maintainance.</li>\n</ol>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/images/screenshots/mysql.png\"><img src=\"https://raw.githubusercontent.com/ngudbhav/TriCo-electron-app/master/images/screenshots/mysql.png\" alt=\"mysql.png\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/images/screenshots/mongo.png\"><img src=\"https://raw.githubusercontent.com/ngudbhav/TriCo-electron-app/master/images/screenshots/mongo.png\" alt=\"mongo.png\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-excel-formats-supported\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#excel-formats-supported\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Excel Formats Supported</h2>\n<p dir=\"auto\">Supported Excel formats are XLS/XLSX/CSV</p>\n<h2 dir=\"auto\"><a id=\"user-content-spreadsheet-format\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#spreadsheet-format\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Spreadsheet Format</h2>\n<p dir=\"auto\">Please have a look at the sample Excel sheets provided to have a clear view of the File. <a href=\"https://go.microsoft.com/fwlink/?LinkID=521962\" rel=\"nofollow\">Microsoft Sample Sheet</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-starting-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#starting-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Starting The App</h2>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"sudo npm install -g electron\ngit clone https://github.com/ngudbhav/TriCo-electron-app.git\ncd TriCo-electron-app\nnpm install\nnpm start\"><pre>sudo npm install -g electron\ngit clone https://github.com/ngudbhav/TriCo-electron-app.git\n<span class=\"pl-c1\">cd</span> TriCo-electron-app\nnpm install\nnpm start</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-installing-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#installing-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing The App</h2>\n<table>\n<thead>\n<tr>\n<th>OS</th>\n<th>Installer?</th>\n<th>File</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Windows 32-BIT</td>\n<td>Portable</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Portable-x86.exe\">Portable-x86.exe</a></td>\n</tr>\n<tr>\n<td>Windows 32-BIT</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Setup-x86.exe\">Setup-x86.exe</a></td>\n</tr>\n<tr>\n<td>Windows 64-BIT</td>\n<td>Portable</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Portable-x64.exe\">Portable-x86.exe</a></td>\n</tr>\n<tr>\n<td>Windows 64-BIT</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Setup-x64.exe\">Setup-x86.exe</a></td>\n</tr>\n<tr>\n<td>Linux</td>\n<td>ZIP</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0-linux.zip\">TriCo-3.0.0-linux.zip</a></td>\n</tr>\n<tr>\n<td>Linux Debian (Ubuntu, etc.)</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo_3.0.0_amd64.deb\">TriCo_3.0.0_amd64.deb</a></td>\n</tr>\n<tr>\n<td>Linux Redhat (Fedora, etc.)</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0.x86_64.rpm\">TriCo-3.0.0.x86_64.rpm</a></td>\n</tr>\n<tr>\n<td>Mac OS X</td>\n<td>ZIP</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0-mac.zip\">TriCo-3.0.0-mac.zip</a></td>\n</tr>\n<tr>\n<td>Mac OS X</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0.dmg\">TriCo-3.0.0.dmg</a></td>\n</tr>\n</tbody>\n</table>\n<br>\n<h2 dir=\"auto\"><a id=\"user-content-software-featured-on-softpedia-sourceforge-and-electronjs\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#software-featured-on-softpedia-sourceforge-and-electronjs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Software Featured on Softpedia, SourceForge and Electronjs</h2>\n<p dir=\"auto\"><a href=\"https://www.softpedia.com/get/Internet/Servers/Database-Utils/TriCO.shtml\" rel=\"nofollow\"><img src=\"https://raw.githubusercontent.com/ngudbhav/TriCo-electron-app/master/images/soft.png\" alt=\"Softpedia\" style=\"max-width: 100%;\" crossorigin=\"\"></a><br><br>\n<a href=\"https://sourceforge.net/projects/trico/files/latest/download\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/d78acaee7cdd2080d5167036c8c6174b0d25478ab01517c32ff40a717a5f4b45/68747470733a2f2f612e6673646e2e636f6d2f636f6e2f6170702f73662d646f776e6c6f61642d627574746f6e\" alt=\"Download Trico-electron-app\" data-canonical-src=\"https://a.fsdn.com/con/app/sf-download-button\" style=\"max-width: 100%;\"></a><br>\n<a href=\"https://electronjs.org/apps/trico\" rel=\"nofollow\">Electronjs</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-do-rate-and-give-feedback\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/#do-rate-and-give-feedback\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Do rate and give Feedback!</h2>\n<p dir=\"auto\">P.S. This app saves the previosuly entered information in the systems %APPDATA% directory so that the whole information is not typed again.\nNOTHING is collected by me. Also, this app establishes connection to the internet to check for the updates.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trico-electron-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#trico-electron-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TriCo-electron-app</h1>\n<p dir=\"auto\"><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/6d4ef2145d4a2a40adb81948eb3a7d6e65f4cfecbdb5f085124c30cec0571312/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656c656173652d332e302e302d677265656e2e737667\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/badge/Release-3.0.0-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/blob/master/package.json\"><img src=\"https://camo.githubusercontent.com/739907556e024729165be1630bce9e8802281849357e8bad922bf14785449a84/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f6e677564626861762f547269436f2d656c656374726f6e2d6170702e737667\" alt=\"Dependencies\" data-canonical-src=\"https://img.shields.io/david/ngudbhav/TriCo-electron-app.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/3829f5fc492d6cd60a41f9f7c001fe97fa850ee8b529d6fc8ce114ab6271c2d1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6e677564626861762f547269436f2d656c656374726f6e2d6170702f746f74616c2e737667\" alt=\"Downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/ngudbhav/TriCo-electron-app/total.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/24b57a0e096f1c400eb5209c11e104825a1e772679368cb8e1017a6dff434f7f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f6e677564626861762f547269436f2d656c656374726f6e2d6170702e737667\" alt=\"Last-Release\" data-canonical-src=\"https://img.shields.io/github/release-date/ngudbhav/TriCo-electron-app.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases\"><img src=\"https://camo.githubusercontent.com/e4b994bc4cfcca65db4386c8f2113de103c8cfe140f694be557ed19865f21d05/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d77696e25323025374325323064656225323025374325323072706d2d677265656e2e737667\" alt=\"Platforms\" data-canonical-src=\"https://img.shields.io/badge/platform-win%20%7C%20deb%20%7C%20rpm-green.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This App Converts your correctly formatted Excel Spreadsheet to a specified table/collection in specified Database in MYSQL/MongoDB.</p>\n<h2 dir=\"auto\"><a id=\"user-content-do-checkout-the-upcoming-features-in-changelogmd\" class=\"anchor\" aria-hidden=\"true\" href=\"#do-checkout-the-upcoming-features-in-changelogmd\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Do checkout the upcoming features in CHANGELOG.md</h2>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ol dir=\"auto\">\n<li>Dump your excel/csv sheet into your preferred your DB.</li>\n<li>Batch Files support</li>\n<li>Do not want to dump the whole file? You can also try selecting a range of columns and rows.</li>\n<li>Automaticaly add <code>id</code> as primary key (MySQL)</li>\n<li>Scared of loosing your DB? Safe mode backs up the db before processing.</li>\n<li>Dump the excel sheet into a <code>.sql</code> instead (MySQL)</li>\n<li>History Maintainance.</li>\n</ol>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/mysql.png\"><img src=\"images/screenshots/mysql.png\" alt=\"mysql.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/screenshots/mongo.png\"><img src=\"images/screenshots/mongo.png\" alt=\"mongo.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-excel-formats-supported\" class=\"anchor\" aria-hidden=\"true\" href=\"#excel-formats-supported\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Excel Formats Supported</h2>\n<p dir=\"auto\">Supported Excel formats are XLS/XLSX/CSV</p>\n<h2 dir=\"auto\"><a id=\"user-content-spreadsheet-format\" class=\"anchor\" aria-hidden=\"true\" href=\"#spreadsheet-format\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Spreadsheet Format</h2>\n<p dir=\"auto\">Please have a look at the sample Excel sheets provided to have a clear view of the File. <a href=\"https://go.microsoft.com/fwlink/?LinkID=521962\" rel=\"nofollow\">Microsoft Sample Sheet</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-starting-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#starting-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Starting The App</h2>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"sudo npm install -g electron\ngit clone https://github.com/ngudbhav/TriCo-electron-app.git\ncd TriCo-electron-app\nnpm install\nnpm start\"><pre>sudo npm install -g electron\ngit clone https://github.com/ngudbhav/TriCo-electron-app.git\n<span class=\"pl-c1\">cd</span> TriCo-electron-app\nnpm install\nnpm start</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-installing-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#installing-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing The App</h2>\n<table>\n<thead>\n<tr>\n<th>OS</th>\n<th>Installer?</th>\n<th>File</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Windows 32-BIT</td>\n<td>Portable</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Portable-x86.exe\">Portable-x86.exe</a></td>\n</tr>\n<tr>\n<td>Windows 32-BIT</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Setup-x86.exe\">Setup-x86.exe</a></td>\n</tr>\n<tr>\n<td>Windows 64-BIT</td>\n<td>Portable</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Portable-x64.exe\">Portable-x86.exe</a></td>\n</tr>\n<tr>\n<td>Windows 64-BIT</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/Setup-x64.exe\">Setup-x86.exe</a></td>\n</tr>\n<tr>\n<td>Linux</td>\n<td>ZIP</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0-linux.zip\">TriCo-3.0.0-linux.zip</a></td>\n</tr>\n<tr>\n<td>Linux Debian (Ubuntu, etc.)</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo_3.0.0_amd64.deb\">TriCo_3.0.0_amd64.deb</a></td>\n</tr>\n<tr>\n<td>Linux Redhat (Fedora, etc.)</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0.x86_64.rpm\">TriCo-3.0.0.x86_64.rpm</a></td>\n</tr>\n<tr>\n<td>Mac OS X</td>\n<td>ZIP</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0-mac.zip\">TriCo-3.0.0-mac.zip</a></td>\n</tr>\n<tr>\n<td>Mac OS X</td>\n<td>Setup</td>\n<td><a href=\"https://github.com/ngudbhav/TriCo-electron-app/releases/download/v3.0.0/TriCo-3.0.0.dmg\">TriCo-3.0.0.dmg</a></td>\n</tr>\n</tbody>\n</table>\n<br>\n<h2 dir=\"auto\"><a id=\"user-content-software-featured-on-softpedia-sourceforge-and-electronjs\" class=\"anchor\" aria-hidden=\"true\" href=\"#software-featured-on-softpedia-sourceforge-and-electronjs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Software Featured on Softpedia, SourceForge and Electronjs</h2>\n<p dir=\"auto\"><a href=\"https://www.softpedia.com/get/Internet/Servers/Database-Utils/TriCO.shtml\" rel=\"nofollow\"><img src=\"images/soft.png\" alt=\"Softpedia\" style=\"max-width: 100%;\"></a><br><br>\n<a href=\"https://sourceforge.net/projects/trico/files/latest/download\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/d78acaee7cdd2080d5167036c8c6174b0d25478ab01517c32ff40a717a5f4b45/68747470733a2f2f612e6673646e2e636f6d2f636f6e2f6170702f73662d646f776e6c6f61642d627574746f6e\" alt=\"Download Trico-electron-app\" data-canonical-src=\"https://a.fsdn.com/con/app/sf-download-button\" style=\"max-width: 100%;\"></a><br>\n<a href=\"https://electronjs.org/apps/trico\" rel=\"nofollow\">Electronjs</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-do-rate-and-give-feedback\" class=\"anchor\" aria-hidden=\"true\" href=\"#do-rate-and-give-feedback\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Do rate and give Feedback!</h2>\n<p dir=\"auto\">P.S. This app saves the previosuly entered information in the systems %APPDATA% directory so that the whole information is not typed again.\nNOTHING is collected by me. Also, this app establishes connection to the internet to check for the updates.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.335Z" }, "tropy": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-tropy\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tropy/tropy//blob/master/#tropy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tropy</h1>\n<p dir=\"auto\"><a href=\"https://github.com/tropy/tropy/actions/workflows/ci.yml\"><img src=\"https://github.com/tropy/tropy/actions/workflows/ci.yml/badge.svg\" alt=\"Build Status\" style=\"max-width: 100%;\"></a>\n<a href=\"https://coveralls.io/github/tropy/tropy\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6a7db0880412db5cddd3debab6719abaaddec853b8c8144b0b134213dc11c063/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f74726f70792f74726f70792f62616467652e7376673f6272616e63683d6d6173746572\" alt=\"Coverage Status\" data-canonical-src=\"https://coveralls.io/repos/github/tropy/tropy/badge.svg?branch=master\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Bring order to your research — use the power of Tropy to organize and describe\nyour research photos so you can quickly find your sources whenever you need them.</p>\n<p dir=\"auto\">Visit <a href=\"https://tropy.org\" rel=\"nofollow\">tropy.org</a> to learn more or follow\n<a href=\"https://twitter.com/tropy\" rel=\"nofollow\">@tropy</a> on Twitter for important announcements.\nTo get started, download the latest version of Tropy for your platform, check\nout the <a href=\"https://docs.tropy.org\" rel=\"nofollow\">user's manual</a> and join the discussion on the\n<a href=\"https://forums.tropy.org\" rel=\"nofollow\">forums</a>.</p>\n<p dir=\"auto\">If you are interested to work on Tropy or create your own builds, please\nfind more details below. Happy hacking!</p>\n<h2 dir=\"auto\"><a id=\"user-content-install-from-source\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tropy/tropy//blob/master/#install-from-source\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install from Source</h2>\n<p dir=\"auto\">Install the latest version of <a href=\"https://nodejs.org\" rel=\"nofollow\">Node.js</a> (at least the\nversion that ships with the current <a href=\"https://electronjs.org\" rel=\"nofollow\">Electron</a>\nrelease) and all requirements needed to use\n<a href=\"https://www.npmjs.com/package/node-gyp\" rel=\"nofollow\"><code>node-gyp</code></a> on your platform.</p>\n<p dir=\"auto\">Finally, clone <a href=\"https://github.com/tropy/tropy.git\">this repository</a> and\ninstall all of Tropy's dependencies:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm install\n$ npm run rebuild -- --force\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm install\n$ npm run rebuild -- --force\n</code></pre></div>\n<p dir=\"auto\">To test that everything is set up correctly, run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm test\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm test\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-creating-builds\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tropy/tropy//blob/master/#creating-builds\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Creating Builds</h2>\n<p dir=\"auto\">To create a dev-build for your current platform run <code>npm run build</code> at the\nroot of the repository. This will create a dev-build of Tropy in the <code>dist</code>\nfolder.</p>\n<h2 dir=\"auto\"><a id=\"user-content-running-in-dev-mode\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tropy/tropy//blob/master/#running-in-dev-mode\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running in Dev-Mode</h2>\n<p dir=\"auto\">Alternatively, you can start Tropy in dev-mode directly from the root of the\nrepository, by running <code>npm start</code>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-tropy\" class=\"anchor\" aria-hidden=\"true\" href=\"#tropy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tropy</h1>\n<p dir=\"auto\"><a href=\"https://github.com/tropy/tropy/actions/workflows/ci.yml\"><img src=\"https://github.com/tropy/tropy/actions/workflows/ci.yml/badge.svg\" alt=\"Build Status\" style=\"max-width: 100%;\"></a>\n<a href=\"https://coveralls.io/github/tropy/tropy\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6a7db0880412db5cddd3debab6719abaaddec853b8c8144b0b134213dc11c063/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f74726f70792f74726f70792f62616467652e7376673f6272616e63683d6d6173746572\" alt=\"Coverage Status\" data-canonical-src=\"https://coveralls.io/repos/github/tropy/tropy/badge.svg?branch=master\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Bring order to your research — use the power of Tropy to organize and describe\nyour research photos so you can quickly find your sources whenever you need them.</p>\n<p dir=\"auto\">Visit <a href=\"https://tropy.org\" rel=\"nofollow\">tropy.org</a> to learn more or follow\n<a href=\"https://twitter.com/tropy\" rel=\"nofollow\">@tropy</a> on Twitter for important announcements.\nTo get started, download the latest version of Tropy for your platform, check\nout the <a href=\"https://docs.tropy.org\" rel=\"nofollow\">user's manual</a> and join the discussion on the\n<a href=\"https://forums.tropy.org\" rel=\"nofollow\">forums</a>.</p>\n<p dir=\"auto\">If you are interested to work on Tropy or create your own builds, please\nfind more details below. Happy hacking!</p>\n<h2 dir=\"auto\"><a id=\"user-content-install-from-source\" class=\"anchor\" aria-hidden=\"true\" href=\"#install-from-source\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install from Source</h2>\n<p dir=\"auto\">Install the latest version of <a href=\"https://nodejs.org\" rel=\"nofollow\">Node.js</a> (at least the\nversion that ships with the current <a href=\"https://electronjs.org\" rel=\"nofollow\">Electron</a>\nrelease) and all requirements needed to use\n<a href=\"https://www.npmjs.com/package/node-gyp\" rel=\"nofollow\"><code>node-gyp</code></a> on your platform.</p>\n<p dir=\"auto\">Finally, clone <a href=\"https://github.com/tropy/tropy.git\">this repository</a> and\ninstall all of Tropy's dependencies:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm install\n$ npm run rebuild -- --force\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm install\n$ npm run rebuild -- --force\n</code></pre></div>\n<p dir=\"auto\">To test that everything is set up correctly, run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm test\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm test\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-creating-builds\" class=\"anchor\" aria-hidden=\"true\" href=\"#creating-builds\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Creating Builds</h2>\n<p dir=\"auto\">To create a dev-build for your current platform run <code>npm run build</code> at the\nroot of the repository. This will create a dev-build of Tropy in the <code>dist</code>\nfolder.</p>\n<h2 dir=\"auto\"><a id=\"user-content-running-in-dev-mode\" class=\"anchor\" aria-hidden=\"true\" href=\"#running-in-dev-mode\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running in Dev-Mode</h2>\n<p dir=\"auto\">Alternatively, you can start Tropy in dev-mode directly from the root of the\nrepository, by running <code>npm start</code>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.360Z" }, "translatium": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-translatium-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webcatalog/translatium-desktop/blob/master/#translatium-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Translatium <a href=\"https://github.com/webcatalog/translatium-desktop/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/3084759be956bac908efca9e9d5e1923cdba04dc02bcbddb476f207cd92f74d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d504c253230322e302d627269676874677265656e2e737667\" alt=\"License: MPL 2.0\" data-canonical-src=\"https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg\" style=\"max-width: 100%;\"></a></h1>\n<h2 dir=\"auto\"><a id=\"user-content-archived\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webcatalog/translatium-desktop/blob/master/#archived\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Archived</h2>\n<p dir=\"auto\">This repository is archived. To help us better improve the product and protect our intellectual assets, Translatium's development has been moved to a <strong>closed source</strong> universal code base that runs across macOS, Windows, Linux, Android, iOS and iPadOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-introduction\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webcatalog/translatium-desktop/blob/master/#introduction\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Introduction</h2>\n<table>\n<thead>\n<tr>\n<th>macOS</th>\n<th>Linux</th>\n<th>Windows</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://github.com/quanglam2807/translatium/actions\"><img src=\"https://github.com/quanglam2807/translatium/workflows/macOS/badge.svg\" alt=\"GitHub Actions Build Status\" style=\"max-width: 100%;\"></a></td>\n<td><a href=\"https://github.com/quanglam2807/translatium/actions\"><img src=\"https://github.com/quanglam2807/translatium/workflows/Linux/badge.svg\" alt=\"GitHub Actions Build Status\" style=\"max-width: 100%;\"></a></td>\n<td><a href=\"https://github.com/quanglam2807/translatium/actions\"><img src=\"https://github.com/quanglam2807/translatium/workflows/Windows/badge.svg\" alt=\"GitHub Actions Build Status\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">The legacy code of <strong><a href=\"https://webcatalog.io/translatium/\" rel=\"nofollow\">Translatium</a></strong> for desktop (version 20 and earlier).</p>\n<p dir=\"auto\"><strong>master</strong> branch only includes the source code of Translatium 9+. For older versions, check out the <strong>legacy-</strong> branches.</p>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webcatalog/translatium-desktop/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# First, clone the project:\ngit clone https://github.com/quanglam2807/translatium.git\ncd translatium\n\n# set API keys\nexport REACT_APP_OCR_SPACE_API_KEY=...\n\n# install the dependencies\nyarn\n\n# Run development mode of Translatium\nyarn electron-dev\n\n# Build for production\nyarn dist\"><pre class=\"notranslate\"><code class=\"notranslate\"># First, clone the project:\ngit clone https://github.com/quanglam2807/translatium.git\ncd translatium\n\n# set API keys\nexport REACT_APP_OCR_SPACE_API_KEY=...\n\n# install the dependencies\nyarn\n\n# Run development mode of Translatium\nyarn electron-dev\n\n# Build for production\nyarn dist\n</code></pre></div>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-translatium-\" class=\"anchor\" aria-hidden=\"true\" href=\"#translatium-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Translatium <a href=\"LICENSE\"><img src=\"https://camo.githubusercontent.com/3084759be956bac908efca9e9d5e1923cdba04dc02bcbddb476f207cd92f74d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d504c253230322e302d627269676874677265656e2e737667\" alt=\"License: MPL 2.0\" data-canonical-src=\"https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg\" style=\"max-width: 100%;\"></a></h1>\n<h2 dir=\"auto\"><a id=\"user-content-archived\" class=\"anchor\" aria-hidden=\"true\" href=\"#archived\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Archived</h2>\n<p dir=\"auto\">This repository is archived. To help us better improve the product and protect our intellectual assets, Translatium's development has been moved to a <strong>closed source</strong> universal code base that runs across macOS, Windows, Linux, Android, iOS and iPadOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-introduction\" class=\"anchor\" aria-hidden=\"true\" href=\"#introduction\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Introduction</h2>\n<table>\n<thead>\n<tr>\n<th>macOS</th>\n<th>Linux</th>\n<th>Windows</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"https://github.com/quanglam2807/translatium/actions\"><img src=\"https://github.com/quanglam2807/translatium/workflows/macOS/badge.svg\" alt=\"GitHub Actions Build Status\" style=\"max-width: 100%;\"></a></td>\n<td><a href=\"https://github.com/quanglam2807/translatium/actions\"><img src=\"https://github.com/quanglam2807/translatium/workflows/Linux/badge.svg\" alt=\"GitHub Actions Build Status\" style=\"max-width: 100%;\"></a></td>\n<td><a href=\"https://github.com/quanglam2807/translatium/actions\"><img src=\"https://github.com/quanglam2807/translatium/workflows/Windows/badge.svg\" alt=\"GitHub Actions Build Status\" style=\"max-width: 100%;\"></a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">The legacy code of <strong><a href=\"https://webcatalog.io/translatium/\" rel=\"nofollow\">Translatium</a></strong> for desktop (version 20 and earlier).</p>\n<p dir=\"auto\"><strong>master</strong> branch only includes the source code of Translatium 9+. For older versions, check out the <strong>legacy-</strong> branches.</p>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# First, clone the project:\ngit clone https://github.com/quanglam2807/translatium.git\ncd translatium\n\n# set API keys\nexport REACT_APP_OCR_SPACE_API_KEY=...\n\n# install the dependencies\nyarn\n\n# Run development mode of Translatium\nyarn electron-dev\n\n# Build for production\nyarn dist\"><pre class=\"notranslate\"><code class=\"notranslate\"># First, clone the project:\ngit clone https://github.com/quanglam2807/translatium.git\ncd translatium\n\n# set API keys\nexport REACT_APP_OCR_SPACE_API_KEY=...\n\n# install the dependencies\nyarn\n\n# Run development mode of Translatium\nyarn electron-dev\n\n# Build for production\nyarn dist\n</code></pre></div>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.526Z" }, "ttth": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/yafp/ttth/blob/master/#\"><img src=\"https://raw.githubusercontent.com/yafp/ttth/master/.github/images/logo/256x256.png\" width=\"256\" style=\"max-width: 100%;\"></a>\n <h1 dir=\"auto\"><a id=\"user-content-ttth\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#ttth\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ttth</h1>\n<p dir=\"auto\">available for:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/linux_32x32.png\"><img src=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/linux_32x32.png\" alt=\"linux\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/apple_32x32.png\"><img src=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/apple_32x32.png\" alt=\"apple\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/windows_32x32.png\"><img src=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/windows_32x32.png\" alt=\"windows\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"https://deepscan.io/dashboard#view=project&tid=8831&pid=11093&bid=161122\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/2362baf6a4748577c43e34de7726953672aadc86577932a687b86c55bed644dd/68747470733a2f2f646565707363616e2e696f2f6170692f7465616d732f383833312f70726f6a656374732f31313039332f6272616e636865732f3136313132322f62616467652f67726164652e737667\" alt=\"DeepScan grade\" data-canonical-src=\"https://deepscan.io/api/teams/8831/projects/11093/branches/161122/badge/grade.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.codacy.com/app/yafp/ttth?utm_source=github.com&utm_medium=referral&utm_content=yafp/ttth&utm_campaign=Badge_Grade\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/022d3a2b08ce80373e5342628fb4aec93a7106acdba6848080229b27ef28425c/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3634613832633264313536663431633162373534333166623664613163363933\" alt=\"Codacy Badge\" data-canonical-src=\"https://api.codacy.com/project/badge/Grade/64a82c2d156f41c1b75431fb6da1c693\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/1da3aa921452baca4e3d7e58f63020baee08fc913c534182293a185919ba72ea/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/1da3aa921452baca4e3d7e58f63020baee08fc913c534182293a185919ba72ea/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Current Release\" data-canonical-src=\"https://img.shields.io/github/release/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/5efd69f6e7a6b0adc2a5ee4ff58f2925c09519d113ad0b520762eb2007dbaccf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/5efd69f6e7a6b0adc2a5ee4ff58f2925c09519d113ad0b520762eb2007dbaccf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Release Date\" data-canonical-src=\"https://img.shields.io/github/release-date/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0450d077f5e767da9eaf97135053e734e139c7471f95c188be049c12a8366cb9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f796166702f747474682f746f74616c2e737667\"><img src=\"https://camo.githubusercontent.com/0450d077f5e767da9eaf97135053e734e139c7471f95c188be049c12a8366cb9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f796166702f747474682f746f74616c2e737667\" alt=\"GitHub Download All releases\" data-canonical-src=\"https://img.shields.io/github/downloads/yafp/ttth/total.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/7b336a7f398fef7c9ecd38b428f87f4165cb1041f07ce3c0786aa2af1328fae2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/7b336a7f398fef7c9ecd38b428f87f4165cb1041f07ce3c0786aa2af1328fae2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Last Commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/eeffb6c4372dc9e3e523bf5853222cc852fa152f629c55b90b4f6e26c5f21c37/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/eeffb6c4372dc9e3e523bf5853222cc852fa152f629c55b90b4f6e26c5f21c37/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Issues Open\" data-canonical-src=\"https://img.shields.io/github/issues-raw/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/yafp/ttth/graphs/contributors/\"><img src=\"https://camo.githubusercontent.com/969571bf6dde85ff0e6fadb6fdae48aa947fc59b142f934a5493d16e8c886727/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f796166702f747474682e737667\" alt=\"GitHub contributors\" data-canonical-src=\"https://img.shields.io/github/contributors/yafp/ttth.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/yafp/ttth/pulls?q=is:pr+is:merged\"><img src=\"https://camo.githubusercontent.com/ca0f9cc55df7e4558eeb0f61cd0fb3c9b737a8f5204dfa425afbe0939a01ed50/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722d636c6f7365642d7261772f796166702f747474682e7376673f6c6162656c3d6d65726765642b505273\" alt=\"Merged PRs\" data-canonical-src=\"https://img.shields.io/github/issues-pr-closed-raw/yafp/ttth.svg?label=merged+PRs\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/5265be246186d132f4518493811b793d74c7c8f1181a316655122480e7fab424/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f796166702f747474682e737667\"><img src=\"https://camo.githubusercontent.com/5265be246186d132f4518493811b793d74c7c8f1181a316655122480e7fab424/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f796166702f747474682e737667\" alt=\"GitHub License\" data-canonical-src=\"https://img.shields.io/github/license/yafp/ttth.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://yafp.github.io/ttth/\" rel=\"nofollow\"><img src=\"https://github.com/yafp/ttth/workflows/jsdoc/badge.svg\" alt=\"jsDoc\" style=\"max-width: 100%;\"></a></p>\n</div>\n<h1 dir=\"auto\"><a id=\"user-content-about\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#about\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>about</h1>\n<p dir=\"auto\"><strong>ttth</strong> (talk to the hand) is an electron based desktop app for online services like WhatsApp, Threema, Telegram, Google and several others.</p>\n<p dir=\"auto\">It is:</p>\n<ul dir=\"auto\">\n<li>available for <em>freebsd</em>, <em>linux</em>, <em>macOS</em> and <em>windows</em>.</li>\n<li>inspired by apps like <a href=\"https://github.com/meetfranz/franz\">Franz</a> and <a href=\"https://github.com/ramboxapp/community-edition\">Rambox</a>. Need to feature <a href=\"https://github.com/TheGoddessInari/hamsket\">Hamsket</a> here as good looking Rambox fork and <a href=\"https://github.com/getferdi/ferdi\">Ferdi</a> as Franz fork.</li>\n<li>free and open source</li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>getting-started</h1>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>download</h2>\n<p dir=\"auto\">Download the latest release from <a href=\"https://github.com/yafp/ttth/releases\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>install</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/yafp/ttth/blob/master/docs/INSTALL.md\">installation instructions</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-services\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#services\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>services</h2>\n<p dir=\"auto\">While <strong>ttth</strong> supports a growing list of pre-configured services, you can as well add custom urls yourself (using the CUSTOM URL type).\nPlease see the supported <a href=\"https://github.com/yafp/ttth/blob/master/docs/SERVICES.md\">services</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-ui\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#ui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ui</h2>\n<p dir=\"auto\"><strong>ttth</strong> comes with several themes. This readme is only featuring the default theme.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/ttth/master/.github/images/screenshots/ui_latest.png\"><img src=\"https://raw.githubusercontent.com/yafp/ttth/master/.github/images/screenshots/ui_latest.png\" alt=\"ui\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><em>Default theme</em></p>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/yafp/ttth/blob/master/docs/THEMES.md\">themes list</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-changelog\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#changelog\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>changelog</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/yafp/ttth/blob/master/docs/CHANGELOG.md\">changlog</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>keyboard-shortcuts</h2>\n<table>\n<thead>\n<tr>\n<th>Function</th>\n<th>Linux</th>\n<th>macOS</th>\n<th>Windows</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Homepage</td>\n<td><kbd>F1</kbd></td>\n<td><kbd>F1</kbd></td>\n<td><kbd>F1</kbd></td>\n</tr>\n<tr>\n<td>Report issue</td>\n<td><kbd>F2</kbd></td>\n<td><kbd>F2</kbd></td>\n<td><kbd>F2</kbd></td>\n</tr>\n<tr>\n<td>Changelog</td>\n<td><kbd>F3</kbd></td>\n<td><kbd>F3</kbd></td>\n<td><kbd>F3</kbd></td>\n</tr>\n<tr>\n<td>FAQ</td>\n<td><kbd>F4</kbd></td>\n<td><kbd>F4</kbd></td>\n<td><kbd>F4</kbd></td>\n</tr>\n<tr>\n<td>Releases</td>\n<td><kbd>F5</kbd></td>\n<td><kbd>F5</kbd></td>\n<td><kbd>F5</kbd></td>\n</tr>\n<tr>\n<td>Search updates</td>\n<td><kbd>F9</kbd></td>\n<td><kbd>F9</kbd></td>\n<td><kbd>F9</kbd></td>\n</tr>\n<tr>\n<td>Open developer console for current service</td>\n<td><kbd>F10</kbd></td>\n<td><kbd>F10</kbd></td>\n<td><kbd>F10</kbd></td>\n</tr>\n<tr>\n<td>Toggle Fullscreen mode</td>\n<td><kbd>F11</kbd></td>\n<td><kbd>F11</kbd></td>\n<td><kbd>F11</kbd></td>\n</tr>\n<tr>\n<td>Toggle developer console</td>\n<td><kbd>F12</kbd></td>\n<td><kbd>F12</kbd></td>\n<td><kbd>F12</kbd></td>\n</tr>\n<tr>\n<td>Show Settings</td>\n<td><kbd>CTRL</kbd> + <kbd>,</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>,</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>,</kbd></td>\n</tr>\n<tr>\n<td>Jump to next service</td>\n<td><kbd>CTRL</kbd> + <kbd>🡆</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>🡆</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>🡆</kbd></td>\n</tr>\n<tr>\n<td>Jump to previous service</td>\n<td><kbd>CTRL</kbd> + <kbd>🡄</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>🡄</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>🡄</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 1</td>\n<td><kbd>CTRL</kbd> + <kbd>1</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>1</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>1</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 2</td>\n<td><kbd>CTRL</kbd> + <kbd>2</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>2</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>2</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 3</td>\n<td><kbd>CTRL</kbd> + <kbd>3</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>3</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>3</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab ...</td>\n<td><kbd>CTRL</kbd> + <kbd>...</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>...</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>...</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 9</td>\n<td><kbd>CTRL</kbd> + <kbd>9</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>9</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>9</kbd></td>\n</tr>\n<tr>\n<td>Reload current service</td>\n<td><kbd>CTRL</kbd> + <kbd>S</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>S</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Quit/exit the application</td>\n<td><kbd>CTRL</kbd> + <kbd>Q</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>Q</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>Q</kbd></td>\n</tr>\n<tr>\n<td>Reload the application</td>\n<td><kbd>CTRL</kbd> + <kbd>R</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>R</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>R</kbd></td>\n</tr>\n<tr>\n<td>Minimize window</td>\n<td><kbd>CTRL</kbd> + <kbd>M</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>M</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>M</kbd></td>\n</tr>\n<tr>\n<td>Maximize window</td>\n<td><kbd>CTRL</kbd> + <kbd>K</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>K</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Hide window</td>\n<td><kbd>CTRL</kbd> + <kbd>H</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>H</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>H</kbd></td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-privacy\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#privacy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>privacy</h2>\n<ul dir=\"auto\">\n<li><strong>ttth</strong> is using <a href=\"https://sentry.io\" rel=\"nofollow\">sentry</a> to collect error reports. This helps heavily finding bugs which might occur only in some specific use-cases. Please see the <a href=\"https://sentry.io/privacy/\" rel=\"nofollow\">sentry privacy policy</a> for more details.</li>\n<li><strong>ttth</strong> is not tracking it's users (i.e. using Google Analytics or similar)</li>\n<li>All data is stored locally only.</li>\n<li>Sessions will persist using the <a href=\"https://electronjs.org/docs/api/webview-tag#partition\" rel=\"nofollow\">partition:persist</a> attribute for electrons webview.</li>\n</ul>\n<p dir=\"auto\">You are always welcome to check and even improve the code.</p>\n<h2 dir=\"auto\"><a id=\"user-content-faq\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#faq\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>faq</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/yafp/ttth/blob/master/docs/FAQ.md\">FAQ</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-known-issues\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#known-issues\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>known-issues</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/yafp/ttth/blob/master/docs/KNOWN_ISSUES.md\">known issues</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-discussion\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#discussion\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>discussion</h2>\n<ul dir=\"auto\">\n<li>Github: click <a href=\"https://github.com/yafp/ttth/issues\">here</a> to create an issue</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>license</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/yafp/ttth/blob/master/LICENSE\">LICENSE</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-disclosure\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#disclosure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>disclosure</h2>\n<p dir=\"auto\"><strong>ttth</strong> is not affiliated with any of the supported apps/services.</p>\n<h2 dir=\"auto\"><a id=\"user-content-support--fund\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#support--fund\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>support / fund</h2>\n<p dir=\"auto\">If you want to support the development of <strong>ttth</strong> you can fund me on:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/sponsors/yafp\">github</a></li>\n<li><a href=\"https://www.patreon.com/yafp\" rel=\"nofollow\">patreon</a></li>\n</ul>\n<hr>\n<h1 dir=\"auto\"><a id=\"user-content-developers\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yafp/ttth/blob/master/#developers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>developers</h1>\n<ul dir=\"auto\">\n<li>Please see the <a href=\"https://github.com/yafp/ttth/blob/master/docs/CONTRIBUTING.md\">contributing informations</a> for more details.</li>\n<li>A list of all contributors can be found <a href=\"https://github.com/yafp/ttth/blob/master/docs/CONTRIBUTORS.md\">here</a>.</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div align=\"center\" dir=\"auto\">\n <a href=\"#\"><img src=\"https://raw.githubusercontent.com/yafp/ttth/master/.github/images/logo/256x256.png\" width=\"256\" style=\"max-width: 100%;\"></a>\n <h1 dir=\"auto\"><a id=\"user-content-ttth\" class=\"anchor\" aria-hidden=\"true\" href=\"#ttth\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ttth</h1>\n<p dir=\"auto\">available for:</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/linux_32x32.png\"><img src=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/linux_32x32.png\" alt=\"linux\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/apple_32x32.png\"><img src=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/apple_32x32.png\" alt=\"apple\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/windows_32x32.png\"><img src=\"https://raw.githubusercontent.com/yafp/media-dupes/master/.github/images/platform/windows_32x32.png\" alt=\"windows\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a href=\"https://deepscan.io/dashboard#view=project&tid=8831&pid=11093&bid=161122\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/2362baf6a4748577c43e34de7726953672aadc86577932a687b86c55bed644dd/68747470733a2f2f646565707363616e2e696f2f6170692f7465616d732f383833312f70726f6a656374732f31313039332f6272616e636865732f3136313132322f62616467652f67726164652e737667\" alt=\"DeepScan grade\" data-canonical-src=\"https://deepscan.io/api/teams/8831/projects/11093/branches/161122/badge/grade.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.codacy.com/app/yafp/ttth?utm_source=github.com&utm_medium=referral&utm_content=yafp/ttth&utm_campaign=Badge_Grade\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/022d3a2b08ce80373e5342628fb4aec93a7106acdba6848080229b27ef28425c/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3634613832633264313536663431633162373534333166623664613163363933\" alt=\"Codacy Badge\" data-canonical-src=\"https://api.codacy.com/project/badge/Grade/64a82c2d156f41c1b75431fb6da1c693\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/1da3aa921452baca4e3d7e58f63020baee08fc913c534182293a185919ba72ea/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/1da3aa921452baca4e3d7e58f63020baee08fc913c534182293a185919ba72ea/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Current Release\" data-canonical-src=\"https://img.shields.io/github/release/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/5efd69f6e7a6b0adc2a5ee4ff58f2925c09519d113ad0b520762eb2007dbaccf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/5efd69f6e7a6b0adc2a5ee4ff58f2925c09519d113ad0b520762eb2007dbaccf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Release Date\" data-canonical-src=\"https://img.shields.io/github/release-date/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0450d077f5e767da9eaf97135053e734e139c7471f95c188be049c12a8366cb9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f796166702f747474682f746f74616c2e737667\"><img src=\"https://camo.githubusercontent.com/0450d077f5e767da9eaf97135053e734e139c7471f95c188be049c12a8366cb9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f796166702f747474682f746f74616c2e737667\" alt=\"GitHub Download All releases\" data-canonical-src=\"https://img.shields.io/github/downloads/yafp/ttth/total.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/7b336a7f398fef7c9ecd38b428f87f4165cb1041f07ce3c0786aa2af1328fae2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/7b336a7f398fef7c9ecd38b428f87f4165cb1041f07ce3c0786aa2af1328fae2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Last Commit\" data-canonical-src=\"https://img.shields.io/github/last-commit/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/eeffb6c4372dc9e3e523bf5853222cc852fa152f629c55b90b4f6e26c5f21c37/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f796166702f747474682e7376673f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/eeffb6c4372dc9e3e523bf5853222cc852fa152f629c55b90b4f6e26c5f21c37/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f796166702f747474682e7376673f7374796c653d666c6174\" alt=\"GitHub Issues Open\" data-canonical-src=\"https://img.shields.io/github/issues-raw/yafp/ttth.svg?style=flat\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/yafp/ttth/graphs/contributors/\"><img src=\"https://camo.githubusercontent.com/969571bf6dde85ff0e6fadb6fdae48aa947fc59b142f934a5493d16e8c886727/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f796166702f747474682e737667\" alt=\"GitHub contributors\" data-canonical-src=\"https://img.shields.io/github/contributors/yafp/ttth.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/yafp/ttth/pulls?q=is:pr+is:merged\"><img src=\"https://camo.githubusercontent.com/ca0f9cc55df7e4558eeb0f61cd0fb3c9b737a8f5204dfa425afbe0939a01ed50/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722d636c6f7365642d7261772f796166702f747474682e7376673f6c6162656c3d6d65726765642b505273\" alt=\"Merged PRs\" data-canonical-src=\"https://img.shields.io/github/issues-pr-closed-raw/yafp/ttth.svg?label=merged+PRs\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/5265be246186d132f4518493811b793d74c7c8f1181a316655122480e7fab424/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f796166702f747474682e737667\"><img src=\"https://camo.githubusercontent.com/5265be246186d132f4518493811b793d74c7c8f1181a316655122480e7fab424/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f796166702f747474682e737667\" alt=\"GitHub License\" data-canonical-src=\"https://img.shields.io/github/license/yafp/ttth.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://yafp.github.io/ttth/\" rel=\"nofollow\"><img src=\"https://github.com/yafp/ttth/workflows/jsdoc/badge.svg\" alt=\"jsDoc\" style=\"max-width: 100%;\"></a></p>\n</div>\n<h1 dir=\"auto\"><a id=\"user-content-about\" class=\"anchor\" aria-hidden=\"true\" href=\"#about\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>about</h1>\n<p dir=\"auto\"><strong>ttth</strong> (talk to the hand) is an electron based desktop app for online services like WhatsApp, Threema, Telegram, Google and several others.</p>\n<p dir=\"auto\">It is:</p>\n<ul dir=\"auto\">\n<li>available for <em>freebsd</em>, <em>linux</em>, <em>macOS</em> and <em>windows</em>.</li>\n<li>inspired by apps like <a href=\"https://github.com/meetfranz/franz\">Franz</a> and <a href=\"https://github.com/ramboxapp/community-edition\">Rambox</a>. Need to feature <a href=\"https://github.com/TheGoddessInari/hamsket\">Hamsket</a> here as good looking Rambox fork and <a href=\"https://github.com/getferdi/ferdi\">Ferdi</a> as Franz fork.</li>\n<li>free and open source</li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>getting-started</h1>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>download</h2>\n<p dir=\"auto\">Download the latest release from <a href=\"https://github.com/yafp/ttth/releases\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>install</h2>\n<p dir=\"auto\">Please see the <a href=\"docs/INSTALL.md\">installation instructions</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-services\" class=\"anchor\" aria-hidden=\"true\" href=\"#services\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>services</h2>\n<p dir=\"auto\">While <strong>ttth</strong> supports a growing list of pre-configured services, you can as well add custom urls yourself (using the CUSTOM URL type).\nPlease see the supported <a href=\"docs/SERVICES.md\">services</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-ui\" class=\"anchor\" aria-hidden=\"true\" href=\"#ui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ui</h2>\n<p dir=\"auto\"><strong>ttth</strong> comes with several themes. This readme is only featuring the default theme.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yafp/ttth/master/.github/images/screenshots/ui_latest.png\"><img src=\"https://raw.githubusercontent.com/yafp/ttth/master/.github/images/screenshots/ui_latest.png\" alt=\"ui\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><em>Default theme</em></p>\n<p dir=\"auto\">Please see the <a href=\"docs/THEMES.md\">themes list</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-changelog\" class=\"anchor\" aria-hidden=\"true\" href=\"#changelog\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>changelog</h2>\n<p dir=\"auto\">Please see the <a href=\"docs/CHANGELOG.md\">changlog</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>keyboard-shortcuts</h2>\n<table>\n<thead>\n<tr>\n<th>Function</th>\n<th>Linux</th>\n<th>macOS</th>\n<th>Windows</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Homepage</td>\n<td><kbd>F1</kbd></td>\n<td><kbd>F1</kbd></td>\n<td><kbd>F1</kbd></td>\n</tr>\n<tr>\n<td>Report issue</td>\n<td><kbd>F2</kbd></td>\n<td><kbd>F2</kbd></td>\n<td><kbd>F2</kbd></td>\n</tr>\n<tr>\n<td>Changelog</td>\n<td><kbd>F3</kbd></td>\n<td><kbd>F3</kbd></td>\n<td><kbd>F3</kbd></td>\n</tr>\n<tr>\n<td>FAQ</td>\n<td><kbd>F4</kbd></td>\n<td><kbd>F4</kbd></td>\n<td><kbd>F4</kbd></td>\n</tr>\n<tr>\n<td>Releases</td>\n<td><kbd>F5</kbd></td>\n<td><kbd>F5</kbd></td>\n<td><kbd>F5</kbd></td>\n</tr>\n<tr>\n<td>Search updates</td>\n<td><kbd>F9</kbd></td>\n<td><kbd>F9</kbd></td>\n<td><kbd>F9</kbd></td>\n</tr>\n<tr>\n<td>Open developer console for current service</td>\n<td><kbd>F10</kbd></td>\n<td><kbd>F10</kbd></td>\n<td><kbd>F10</kbd></td>\n</tr>\n<tr>\n<td>Toggle Fullscreen mode</td>\n<td><kbd>F11</kbd></td>\n<td><kbd>F11</kbd></td>\n<td><kbd>F11</kbd></td>\n</tr>\n<tr>\n<td>Toggle developer console</td>\n<td><kbd>F12</kbd></td>\n<td><kbd>F12</kbd></td>\n<td><kbd>F12</kbd></td>\n</tr>\n<tr>\n<td>Show Settings</td>\n<td><kbd>CTRL</kbd> + <kbd>,</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>,</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>,</kbd></td>\n</tr>\n<tr>\n<td>Jump to next service</td>\n<td><kbd>CTRL</kbd> + <kbd>🡆</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>🡆</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>🡆</kbd></td>\n</tr>\n<tr>\n<td>Jump to previous service</td>\n<td><kbd>CTRL</kbd> + <kbd>🡄</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>🡄</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>🡄</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 1</td>\n<td><kbd>CTRL</kbd> + <kbd>1</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>1</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>1</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 2</td>\n<td><kbd>CTRL</kbd> + <kbd>2</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>2</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>2</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 3</td>\n<td><kbd>CTRL</kbd> + <kbd>3</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>3</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>3</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab ...</td>\n<td><kbd>CTRL</kbd> + <kbd>...</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>...</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>...</kbd></td>\n</tr>\n<tr>\n<td>Jump to service tab 9</td>\n<td><kbd>CTRL</kbd> + <kbd>9</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>9</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>9</kbd></td>\n</tr>\n<tr>\n<td>Reload current service</td>\n<td><kbd>CTRL</kbd> + <kbd>S</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>S</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Quit/exit the application</td>\n<td><kbd>CTRL</kbd> + <kbd>Q</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>Q</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>Q</kbd></td>\n</tr>\n<tr>\n<td>Reload the application</td>\n<td><kbd>CTRL</kbd> + <kbd>R</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>R</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>R</kbd></td>\n</tr>\n<tr>\n<td>Minimize window</td>\n<td><kbd>CTRL</kbd> + <kbd>M</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>M</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>M</kbd></td>\n</tr>\n<tr>\n<td>Maximize window</td>\n<td><kbd>CTRL</kbd> + <kbd>K</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>K</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Hide window</td>\n<td><kbd>CTRL</kbd> + <kbd>H</kbd></td>\n<td><kbd>CMD</kbd> + <kbd>H</kbd></td>\n<td><kbd>CTRL</kbd> + <kbd>H</kbd></td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-privacy\" class=\"anchor\" aria-hidden=\"true\" href=\"#privacy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>privacy</h2>\n<ul dir=\"auto\">\n<li><strong>ttth</strong> is using <a href=\"https://sentry.io\" rel=\"nofollow\">sentry</a> to collect error reports. This helps heavily finding bugs which might occur only in some specific use-cases. Please see the <a href=\"https://sentry.io/privacy/\" rel=\"nofollow\">sentry privacy policy</a> for more details.</li>\n<li><strong>ttth</strong> is not tracking it's users (i.e. using Google Analytics or similar)</li>\n<li>All data is stored locally only.</li>\n<li>Sessions will persist using the <a href=\"https://electronjs.org/docs/api/webview-tag#partition\" rel=\"nofollow\">partition:persist</a> attribute for electrons webview.</li>\n</ul>\n<p dir=\"auto\">You are always welcome to check and even improve the code.</p>\n<h2 dir=\"auto\"><a id=\"user-content-faq\" class=\"anchor\" aria-hidden=\"true\" href=\"#faq\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>faq</h2>\n<p dir=\"auto\">Please see the <a href=\"docs/FAQ.md\">FAQ</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-known-issues\" class=\"anchor\" aria-hidden=\"true\" href=\"#known-issues\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>known-issues</h2>\n<p dir=\"auto\">Please see the <a href=\"docs/KNOWN_ISSUES.md\">known issues</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-discussion\" class=\"anchor\" aria-hidden=\"true\" href=\"#discussion\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>discussion</h2>\n<ul dir=\"auto\">\n<li>Github: click <a href=\"https://github.com/yafp/ttth/issues\">here</a> to create an issue</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>license</h2>\n<p dir=\"auto\">Please see the <a href=\"LICENSE\">LICENSE</a> for more details.</p>\n<h2 dir=\"auto\"><a id=\"user-content-disclosure\" class=\"anchor\" aria-hidden=\"true\" href=\"#disclosure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>disclosure</h2>\n<p dir=\"auto\"><strong>ttth</strong> is not affiliated with any of the supported apps/services.</p>\n<h2 dir=\"auto\"><a id=\"user-content-support--fund\" class=\"anchor\" aria-hidden=\"true\" href=\"#support--fund\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>support / fund</h2>\n<p dir=\"auto\">If you want to support the development of <strong>ttth</strong> you can fund me on:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/sponsors/yafp\">github</a></li>\n<li><a href=\"https://www.patreon.com/yafp\" rel=\"nofollow\">patreon</a></li>\n</ul>\n<hr>\n<h1 dir=\"auto\"><a id=\"user-content-developers\" class=\"anchor\" aria-hidden=\"true\" href=\"#developers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>developers</h1>\n<ul dir=\"auto\">\n<li>Please see the <a href=\"docs/CONTRIBUTING.md\">contributing informations</a> for more details.</li>\n<li>A list of all contributors can be found <a href=\"docs/CONTRIBUTORS.md\">here</a>.</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.571Z" }, "tunlookup": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-tunlookup\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/thephucit/tunlookup/blob/master/#tunlookup\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tunlookup</h1>\n<p dir=\"auto\">Translate selected text with a keystroke <a href=\"https://tunlookup.com\" rel=\"nofollow\">tunlookup.com</a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/dc33035f1ea2141dec7d57057d9697ecc7275b973c29140e72d0a2cebc30b6d7/68747470733a2f2f692e696d6775722e636f6d2f397075713246622e706e67\"><img src=\"https://camo.githubusercontent.com/dc33035f1ea2141dec7d57057d9697ecc7275b973c29140e72d0a2cebc30b6d7/68747470733a2f2f692e696d6775722e636f6d2f397075713246622e706e67\" alt=\"preview\" data-canonical-src=\"https://i.imgur.com/9puq2Fb.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/thephucit/tunlookup/blob/master/#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard shortcuts</h2>\n<p dir=\"auto\"><strong>Keyboard shortcuts 1</strong></p>\n<p dir=\"auto\">(Version 3.0.3 and earlier)</p>\n<p dir=\"auto\">Window: <strong>Ctrl + C</strong> <strong>Ctrl + Q</strong></p>\n<p dir=\"auto\">MacOS: <strong>⌘ + C</strong> <strong>⌘ + D</strong></p>\n<p dir=\"auto\"><strong>Keyboard shortcuts 2</strong></p>\n<p dir=\"auto\">(Version 3.0.4 onwards)</p>\n<p dir=\"auto\">Window: <strong>Ctrl + Q</strong></p>\n<p dir=\"auto\">MacOS: <strong>⌘ + D</strong></p>\n<p dir=\"auto\">From version <strong>3.0.4</strong> onwards, If you want to use <strong>Keyboard shortcuts 2</strong></p>\n<p dir=\"auto\">you must allow Tunlookup to control your computer (in Security & Privacy)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/310558f99414f4868e29719958d3d994af47814fc20961cd2b077b5bd21619fa/68747470733a2f2f692e696d6775722e636f6d2f725361656967712e706e67\"><img src=\"https://camo.githubusercontent.com/310558f99414f4868e29719958d3d994af47814fc20961cd2b077b5bd21619fa/68747470733a2f2f692e696d6775722e636f6d2f725361656967712e706e67\" alt=\"Setting\" data-canonical-src=\"https://i.imgur.com/rSaeigq.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-management-your-history\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/thephucit/tunlookup/blob/master/#management-your-history\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Management your history</h2>\n<p dir=\"auto\">You can add the translated word to your own dictionary and use it later.</p>\n<h2 dir=\"auto\"><a id=\"user-content-cross-platform\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/thephucit/tunlookup/blob/master/#cross-platform\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Cross-platform</h2>\n<p dir=\"auto\">Tunlookup works across operating systems. You can use it on MacOS, Windows.</p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/thephucit/tunlookup/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">You can manually download the latest release <a href=\"https://github.com/tun-application/Tunlookup/releases/\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-stakeholders\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/thephucit/tunlookup/blob/master/#stakeholders\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stakeholders</h2>\n<ul dir=\"auto\">\n<li>Project Owner: The Phuc</li>\n<li>Project Manager: The Phuc</li>\n<li>Developer: The Phuc</li>\n</ul>\n<p dir=\"auto\">MIT © ThePhuc\n<a href=\"https://www.facebook.com/Tunlookup\" rel=\"nofollow\">Facebook</a>\n<a href=\"https://github.com/thephucit/tunlookup/blob/master/mailto:thephuc1601@gmail.com\">Gmail</a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-tunlookup\" class=\"anchor\" aria-hidden=\"true\" href=\"#tunlookup\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tunlookup</h1>\n<p dir=\"auto\">Translate selected text with a keystroke <a href=\"https://tunlookup.com\" rel=\"nofollow\">tunlookup.com</a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/dc33035f1ea2141dec7d57057d9697ecc7275b973c29140e72d0a2cebc30b6d7/68747470733a2f2f692e696d6775722e636f6d2f397075713246622e706e67\"><img src=\"https://camo.githubusercontent.com/dc33035f1ea2141dec7d57057d9697ecc7275b973c29140e72d0a2cebc30b6d7/68747470733a2f2f692e696d6775722e636f6d2f397075713246622e706e67\" alt=\"preview\" data-canonical-src=\"https://i.imgur.com/9puq2Fb.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard shortcuts</h2>\n<p dir=\"auto\"><strong>Keyboard shortcuts 1</strong></p>\n<p dir=\"auto\">(Version 3.0.3 and earlier)</p>\n<p dir=\"auto\">Window: <strong>Ctrl + C</strong> <strong>Ctrl + Q</strong></p>\n<p dir=\"auto\">MacOS: <strong>⌘ + C</strong> <strong>⌘ + D</strong></p>\n<p dir=\"auto\"><strong>Keyboard shortcuts 2</strong></p>\n<p dir=\"auto\">(Version 3.0.4 onwards)</p>\n<p dir=\"auto\">Window: <strong>Ctrl + Q</strong></p>\n<p dir=\"auto\">MacOS: <strong>⌘ + D</strong></p>\n<p dir=\"auto\">From version <strong>3.0.4</strong> onwards, If you want to use <strong>Keyboard shortcuts 2</strong></p>\n<p dir=\"auto\">you must allow Tunlookup to control your computer (in Security & Privacy)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/310558f99414f4868e29719958d3d994af47814fc20961cd2b077b5bd21619fa/68747470733a2f2f692e696d6775722e636f6d2f725361656967712e706e67\"><img src=\"https://camo.githubusercontent.com/310558f99414f4868e29719958d3d994af47814fc20961cd2b077b5bd21619fa/68747470733a2f2f692e696d6775722e636f6d2f725361656967712e706e67\" alt=\"Setting\" data-canonical-src=\"https://i.imgur.com/rSaeigq.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-management-your-history\" class=\"anchor\" aria-hidden=\"true\" href=\"#management-your-history\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Management your history</h2>\n<p dir=\"auto\">You can add the translated word to your own dictionary and use it later.</p>\n<h2 dir=\"auto\"><a id=\"user-content-cross-platform\" class=\"anchor\" aria-hidden=\"true\" href=\"#cross-platform\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Cross-platform</h2>\n<p dir=\"auto\">Tunlookup works across operating systems. You can use it on MacOS, Windows.</p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">You can manually download the latest release <a href=\"https://github.com/tun-application/Tunlookup/releases/\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-stakeholders\" class=\"anchor\" aria-hidden=\"true\" href=\"#stakeholders\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stakeholders</h2>\n<ul dir=\"auto\">\n<li>Project Owner: The Phuc</li>\n<li>Project Manager: The Phuc</li>\n<li>Developer: The Phuc</li>\n</ul>\n<p dir=\"auto\">MIT © ThePhuc\n<a href=\"https://www.facebook.com/Tunlookup\" rel=\"nofollow\">Facebook</a>\n<a href=\"mailto:thephuc1601@gmail.com\">Gmail</a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.623Z" }, "trivia-desktop": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trivia-desktop\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Trivia-Bot-Discord/trivia-desktop.git/blob/master/#trivia-desktop\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trivia-Desktop</h1>\n<p dir=\"auto\">Trivia desktop is a fun and simple desktop app for playing trivia!</p>\n<p dir=\"auto\"><a href=\"https://snapcraft.io/trivia-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/ab077b20ad9938c23fbdac223ab101df5ed27329bbadbe7f98bfd62d5808f0a7/68747470733a2f2f736e617063726166742e696f2f7374617469632f696d616765732f6261646765732f656e2f736e61702d73746f72652d626c61636b2e737667\" alt=\"Get it from the Snap Store\" data-canonical-src=\"https://snapcraft.io/static/images/badges/en/snap-store-black.svg\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Trivia-Bot-Discord/trivia-desktop.git/blob/master/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h1>\n<p dir=\"auto\">You can install the app directly or locally.</p>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Download the installer (windows only):</p>\n<p dir=\"auto\">Download the installer <a href=\"https://github.com/gubareve/trivia-desktop/releases\">here</a>.</p>\n</li>\n<li>\n<p dir=\"auto\">Run from source:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/Trivia-Bot-Discord/trivia-desktop.git\ncd trivia-desktop\nnpm start\"><pre>git clone https://github.com/Trivia-Bot-Discord/trivia-desktop.git\n<span class=\"pl-c1\">cd</span> trivia-desktop\nnpm start</pre></div>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-images\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Trivia-Bot-Discord/trivia-desktop.git/blob/master/#images\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Images</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/7b4e37b34ce98b1c320de8e74b157ae2cb1dcd00449c93bcf37cb59cd7c0a08e/68747470733a2f2f692e696d6775722e636f6d2f69703930634d612e706e67\"><img src=\"https://camo.githubusercontent.com/7b4e37b34ce98b1c320de8e74b157ae2cb1dcd00449c93bcf37cb59cd7c0a08e/68747470733a2f2f692e696d6775722e636f6d2f69703930634d612e706e67\" alt=\"A sample question\" data-canonical-src=\"https://i.imgur.com/ip90cMa.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/fd5ed66c8db06fcf6dfe0f42fc6ecafec0e81ad20c9711b330fd01a8284d7fc3/68747470733a2f2f692e696d6775722e636f6d2f386a62744334712e706e67\"><img src=\"https://camo.githubusercontent.com/fd5ed66c8db06fcf6dfe0f42fc6ecafec0e81ad20c9711b330fd01a8284d7fc3/68747470733a2f2f692e696d6775722e636f6d2f386a62744334712e706e67\" alt=\"A sample question\" data-canonical-src=\"https://i.imgur.com/8jbtC4q.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/33e4495f28d4deaad435a77c8422bf7a89ea11b2deba1c1d937a7b14679446d6/68747470733a2f2f692e696d6775722e636f6d2f456b376d756e6f2e706e67\"><img src=\"https://camo.githubusercontent.com/33e4495f28d4deaad435a77c8422bf7a89ea11b2deba1c1d937a7b14679446d6/68747470733a2f2f692e696d6775722e636f6d2f456b376d756e6f2e706e67\" alt=\"A sample question\" data-canonical-src=\"https://i.imgur.com/Ek7muno.png\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-trivia-desktop\" class=\"anchor\" aria-hidden=\"true\" href=\"#trivia-desktop\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trivia-Desktop</h1>\n<p dir=\"auto\">Trivia desktop is a fun and simple desktop app for playing trivia!</p>\n<p dir=\"auto\"><a href=\"https://snapcraft.io/trivia-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/ab077b20ad9938c23fbdac223ab101df5ed27329bbadbe7f98bfd62d5808f0a7/68747470733a2f2f736e617063726166742e696f2f7374617469632f696d616765732f6261646765732f656e2f736e61702d73746f72652d626c61636b2e737667\" alt=\"Get it from the Snap Store\" data-canonical-src=\"https://snapcraft.io/static/images/badges/en/snap-store-black.svg\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h1>\n<p dir=\"auto\">You can install the app directly or locally.</p>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Download the installer (windows only):</p>\n<p dir=\"auto\">Download the installer <a href=\"https://github.com/gubareve/trivia-desktop/releases\">here</a>.</p>\n</li>\n<li>\n<p dir=\"auto\">Run from source:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/Trivia-Bot-Discord/trivia-desktop.git\ncd trivia-desktop\nnpm start\"><pre>git clone https://github.com/Trivia-Bot-Discord/trivia-desktop.git\n<span class=\"pl-c1\">cd</span> trivia-desktop\nnpm start</pre></div>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-images\" class=\"anchor\" aria-hidden=\"true\" href=\"#images\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Images</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/7b4e37b34ce98b1c320de8e74b157ae2cb1dcd00449c93bcf37cb59cd7c0a08e/68747470733a2f2f692e696d6775722e636f6d2f69703930634d612e706e67\"><img src=\"https://camo.githubusercontent.com/7b4e37b34ce98b1c320de8e74b157ae2cb1dcd00449c93bcf37cb59cd7c0a08e/68747470733a2f2f692e696d6775722e636f6d2f69703930634d612e706e67\" alt=\"A sample question\" data-canonical-src=\"https://i.imgur.com/ip90cMa.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/fd5ed66c8db06fcf6dfe0f42fc6ecafec0e81ad20c9711b330fd01a8284d7fc3/68747470733a2f2f692e696d6775722e636f6d2f386a62744334712e706e67\"><img src=\"https://camo.githubusercontent.com/fd5ed66c8db06fcf6dfe0f42fc6ecafec0e81ad20c9711b330fd01a8284d7fc3/68747470733a2f2f692e696d6775722e636f6d2f386a62744334712e706e67\" alt=\"A sample question\" data-canonical-src=\"https://i.imgur.com/8jbtC4q.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/33e4495f28d4deaad435a77c8422bf7a89ea11b2deba1c1d937a7b14679446d6/68747470733a2f2f692e696d6775722e636f6d2f456b376d756e6f2e706e67\"><img src=\"https://camo.githubusercontent.com/33e4495f28d4deaad435a77c8422bf7a89ea11b2deba1c1d937a7b14679446d6/68747470733a2f2f692e696d6775722e636f6d2f456b376d756e6f2e706e67\" alt=\"A sample question\" data-canonical-src=\"https://i.imgur.com/Ek7muno.png\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.658Z" }, "tusk": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content---tusk\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#--tusk\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/klaussinani/tusk/blob/master/docs/media/logo.png\"><img src=\"https://raw.githubusercontent.com/klaussinani/tusk/master/docs/media/logo.png\" width=\"18%\" style=\"max-width: 100%;\" crossorigin=\"\"></a><br>Tusk\n</h1>\n<h4 align=\"center\" dir=\"auto\"><a id=\"user-content---refined-evernote-desktop-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#--refined-evernote-desktop-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n Refined Evernote desktop app\n</h4>\n<div align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/klaussinani/tusk\">\n <img src=\"https://raw.githubusercontent.com/klaussinani/tusk/master/docs/media/note-navigation.gif\" alt=\"Tusk\" width=\"95%\" style=\"max-width: 100%;\" crossorigin=\"\">\n </a>\n</div>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://travis-ci.org/klaussinani/tusk\" rel=\"nofollow\">\n <img alt=\"Build Status\" src=\"https://camo.githubusercontent.com/c4da27cd31f7802b847b7a629fac69e076c209e54e77c89b8648623fdcd00b4c/68747470733a2f2f7472617669732d63692e6f72672f6b6c61757373696e616e692f7475736b2e7376673f6272616e63683d6d6173746572\" data-canonical-src=\"https://travis-ci.org/klaussinani/tusk.svg?branch=master\" style=\"max-width: 100%;\">\n </a>\n</p>\n<h2 dir=\"auto\"><a id=\"user-content-description\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Description</h2>\n<p dir=\"auto\">Tusk is an unofficial, featureful, open source, community-driven, free Evernote app used by people in more than <a href=\"https://snapcraft.io/tusk\" rel=\"nofollow\">140 countries</a>.</p>\n<p dir=\"auto\">Tusk is <a href=\"https://help.evernote.com/hc/en-us/articles/208313748-Evernote-on-Linux\" rel=\"nofollow\">indicated by Evernote</a> as an alternative client for Linux environments trusted by the open source community.</p>\n<p dir=\"auto\">You can now support the development process through <a href=\"https://github.com/sponsors/klaussinani\">GitHub Sponsors</a>.</p>\n<p dir=\"auto\">Come over to <a href=\"https://gitter.im/klaussinani/tusk\" rel=\"nofollow\">Gitter</a> or <a href=\"https://twitter.com/klaussinani\" rel=\"nofollow\">Twitter</a> to share your thoughts on the project.</p>\n<p dir=\"auto\">Visit the <a href=\"https://github.com/klaussinani/tusk/blob/master/contributing.md#translating-documentation\">contributing guidelines</a> to learn more on how to translate this document into more languages.</p>\n<p dir=\"auto\">You can find more apps <a href=\"https://github.com/klaussinani/tusk/blob/master/#related-apps\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-highlights\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#highlights\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Highlights</h2>\n<ul dir=\"auto\">\n<li>Black, Dark & Sepia Themes</li>\n<li>Focus, Compact & Auto-Night Modes</li>\n<li>Local & Global Customizable Keyboard Shortcuts</li>\n<li>Export Notes as PDF, HTML & Markdown Files</li>\n<li>Note Navigation</li>\n<li>Yinxiang Support</li>\n<li>Cross Platform</li>\n<li>Scalable Interface</li>\n<li>Update Notifications</li>\n<li>Drag and Drop Files</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#description\">Description</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#highlights\">Highlights</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#install\">Install</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#features\">Features</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#keyboard-shortcuts\">Keyboard Shortcuts</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#development\">Development</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#related-apps\">Related Apps</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#team\">Team</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#disclaimer\">Disclaimer</a></li>\n<li><a href=\"https://github.com/klaussinani/tusk/blob/master/#license\">License</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<h4 dir=\"auto\"><a id=\"user-content-github-releases\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#github-releases\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Github Releases</h4>\n<p dir=\"auto\">Head to the <a href=\"https://github.com/klaussinani/tusk/releases/latest\">releases</a> page and download the appropriate installer for your system.</p>\n<h4 dir=\"auto\"><a id=\"user-content-snapcraft\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#snapcraft\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Snapcraft</h4>\n<p dir=\"auto\">Ubuntu Linux users can directly install through <a href=\"https://snapcraft.io/tusk\" rel=\"nofollow\">Snapcraft</a> <code>snap install tusk</code></p>\n<h4 dir=\"auto\"><a id=\"user-content-homebrew\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#homebrew\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Homebrew</h4>\n<p dir=\"auto\">Macos users can directly install through <a href=\"https://caskroom.github.io/\" rel=\"nofollow\">Homebrew Cask</a> <code>brew cask install tusk</code></p>\n<h4 dir=\"auto\"><a id=\"user-content-note\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#note\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Note</h4>\n<p dir=\"auto\">The version available on <code>Homebrew Cask</code> may not be the latest, since unlike <code>Snapcraft</code>, it is not offically maintained. If that is the case, please consider downloading directly from the <a href=\"https://github.com/klaussinani/tusk/releases/latest\">Github releases</a> page.</p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<p dir=\"auto\">Visit the project <a href=\"https://klaussinani.github.io/tusk\" rel=\"nofollow\">homepage</a> to view all features in detail.</p>\n<ul dir=\"auto\">\n<li>Auto Night Mode - Press <kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>N</kbd> to allow Tusk to adjust to your environment.</li>\n<li>Black Theme - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>E</kbd>.</li>\n<li>Compact Mode - Downsize the window to enter the mode.</li>\n<li>Custom Shortcut Keys - Navigate to <code>~/.tusk.json</code> or press <kbd>Cmd/Ctrl</kbd> <kbd>.</kbd> to modify any shortcut key. To reset delete <code>~/.tusk.json</code> & restart the app.</li>\n<li>Dark Theme - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>D</kbd>.</li>\n<li>Drag & Drop Files - Attach files by dragging them to the app window.</li>\n<li>Export Notes as Markdown - Press <kbd>Cmd/Ctrl</kbd> <kbd>O</kbd> to save your notes as <code>Markdown</code> files.</li>\n<li>Export Notes as HTML - Press <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>H</kbd> to save your notes as <code>HTML</code> files.</li>\n<li>Export Notes as PDF - Press <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>E</kbd> to save your notes as <code>PDF</code> files.</li>\n<li>Focus Mode - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>K</kbd>.</li>\n<li>Global Shortcut Keys - Enable them by using the <code>File</code> > <code>Enable Global Shortcut Keys</code> option.</li>\n<li>Note Navigation - Navigate your notes by pressing <kbd>Cmd/Ctrl</kbd> <kbd>Tab</kbd> / <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>Tab</kbd> or jump directly to one by using <kbd>Cmd/Ctrl</kbd> <kbd>1</kbd> - <kbd>9</kbd>.</li>\n<li>Note Printing - Press <kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>P</kbd> to print your notes.</li>\n<li>Scalable Interface - Adjust the zooming factor by pressing <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>=</kbd> or <kbd>Cmd/Ctrl</kbd> <kbd>-</kbd>.</li>\n<li>Sepia Theme - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>G</kbd>.</li>\n<li>Update Notifications - Customize the apps update checking frequency.</li>\n<li>Yinxiang Support - Login to Yinxiang by using the <code>File</code> > <code>Switch to Yinxiang</code> option.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard Shortcuts</h2>\n<h3 dir=\"auto\"><a id=\"user-content-local-shortcut-keys\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#local-shortcut-keys\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Local Shortcut Keys</h3>\n<p dir=\"auto\">70+ local keyboard shortcuts. Toggle anything in a flash.</p>\n<details>\n<summary>View all the available local keyboard shortcuts.</summary>\n<br>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>Keys</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Activate Auto Night Mode</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>Add Link</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Add Shortcut</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Align Center</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>M</kbd></td>\n</tr>\n<tr>\n<td>Align Left</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>L</kbd></td>\n</tr>\n<tr>\n<td>Align Right</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>R</kbd></td>\n</tr>\n<tr>\n<td>Attach File</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>F</kbd></td>\n</tr>\n<tr>\n<td>Bold Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>B</kbd></td>\n</tr>\n<tr>\n<td>Bulleted List</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>.</kbd></td>\n</tr>\n<tr>\n<td>Change Font Size</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>1</kbd> - <kbd>6</kbd></td>\n</tr>\n<tr>\n<td>Code Block</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>L</kbd></td>\n</tr>\n<tr>\n<td>Decrease Indentation</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>M</kbd></td>\n</tr>\n<tr>\n<td>Delete Note</td>\n<td><kbd>Delete</kbd></td>\n</tr>\n<tr>\n<td>Edit Shortcut Keys</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>.</kbd></td>\n</tr>\n<tr>\n<td>Export Note as HTML</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>H</kbd></td>\n</tr>\n<tr>\n<td>Export Note as Markdown</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>O</kbd></td>\n</tr>\n<tr>\n<td>Export Note as PDF</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>E</kbd></td>\n</tr>\n<tr>\n<td>Increase Indentation</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Insert Date Stamp</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>;</kbd></td>\n</tr>\n<tr>\n<td>Insert Date-Time Stamp</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>;</kbd></td>\n</tr>\n<tr>\n<td>Insert from Drive</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>D</kbd></td>\n</tr>\n<tr>\n<td>Insert Horizontal Rule</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>-</kbd></td>\n</tr>\n<tr>\n<td>Italic Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>I</kbd></td>\n</tr>\n<tr>\n<td>Jump to Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>1</kbd> - <kbd>9</kbd></td>\n</tr>\n<tr>\n<td>Make Text Larger</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>=</kbd></td>\n</tr>\n<tr>\n<td>Make Text Smaller</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>-</kbd></td>\n</tr>\n<tr>\n<td>Navigate to Next Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Tab</kbd></td>\n</tr>\n<tr>\n<td>Navigate to Previews Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>Tab</kbd></td>\n</tr>\n<tr>\n<td>New Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>New Notebook</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>New Tag</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>T</kbd></td>\n</tr>\n<tr>\n<td>Numbered List</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>O</kbd></td>\n</tr>\n<tr>\n<td>Print Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>P</kbd></td>\n</tr>\n<tr>\n<td>Remove Formatting</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>Space</kbd></td>\n</tr>\n<tr>\n<td>Reset Zoom Level</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>0</kbd></td>\n</tr>\n<tr>\n<td>Return to Notes</td>\n<td><kbd>Esc</kbd></td>\n</tr>\n<tr>\n<td>Save Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Search Notes</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>F</kbd></td>\n</tr>\n<tr>\n<td>Set Always on Top</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>P</kbd></td>\n</tr>\n<tr>\n<td>Set Reminder</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>E</kbd></td>\n</tr>\n<tr>\n<td>Strikethrough Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>T</kbd></td>\n</tr>\n<tr>\n<td>Subscript Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>]</kbd></td>\n</tr>\n<tr>\n<td>Superscript Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>[</kbd></td>\n</tr>\n<tr>\n<td>Toggle Black Theme</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>E</kbd></td>\n</tr>\n<tr>\n<td>Toggle Checkbox</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd></td>\n</tr>\n<tr>\n<td>Toggle Dark Theme</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>D</kbd></td>\n</tr>\n<tr>\n<td>Toggle Focus Mode</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Toggle Notebooks</td>\n<td><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>Toggle Sepia Theme</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>G</kbd></td>\n</tr>\n<tr>\n<td>Toggle Settings</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>,</kbd></td>\n</tr>\n<tr>\n<td>Toggle Shortcuts</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Toggle Sidebar</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>\\</kbd></td>\n</tr>\n<tr>\n<td>Toggle Tags</td>\n<td><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd>T</kbd></td>\n</tr>\n<tr>\n<td>Toggle Window Menu</td>\n<td><kbd>Alt</kbd></td>\n</tr>\n<tr>\n<td>Underline Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>U</kbd></td>\n</tr>\n</tbody>\n</table>\n<br>\n</details>\n<h3 dir=\"auto\"><a id=\"user-content-global-shortcut-keys\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#global-shortcut-keys\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Global Shortcut Keys</h3>\n<p dir=\"auto\">Access Tusk at any moment from anywhere within your operating system. All global shortcuts can be customized to match your own preference through the configuration file <code>~/.tusk.json</code>.</p>\n<details>\n<summary>View all the available global keyboard shortcuts.</summary>\n<br>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>Global Shortcut</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Toggle Tusk Window</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>A</kbd></td>\n</tr>\n<tr>\n<td>Create New Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>C</kbd></td>\n</tr>\n<tr>\n<td>Search Notes</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>F</kbd></td>\n</tr>\n</tbody>\n</table>\n<br>\n</details>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<p dir=\"auto\">For more info on how to contribute to the project, please read the <a href=\"https://github.com/klaussinani/tusk/blob/master/contributing.md\">contributing guidelines</a>.</p>\n<ul dir=\"auto\">\n<li>Fork the repository and clone it to your machine</li>\n<li>Navigate to your local fork: <code>cd tusk</code></li>\n<li>Install the project dependencies: <code>npm install</code> or <code>yarn install</code></li>\n<li>Run Tusk on dev mode: <code>npm start</code> or <code>yarn start</code></li>\n<li>Lint code for errors: <code>npm test</code> or <code>yarn test</code></li>\n<li>Build binaries and installers: <code>npm run release</code> or <code>yarn release</code></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-related-apps\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#related-apps\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Related Apps</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/klaussinani/ao\">Ao</a> - Elegant Microsoft To-Do desktop app.</li>\n<li><a href=\"https://github.com/klaussinani/taskbook\">Taskbook</a> - Tasks, boards & notes for the command-line habitat.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-team\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#team\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Team</h2>\n<ul dir=\"auto\">\n<li>Klaus Sinani <a href=\"https://github.com/klaussinani\">(@klaussinani)</a></li>\n<li>Mario Sinani <a href=\"https://github.com/mariosinani\">(@mariosinani)</a></li>\n<li>Athan Gkanos <a href=\"https://github.com/athangkanos\">(@athangkanos)</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-disclaimer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#disclaimer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Disclaimer</h2>\n<p dir=\"auto\">Tusk is an unofficial, open source, third-party, community-driven, free app and is not affiliated in any way with Evernote.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/klaussinani/tusk/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://github.com/klaussinani/tusk/blob/master/license.md\">MIT</a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content---tusk\" class=\"anchor\" aria-hidden=\"true\" href=\"#--tusk\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"docs/media/logo.png\"><img src=\"docs/media/logo.png\" width=\"18%\" style=\"max-width: 100%;\"></a><br>Tusk\n</h1>\n<h4 align=\"center\" dir=\"auto\"><a id=\"user-content---refined-evernote-desktop-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#--refined-evernote-desktop-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n Refined Evernote desktop app\n</h4>\n<div align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/klaussinani/tusk\">\n <img src=\"docs/media/note-navigation.gif\" alt=\"Tusk\" width=\"95%\" style=\"max-width: 100%;\">\n </a>\n</div>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://travis-ci.org/klaussinani/tusk\" rel=\"nofollow\">\n <img alt=\"Build Status\" src=\"https://camo.githubusercontent.com/c4da27cd31f7802b847b7a629fac69e076c209e54e77c89b8648623fdcd00b4c/68747470733a2f2f7472617669732d63692e6f72672f6b6c61757373696e616e692f7475736b2e7376673f6272616e63683d6d6173746572\" data-canonical-src=\"https://travis-ci.org/klaussinani/tusk.svg?branch=master\" style=\"max-width: 100%;\">\n </a>\n</p>\n<h2 dir=\"auto\"><a id=\"user-content-description\" class=\"anchor\" aria-hidden=\"true\" href=\"#description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Description</h2>\n<p dir=\"auto\">Tusk is an unofficial, featureful, open source, community-driven, free Evernote app used by people in more than <a href=\"https://snapcraft.io/tusk\" rel=\"nofollow\">140 countries</a>.</p>\n<p dir=\"auto\">Tusk is <a href=\"https://help.evernote.com/hc/en-us/articles/208313748-Evernote-on-Linux\" rel=\"nofollow\">indicated by Evernote</a> as an alternative client for Linux environments trusted by the open source community.</p>\n<p dir=\"auto\">You can now support the development process through <a href=\"https://github.com/sponsors/klaussinani\">GitHub Sponsors</a>.</p>\n<p dir=\"auto\">Come over to <a href=\"https://gitter.im/klaussinani/tusk\" rel=\"nofollow\">Gitter</a> or <a href=\"https://twitter.com/klaussinani\" rel=\"nofollow\">Twitter</a> to share your thoughts on the project.</p>\n<p dir=\"auto\">Visit the <a href=\"https://github.com/klaussinani/tusk/blob/master/contributing.md#translating-documentation\">contributing guidelines</a> to learn more on how to translate this document into more languages.</p>\n<p dir=\"auto\">You can find more apps <a href=\"#related-apps\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-highlights\" class=\"anchor\" aria-hidden=\"true\" href=\"#highlights\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Highlights</h2>\n<ul dir=\"auto\">\n<li>Black, Dark & Sepia Themes</li>\n<li>Focus, Compact & Auto-Night Modes</li>\n<li>Local & Global Customizable Keyboard Shortcuts</li>\n<li>Export Notes as PDF, HTML & Markdown Files</li>\n<li>Note Navigation</li>\n<li>Yinxiang Support</li>\n<li>Cross Platform</li>\n<li>Scalable Interface</li>\n<li>Update Notifications</li>\n<li>Drag and Drop Files</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"#contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"#description\">Description</a></li>\n<li><a href=\"#highlights\">Highlights</a></li>\n<li><a href=\"#install\">Install</a></li>\n<li><a href=\"#features\">Features</a></li>\n<li><a href=\"#keyboard-shortcuts\">Keyboard Shortcuts</a></li>\n<li><a href=\"#development\">Development</a></li>\n<li><a href=\"#related-apps\">Related Apps</a></li>\n<li><a href=\"#team\">Team</a></li>\n<li><a href=\"#disclaimer\">Disclaimer</a></li>\n<li><a href=\"#license\">License</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<h4 dir=\"auto\"><a id=\"user-content-github-releases\" class=\"anchor\" aria-hidden=\"true\" href=\"#github-releases\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Github Releases</h4>\n<p dir=\"auto\">Head to the <a href=\"https://github.com/klaussinani/tusk/releases/latest\">releases</a> page and download the appropriate installer for your system.</p>\n<h4 dir=\"auto\"><a id=\"user-content-snapcraft\" class=\"anchor\" aria-hidden=\"true\" href=\"#snapcraft\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Snapcraft</h4>\n<p dir=\"auto\">Ubuntu Linux users can directly install through <a href=\"https://snapcraft.io/tusk\" rel=\"nofollow\">Snapcraft</a> <code>snap install tusk</code></p>\n<h4 dir=\"auto\"><a id=\"user-content-homebrew\" class=\"anchor\" aria-hidden=\"true\" href=\"#homebrew\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Homebrew</h4>\n<p dir=\"auto\">Macos users can directly install through <a href=\"https://caskroom.github.io/\" rel=\"nofollow\">Homebrew Cask</a> <code>brew cask install tusk</code></p>\n<h4 dir=\"auto\"><a id=\"user-content-note\" class=\"anchor\" aria-hidden=\"true\" href=\"#note\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Note</h4>\n<p dir=\"auto\">The version available on <code>Homebrew Cask</code> may not be the latest, since unlike <code>Snapcraft</code>, it is not offically maintained. If that is the case, please consider downloading directly from the <a href=\"https://github.com/klaussinani/tusk/releases/latest\">Github releases</a> page.</p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<p dir=\"auto\">Visit the project <a href=\"https://klaussinani.github.io/tusk\" rel=\"nofollow\">homepage</a> to view all features in detail.</p>\n<ul dir=\"auto\">\n<li>Auto Night Mode - Press <kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>N</kbd> to allow Tusk to adjust to your environment.</li>\n<li>Black Theme - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>E</kbd>.</li>\n<li>Compact Mode - Downsize the window to enter the mode.</li>\n<li>Custom Shortcut Keys - Navigate to <code>~/.tusk.json</code> or press <kbd>Cmd/Ctrl</kbd> <kbd>.</kbd> to modify any shortcut key. To reset delete <code>~/.tusk.json</code> & restart the app.</li>\n<li>Dark Theme - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>D</kbd>.</li>\n<li>Drag & Drop Files - Attach files by dragging them to the app window.</li>\n<li>Export Notes as Markdown - Press <kbd>Cmd/Ctrl</kbd> <kbd>O</kbd> to save your notes as <code>Markdown</code> files.</li>\n<li>Export Notes as HTML - Press <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>H</kbd> to save your notes as <code>HTML</code> files.</li>\n<li>Export Notes as PDF - Press <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>E</kbd> to save your notes as <code>PDF</code> files.</li>\n<li>Focus Mode - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>K</kbd>.</li>\n<li>Global Shortcut Keys - Enable them by using the <code>File</code> > <code>Enable Global Shortcut Keys</code> option.</li>\n<li>Note Navigation - Navigate your notes by pressing <kbd>Cmd/Ctrl</kbd> <kbd>Tab</kbd> / <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>Tab</kbd> or jump directly to one by using <kbd>Cmd/Ctrl</kbd> <kbd>1</kbd> - <kbd>9</kbd>.</li>\n<li>Note Printing - Press <kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>P</kbd> to print your notes.</li>\n<li>Scalable Interface - Adjust the zooming factor by pressing <kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>=</kbd> or <kbd>Cmd/Ctrl</kbd> <kbd>-</kbd>.</li>\n<li>Sepia Theme - Activate it by pressing <kbd>Cmd/Ctrl</kbd> <kbd>G</kbd>.</li>\n<li>Update Notifications - Customize the apps update checking frequency.</li>\n<li>Yinxiang Support - Login to Yinxiang by using the <code>File</code> > <code>Switch to Yinxiang</code> option.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard Shortcuts</h2>\n<h3 dir=\"auto\"><a id=\"user-content-local-shortcut-keys\" class=\"anchor\" aria-hidden=\"true\" href=\"#local-shortcut-keys\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Local Shortcut Keys</h3>\n<p dir=\"auto\">70+ local keyboard shortcuts. Toggle anything in a flash.</p>\n<details>\n<summary>View all the available local keyboard shortcuts.</summary>\n<br>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>Keys</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Activate Auto Night Mode</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>Add Link</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Add Shortcut</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Align Center</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>M</kbd></td>\n</tr>\n<tr>\n<td>Align Left</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>L</kbd></td>\n</tr>\n<tr>\n<td>Align Right</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>R</kbd></td>\n</tr>\n<tr>\n<td>Attach File</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>F</kbd></td>\n</tr>\n<tr>\n<td>Bold Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>B</kbd></td>\n</tr>\n<tr>\n<td>Bulleted List</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>.</kbd></td>\n</tr>\n<tr>\n<td>Change Font Size</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>1</kbd> - <kbd>6</kbd></td>\n</tr>\n<tr>\n<td>Code Block</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>L</kbd></td>\n</tr>\n<tr>\n<td>Decrease Indentation</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>M</kbd></td>\n</tr>\n<tr>\n<td>Delete Note</td>\n<td><kbd>Delete</kbd></td>\n</tr>\n<tr>\n<td>Edit Shortcut Keys</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>.</kbd></td>\n</tr>\n<tr>\n<td>Export Note as HTML</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>H</kbd></td>\n</tr>\n<tr>\n<td>Export Note as Markdown</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>O</kbd></td>\n</tr>\n<tr>\n<td>Export Note as PDF</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>E</kbd></td>\n</tr>\n<tr>\n<td>Increase Indentation</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Insert Date Stamp</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>;</kbd></td>\n</tr>\n<tr>\n<td>Insert Date-Time Stamp</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>;</kbd></td>\n</tr>\n<tr>\n<td>Insert from Drive</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>D</kbd></td>\n</tr>\n<tr>\n<td>Insert Horizontal Rule</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>-</kbd></td>\n</tr>\n<tr>\n<td>Italic Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>I</kbd></td>\n</tr>\n<tr>\n<td>Jump to Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>1</kbd> - <kbd>9</kbd></td>\n</tr>\n<tr>\n<td>Make Text Larger</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>=</kbd></td>\n</tr>\n<tr>\n<td>Make Text Smaller</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>-</kbd></td>\n</tr>\n<tr>\n<td>Navigate to Next Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Tab</kbd></td>\n</tr>\n<tr>\n<td>Navigate to Previews Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>Tab</kbd></td>\n</tr>\n<tr>\n<td>New Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>New Notebook</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>New Tag</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>T</kbd></td>\n</tr>\n<tr>\n<td>Numbered List</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>O</kbd></td>\n</tr>\n<tr>\n<td>Print Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>P</kbd></td>\n</tr>\n<tr>\n<td>Remove Formatting</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>Space</kbd></td>\n</tr>\n<tr>\n<td>Reset Zoom Level</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>0</kbd></td>\n</tr>\n<tr>\n<td>Return to Notes</td>\n<td><kbd>Esc</kbd></td>\n</tr>\n<tr>\n<td>Save Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Search Notes</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>F</kbd></td>\n</tr>\n<tr>\n<td>Set Always on Top</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>P</kbd></td>\n</tr>\n<tr>\n<td>Set Reminder</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>E</kbd></td>\n</tr>\n<tr>\n<td>Strikethrough Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>T</kbd></td>\n</tr>\n<tr>\n<td>Subscript Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>]</kbd></td>\n</tr>\n<tr>\n<td>Superscript Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>[</kbd></td>\n</tr>\n<tr>\n<td>Toggle Black Theme</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>E</kbd></td>\n</tr>\n<tr>\n<td>Toggle Checkbox</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd></td>\n</tr>\n<tr>\n<td>Toggle Dark Theme</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>D</kbd></td>\n</tr>\n<tr>\n<td>Toggle Focus Mode</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>K</kbd></td>\n</tr>\n<tr>\n<td>Toggle Notebooks</td>\n<td><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd>N</kbd></td>\n</tr>\n<tr>\n<td>Toggle Sepia Theme</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>G</kbd></td>\n</tr>\n<tr>\n<td>Toggle Settings</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>,</kbd></td>\n</tr>\n<tr>\n<td>Toggle Shortcuts</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Shift</kbd> <kbd>S</kbd></td>\n</tr>\n<tr>\n<td>Toggle Sidebar</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>\\</kbd></td>\n</tr>\n<tr>\n<td>Toggle Tags</td>\n<td><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd>T</kbd></td>\n</tr>\n<tr>\n<td>Toggle Window Menu</td>\n<td><kbd>Alt</kbd></td>\n</tr>\n<tr>\n<td>Underline Text</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>U</kbd></td>\n</tr>\n</tbody>\n</table>\n<br>\n</details>\n<h3 dir=\"auto\"><a id=\"user-content-global-shortcut-keys\" class=\"anchor\" aria-hidden=\"true\" href=\"#global-shortcut-keys\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Global Shortcut Keys</h3>\n<p dir=\"auto\">Access Tusk at any moment from anywhere within your operating system. All global shortcuts can be customized to match your own preference through the configuration file <code>~/.tusk.json</code>.</p>\n<details>\n<summary>View all the available global keyboard shortcuts.</summary>\n<br>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>Global Shortcut</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Toggle Tusk Window</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>A</kbd></td>\n</tr>\n<tr>\n<td>Create New Note</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>C</kbd></td>\n</tr>\n<tr>\n<td>Search Notes</td>\n<td><kbd>Cmd/Ctrl</kbd> <kbd>Alt</kbd> <kbd>F</kbd></td>\n</tr>\n</tbody>\n</table>\n<br>\n</details>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<p dir=\"auto\">For more info on how to contribute to the project, please read the <a href=\"https://github.com/klaussinani/tusk/blob/master/contributing.md\">contributing guidelines</a>.</p>\n<ul dir=\"auto\">\n<li>Fork the repository and clone it to your machine</li>\n<li>Navigate to your local fork: <code>cd tusk</code></li>\n<li>Install the project dependencies: <code>npm install</code> or <code>yarn install</code></li>\n<li>Run Tusk on dev mode: <code>npm start</code> or <code>yarn start</code></li>\n<li>Lint code for errors: <code>npm test</code> or <code>yarn test</code></li>\n<li>Build binaries and installers: <code>npm run release</code> or <code>yarn release</code></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-related-apps\" class=\"anchor\" aria-hidden=\"true\" href=\"#related-apps\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Related Apps</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/klaussinani/ao\">Ao</a> - Elegant Microsoft To-Do desktop app.</li>\n<li><a href=\"https://github.com/klaussinani/taskbook\">Taskbook</a> - Tasks, boards & notes for the command-line habitat.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-team\" class=\"anchor\" aria-hidden=\"true\" href=\"#team\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Team</h2>\n<ul dir=\"auto\">\n<li>Klaus Sinani <a href=\"https://github.com/klaussinani\">(@klaussinani)</a></li>\n<li>Mario Sinani <a href=\"https://github.com/mariosinani\">(@mariosinani)</a></li>\n<li>Athan Gkanos <a href=\"https://github.com/athangkanos\">(@athangkanos)</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-disclaimer\" class=\"anchor\" aria-hidden=\"true\" href=\"#disclaimer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Disclaimer</h2>\n<p dir=\"auto\">Tusk is an unofficial, open source, third-party, community-driven, free app and is not affiliated in any way with Evernote.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://github.com/klaussinani/tusk/blob/master/license.md\">MIT</a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.819Z" }, "tviewer": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-tviewer---tizen-log-viewer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#tviewer---tizen-log-viewer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>T.Viewer - Tizen Log Viewer</h1>\n<p dir=\"auto\"><a href=\"https://app.travis-ci.com/github/msaltnet/T.Viewer\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f79de3aae3c3f7733dd31849c604378b4916fa5ceea6c8af5b9bb1160ff09fb5/68747470733a2f2f7472617669732d63692e636f6d2f6d73616c746e65742f542e5669657765722e7376673f6272616e63683d6d6173746572267374796c653d666c61742d73717561726526636f6c6f72423d677265656e\" alt=\"Travis\" data-canonical-src=\"https://travis-ci.com/msaltnet/T.Viewer.svg?branch=master&style=flat-square&colorB=green\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/msaltnet/T.Viewer/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/48056df984f84bf282d812abb975767e8c0655415ebf889b8736a544c97e3490/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d73616c746e65742f542e5669657765722e7376673f7374796c653d666c61742d737175617265\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/msaltnet/T.Viewer.svg?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/668c62ec9ae9011b102bc554d883416830ad161f74cbff20b3fa517ecb0fe153/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f6d73616c746e65742f542e5669657765722e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d677265656e\"><img src=\"https://camo.githubusercontent.com/668c62ec9ae9011b102bc554d883416830ad161f74cbff20b3fa517ecb0fe153/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f6d73616c746e65742f542e5669657765722e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d677265656e\" alt=\"language\" data-canonical-src=\"https://img.shields.io/github/languages/top/msaltnet/T.Viewer.svg?style=flat-square&colorB=green\" style=\"max-width: 100%;\"></a>\n<a href=\"https://codecov.io/gh/msaltnet/T.Viewer\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e50f725c9d5d470ed6c19698d82f4530ed2a8131c5f5fcdcf5b0a72a447ab665/68747470733a2f2f636f6465636f762e696f2f67682f6d73616c746e65742f542e5669657765722f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d4133474d514c38323349\" alt=\"codecov\" data-canonical-src=\"https://codecov.io/gh/msaltnet/T.Viewer/branch/master/graph/badge.svg?token=A3GMQL823I\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Cross Platform <a href=\"https://www.tizen.org/\" rel=\"nofollow\">Tizen</a> Log Viewer T.Viewer를 소개합니다. <strong>타이젠의 <code>dlog</code> 메시지를 보다 쉽고 편하게 확인 할 수 있는 데스크탑 어플리케이션입니다.</strong> 사용중 불편 사항, 개선 의견, 버그 신고는 <a href=\"https://github.com/msaltnet/T.Viewer/issues\">이슈</a>를 생성해 주세요. 소스 코드는 MIT 라이센스로 모두에게 공개되어 있습니다.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/89435285-a35fbb80-d77f-11ea-9b78-02d1e29a2390.PNG\"><img src=\"https://user-images.githubusercontent.com/9311990/89435285-a35fbb80-d77f-11ea-9b78-02d1e29a2390.PNG\" alt=\"T.Viewer Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-설치하기\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#설치하기\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>설치하기</h2>\n<h3 dir=\"auto\"><a id=\"user-content-리눅스\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#리눅스\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>리눅스</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.AppImage</code> 다운로드 후 실행</p>\n<h3 dir=\"auto\"><a id=\"user-content-윈도우\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#윈도우\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>윈도우</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.exe</code> 다운로드 후 실행하여 설치 후 실행</p>\n<p dir=\"auto\"><a href=\"https://github.com/msaltnet/T.Viewer/wiki/%EC%A3%BC%EC%9A%94-%EA%B8%B0%EB%8A%A5-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95\">주요 기능 및 사용법</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-사용법\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#사용법\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>사용법</h2>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"exclamation\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2757.png\">❗</g-emoji> <strong>타겟 디바이스와의 SDB 연결을 먼저 확인하세요!</strong></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/89434866-0ac93b80-d77f-11ea-8edf-dcea680d6055.gif\"><img src=\"https://user-images.githubusercontent.com/9311990/89434866-0ac93b80-d77f-11ea-8edf-dcea680d6055.gif\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<ol dir=\"auto\">\n<li>Connection State Indicator\n<ul dir=\"auto\">\n<li>전원 스위치와 연계 동작</li>\n</ul>\n</li>\n<li>Log Level Filter\n<ul dir=\"auto\">\n<li>Verbose/Debug/Info/Warning/Error/Fatal</li>\n<li>선택된 level을 포함한 상위 level을 출력</li>\n<li>Log Level에 따른 다른 색상 출력</li>\n</ul>\n</li>\n<li>Tag Filter\n<ul dir=\"auto\">\n<li>일치하는 Tag를 출력</li>\n<li>정규식 지원</li>\n</ul>\n</li>\n<li>Message Filter\n<ul dir=\"auto\">\n<li>해당 메시지를 포함하는 로그 출력</li>\n<li>정규식 지원</li>\n</ul>\n</li>\n<li>Multi-Tab View\n<ul dir=\"auto\">\n<li>각각의 독립된 탭 뷰 제공</li>\n</ul>\n</li>\n<li>Setting\n<ul dir=\"auto\">\n<li>글자 크기 조절</li>\n<li>dlog 버퍼 삭제 후 실행</li>\n<li>dlog timestamp 출력</li>\n</ul>\n</li>\n<li>Shortcut\n<ul dir=\"auto\">\n<li>글자 크기 키우기 ctrl + +</li>\n<li>글자 크기 줄이기 ctrl + -</li>\n<li>자동 스크롤 ctrl + q</li>\n<li>줄바꿈 ctrl + w</li>\n<li>화면 지우기 ctrl + e</li>\n<li>메세지 수신 ctrl + space</li>\n</ul>\n</li>\n</ol>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/96146228-0a001300-0f41-11eb-821e-4a7d27862e9d.png\"><img src=\"https://user-images.githubusercontent.com/9311990/96146228-0a001300-0f41-11eb-821e-4a7d27862e9d.png\" alt=\"shortcut\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-프로젝트-참여-방법\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#프로젝트-참여-방법\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>프로젝트 참여 방법</h2>\n<p dir=\"auto\">다양한 방법으로 프로젝트에 참여가 가능합니다.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/issues\">이슈등록</a>을 해주셔도 되고, 등록된 이슈를 확인해 주셔도 됩니다.</li>\n<li><a href=\"https://github.com/msaltnet/T.Viewer/pulls\">등록 요청된 코드</a>을 코드 리뷰해 주셔도 됩니다.</li>\n</ul>\n<p dir=\"auto\">직접 코드를 수정하시고 싶으시다면, 아래 가이드를 참고해주세요.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/wiki/%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0\">빌드하기</a></li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/89435160-77443a80-d77f-11ea-8b32-338b8bdfbc3d.PNG\"><img src=\"https://user-images.githubusercontent.com/9311990/89435160-77443a80-d77f-11ea-8b32-338b8bdfbc3d.PNG\" alt=\"Test Result\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-라이센스\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#라이센스\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>라이센스</h2>\n<p dir=\"auto\">본 프로젝트는 <a href=\"https://github.com/msaltnet/T.Viewer/blob/master/LICENSE\">MIT 라이센스</a>의 오픈소스 프로젝트 입니다.</p>\n<h2 dir=\"auto\"><a id=\"user-content-eng-tviewer---tizen-log-viewer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#eng-tviewer---tizen-log-viewer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>(Eng) T.Viewer - Tizen Log Viewer</h2>\n<p dir=\"auto\">T.Viewer is open source cross-platform <a href=\"https://www.tizen.org/\" rel=\"nofollow\">Tizen</a> Log Viewer. <strong>It provides simple and easy way to view Tizen <code>dlog</code> message on desktop.</strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<h3 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.AppImage</code> download and run</p>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.exe</code> download and install\n<a href=\"https://github.com/msaltnet/T.Viewer/wiki/Features-and-User-Guide\">Features and User Guide</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-user-guide\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#user-guide\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>User Guide</h2>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"exclamation\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2757.png\">❗</g-emoji> Check SDB connection with target device first.</p>\n<ol dir=\"auto\">\n<li>Connection State Indicator\n<ul dir=\"auto\">\n<li>Connected also with power switch</li>\n</ul>\n</li>\n<li>Log Level Filter\n<ul dir=\"auto\">\n<li>Verbose/Debug/Info/Warning/Error/Fatal</li>\n<li>Output the upper level including the selected level</li>\n<li>Different color output according to log level</li>\n</ul>\n</li>\n<li>Tag Filter\n<ul dir=\"auto\">\n<li>Output matched tag log</li>\n<li>Regular expression support</li>\n</ul>\n</li>\n<li>Message Filter\n<ul dir=\"auto\">\n<li>Output log containing the message</li>\n<li>Regular expression support</li>\n</ul>\n</li>\n<li>Multi-Tab View\n<ul dir=\"auto\">\n<li>Independent filter option for each tab</li>\n</ul>\n</li>\n<li>Setting\n<ul dir=\"auto\">\n<li>Font size</li>\n<li>After clear dlog buffer</li>\n<li>dlog timestamp print</li>\n</ul>\n</li>\n<li>Shortcut\n<ul dir=\"auto\">\n<li>Font size up, ctrl + +</li>\n<li>Font size down, ctrl + -</li>\n<li>Auto Scroll, ctrl + q</li>\n<li>Soft wrap ctrl + w</li>\n<li>Clear tab, ctrl + e</li>\n<li>Listen log, ctrl + space</li>\n</ul>\n</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">There are many ways in which you can participate in the project, for example:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/issues\">Submit bugs and feature requests</a>, and help us verify as they are checked in</li>\n<li>Review source code changes</li>\n</ul>\n<p dir=\"auto\">If you are interested in fixing issues and contributing directly to the code base, please see the following:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/wiki/Build-and-Run\">Build and Run</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/msaltnet/T.Viewer/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Licensed under the MIT license.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-tviewer---tizen-log-viewer\" class=\"anchor\" aria-hidden=\"true\" href=\"#tviewer---tizen-log-viewer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>T.Viewer - Tizen Log Viewer</h1>\n<p dir=\"auto\"><a href=\"https://app.travis-ci.com/github/msaltnet/T.Viewer\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f79de3aae3c3f7733dd31849c604378b4916fa5ceea6c8af5b9bb1160ff09fb5/68747470733a2f2f7472617669732d63692e636f6d2f6d73616c746e65742f542e5669657765722e7376673f6272616e63683d6d6173746572267374796c653d666c61742d73717561726526636f6c6f72423d677265656e\" alt=\"Travis\" data-canonical-src=\"https://travis-ci.com/msaltnet/T.Viewer.svg?branch=master&style=flat-square&colorB=green\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/msaltnet/T.Viewer/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/48056df984f84bf282d812abb975767e8c0655415ebf889b8736a544c97e3490/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d73616c746e65742f542e5669657765722e7376673f7374796c653d666c61742d737175617265\" alt=\"license\" data-canonical-src=\"https://img.shields.io/github/license/msaltnet/T.Viewer.svg?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/668c62ec9ae9011b102bc554d883416830ad161f74cbff20b3fa517ecb0fe153/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f6d73616c746e65742f542e5669657765722e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d677265656e\"><img src=\"https://camo.githubusercontent.com/668c62ec9ae9011b102bc554d883416830ad161f74cbff20b3fa517ecb0fe153/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f6d73616c746e65742f542e5669657765722e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d677265656e\" alt=\"language\" data-canonical-src=\"https://img.shields.io/github/languages/top/msaltnet/T.Viewer.svg?style=flat-square&colorB=green\" style=\"max-width: 100%;\"></a>\n<a href=\"https://codecov.io/gh/msaltnet/T.Viewer\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e50f725c9d5d470ed6c19698d82f4530ed2a8131c5f5fcdcf5b0a72a447ab665/68747470733a2f2f636f6465636f762e696f2f67682f6d73616c746e65742f542e5669657765722f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d4133474d514c38323349\" alt=\"codecov\" data-canonical-src=\"https://codecov.io/gh/msaltnet/T.Viewer/branch/master/graph/badge.svg?token=A3GMQL823I\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Cross Platform <a href=\"https://www.tizen.org/\" rel=\"nofollow\">Tizen</a> Log Viewer T.Viewer를 소개합니다. <strong>타이젠의 <code>dlog</code> 메시지를 보다 쉽고 편하게 확인 할 수 있는 데스크탑 어플리케이션입니다.</strong> 사용중 불편 사항, 개선 의견, 버그 신고는 <a href=\"https://github.com/msaltnet/T.Viewer/issues\">이슈</a>를 생성해 주세요. 소스 코드는 MIT 라이센스로 모두에게 공개되어 있습니다.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/89435285-a35fbb80-d77f-11ea-9b78-02d1e29a2390.PNG\"><img src=\"https://user-images.githubusercontent.com/9311990/89435285-a35fbb80-d77f-11ea-9b78-02d1e29a2390.PNG\" alt=\"T.Viewer Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-설치하기\" class=\"anchor\" aria-hidden=\"true\" href=\"#설치하기\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>설치하기</h2>\n<h3 dir=\"auto\"><a id=\"user-content-리눅스\" class=\"anchor\" aria-hidden=\"true\" href=\"#리눅스\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>리눅스</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.AppImage</code> 다운로드 후 실행</p>\n<h3 dir=\"auto\"><a id=\"user-content-윈도우\" class=\"anchor\" aria-hidden=\"true\" href=\"#윈도우\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>윈도우</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.exe</code> 다운로드 후 실행하여 설치 후 실행</p>\n<p dir=\"auto\"><a href=\"https://github.com/msaltnet/T.Viewer/wiki/%EC%A3%BC%EC%9A%94-%EA%B8%B0%EB%8A%A5-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95\">주요 기능 및 사용법</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-사용법\" class=\"anchor\" aria-hidden=\"true\" href=\"#사용법\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>사용법</h2>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"exclamation\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2757.png\">❗</g-emoji> <strong>타겟 디바이스와의 SDB 연결을 먼저 확인하세요!</strong></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/89434866-0ac93b80-d77f-11ea-8edf-dcea680d6055.gif\"><img src=\"https://user-images.githubusercontent.com/9311990/89434866-0ac93b80-d77f-11ea-8edf-dcea680d6055.gif\" alt=\"\" style=\"max-width: 100%;\"></a></p>\n<ol dir=\"auto\">\n<li>Connection State Indicator\n<ul dir=\"auto\">\n<li>전원 스위치와 연계 동작</li>\n</ul>\n</li>\n<li>Log Level Filter\n<ul dir=\"auto\">\n<li>Verbose/Debug/Info/Warning/Error/Fatal</li>\n<li>선택된 level을 포함한 상위 level을 출력</li>\n<li>Log Level에 따른 다른 색상 출력</li>\n</ul>\n</li>\n<li>Tag Filter\n<ul dir=\"auto\">\n<li>일치하는 Tag를 출력</li>\n<li>정규식 지원</li>\n</ul>\n</li>\n<li>Message Filter\n<ul dir=\"auto\">\n<li>해당 메시지를 포함하는 로그 출력</li>\n<li>정규식 지원</li>\n</ul>\n</li>\n<li>Multi-Tab View\n<ul dir=\"auto\">\n<li>각각의 독립된 탭 뷰 제공</li>\n</ul>\n</li>\n<li>Setting\n<ul dir=\"auto\">\n<li>글자 크기 조절</li>\n<li>dlog 버퍼 삭제 후 실행</li>\n<li>dlog timestamp 출력</li>\n</ul>\n</li>\n<li>Shortcut\n<ul dir=\"auto\">\n<li>글자 크기 키우기 ctrl + +</li>\n<li>글자 크기 줄이기 ctrl + -</li>\n<li>자동 스크롤 ctrl + q</li>\n<li>줄바꿈 ctrl + w</li>\n<li>화면 지우기 ctrl + e</li>\n<li>메세지 수신 ctrl + space</li>\n</ul>\n</li>\n</ol>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/96146228-0a001300-0f41-11eb-821e-4a7d27862e9d.png\"><img src=\"https://user-images.githubusercontent.com/9311990/96146228-0a001300-0f41-11eb-821e-4a7d27862e9d.png\" alt=\"shortcut\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-프로젝트-참여-방법\" class=\"anchor\" aria-hidden=\"true\" href=\"#프로젝트-참여-방법\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>프로젝트 참여 방법</h2>\n<p dir=\"auto\">다양한 방법으로 프로젝트에 참여가 가능합니다.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/issues\">이슈등록</a>을 해주셔도 되고, 등록된 이슈를 확인해 주셔도 됩니다.</li>\n<li><a href=\"https://github.com/msaltnet/T.Viewer/pulls\">등록 요청된 코드</a>을 코드 리뷰해 주셔도 됩니다.</li>\n</ul>\n<p dir=\"auto\">직접 코드를 수정하시고 싶으시다면, 아래 가이드를 참고해주세요.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/wiki/%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0\">빌드하기</a></li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/9311990/89435160-77443a80-d77f-11ea-8b32-338b8bdfbc3d.PNG\"><img src=\"https://user-images.githubusercontent.com/9311990/89435160-77443a80-d77f-11ea-8b32-338b8bdfbc3d.PNG\" alt=\"Test Result\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-라이센스\" class=\"anchor\" aria-hidden=\"true\" href=\"#라이센스\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>라이센스</h2>\n<p dir=\"auto\">본 프로젝트는 <a href=\"https://github.com/msaltnet/T.Viewer/blob/master/LICENSE\">MIT 라이센스</a>의 오픈소스 프로젝트 입니다.</p>\n<h2 dir=\"auto\"><a id=\"user-content-eng-tviewer---tizen-log-viewer\" class=\"anchor\" aria-hidden=\"true\" href=\"#eng-tviewer---tizen-log-viewer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>(Eng) T.Viewer - Tizen Log Viewer</h2>\n<p dir=\"auto\">T.Viewer is open source cross-platform <a href=\"https://www.tizen.org/\" rel=\"nofollow\">Tizen</a> Log Viewer. <strong>It provides simple and easy way to view Tizen <code>dlog</code> message on desktop.</strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<h3 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.AppImage</code> download and run</p>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\"><code>tviewer-setup-{version}.exe</code> download and install\n<a href=\"https://github.com/msaltnet/T.Viewer/wiki/Features-and-User-Guide\">Features and User Guide</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-user-guide\" class=\"anchor\" aria-hidden=\"true\" href=\"#user-guide\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>User Guide</h2>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"exclamation\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2757.png\">❗</g-emoji> Check SDB connection with target device first.</p>\n<ol dir=\"auto\">\n<li>Connection State Indicator\n<ul dir=\"auto\">\n<li>Connected also with power switch</li>\n</ul>\n</li>\n<li>Log Level Filter\n<ul dir=\"auto\">\n<li>Verbose/Debug/Info/Warning/Error/Fatal</li>\n<li>Output the upper level including the selected level</li>\n<li>Different color output according to log level</li>\n</ul>\n</li>\n<li>Tag Filter\n<ul dir=\"auto\">\n<li>Output matched tag log</li>\n<li>Regular expression support</li>\n</ul>\n</li>\n<li>Message Filter\n<ul dir=\"auto\">\n<li>Output log containing the message</li>\n<li>Regular expression support</li>\n</ul>\n</li>\n<li>Multi-Tab View\n<ul dir=\"auto\">\n<li>Independent filter option for each tab</li>\n</ul>\n</li>\n<li>Setting\n<ul dir=\"auto\">\n<li>Font size</li>\n<li>After clear dlog buffer</li>\n<li>dlog timestamp print</li>\n</ul>\n</li>\n<li>Shortcut\n<ul dir=\"auto\">\n<li>Font size up, ctrl + +</li>\n<li>Font size down, ctrl + -</li>\n<li>Auto Scroll, ctrl + q</li>\n<li>Soft wrap ctrl + w</li>\n<li>Clear tab, ctrl + e</li>\n<li>Listen log, ctrl + space</li>\n</ul>\n</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">There are many ways in which you can participate in the project, for example:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/issues\">Submit bugs and feature requests</a>, and help us verify as they are checked in</li>\n<li>Review source code changes</li>\n</ul>\n<p dir=\"auto\">If you are interested in fixing issues and contributing directly to the code base, please see the following:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/msaltnet/T.Viewer/wiki/Build-and-Run\">Build and Run</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Licensed under the MIT license.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.888Z" }, "twinkle-tray": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/master/src/assets/logo.png\"><img src=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/master/src/assets/logo.png\" width=\"128px\" height=\"128px\" alt=\"Twinkle Tray brightness slider logo\" style=\"max-width: 100%;\"></a>\n</p>\n<h1 align=\"center\" dir=\"auto\"><a id=\"user-content-twinkle-tray\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#twinkle-tray\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Twinkle Tray</h1>\n<p align=\"center\" dir=\"auto\"><a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\"><img src=\"https://camo.githubusercontent.com/731c9e4dd00961d3a921c84215e706a0890151df18d5b542e0848c3cb4e5091b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f78616e6465726672616e676f732f7477696e6b6c652d74726179\" alt=\"Latest release\" data-canonical-src=\"https://img.shields.io/github/v/release/xanderfrangos/twinkle-tray\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\"><img src=\"https://camo.githubusercontent.com/3836d1a64f45159c86d7bab3def97cb60b64183ff2e5cd6b28ee6e1f1cc97a61/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f78616e6465726672616e676f732f7477696e6b6c652d747261792f746f74616c\" alt=\"Total downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/xanderfrangos/twinkle-tray/total\" style=\"max-width: 100%;\"></a> <a href=\"https://hosted.weblate.org/projects/twinkle-tray/twinkle-tray/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b822b5c5f4c62c1e50c115cea8b2cbd4a4ecd66a57152007bcce4e40ce4933cc/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f7477696e6b6c652d747261792f2d2f7477696e6b6c652d747261792f7376672d62616467652e737667\" alt=\"Translations\" data-canonical-src=\"https://hosted.weblate.org/widgets/twinkle-tray/-/twinkle-tray/svg-badge.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Twinkle Tray lets you easily manage the brightness levels of multiple monitors. Even though Windows 10 is capable of adjusting the backlight on most monitors, it typically doesn't support external monitors. Windows 10 also lacks any ability to manage the brightness of multiple monitors. This app inserts a new icon into your system tray, where you can click to have instant access to the brightness levels of all compatible monitors.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/gh-pages/assets/img/twinkle-tray-screenshot.jpg\"><img src=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/gh-pages/assets/img/twinkle-tray-screenshot.jpg\" alt=\"Win 10 brightness slider\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Features:</strong></p>\n<ul dir=\"auto\">\n<li>Adds brightness sliders to the system tray, similar to the built-in Windows 10 volume panel.</li>\n<li>Normalize backlight across different monitors.</li>\n<li>Can automatically change monitor brightness depending on the time of day.</li>\n<li>Seamlessly blends in with Windows 10. Uses your Personalization settings to match your taskbar.</li>\n<li>Starts up with Windows.</li>\n</ul>\n<p dir=\"auto\">This app was built with <a href=\"https://electronjs.org/\" rel=\"nofollow\">Electron</a>, <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a>, <a href=\"https://github.com/hensm/node-ddcci\">node-ddcci</a>, and <a href=\"https://github.com/djsweet/win32-displayconfig\">win32-displayconfig</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\"><strong>Download the lastest version from <a href=\"https://twinkletray.com/\" rel=\"nofollow\">twinkletray.com</a> or the <a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\">Releases page</a>.</strong></p>\n<p dir=\"auto\"><a href=\"https://www.microsoft.com/store/productId/9PLJWWSV01LK\" rel=\"nofollow\"><img width=\"156\" src=\"https://camo.githubusercontent.com/f002fe5fe7e4a750c3bb561fa40301534f3cc456fc99265fba8f854dbc834ccd/68747470733a2f2f637275736865652e6170702f6173736574732f696d672f6d732d73746f72652e737667\" alt=\"Get Twinkle Tray brightness slider from the Microsoft Store\" data-canonical-src=\"https://crushee.app/assets/img/ms-store.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<ul dir=\"auto\">\n<li>Download from the <a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\">Releases page</a> and run the installer EXE.</li>\n<li>Once installation has finished, you should see the Twinkle Tray icon in your system tray.</li>\n<li>Click the icon to bring up the Adjust Brightness panel.</li>\n<li>Click away to hide the panel.</li>\n<li>Right-click the system tray icon to quit.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-compatibility\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#compatibility\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Compatibility</h2>\n<p dir=\"auto\">Twinkle Tray uses DDC/CI and WMI to communicate with your monitors. Most monitors offer DDC/CI compatibility, but it may be off by default. Make sure you have the appropriate option(s) enabled on your monitor so that it can work with Twinkle Tray. Refer to your monitor's user manual for more information.</p>\n<p dir=\"auto\"><strong>Known issues:</strong></p>\n<ul dir=\"auto\">\n<li>The AMD Radeon Control Panel can interfere with Twinkle Tray. Ensure \"Custom Colors\" is not enabled.</li>\n<li>VGA may not be compatible.</li>\n<li>USB/Thunderbolt/Surface docks with HDMI or DisplayPort may not be compatible.</li>\n</ul>\n<p dir=\"auto\">If some of your monitors are not being detected, please see <a href=\"https://github.com/xanderfrangos/twinkle-tray/wiki/Display-Detection-&-Support-Issues\">this page</a> for troubleshooting steps.</p>\n<h2 dir=\"auto\"><a id=\"user-content-command-line-arguments\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#command-line-arguments\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Command Line Arguments</h2>\n<p dir=\"auto\">Twinkle Tray (v1.13.0+) supports requesting brightness changes from the command line. Twinkle Tray must already be running. One monitor argument and one brightness argument are required. Multiple arguments will override each other.</p>\n<p dir=\"auto\">For example: <code>\"%LocalAppData%\\Programs\\twinkle-tray\\Twinkle Tray.exe\" --MonitorNum=1 --Offset=-30</code> will adjust monitor number 1 by -30 brightness.</p>\n<h3 dir=\"auto\"><a id=\"user-content-supported-args\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#supported-args\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Supported args:</h3>\n<ul dir=\"auto\">\n<li><code>--MonitorNum</code> Select monitor by number. Starts at 1. <em>Example: <code>--MonitorNum=2</code></em></li>\n<li><code>--MonitorID</code> Select monitor by internal ID. Partial or whole matches accepted. <em>Example: <code>--MonitorID=\"UID2353\"</code></em></li>\n<li><code>--All</code> Flag to select all monitors.</li>\n<li><code>--Set</code> Set brightness percentage. <em>Example: <code>--Set=95</code></em></li>\n<li><code>--Offset</code> Adjust brightness percentage. <em>Example: <code>--Offset=-20</code></em></li>\n<li><code>--Overlay</code> Flag to show new brightness levels in the overlay <em>Example: <code>--Overlay</code></em></li>\n</ul>\n<p dir=\"auto\"><em>This feature is not available on the Windows Store version of Twinkle Tray.</em></p>\n<h2 dir=\"auto\"><a id=\"user-content-localization\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#localization\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Localization</h2>\n<p dir=\"auto\">Thanks to <a href=\"https://github.com/xanderfrangos/twinkle-tray/graphs/contributors\">several contributors</a>, Twinkle Tray is localized for multiple languages. If you'd like to create or update a localization, see <a href=\"https://github.com/xanderfrangos/twinkle-tray/wiki/Localization-files\">this page</a> for details. Special thanks to <a href=\"https://weblate.org/\" rel=\"nofollow\">Weblate</a> for allowing free use of their service.</p>\n<h4 dir=\"auto\"><a id=\"user-content-localization-progress\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#localization-progress\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Localization progress</h4>\n<a href=\"https://hosted.weblate.org/engage/twinkle-tray/?utm_source=widget\" rel=\"nofollow\">\n<img src=\"https://camo.githubusercontent.com/e13ff232bfb283da82a477d1dd68e6f13ffc65e09d00cf73c30f3625003e8624/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f7477696e6b6c652d747261792f2d2f6d756c74692d6175746f2e737667\" alt=\"Translation status\" data-canonical-src=\"https://hosted.weblate.org/widgets/twinkle-tray/-/multi-auto.svg\" style=\"max-width: 100%;\">\n</a>\n<h2 dir=\"auto\"><a id=\"user-content-build\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build</h2>\n<p dir=\"auto\">If you wish to run a development build of Twinkly Tray:</p>\n<ul dir=\"auto\">\n<li>Download or clone.</li>\n<li>Install the build tools for <a href=\"https://github.com/nodejs/node-gyp#installation\"><code>node-gyp</code></a>, if not already installed. You may already have these from installing NodeJS.</li>\n<li>Run <code>npm install</code>.</li>\n<li>Run <code>npm run build</code> to build an executable or <code>npm start</code> to run a development build.</li>\n</ul>\n<p dir=\"auto\">Note: For actual development, it's recommended to run <code>npm run parcel</code> and <code>npm run dev</code> seperately.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/xanderfrangos/twinkle-tray/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Copyright © 2020 Xander Frangos</p>\n<p dir=\"auto\">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>\n<p dir=\"auto\">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>\n<p dir=\"auto\">THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/master/src/assets/logo.png\"><img src=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/master/src/assets/logo.png\" width=\"128px\" height=\"128px\" alt=\"Twinkle Tray brightness slider logo\" style=\"max-width: 100%;\"></a>\n</p>\n<h1 align=\"center\" dir=\"auto\"><a id=\"user-content-twinkle-tray\" class=\"anchor\" aria-hidden=\"true\" href=\"#twinkle-tray\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Twinkle Tray</h1>\n<p align=\"center\" dir=\"auto\"><a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\"><img src=\"https://camo.githubusercontent.com/731c9e4dd00961d3a921c84215e706a0890151df18d5b542e0848c3cb4e5091b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f78616e6465726672616e676f732f7477696e6b6c652d74726179\" alt=\"Latest release\" data-canonical-src=\"https://img.shields.io/github/v/release/xanderfrangos/twinkle-tray\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\"><img src=\"https://camo.githubusercontent.com/3836d1a64f45159c86d7bab3def97cb60b64183ff2e5cd6b28ee6e1f1cc97a61/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f78616e6465726672616e676f732f7477696e6b6c652d747261792f746f74616c\" alt=\"Total downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/xanderfrangos/twinkle-tray/total\" style=\"max-width: 100%;\"></a> <a href=\"https://hosted.weblate.org/projects/twinkle-tray/twinkle-tray/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b822b5c5f4c62c1e50c115cea8b2cbd4a4ecd66a57152007bcce4e40ce4933cc/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f7477696e6b6c652d747261792f2d2f7477696e6b6c652d747261792f7376672d62616467652e737667\" alt=\"Translations\" data-canonical-src=\"https://hosted.weblate.org/widgets/twinkle-tray/-/twinkle-tray/svg-badge.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Twinkle Tray lets you easily manage the brightness levels of multiple monitors. Even though Windows 10 is capable of adjusting the backlight on most monitors, it typically doesn't support external monitors. Windows 10 also lacks any ability to manage the brightness of multiple monitors. This app inserts a new icon into your system tray, where you can click to have instant access to the brightness levels of all compatible monitors.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/gh-pages/assets/img/twinkle-tray-screenshot.jpg\"><img src=\"https://raw.githubusercontent.com/xanderfrangos/twinkle-tray/gh-pages/assets/img/twinkle-tray-screenshot.jpg\" alt=\"Win 10 brightness slider\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Features:</strong></p>\n<ul dir=\"auto\">\n<li>Adds brightness sliders to the system tray, similar to the built-in Windows 10 volume panel.</li>\n<li>Normalize backlight across different monitors.</li>\n<li>Can automatically change monitor brightness depending on the time of day.</li>\n<li>Seamlessly blends in with Windows 10. Uses your Personalization settings to match your taskbar.</li>\n<li>Starts up with Windows.</li>\n</ul>\n<p dir=\"auto\">This app was built with <a href=\"https://electronjs.org/\" rel=\"nofollow\">Electron</a>, <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a>, <a href=\"https://github.com/hensm/node-ddcci\">node-ddcci</a>, and <a href=\"https://github.com/djsweet/win32-displayconfig\">win32-displayconfig</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\"><strong>Download the lastest version from <a href=\"https://twinkletray.com/\" rel=\"nofollow\">twinkletray.com</a> or the <a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\">Releases page</a>.</strong></p>\n<p dir=\"auto\"><a href=\"https://www.microsoft.com/store/productId/9PLJWWSV01LK\" rel=\"nofollow\"><img width=\"156\" src=\"https://camo.githubusercontent.com/f002fe5fe7e4a750c3bb561fa40301534f3cc456fc99265fba8f854dbc834ccd/68747470733a2f2f637275736865652e6170702f6173736574732f696d672f6d732d73746f72652e737667\" alt=\"Get Twinkle Tray brightness slider from the Microsoft Store\" data-canonical-src=\"https://crushee.app/assets/img/ms-store.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<ul dir=\"auto\">\n<li>Download from the <a href=\"https://github.com/xanderfrangos/twinkle-tray/releases\">Releases page</a> and run the installer EXE.</li>\n<li>Once installation has finished, you should see the Twinkle Tray icon in your system tray.</li>\n<li>Click the icon to bring up the Adjust Brightness panel.</li>\n<li>Click away to hide the panel.</li>\n<li>Right-click the system tray icon to quit.</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-compatibility\" class=\"anchor\" aria-hidden=\"true\" href=\"#compatibility\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Compatibility</h2>\n<p dir=\"auto\">Twinkle Tray uses DDC/CI and WMI to communicate with your monitors. Most monitors offer DDC/CI compatibility, but it may be off by default. Make sure you have the appropriate option(s) enabled on your monitor so that it can work with Twinkle Tray. Refer to your monitor's user manual for more information.</p>\n<p dir=\"auto\"><strong>Known issues:</strong></p>\n<ul dir=\"auto\">\n<li>The AMD Radeon Control Panel can interfere with Twinkle Tray. Ensure \"Custom Colors\" is not enabled.</li>\n<li>VGA may not be compatible.</li>\n<li>USB/Thunderbolt/Surface docks with HDMI or DisplayPort may not be compatible.</li>\n</ul>\n<p dir=\"auto\">If some of your monitors are not being detected, please see <a href=\"https://github.com/xanderfrangos/twinkle-tray/wiki/Display-Detection-&-Support-Issues\">this page</a> for troubleshooting steps.</p>\n<h2 dir=\"auto\"><a id=\"user-content-command-line-arguments\" class=\"anchor\" aria-hidden=\"true\" href=\"#command-line-arguments\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Command Line Arguments</h2>\n<p dir=\"auto\">Twinkle Tray (v1.13.0+) supports requesting brightness changes from the command line. Twinkle Tray must already be running. One monitor argument and one brightness argument are required. Multiple arguments will override each other.</p>\n<p dir=\"auto\">For example: <code>\"%LocalAppData%\\Programs\\twinkle-tray\\Twinkle Tray.exe\" --MonitorNum=1 --Offset=-30</code> will adjust monitor number 1 by -30 brightness.</p>\n<h3 dir=\"auto\"><a id=\"user-content-supported-args\" class=\"anchor\" aria-hidden=\"true\" href=\"#supported-args\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Supported args:</h3>\n<ul dir=\"auto\">\n<li><code>--MonitorNum</code> Select monitor by number. Starts at 1. <em>Example: <code>--MonitorNum=2</code></em></li>\n<li><code>--MonitorID</code> Select monitor by internal ID. Partial or whole matches accepted. <em>Example: <code>--MonitorID=\"UID2353\"</code></em></li>\n<li><code>--All</code> Flag to select all monitors.</li>\n<li><code>--Set</code> Set brightness percentage. <em>Example: <code>--Set=95</code></em></li>\n<li><code>--Offset</code> Adjust brightness percentage. <em>Example: <code>--Offset=-20</code></em></li>\n<li><code>--Overlay</code> Flag to show new brightness levels in the overlay <em>Example: <code>--Overlay</code></em></li>\n</ul>\n<p dir=\"auto\"><em>This feature is not available on the Windows Store version of Twinkle Tray.</em></p>\n<h2 dir=\"auto\"><a id=\"user-content-localization\" class=\"anchor\" aria-hidden=\"true\" href=\"#localization\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Localization</h2>\n<p dir=\"auto\">Thanks to <a href=\"https://github.com/xanderfrangos/twinkle-tray/graphs/contributors\">several contributors</a>, Twinkle Tray is localized for multiple languages. If you'd like to create or update a localization, see <a href=\"https://github.com/xanderfrangos/twinkle-tray/wiki/Localization-files\">this page</a> for details. Special thanks to <a href=\"https://weblate.org/\" rel=\"nofollow\">Weblate</a> for allowing free use of their service.</p>\n<h4 dir=\"auto\"><a id=\"user-content-localization-progress\" class=\"anchor\" aria-hidden=\"true\" href=\"#localization-progress\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Localization progress</h4>\n<a href=\"https://hosted.weblate.org/engage/twinkle-tray/?utm_source=widget\" rel=\"nofollow\">\n<img src=\"https://camo.githubusercontent.com/e13ff232bfb283da82a477d1dd68e6f13ffc65e09d00cf73c30f3625003e8624/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f7477696e6b6c652d747261792f2d2f6d756c74692d6175746f2e737667\" alt=\"Translation status\" data-canonical-src=\"https://hosted.weblate.org/widgets/twinkle-tray/-/multi-auto.svg\" style=\"max-width: 100%;\">\n</a>\n<h2 dir=\"auto\"><a id=\"user-content-build\" class=\"anchor\" aria-hidden=\"true\" href=\"#build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build</h2>\n<p dir=\"auto\">If you wish to run a development build of Twinkly Tray:</p>\n<ul dir=\"auto\">\n<li>Download or clone.</li>\n<li>Install the build tools for <a href=\"https://github.com/nodejs/node-gyp#installation\"><code>node-gyp</code></a>, if not already installed. You may already have these from installing NodeJS.</li>\n<li>Run <code>npm install</code>.</li>\n<li>Run <code>npm run build</code> to build an executable or <code>npm start</code> to run a development build.</li>\n</ul>\n<p dir=\"auto\">Note: For actual development, it's recommended to run <code>npm run parcel</code> and <code>npm run dev</code> seperately.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Copyright © 2020 Xander Frangos</p>\n<p dir=\"auto\">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>\n<p dir=\"auto\">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>\n<p dir=\"auto\">THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:12.906Z" }, "tutti-quanti-shelf": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--tutti-quanti-shelf\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#-tutti-quanti-shelf\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/icons/icon-256.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Tutti Quanti Shelf icon\" style=\"max-width: 100%;\" crossorigin=\"\"></a> TUTTI QUANTI SHELF</h1>\n<p dir=\"auto\"><strong>Tutti Quanti Shelf</strong> is a collection of miscellaneous developer-oriented utilities wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/TQS-social-preview.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/TQS-social-preview.png\" alt=\"Tutti Quanti Shelf social preview\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>CIDR Calculator</strong></li>\n<li><strong>CSS Cursors Demo</strong></li>\n<li><strong>Digital Clock</strong></li>\n<li><strong>Graph Visualizer</strong></li>\n<li><strong>IETF Language Tags</strong></li>\n<li><strong>JavaScript Parser</strong></li>\n<li><strong>JavaScript Runner</strong></li>\n<li><strong>JSON Formatter</strong></li>\n<li><strong>Math Renderer</strong></li>\n<li><strong>Romaji-Kana</strong></li>\n<li><strong>Roman Numerals</strong></li>\n<li><strong>SVG Optimizer</strong></li>\n<li><strong>System Information</strong></li>\n<li><strong>Text Converter</strong></li>\n<li><strong>Text to Speech</strong></li>\n<li><strong>XML Converter</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-cidr-calculator\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#cidr-calculator\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CIDR Calculator</h2>\n<p dir=\"auto\">Simple CIDR calculators:</p>\n<ul dir=\"auto\">\n<li>CIDR to IP Range</li>\n<li>IP Range to CIDR List</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/cidr-calculator.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/cidr-calculator.png\" width=\"1080px\" alt=\"CIDR Calculator screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-css-cursors-demo\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#css-cursors-demo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CSS Cursors Demo</h2>\n<p dir=\"auto\">Display CSS cursors by category:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/css-cursors-demo.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/css-cursors-demo.png\" width=\"1080px\" alt=\"CSS Cursors Demo screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-digital-clock\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#digital-clock\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Digital Clock</h2>\n<p dir=\"auto\">Customizable clock, using language-sensitive text formatting for date and time:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/digital-clock.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/digital-clock.png\" width=\"1080px\" alt=\"Digital Clock screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-graph-visualizer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#graph-visualizer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Graph Visualizer</h2>\n<p dir=\"auto\">Graph visualizer, using the Graphviz visualization software:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/graph-visualizer.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/graph-visualizer.png\" width=\"1080px\" alt=\"Graph Visualizer screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-ietf-language-tags\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#ietf-language-tags\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>IETF Language Tags</h2>\n<p dir=\"auto\">References for IETF BCP 47 language tags and subtags:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/ietf-language-tags.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/ietf-language-tags.png\" width=\"1080px\" alt=\"IETF Language Tags screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-parser\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#javascript-parser\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Parser</h2>\n<p dir=\"auto\">JavaScript code parser and tokenizer, based on Esprima:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/javascript-parser.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/javascript-parser.png\" width=\"1080px\" alt=\"JavaScript Parser screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-runner\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#javascript-runner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Runner</h2>\n<p dir=\"auto\">JavaScript code runner, useful for quick testing/prototyping or data processing:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/javascript-runner.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/javascript-runner.png\" width=\"1080px\" alt=\"JavaScript Runner screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-json-formatter\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#json-formatter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JSON Formatter</h2>\n<p dir=\"auto\">JSON data formatter and validator:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/json-formatter.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/json-formatter.png\" width=\"1080px\" alt=\"JSON Formatter screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-math-renderer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#math-renderer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Math Renderer</h2>\n<p dir=\"auto\">Math expression renderer, using the KaTeX JavaScript library:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/math-renderer.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/math-renderer.png\" width=\"1080px\" alt=\"Math Renderer screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-romaji-kana\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#romaji-kana\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Romaji-Kana</h2>\n<p dir=\"auto\">Simple converters between rōmaji and kana:</p>\n<ul dir=\"auto\">\n<li>Rōmaji to Kana</li>\n<li>Kana to Rōmaji</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/romaji-kana.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/romaji-kana.png\" width=\"1080px\" alt=\"Romaji-Kana screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-roman-numerals\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#roman-numerals\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roman Numerals</h2>\n<p dir=\"auto\">Converters between roman and arabic numerals:</p>\n<ul dir=\"auto\">\n<li>Roman to Arabic Numeral</li>\n<li>Arabic to Roman Numeral</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/roman-numerals.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/roman-numerals.png\" width=\"1080px\" alt=\"Roman Numerals screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-svg-optimizer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#svg-optimizer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>SVG Optimizer</h2>\n<p dir=\"auto\">Optimize SVG:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/svg-optimizer.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/svg-optimizer.png\" width=\"1080px\" alt=\"SVG Optimizer screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-system-information\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#system-information\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>System Information</h2>\n<p dir=\"auto\">Detailed list of system information, by category:</p>\n<ul dir=\"auto\">\n<li>Framework</li>\n<li>Main Process</li>\n<li>Renderer Process</li>\n<li>Application</li>\n<li>Navigator</li>\n<li>Operating System</li>\n<li>OS User Info</li>\n<li>Screen</li>\n<li>Window</li>\n<li>Environment</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/system-information.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/system-information.png\" width=\"1080px\" alt=\"System Information screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-text-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#text-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Text Converter</h2>\n<p dir=\"auto\">Encode and decode text according to several string formats:</p>\n<ul dir=\"auto\">\n<li>JSON String</li>\n<li>Hex String</li>\n<li>Base64 String</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/text-converter-text-encoder.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/text-converter-text-encoder.png\" width=\"1080px\" alt=\"Text Converter - Text Encoder screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/text-converter-text-decoder.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/text-converter-text-decoder.png\" width=\"1080px\" alt=\"Text Converter - Text Decoder screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-text-to-speech\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#text-to-speech\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Text to Speech</h2>\n<p dir=\"auto\">Speak text according to voice settings:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/text-to-speech.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/text-to-speech.png\" width=\"1080px\" alt=\"Text to Speech screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-xml-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#xml-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>XML Converter</h2>\n<p dir=\"auto\">Convert XML to JSON:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/screenshots/xml-converter.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/tutti-quanti-shelf/master/screenshots/xml-converter.png\" width=\"1080px\" alt=\"XML Converter screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/tutti-quanti-shelf\n# Go into the repository\ncd tutti-quanti-shelf\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/tutti-quanti-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> tutti-quanti-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>tutti-quanti-shelf-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Tutti Quanti Shelf.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2019-2022 Michel Mariani.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--tutti-quanti-shelf\" class=\"anchor\" aria-hidden=\"true\" href=\"#-tutti-quanti-shelf\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"icons/icon-256.png\"><img src=\"icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Tutti Quanti Shelf icon\" style=\"max-width: 100%;\"></a> TUTTI QUANTI SHELF</h1>\n<p dir=\"auto\"><strong>Tutti Quanti Shelf</strong> is a collection of miscellaneous developer-oriented utilities wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/TQS-social-preview.png\"><img src=\"screenshots/TQS-social-preview.png\" alt=\"Tutti Quanti Shelf social preview\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>CIDR Calculator</strong></li>\n<li><strong>CSS Cursors Demo</strong></li>\n<li><strong>Digital Clock</strong></li>\n<li><strong>Graph Visualizer</strong></li>\n<li><strong>IETF Language Tags</strong></li>\n<li><strong>JavaScript Parser</strong></li>\n<li><strong>JavaScript Runner</strong></li>\n<li><strong>JSON Formatter</strong></li>\n<li><strong>Math Renderer</strong></li>\n<li><strong>Romaji-Kana</strong></li>\n<li><strong>Roman Numerals</strong></li>\n<li><strong>SVG Optimizer</strong></li>\n<li><strong>System Information</strong></li>\n<li><strong>Text Converter</strong></li>\n<li><strong>Text to Speech</strong></li>\n<li><strong>XML Converter</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-cidr-calculator\" class=\"anchor\" aria-hidden=\"true\" href=\"#cidr-calculator\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CIDR Calculator</h2>\n<p dir=\"auto\">Simple CIDR calculators:</p>\n<ul dir=\"auto\">\n<li>CIDR to IP Range</li>\n<li>IP Range to CIDR List</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cidr-calculator.png\"><img src=\"screenshots/cidr-calculator.png\" width=\"1080px\" alt=\"CIDR Calculator screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-css-cursors-demo\" class=\"anchor\" aria-hidden=\"true\" href=\"#css-cursors-demo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CSS Cursors Demo</h2>\n<p dir=\"auto\">Display CSS cursors by category:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/css-cursors-demo.png\"><img src=\"screenshots/css-cursors-demo.png\" width=\"1080px\" alt=\"CSS Cursors Demo screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-digital-clock\" class=\"anchor\" aria-hidden=\"true\" href=\"#digital-clock\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Digital Clock</h2>\n<p dir=\"auto\">Customizable clock, using language-sensitive text formatting for date and time:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/digital-clock.png\"><img src=\"screenshots/digital-clock.png\" width=\"1080px\" alt=\"Digital Clock screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-graph-visualizer\" class=\"anchor\" aria-hidden=\"true\" href=\"#graph-visualizer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Graph Visualizer</h2>\n<p dir=\"auto\">Graph visualizer, using the Graphviz visualization software:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/graph-visualizer.png\"><img src=\"screenshots/graph-visualizer.png\" width=\"1080px\" alt=\"Graph Visualizer screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-ietf-language-tags\" class=\"anchor\" aria-hidden=\"true\" href=\"#ietf-language-tags\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>IETF Language Tags</h2>\n<p dir=\"auto\">References for IETF BCP 47 language tags and subtags:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/ietf-language-tags.png\"><img src=\"screenshots/ietf-language-tags.png\" width=\"1080px\" alt=\"IETF Language Tags screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-parser\" class=\"anchor\" aria-hidden=\"true\" href=\"#javascript-parser\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Parser</h2>\n<p dir=\"auto\">JavaScript code parser and tokenizer, based on Esprima:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/javascript-parser.png\"><img src=\"screenshots/javascript-parser.png\" width=\"1080px\" alt=\"JavaScript Parser screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-runner\" class=\"anchor\" aria-hidden=\"true\" href=\"#javascript-runner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Runner</h2>\n<p dir=\"auto\">JavaScript code runner, useful for quick testing/prototyping or data processing:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/javascript-runner.png\"><img src=\"screenshots/javascript-runner.png\" width=\"1080px\" alt=\"JavaScript Runner screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-json-formatter\" class=\"anchor\" aria-hidden=\"true\" href=\"#json-formatter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JSON Formatter</h2>\n<p dir=\"auto\">JSON data formatter and validator:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/json-formatter.png\"><img src=\"screenshots/json-formatter.png\" width=\"1080px\" alt=\"JSON Formatter screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-math-renderer\" class=\"anchor\" aria-hidden=\"true\" href=\"#math-renderer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Math Renderer</h2>\n<p dir=\"auto\">Math expression renderer, using the KaTeX JavaScript library:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/math-renderer.png\"><img src=\"screenshots/math-renderer.png\" width=\"1080px\" alt=\"Math Renderer screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-romaji-kana\" class=\"anchor\" aria-hidden=\"true\" href=\"#romaji-kana\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Romaji-Kana</h2>\n<p dir=\"auto\">Simple converters between rōmaji and kana:</p>\n<ul dir=\"auto\">\n<li>Rōmaji to Kana</li>\n<li>Kana to Rōmaji</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/romaji-kana.png\"><img src=\"screenshots/romaji-kana.png\" width=\"1080px\" alt=\"Romaji-Kana screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-roman-numerals\" class=\"anchor\" aria-hidden=\"true\" href=\"#roman-numerals\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roman Numerals</h2>\n<p dir=\"auto\">Converters between roman and arabic numerals:</p>\n<ul dir=\"auto\">\n<li>Roman to Arabic Numeral</li>\n<li>Arabic to Roman Numeral</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/roman-numerals.png\"><img src=\"screenshots/roman-numerals.png\" width=\"1080px\" alt=\"Roman Numerals screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-svg-optimizer\" class=\"anchor\" aria-hidden=\"true\" href=\"#svg-optimizer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>SVG Optimizer</h2>\n<p dir=\"auto\">Optimize SVG:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/svg-optimizer.png\"><img src=\"screenshots/svg-optimizer.png\" width=\"1080px\" alt=\"SVG Optimizer screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-system-information\" class=\"anchor\" aria-hidden=\"true\" href=\"#system-information\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>System Information</h2>\n<p dir=\"auto\">Detailed list of system information, by category:</p>\n<ul dir=\"auto\">\n<li>Framework</li>\n<li>Main Process</li>\n<li>Renderer Process</li>\n<li>Application</li>\n<li>Navigator</li>\n<li>Operating System</li>\n<li>OS User Info</li>\n<li>Screen</li>\n<li>Window</li>\n<li>Environment</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/system-information.png\"><img src=\"screenshots/system-information.png\" width=\"1080px\" alt=\"System Information screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-text-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"#text-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Text Converter</h2>\n<p dir=\"auto\">Encode and decode text according to several string formats:</p>\n<ul dir=\"auto\">\n<li>JSON String</li>\n<li>Hex String</li>\n<li>Base64 String</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/text-converter-text-encoder.png\"><img src=\"screenshots/text-converter-text-encoder.png\" width=\"1080px\" alt=\"Text Converter - Text Encoder screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/text-converter-text-decoder.png\"><img src=\"screenshots/text-converter-text-decoder.png\" width=\"1080px\" alt=\"Text Converter - Text Decoder screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-text-to-speech\" class=\"anchor\" aria-hidden=\"true\" href=\"#text-to-speech\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Text to Speech</h2>\n<p dir=\"auto\">Speak text according to voice settings:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/text-to-speech.png\"><img src=\"screenshots/text-to-speech.png\" width=\"1080px\" alt=\"Text to Speech screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-xml-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"#xml-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>XML Converter</h2>\n<p dir=\"auto\">Convert XML to JSON:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/xml-converter.png\"><img src=\"screenshots/xml-converter.png\" width=\"1080px\" alt=\"XML Converter screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/tutti-quanti-shelf\n# Go into the repository\ncd tutti-quanti-shelf\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/tutti-quanti-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> tutti-quanti-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/tutti-quanti-shelf/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>tutti-quanti-shelf-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Tutti Quanti Shelf.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2019-2022 Michel Mariani.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.013Z" }, "twittertron": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n </p><h3 align=\"center\" dir=\"auto\"><a id=\"user-content-twittertron\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afractal/twittertron-app/blob/master/#twittertron\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TwitterTron</h3>\n <p align=\"center\" dir=\"auto\">Twitter desktop app.</p>\n<p dir=\"auto\"></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afractal/twittertron-app/blob/master/./demo_screenshot_v3.png\"><img src=\"https://raw.githubusercontent.com/afractal/twittertron-app/master/./demo_screenshot_v3.png\" alt=\"demo\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afractal/twittertron-app/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>Download</strong></h2>\n<p dir=\"auto\">Currently, only Windows is supported.</p>\n<h2 dir=\"auto\"><a id=\"user-content-changes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afractal/twittertron-app/blob/master/#changes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>Changes</strong></h2>\n<p dir=\"auto\"><em>v0.10</em></p>\n<ul dir=\"auto\">\n<li>add multiple themes capability</li>\n<li>embed tweets</li>\n<li>add tweet photo viewer</li>\n<li>handle outside click for header actions</li>\n<li>handle error case for apis</li>\n<li>fix application development issue</li>\n<li></li>\n</ul>\n<p dir=\"auto\"><em>v0.9</em></p>\n<ul dir=\"auto\">\n<li>add sign out button</li>\n<li>add rate-limit exceed dialog</li>\n<li>add reply functionality</li>\n<li>UI enhancements</li>\n<li>add windows installers</li>\n<li>add compose tweet page</li>\n<li>new icons</li>\n<li>add about page</li>\n<li>add small loading indicator when retweeting & favoriting</li>\n<li>add support for quoted status</li>\n<li>tweak playercard design</li>\n<li>add verification to playercard</li>\n</ul>\n<p dir=\"auto\"><em>v0.8</em></p>\n<ul dir=\"auto\">\n<li>reduce package size by 44%</li>\n<li>add refresh functionality</li>\n<li>add avatar component to leftnavbar</li>\n<li>fix padding issue for playercard & spinner</li>\n<li>fix search page layout</li>\n<li>fix do not display 0 as a retweet & favorite count</li>\n<li>add topnavbar</li>\n<li>implement dark theme</li>\n<li>tweak tweets design</li>\n<li>add spinner</li>\n</ul>\n<p dir=\"auto\"><em>v0.7</em></p>\n<ul dir=\"auto\">\n<li>UI enhancements</li>\n<li>style changes for leftnavbar</li>\n<li>add search result type options menu</li>\n<li>reduce package size by 49%</li>\n<li>add packaging support</li>\n<li>add live-reloading during development</li>\n<li>better login workflow</li>\n<li>add icon for retweets</li>\n</ul>\n<p dir=\"auto\"><em>v0.6</em></p>\n<ul dir=\"auto\">\n<li>UI enhancements</li>\n<li>add search page functionality</li>\n<li>add characters left indicator for textbox</li>\n<li>fix problem with retweeting & favoriting retweeted tweets</li>\n<li>add tweetbox styling</li>\n</ul>\n<p dir=\"auto\"><em>v0.5</em></p>\n<ul dir=\"auto\">\n<li>fix titlebar not draggable when overlayed</li>\n<li>add simple tweet post implementation</li>\n<li>add tweet status</li>\n<li>add constent screen for media</li>\n<li>add rate limit indicator</li>\n<li>add link interceptor</li>\n<li>convert to a more modern react-redux architecture</li>\n</ul>\n<p dir=\"auto\"><em>v0.4</em></p>\n<ul dir=\"auto\">\n<li>UI enhancements</li>\n<li>add search feature</li>\n<li>add playercards</li>\n<li>add tweet posted time</li>\n<li>enable media rendering</li>\n</ul>\n<p dir=\"auto\"><em>v0.3</em></p>\n<ul dir=\"auto\">\n<li>refine tweetcards</li>\n<li>add follow feature</li>\n<li>add ci integration</li>\n<li>convert from systemjs to webpack</li>\n<li>implement pagination for hometimeline</li>\n</ul>\n<p dir=\"auto\"><em>v0.2</em></p>\n<ul dir=\"auto\">\n<li>redesign project to use reactjs</li>\n<li>add retweet, favorite feature</li>\n<li>refactor authentication code</li>\n</ul>\n<p dir=\"auto\"><em>v0.1</em></p>\n<ul dir=\"auto\">\n<li>init basic functionality</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-credits\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afractal/twittertron-app/blob/master/#credits\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>Credits</strong></h2>\n<p dir=\"auto\">Credits to <a href=\"https://www.iconfinder.com/iconsets/twitter-ui-set\" rel=\"nofollow\">Denis Domanitsky</a> for most of the icons, under the <a href=\"https://creativecommons.org/licenses/by/3.0/\" rel=\"nofollow\">Attribution 3.0 Unported (CC BY 3.0)</a> licence.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afractal/twittertron-app/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>License</strong></h2>\n<p dir=\"auto\">This product is licensed under the <a href=\"https://github.com/afractal/twittertron-app/blob/master/./LICENSE.md\">GPL-3.0</a> license.</p>\n<hr>\n<p align=\"center\" dir=\"auto\">\n Made with <g-emoji class=\"g-emoji\" alias=\"heart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2764.png\">❤️</g-emoji> by <a href=\"https://github.com/afractal\">@afractal</a>\n</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n </p><h3 align=\"center\" dir=\"auto\"><a id=\"user-content-twittertron\" class=\"anchor\" aria-hidden=\"true\" href=\"#twittertron\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TwitterTron</h3>\n <p align=\"center\" dir=\"auto\">Twitter desktop app.</p>\n<p dir=\"auto\"></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"./demo_screenshot_v3.png\"><img src=\"./demo_screenshot_v3.png\" alt=\"demo\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>Download</strong></h2>\n<p dir=\"auto\">Currently, only Windows is supported.</p>\n<h2 dir=\"auto\"><a id=\"user-content-changes\" class=\"anchor\" aria-hidden=\"true\" href=\"#changes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>Changes</strong></h2>\n<p dir=\"auto\"><em>v0.10</em></p>\n<ul dir=\"auto\">\n<li>add multiple themes capability</li>\n<li>embed tweets</li>\n<li>add tweet photo viewer</li>\n<li>handle outside click for header actions</li>\n<li>handle error case for apis</li>\n<li>fix application development issue</li>\n<li></li>\n</ul>\n<p dir=\"auto\"><em>v0.9</em></p>\n<ul dir=\"auto\">\n<li>add sign out button</li>\n<li>add rate-limit exceed dialog</li>\n<li>add reply functionality</li>\n<li>UI enhancements</li>\n<li>add windows installers</li>\n<li>add compose tweet page</li>\n<li>new icons</li>\n<li>add about page</li>\n<li>add small loading indicator when retweeting & favoriting</li>\n<li>add support for quoted status</li>\n<li>tweak playercard design</li>\n<li>add verification to playercard</li>\n</ul>\n<p dir=\"auto\"><em>v0.8</em></p>\n<ul dir=\"auto\">\n<li>reduce package size by 44%</li>\n<li>add refresh functionality</li>\n<li>add avatar component to leftnavbar</li>\n<li>fix padding issue for playercard & spinner</li>\n<li>fix search page layout</li>\n<li>fix do not display 0 as a retweet & favorite count</li>\n<li>add topnavbar</li>\n<li>implement dark theme</li>\n<li>tweak tweets design</li>\n<li>add spinner</li>\n</ul>\n<p dir=\"auto\"><em>v0.7</em></p>\n<ul dir=\"auto\">\n<li>UI enhancements</li>\n<li>style changes for leftnavbar</li>\n<li>add search result type options menu</li>\n<li>reduce package size by 49%</li>\n<li>add packaging support</li>\n<li>add live-reloading during development</li>\n<li>better login workflow</li>\n<li>add icon for retweets</li>\n</ul>\n<p dir=\"auto\"><em>v0.6</em></p>\n<ul dir=\"auto\">\n<li>UI enhancements</li>\n<li>add search page functionality</li>\n<li>add characters left indicator for textbox</li>\n<li>fix problem with retweeting & favoriting retweeted tweets</li>\n<li>add tweetbox styling</li>\n</ul>\n<p dir=\"auto\"><em>v0.5</em></p>\n<ul dir=\"auto\">\n<li>fix titlebar not draggable when overlayed</li>\n<li>add simple tweet post implementation</li>\n<li>add tweet status</li>\n<li>add constent screen for media</li>\n<li>add rate limit indicator</li>\n<li>add link interceptor</li>\n<li>convert to a more modern react-redux architecture</li>\n</ul>\n<p dir=\"auto\"><em>v0.4</em></p>\n<ul dir=\"auto\">\n<li>UI enhancements</li>\n<li>add search feature</li>\n<li>add playercards</li>\n<li>add tweet posted time</li>\n<li>enable media rendering</li>\n</ul>\n<p dir=\"auto\"><em>v0.3</em></p>\n<ul dir=\"auto\">\n<li>refine tweetcards</li>\n<li>add follow feature</li>\n<li>add ci integration</li>\n<li>convert from systemjs to webpack</li>\n<li>implement pagination for hometimeline</li>\n</ul>\n<p dir=\"auto\"><em>v0.2</em></p>\n<ul dir=\"auto\">\n<li>redesign project to use reactjs</li>\n<li>add retweet, favorite feature</li>\n<li>refactor authentication code</li>\n</ul>\n<p dir=\"auto\"><em>v0.1</em></p>\n<ul dir=\"auto\">\n<li>init basic functionality</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-credits\" class=\"anchor\" aria-hidden=\"true\" href=\"#credits\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>Credits</strong></h2>\n<p dir=\"auto\">Credits to <a href=\"https://www.iconfinder.com/iconsets/twitter-ui-set\" rel=\"nofollow\">Denis Domanitsky</a> for most of the icons, under the <a href=\"https://creativecommons.org/licenses/by/3.0/\" rel=\"nofollow\">Attribution 3.0 Unported (CC BY 3.0)</a> licence.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>License</strong></h2>\n<p dir=\"auto\">This product is licensed under the <a href=\"./LICENSE.md\">GPL-3.0</a> license.</p>\n<hr>\n<p align=\"center\" dir=\"auto\">\n Made with <g-emoji class=\"g-emoji\" alias=\"heart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2764.png\">❤️</g-emoji> by <a href=\"https://github.com/afractal\">@afractal</a>\n</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.032Z" }, "u-stair": { "readmeCleaned": "<div id=\"readme\" class=\"adoc\" data-path=\"README.adoc\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div dir=\"auto\">\n<p dir=\"auto\"><span><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/workflows/Linux/badge.svg\"><img src=\"https://github.com/afmorenosa/U_Stair/workflows/Linux/badge.svg\" alt=\"badge\" style=\"max-width: 100%;\"></a></span>\n<span><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/workflows/Windows/badge.svg\"><img src=\"https://github.com/afmorenosa/U_Stair/workflows/Windows/badge.svg\" alt=\"badge\" style=\"max-width: 100%;\"></a></span>\n<span><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/workflows/Mac/badge.svg\"><img src=\"https://github.com/afmorenosa/U_Stair/workflows/Mac/badge.svg\" alt=\"badge\" style=\"max-width: 100%;\"></a></span></p>\n</div>\n<h1 id=\"user-content-u-stair\" dir=\"auto\"><a id=\"user-content-u-stair\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/#u-stair\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>U Stair</h1>\n<div dir=\"auto\">\n<p dir=\"auto\">Application for organizing the curriculum for university programs.</p>\n</div>\n<div dir=\"auto\">\n<h2 id=\"user-content-screenshots\" dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/screenshots/welcome.png\"><img src=\"https://raw.githubusercontent.com/afmorenosa/U_Stair/master/screenshots/welcome.png\" alt=\"welcome\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</div>\n</div>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/screenshots/subjects.png\"><img src=\"https://raw.githubusercontent.com/afmorenosa/U_Stair/master/screenshots/subjects.png\" alt=\"subjects\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</div>\n</div>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/screenshots/mesh.png\"><img src=\"https://raw.githubusercontent.com/afmorenosa/U_Stair/master/screenshots/mesh.png\" alt=\"mesh\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</div>\n</div>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/screenshots/timetable.png\"><img src=\"https://raw.githubusercontent.com/afmorenosa/U_Stair/master/screenshots/timetable.png\" alt=\"timetable\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</div>\n</div>\n</div>\n</div>\n<div dir=\"auto\">\n<h2 id=\"user-content-web-page\" dir=\"auto\"><a id=\"user-content-web-page\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/#web-page\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web page</h2>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<p dir=\"auto\"><a href=\"https://afmorenosa.github.io/U_Stair-WebPage/\" rel=\"nofollow\">https://afmorenosa.github.io/U_Stair-WebPage/</a></p>\n</div>\n</div>\n</div>\n<div dir=\"auto\">\n<h2 id=\"user-content-usage\" dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/afmorenosa/U_Stair/blob/master/#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<p dir=\"auto\">To see the usage, please refer to this\n<a href=\"https://afmorenosa.github.io/U_Stair-WebPage/manual/\" rel=\"nofollow\">documentation page.</a></p>\n</div>\n</div>\n</div></article></div>", "readmeOriginal": "<div id=\"readme\" class=\"adoc\" data-path=\"README.adoc\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div dir=\"auto\">\n<p dir=\"auto\"><span><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/workflows/Linux/badge.svg\"><img src=\"https://github.com/afmorenosa/U_Stair/workflows/Linux/badge.svg\" alt=\"badge\" style=\"max-width: 100%;\"></a></span>\n<span><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/workflows/Windows/badge.svg\"><img src=\"https://github.com/afmorenosa/U_Stair/workflows/Windows/badge.svg\" alt=\"badge\" style=\"max-width: 100%;\"></a></span>\n<span><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/afmorenosa/U_Stair/workflows/Mac/badge.svg\"><img src=\"https://github.com/afmorenosa/U_Stair/workflows/Mac/badge.svg\" alt=\"badge\" style=\"max-width: 100%;\"></a></span></p>\n</div>\n<h1 id=\"user-content-u-stair\" dir=\"auto\"><a id=\"user-content-u-stair\" class=\"anchor\" aria-hidden=\"true\" href=\"#u-stair\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>U Stair</h1>\n<div dir=\"auto\">\n<p dir=\"auto\">Application for organizing the curriculum for university programs.</p>\n</div>\n<div dir=\"auto\">\n<h2 id=\"user-content-screenshots\" dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/welcome.png\"><img src=\"screenshots/welcome.png\" alt=\"welcome\" style=\"max-width: 100%;\"></a>\n</div>\n</div>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/subjects.png\"><img src=\"screenshots/subjects.png\" alt=\"subjects\" style=\"max-width: 100%;\"></a>\n</div>\n</div>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/mesh.png\"><img src=\"screenshots/mesh.png\" alt=\"mesh\" style=\"max-width: 100%;\"></a>\n</div>\n</div>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/timetable.png\"><img src=\"screenshots/timetable.png\" alt=\"timetable\" style=\"max-width: 100%;\"></a>\n</div>\n</div>\n</div>\n</div>\n<div dir=\"auto\">\n<h2 id=\"user-content-web-page\" dir=\"auto\"><a id=\"user-content-web-page\" class=\"anchor\" aria-hidden=\"true\" href=\"#web-page\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web page</h2>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<p dir=\"auto\"><a href=\"https://afmorenosa.github.io/U_Stair-WebPage/\" rel=\"nofollow\">https://afmorenosa.github.io/U_Stair-WebPage/</a></p>\n</div>\n</div>\n</div>\n<div dir=\"auto\">\n<h2 id=\"user-content-usage\" dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<div dir=\"auto\">\n<div dir=\"auto\">\n<p dir=\"auto\">To see the usage, please refer to this\n<a href=\"https://afmorenosa.github.io/U_Stair-WebPage/manual/\" rel=\"nofollow\">documentation page.</a></p>\n</div>\n</div>\n</div></article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.111Z" }, "ubauth": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div align=\"center\" dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/chrisenytc/ubauth/blob/master/resources/banner.png\"><img src=\"https://raw.githubusercontent.com/chrisenytc/ubauth/master/resources/banner.png\" alt=\"UbAuth\" style=\"max-width: 100%;\" crossorigin=\"\"></a></div><br>\n<blockquote>\n<p dir=\"auto\">A desktop app to help developers create access tokens for Uber applications with OAuth 2.0.</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-status\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#status\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Status</h2>\n<h1 dir=\"auto\"><a id=\"user-content--------\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#-------\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"http://travis-ci.org/chrisenytc/ubauth\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/046c36b943ae5b610b1256fff656f4f6017ef82afac3055f6324db26266ed1d9/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6368726973656e7974632f7562617574682f6d61737465722e7376673f6d61784167653d3235393230303067\" alt=\"Build Status\" data-canonical-src=\"https://img.shields.io/travis/chrisenytc/ubauth/master.svg?maxAge=2592000g\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/chrisenytc/ubauth/releases\"><img src=\"https://camo.githubusercontent.com/f27d35dd4294940c02ca5332ec7ebf701bf3377f0e68da39d99596b66768d6ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6368726973656e7974632f7562617574682f746f74616c2e7376673f6d61784167653d32353932303030\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/chrisenytc/ubauth/total.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/chrisenytc/ubauth/blob/master/\"><img src=\"https://camo.githubusercontent.com/9f51b0442e1e874260aa280ab3fd39a97180c968e739b227c7aac5e549bdc81f/68747470733a2f2f696d672e736869656c64732e696f2f6d61696e74656e616e63652f7965732f323031372e7376673f6d61784167653d32353932303030\" alt=\"Maintenance\" data-canonical-src=\"https://img.shields.io/maintenance/yes/2017.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/chrisenytc/ubauth/blob/master/\"><img src=\"https://camo.githubusercontent.com/0c2bc0727a50ccbccc487a44d18ea712cb338c063a07bab8594f375544d49c46/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6368726973656e7974632f7562617574682e7376673f6d61784167653d32353932303030\" alt=\"GitHub release\" data-canonical-src=\"https://img.shields.io/github/release/chrisenytc/ubauth.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"https://codeclimate.com/github/chrisenytc/ubauth\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a465cce63467b3252ffcb1c391b3737742e2ba51744ecef085e4b1db71fbb7ac/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f6368726973656e7974632f7562617574682f6261646765732f6770612e737667\" alt=\"Code Climate\" data-canonical-src=\"https://codeclimate.com/github/chrisenytc/ubauth/badges/gpa.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/chrisenytc/ubauth/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/b264079271b4da71f68d93f8edc8b6ea8f81ad78fbcee8fa4912db7cb5a7f7db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6368726973656e7974632f7562617574682e7376673f6d61784167653d32353932303030\" alt=\"License\" data-canonical-src=\"https://img.shields.io/github/license/chrisenytc/ubauth.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"http://twitter.com/chrisenytc\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/06553d2755e44fe8d0865e7bbeecc934d24c78049838ed3271fa03460dc07491/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6368726973656e7974632e7376673f7374796c653d736f6369616c266c6162656c3d466f6c6c6f77266d61784167653d32353932303030\" alt=\"Twitter Follow\" data-canonical-src=\"https://img.shields.io/twitter/follow/chrisenytc.svg?style=social&label=Follow&maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"https://twitter.com/intent/tweet?text=Awesome%20https://github.com/chrisenytc/ubauth%20via%20@chrisenytc\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a87b4c64010159350e7c79f0c311f8ad3b8d5d63a0b8d7187df92df4b24b558b/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c266d61784167653d32353932303030\" alt=\"Twitter URL\" data-canonical-src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social&maxAge=2592000\" style=\"max-width: 100%;\"></a></h1>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">1º Clone ubauth repo</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone git@github.com:chrisenytc/ubauth.git\"><pre>$ git clone git@github.com:chrisenytc/ubauth.git</pre></div>\n<p dir=\"auto\">2º Enter in ubauth directory</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ cd ubauth\"><pre>$ <span class=\"pl-c1\">cd</span> ubauth</pre></div>\n<p dir=\"auto\">3º Install dependencies</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm install\"><pre>$ npm install</pre></div>\n<p dir=\"auto\">4º Run app</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm start\"><pre>$ npm start</pre></div>\n<p dir=\"auto\">5º Test the app</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm test\"><pre>$ npm <span class=\"pl-c1\">test</span></pre></div>\n<p dir=\"auto\">6º Making releases</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run release -- --sign identity_here\"><pre>$ npm run release -- --sign identity_here</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-screenshot\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#screenshot\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshot</h2>\n<p dir=\"auto\"><a href=\"https://raw.githubusercontent.com/chrisenytc/ubauth/master/resources/screenshot.png\" rel=\"nofollow\"><img src=\"https://raw.githubusercontent.com/chrisenytc/ubauth/master/resources/screenshot.png\" alt=\"Screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-downloads\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#downloads\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Downloads</h2>\n<p dir=\"auto\"><strong>UbAuth</strong> is available for macOS. Download <a href=\"https://github.com/chrisenytc/ubauth/releases/latest\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-donate\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#donate\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Donate</h2>\n<p dir=\"auto\">If <strong>UbAuth</strong> was helpful for you, send a donation as a thank you. :)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/chrisenytc/ubauth/blob/master/resources/bitcoin-address.png\"><img src=\"https://raw.githubusercontent.com/chrisenytc/ubauth/master/resources/bitcoin-address.png\" alt=\"Bitcoin\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\"><strong>Bitcoin Adddress</strong>: <code>3QbTQcSfWAUntPwTrWNQ3aHYYmvJS5HoUY</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Bug reports and pull requests are welcome on GitHub at <a href=\"https://github.com/chrisenytc/ubauth\">https://github.com/chrisenytc/ubauth</a>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the <a href=\"http://contributor-covenant.org\" rel=\"nofollow\">Contributor Covenant</a> code of conduct.</p>\n<ol dir=\"auto\">\n<li>Fork it <a href=\"https://github.com/chrisenytc/ubauth/fork\">chrisenytc/ubauth</a></li>\n<li>Create your feature branch (<code>git checkout -b my-new-feature</code>)</li>\n<li>Commit your changes (<code>git commit -am \"Add some feature\"</code>)</li>\n<li>Push to the branch (<code>git push origin my-new-feature</code>)</li>\n<li>Create new Pull Request</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-support\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#support\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Support</h2>\n<p dir=\"auto\">If you have any problem or suggestion please open an issue <a href=\"https://github.com/chrisenytc/ubauth/issues\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/chrisenytc/ubauth/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Check <a href=\"https://github.com/chrisenytc/ubauth/blob/master/LICENSE\">here</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div align=\"center\" dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"resources/banner.png\"><img src=\"resources/banner.png\" alt=\"UbAuth\" style=\"max-width: 100%;\"></a></div><br>\n<blockquote>\n<p dir=\"auto\">A desktop app to help developers create access tokens for Uber applications with OAuth 2.0.</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-status\" class=\"anchor\" aria-hidden=\"true\" href=\"#status\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Status</h2>\n<h1 dir=\"auto\"><a id=\"user-content--------\" class=\"anchor\" aria-hidden=\"true\" href=\"#-------\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"http://travis-ci.org/chrisenytc/ubauth\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/046c36b943ae5b610b1256fff656f4f6017ef82afac3055f6324db26266ed1d9/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6368726973656e7974632f7562617574682f6d61737465722e7376673f6d61784167653d3235393230303067\" alt=\"Build Status\" data-canonical-src=\"https://img.shields.io/travis/chrisenytc/ubauth/master.svg?maxAge=2592000g\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/chrisenytc/ubauth/releases\"><img src=\"https://camo.githubusercontent.com/f27d35dd4294940c02ca5332ec7ebf701bf3377f0e68da39d99596b66768d6ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6368726973656e7974632f7562617574682f746f74616c2e7376673f6d61784167653d32353932303030\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/chrisenytc/ubauth/total.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"\"><img src=\"https://camo.githubusercontent.com/9f51b0442e1e874260aa280ab3fd39a97180c968e739b227c7aac5e549bdc81f/68747470733a2f2f696d672e736869656c64732e696f2f6d61696e74656e616e63652f7965732f323031372e7376673f6d61784167653d32353932303030\" alt=\"Maintenance\" data-canonical-src=\"https://img.shields.io/maintenance/yes/2017.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"\"><img src=\"https://camo.githubusercontent.com/0c2bc0727a50ccbccc487a44d18ea712cb338c063a07bab8594f375544d49c46/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6368726973656e7974632f7562617574682e7376673f6d61784167653d32353932303030\" alt=\"GitHub release\" data-canonical-src=\"https://img.shields.io/github/release/chrisenytc/ubauth.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"https://codeclimate.com/github/chrisenytc/ubauth\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a465cce63467b3252ffcb1c391b3737742e2ba51744ecef085e4b1db71fbb7ac/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f6368726973656e7974632f7562617574682f6261646765732f6770612e737667\" alt=\"Code Climate\" data-canonical-src=\"https://codeclimate.com/github/chrisenytc/ubauth/badges/gpa.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/chrisenytc/ubauth/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/b264079271b4da71f68d93f8edc8b6ea8f81ad78fbcee8fa4912db7cb5a7f7db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6368726973656e7974632f7562617574682e7376673f6d61784167653d32353932303030\" alt=\"License\" data-canonical-src=\"https://img.shields.io/github/license/chrisenytc/ubauth.svg?maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"http://twitter.com/chrisenytc\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/06553d2755e44fe8d0865e7bbeecc934d24c78049838ed3271fa03460dc07491/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6368726973656e7974632e7376673f7374796c653d736f6369616c266c6162656c3d466f6c6c6f77266d61784167653d32353932303030\" alt=\"Twitter Follow\" data-canonical-src=\"https://img.shields.io/twitter/follow/chrisenytc.svg?style=social&label=Follow&maxAge=2592000\" style=\"max-width: 100%;\"></a> <a href=\"https://twitter.com/intent/tweet?text=Awesome%20https://github.com/chrisenytc/ubauth%20via%20@chrisenytc\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a87b4c64010159350e7c79f0c311f8ad3b8d5d63a0b8d7187df92df4b24b558b/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c266d61784167653d32353932303030\" alt=\"Twitter URL\" data-canonical-src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social&maxAge=2592000\" style=\"max-width: 100%;\"></a></h1>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">1º Clone ubauth repo</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone git@github.com:chrisenytc/ubauth.git\"><pre>$ git clone git@github.com:chrisenytc/ubauth.git</pre></div>\n<p dir=\"auto\">2º Enter in ubauth directory</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ cd ubauth\"><pre>$ <span class=\"pl-c1\">cd</span> ubauth</pre></div>\n<p dir=\"auto\">3º Install dependencies</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm install\"><pre>$ npm install</pre></div>\n<p dir=\"auto\">4º Run app</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm start\"><pre>$ npm start</pre></div>\n<p dir=\"auto\">5º Test the app</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm test\"><pre>$ npm <span class=\"pl-c1\">test</span></pre></div>\n<p dir=\"auto\">6º Making releases</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run release -- --sign identity_here\"><pre>$ npm run release -- --sign identity_here</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-screenshot\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshot\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshot</h2>\n<p dir=\"auto\"><a href=\"https://raw.githubusercontent.com/chrisenytc/ubauth/master/resources/screenshot.png\" rel=\"nofollow\"><img src=\"resources/screenshot.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-downloads\" class=\"anchor\" aria-hidden=\"true\" href=\"#downloads\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Downloads</h2>\n<p dir=\"auto\"><strong>UbAuth</strong> is available for macOS. Download <a href=\"https://github.com/chrisenytc/ubauth/releases/latest\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-donate\" class=\"anchor\" aria-hidden=\"true\" href=\"#donate\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Donate</h2>\n<p dir=\"auto\">If <strong>UbAuth</strong> was helpful for you, send a donation as a thank you. :)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"resources/bitcoin-address.png\"><img src=\"resources/bitcoin-address.png\" alt=\"Bitcoin\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Bitcoin Adddress</strong>: <code>3QbTQcSfWAUntPwTrWNQ3aHYYmvJS5HoUY</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Bug reports and pull requests are welcome on GitHub at <a href=\"https://github.com/chrisenytc/ubauth\">https://github.com/chrisenytc/ubauth</a>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the <a href=\"http://contributor-covenant.org\" rel=\"nofollow\">Contributor Covenant</a> code of conduct.</p>\n<ol dir=\"auto\">\n<li>Fork it <a href=\"https://github.com/chrisenytc/ubauth/fork\">chrisenytc/ubauth</a></li>\n<li>Create your feature branch (<code>git checkout -b my-new-feature</code>)</li>\n<li>Commit your changes (<code>git commit -am \"Add some feature\"</code>)</li>\n<li>Push to the branch (<code>git push origin my-new-feature</code>)</li>\n<li>Create new Pull Request</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-support\" class=\"anchor\" aria-hidden=\"true\" href=\"#support\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Support</h2>\n<p dir=\"auto\">If you have any problem or suggestion please open an issue <a href=\"https://github.com/chrisenytc/ubauth/issues\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Check <a href=\"LICENSE\">here</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.164Z" }, "unfx-proxy-checker": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/f7e19855d226696d9a537aadf782a7fef3d59dca2ac0cc05f9210b7f312a4f73/68747470733a2f2f692e6962622e636f2f7079516e35734a2f726f636b65742d736869702e706e67\"><img width=\"64px\" src=\"https://camo.githubusercontent.com/f7e19855d226696d9a537aadf782a7fef3d59dca2ac0cc05f9210b7f312a4f73/68747470733a2f2f692e6962622e636f2f7079516e35734a2f726f636b65742d736869702e706e67\" data-canonical-src=\"https://i.ibb.co/pyQn5sJ/rocket-ship.png\" style=\"max-width: 100%;\"></a>\n <br>\n <br>\n</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/3a4d410a794ac85553c954ed6a99e095eb0e2417a5064eace66207f175b62949/68747470733a2f2f692e6962622e636f2f6a3562354373522f332e706e67\"><img src=\"https://camo.githubusercontent.com/3a4d410a794ac85553c954ed6a99e095eb0e2417a5064eace66207f175b62949/68747470733a2f2f692e6962622e636f2f6a3562354373522f332e706e67\" alt=\"\" data-canonical-src=\"https://i.ibb.co/j5b5CsR/3.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Full description & Documentation for <a href=\"https://openproxy.space/software/proxy-checker\" rel=\"nofollow\">Proxy Checker</a></p>\n<h4 dir=\"auto\"><a id=\"user-content-open-proxy-space\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/assnctr/unfx-proxy-checker/blob/master/#open-proxy-space\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Open Proxy Space</h4>\n<p dir=\"auto\"><a href=\"https://openproxy.space/premium\" rel=\"nofollow\">Premium</a> - Buy Proxy List<br>\n<a href=\"https://openproxy.space/list\" rel=\"nofollow\">Free Proxy List</a> - Always Updated Proxy Lists</p>\n<h4 dir=\"auto\"><a id=\"user-content-unfx-proxy-tools\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/assnctr/unfx-proxy-checker/blob/master/#unfx-proxy-tools\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unfx Proxy Tools</h4>\n<p dir=\"auto\"><a href=\"https://openproxy.space/software/proxy-checker\" rel=\"nofollow\">Unfx Proxy Checker</a> - Powerful proxy checker with huge features and beautiful design.<br>\n<a href=\"https://openproxy.space/software/proxy-parser\" rel=\"nofollow\">Unfx Proxy Parser</a> - Nextgen proxy parser with deep links crawler.<br>\n<a href=\"https://openproxy.space/software/proxy-to-country\" rel=\"nofollow\">Unfx Proxy To Country</a> - Sort your proxy list from ip:port format by countries.</p>\n<h4 dir=\"auto\"><a id=\"user-content-misc\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/assnctr/unfx-proxy-checker/blob/master/#misc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Misc</h4>\n<p dir=\"auto\"><a href=\"https://utilify.me/\" rel=\"nofollow\">Utilify Me</a> - Online Tools & Utilities</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/f7e19855d226696d9a537aadf782a7fef3d59dca2ac0cc05f9210b7f312a4f73/68747470733a2f2f692e6962622e636f2f7079516e35734a2f726f636b65742d736869702e706e67\"><img width=\"64px\" src=\"https://camo.githubusercontent.com/f7e19855d226696d9a537aadf782a7fef3d59dca2ac0cc05f9210b7f312a4f73/68747470733a2f2f692e6962622e636f2f7079516e35734a2f726f636b65742d736869702e706e67\" data-canonical-src=\"https://i.ibb.co/pyQn5sJ/rocket-ship.png\" style=\"max-width: 100%;\"></a>\n <br>\n <br>\n</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/3a4d410a794ac85553c954ed6a99e095eb0e2417a5064eace66207f175b62949/68747470733a2f2f692e6962622e636f2f6a3562354373522f332e706e67\"><img src=\"https://camo.githubusercontent.com/3a4d410a794ac85553c954ed6a99e095eb0e2417a5064eace66207f175b62949/68747470733a2f2f692e6962622e636f2f6a3562354373522f332e706e67\" alt=\"\" data-canonical-src=\"https://i.ibb.co/j5b5CsR/3.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Full description & Documentation for <a href=\"https://openproxy.space/software/proxy-checker\" rel=\"nofollow\">Proxy Checker</a></p>\n<h4 dir=\"auto\"><a id=\"user-content-open-proxy-space\" class=\"anchor\" aria-hidden=\"true\" href=\"#open-proxy-space\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Open Proxy Space</h4>\n<p dir=\"auto\"><a href=\"https://openproxy.space/premium\" rel=\"nofollow\">Premium</a> - Buy Proxy List<br>\n<a href=\"https://openproxy.space/list\" rel=\"nofollow\">Free Proxy List</a> - Always Updated Proxy Lists</p>\n<h4 dir=\"auto\"><a id=\"user-content-unfx-proxy-tools\" class=\"anchor\" aria-hidden=\"true\" href=\"#unfx-proxy-tools\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unfx Proxy Tools</h4>\n<p dir=\"auto\"><a href=\"https://openproxy.space/software/proxy-checker\" rel=\"nofollow\">Unfx Proxy Checker</a> - Powerful proxy checker with huge features and beautiful design.<br>\n<a href=\"https://openproxy.space/software/proxy-parser\" rel=\"nofollow\">Unfx Proxy Parser</a> - Nextgen proxy parser with deep links crawler.<br>\n<a href=\"https://openproxy.space/software/proxy-to-country\" rel=\"nofollow\">Unfx Proxy To Country</a> - Sort your proxy list from ip:port format by countries.</p>\n<h4 dir=\"auto\"><a id=\"user-content-misc\" class=\"anchor\" aria-hidden=\"true\" href=\"#misc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Misc</h4>\n<p dir=\"auto\"><a href=\"https://utilify.me/\" rel=\"nofollow\">Utilify Me</a> - Online Tools & Utilities</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.215Z" }, "ueli": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-ueli\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#ueli\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ueli</h1>\n<p dir=\"auto\">This is a keystroke launcher for Windows and macOS.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-app-search.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-app-search.png\" alt=\"example-image\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#installation\">Installation</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#features\">Features</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#keyboard-shortcuts\">Keyboard shortcuts</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#supported-languages\">Supported Languages</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#settings\">Settings</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#updating\">Updating</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#privacy\">Privacy</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#known-bugs\">Known bugs</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#development\">Development</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#alternatives\">Alternatives</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/blob/dev/#license\">License</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/releases\">Release notes</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<h3 dir=\"auto\"><a id=\"user-content-installer--zip\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#installer--zip\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installer / Zip</h3>\n<ul dir=\"auto\">\n<li>Download the latest version from here: <a href=\"https://ueli.app/#/download\" rel=\"nofollow\">https://ueli.app/#/download</a></li>\n<li>Run the installer or unzip</li>\n<li>Run the application</li>\n</ul>\n<blockquote>\n<p dir=\"auto\">Note: because the executables are not signed Windows and macOS will probably prevent you from executing the installer or the program itself.</p>\n</blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-installing-via-chocolatey-repository\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#installing-via-chocolatey-repository\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing via chocolatey repository</h3>\n<ul dir=\"auto\">\n<li>Open a powershell with administration rights (Right click on your start button and click <code>Windows PowerShell (Admin)</code></li>\n<li>Type <code>choco install ueli</code></li>\n<li>Accept the upcoming prompt by entering <code>y</code> or run above command with <code>-y</code> switch</li>\n<li>Run the application</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<h3 dir=\"auto\"><a id=\"user-content-application-search\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#application-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Application Search</h3>\n<p dir=\"auto\">This plugin is searching for applications on your computer. You can specify the folders where your applications are installed and which file extension should be used to recognize an application.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-app-search.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-app-search.png\" alt=\"app-search\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-browser-bookmarks\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#browser-bookmarks\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Browser bookmarks</h3>\n<p dir=\"auto\">This plugin enables you to search your browser bookmarks.</p>\n<p dir=\"auto\">Currently supported browsers:</p>\n<ul dir=\"auto\">\n<li>Google Chrome</li>\n<li>Chromium</li>\n<li>Firefox</li>\n<li>Brave</li>\n<li>Vivaldi</li>\n<li>SideKick</li>\n<li>Microsoft Edge</li>\n<li>Yandex Browser</li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-browser-bookmarks.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-browser-bookmarks.png\" alt=\"browser-bookmarks\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-calculator\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#calculator\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Calculator</h3>\n<p dir=\"auto\">This Plugin lets you quickly do simple calculations.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-calculator.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-calculator.png\" alt=\"calculator\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-color-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#color-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Color Converter</h3>\n<p dir=\"auto\">This plugin enables you to quickly convert colors into different formats.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-color-converter.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-color-converter.png\" alt=\"color-converter\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-commandline\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#commandline\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Commandline</h3>\n<p dir=\"auto\">This plugin enables you to quickly execute commandline commands.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-commandline.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-commandline.png\" alt=\"commandline\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-control-panel-windows-only\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#control-panel-windows-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Control panel (Windows only)</h3>\n<p dir=\"auto\">This plugin enables you to quickly find control panel items.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-control-panel.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-control-panel.png\" alt=\"control-panel\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-currency-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#currency-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Currency Converter</h3>\n<p dir=\"auto\">This plugin enables you to quickly convert currencies. The latest conversion rates are provided by <a href=\"https://exchangeratesapi.io/\" rel=\"nofollow\">https://exchangeratesapi.io/</a>.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-currency-converter.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-currency-converter.png\" alt=\"currency-converter\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-dictionary\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#dictionary\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Dictionary</h3>\n<p dir=\"auto\">This plugin enables you to quickly look up the definition and synonyms of words. It uses an unofficial Google Dictionary API (<a href=\"https://dictionaryapi.dev/\" rel=\"nofollow\">https://dictionaryapi.dev/</a>)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-dictionary.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-dictionary.png\" alt=\"dictionary\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-email\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#email\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Email</h3>\n<p dir=\"auto\">This plugin enables you to quickly start writing an email by typing in an email address.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-email.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-email.png\" alt=\"email\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-everything-windows-only\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#everything-windows-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Everything (Windows only)</h3>\n<p dir=\"auto\">This feature enables you to use <a href=\"https://www.voidtools.com\" rel=\"nofollow\">Everything Search</a> to find files and folders on your local file system.</p>\n<ol dir=\"auto\">\n<li>Install \"Everything\" and the \"Everything Command-line interface\" from <a href=\"https://www.voidtools.com/downloads\" rel=\"nofollow\">https://www.voidtools.com/downloads</a>.</li>\n<li>Specify the file path to <code>es.exe</code> in ueli's settings.</li>\n</ol>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-everything.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-everything.png\" alt=\"everything\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-mdfind-macos-only\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#mdfind-macos-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>mdfind (macOS only)</h3>\n<p dir=\"auto\">This plugin enables you to use the native macOS search to find files and folders on your local file system.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-mdfind.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-mdfind.png\" alt=\"mdfind\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-file-browser\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#file-browser\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>File Browser</h3>\n<p dir=\"auto\">This plugin enables you to browse through your local file system. To start you have to enter a valid absolute filepath.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-file-browser.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-file-browser.png\" alt=\"file-browser\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-operating-system-commands\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#operating-system-commands\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Operating System Commands</h3>\n<p dir=\"auto\">Operating system commands are simple commands to control your operating system e.g. to shutdown or restart your computer.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-operating-system-commands.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-operating-system-commands.png\" alt=\"operating-system-commands\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-operating-system-settings\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#operating-system-settings\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Operating System Settings</h3>\n<p dir=\"auto\">This plugin enables you to quickly find operating system settings.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-operating-system-settings.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-operating-system-settings.png\" alt=\"operating-system-settings\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Shortcuts</h3>\n<p dir=\"auto\">This plugin enables you to quickly open files or websites by setting up your own shortcuts.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-shortcuts.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-shortcuts.png\" alt=\"shortcuts\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-simple-folder-search\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#simple-folder-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Simple Folder Search</h3>\n<p dir=\"auto\">This plugin enables you to quickly search for files or folders.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-simple-folder-search.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-simple-folder-search.png\" alt=\"simple-folder-search\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-translation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#translation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Translation</h3>\n<p dir=\"auto\">This plugin enables you to quickly translate words or short sentences. It uses an unofficial <a href=\"https://github.com/imankulov/linguee-api\">API</a> for <a href=\"https://linguee.de\" rel=\"nofollow\">Linguee</a> and may be unstable.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-translation.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-translation.png\" alt=\"translation\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-uwp-windows-only\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#uwp-windows-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>UWP (Windows only)</h3>\n<p dir=\"auto\">This plugin enables you to find preinstalled UWP apps.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-uwp.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-uwp.png\" alt=\"uwp\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-url\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#url\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>URL</h3>\n<p dir=\"auto\">This plugin enables you to quickly open websites by typing in a URL.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-url.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-url.png\" alt=\"url\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-web-search\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#web-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web Search</h3>\n<p dir=\"auto\">This plugin enables you to quickly search the internet with your favorite web search engine by setting up your own web search engines.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-web-search.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-web-search.png\" alt=\"web-search\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-workflow\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#workflow\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Workflow</h3>\n<p dir=\"auto\">This plugin enables you to quickly execute multiple things at once.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/feature-workflow.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/feature-workflow.png\" alt=\"workflow\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard shortcuts</h2>\n<table>\n<thead>\n<tr>\n<th>Keyboard shortcut</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><kbd>Alt</kbd> <kbd>Space Bar</kbd></td>\n<td>Open search box (Default value, can be adjusted in settings)</td>\n</tr>\n<tr>\n<td><kbd>Enter</kbd></td>\n<td>Execute selected search result</td>\n</tr>\n<tr>\n<td><kbd>Shift</kbd> <kbd>Enter</kbd></td>\n<td>Execute selected program as admin (Windows only)</td>\n</tr>\n<tr>\n<td><kbd>Tab</kbd></td>\n<td>Autocomplete file path</td>\n</tr>\n<tr>\n<td><kbd>Ctrl</kbd> <kbd>o</kbd></td>\n<td>Open the selected program or file at it's location (Windows)</td>\n</tr>\n<tr>\n<td><kbd>Cmd</kbd> <kbd>o</kbd></td>\n<td>Open the selected program or file at it's location (macOS)</td>\n</tr>\n<tr>\n<td><kbd>↑</kbd></td>\n<td>Scroll up</td>\n</tr>\n<tr>\n<td><kbd>↓</kbd></td>\n<td>Scroll down</td>\n</tr>\n<tr>\n<td><kbd>Ctrl or Cmd</kbd> <kbd>p</kbd></td>\n<td>Scroll up</td>\n</tr>\n<tr>\n<td><kbd>Ctrl or Cmd</kbd> <kbd>n</kbd></td>\n<td>Scroll down</td>\n</tr>\n<tr>\n<td><kbd>Ctrl</kbd> <kbd>i</kbd></td>\n<td>Open settings (Windows)</td>\n</tr>\n<tr>\n<td><kbd>Cmd</kbd> <kbd>,</kbd></td>\n<td>Open settings (macOS)</td>\n</tr>\n<tr>\n<td><kbd>Shift</kbd> <kbd>↑</kbd></td>\n<td>Browse user input history up</td>\n</tr>\n<tr>\n<td><kbd>Shift</kbd> <kbd>↓</kbd></td>\n<td>Browse user input history down</td>\n</tr>\n<tr>\n<td><kbd>Ctrl</kbd> <kbd>l</kbd></td>\n<td>Set focus on user input</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-supported-languages\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#supported-languages\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Supported Languages</h2>\n<ul dir=\"auto\">\n<li>English</li>\n<li>Chinese (简体中文)</li>\n<li>Czech (Česky)</li>\n<li>German (Deutsch)</li>\n<li>Hindi (हिन्दी)</li>\n<li>Italian (Italiano)</li>\n<li>Japanese (日本語)</li>\n<li>Korean (한국어)</li>\n<li>Portuguese (Português)</li>\n<li>Russian (Русский)</li>\n<li>Spanish (Español)</li>\n<li>Turkish (Türkçe)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-settings\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#settings\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Settings</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/assets/settings.png\"><img src=\"https://raw.githubusercontent.com/oliverschwendener/ueli/dev/assets/settings.png\" alt=\"settings\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\">To open the settings simply search for \"Settings\" or press <code>Ctrl+i</code> on Windows or <code>Cmd+,</code> on macOS. Here you can start configuring the app to your needs by enabling/disabling features or changing the settings.</p>\n<h2 dir=\"auto\"><a id=\"user-content-updating\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#updating\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Updating</h2>\n<p dir=\"auto\">The check if any updates are available open the settings. Under \"General Settings\" you can check if an update is available or not.</p>\n<p dir=\"auto\">On Windows you can directly update the app. On macOS you have to manually download the newest release and replace the existing app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-privacy\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#privacy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Privacy</h2>\n<p dir=\"auto\">For better search results ueli is keeping track of the applications, files and folders you are executing. If you don't want ueli to track your executions simply open the settings and click on the \"three-dot\" menu on the top right and choose \"Clear execution log\" and disable the option \"Log execution\".</p>\n<h2 dir=\"auto\"><a id=\"user-content-known-bugs\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#known-bugs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Known bugs</h2>\n<ul dir=\"auto\">\n<li>(<a href=\"https://github.com/oliverschwendener/ueli/issues/37\" data-hovercard-type=\"issue\" data-hovercard-url=\"/oliverschwendener/ueli/issues/37/hovercard\">#37</a>) Window starts to move while typing when custom scaling in Windows is set.</li>\n<li>(<a href=\"https://github.com/oliverschwendener/ueli/issues/92\" data-hovercard-type=\"issue\" data-hovercard-url=\"/oliverschwendener/ueli/issues/92/hovercard\">#92</a>) If you see an error that says <code>spawn powershell.exe ENOENT</code> check if powershell is installed (should be installed in all recent Versions of Windows by default) and check if powershell is in the PATH variable.</li>\n<li>(<a href=\"https://github.com/oliverschwendener/ueli/issues/278\" data-hovercard-type=\"issue\" data-hovercard-url=\"/oliverschwendener/ueli/issues/278/hovercard\">#278</a>) If you're on macOS Catalina you might miss some system apps (for example: Books or QuickTime Player). Try adding <code>/System/Applications</code> to your application search settings.</li>\n</ul>\n<p dir=\"auto\">For more check <a href=\"https://github.com/oliverschwendener/ueli/issues\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<h3 dir=\"auto\"><a id=\"user-content-requirements\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#requirements\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Requirements</h3>\n<ul dir=\"auto\">\n<li>Git</li>\n<li>Node 16.x.x</li>\n<li>Yarn</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-setup\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#setup\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setup</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/oliverschwendener/ueli\n$ cd ueli\n$ yarn\"><pre class=\"notranslate\"><code class=\"notranslate\">$ git clone https://github.com/oliverschwendener/ueli\n$ cd ueli\n$ yarn\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#run\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn bundle\n$ yarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn bundle\n$ yarn start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-debug\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#debug\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Debug</h3>\n<p dir=\"auto\">For debugging Visual Studio Code is recommended.</p>\n<ol dir=\"auto\">\n<li>Go to .vscode folder</li>\n<li>Make a copy of launch.example.json and rename it to launch.json</li>\n<li>Select one of the preconfigured debug modes and start debugging</li>\n</ol>\n<h3 dir=\"auto\"><a id=\"user-content-run-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#run-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run tests</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn test\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn test\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-package\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#package\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Package</h3>\n<h4 dir=\"auto\"><a id=\"user-content-create-portable-version\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#create-portable-version\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Create portable version</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn package:dir\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn package:dir\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-create-installer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#create-installer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Create installer</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn package\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn package\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-alternatives\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#alternatives\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Alternatives</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://www.launchy.net/\" rel=\"nofollow\">Launchy</a></li>\n<li><a href=\"https://github.com/Wox-launcher/Wox\">Wox</a></li>\n<li><a href=\"https://docs.microsoft.com/en-us/windows/powertoys/run\" rel=\"nofollow\">Microsoft PowerToys Run</a></li>\n<li><a href=\"https://www.fluentsearch.net/\" rel=\"nofollow\">Fluent Search</a></li>\n<li><a href=\"https://github.com/Flow-Launcher/Flow.Launcher\">Flow-Launcher</a></li>\n<li><a href=\"https://keypirinha.com/\" rel=\"nofollow\">Keypirinha</a></li>\n<li><a href=\"https://www.listary.com/\" rel=\"nofollow\">Listary</a></li>\n<li><a href=\"https://www.alfredapp.com/\" rel=\"nofollow\">Alfred</a></li>\n<li><a href=\"https://www.raycast.com/\" rel=\"nofollow\">Raycast</a></li>\n<li><a href=\"https://github.com/hainproject/hain\">Hain</a></li>\n<li><a href=\"https://zazuapp.org/\" rel=\"nofollow\">Zazu App</a></li>\n<li><a href=\"https://cerebroapp.com/\" rel=\"nofollow\">Cerebro</a></li>\n</ul>\n<p dir=\"auto\">For more check <a href=\"https://alternativeto.net/software/ueli\" rel=\"nofollow\">here</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-contributors-wall\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#contributors-wall\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors Wall</h3>\n<a href=\"https://github.com/oliverschwendener/ueli/graphs/contributors\">\n <img src=\"https://camo.githubusercontent.com/5e101531664969d934a46285e35203108cd7b58418e569b342b184a992432d72/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6f6c6976657273636877656e64656e65722f75656c69\" data-canonical-src=\"https://contrib.rocks/image?repo=oliverschwendener/ueli\" style=\"max-width: 100%;\">\n</a>\n<p dir=\"auto\"><em>Note: It may take up to 24h for the <a href=\"https://contrib.rocks/image?repo=oliverschwendener/ueli\" rel=\"nofollow\">contrib.rocks</a> plugin to update because it's refreshed once a day.</em></p>\n<h2 dir=\"auto\"><a id=\"user-content-thanks\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#thanks\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Thanks</h2>\n<p dir=\"auto\">Thanks to <a href=\"https://davidgabathuler.ch\" rel=\"nofollow\">David Gabathuler</a> for the logo!</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/oliverschwendener/ueli/blob/dev/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Copyright <g-emoji class=\"g-emoji\" alias=\"copyright\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/00a9.png\">©️</g-emoji> Oliver Schwendener. All rights reserved.\nLicensed under the <a href=\"https://github.com/oliverschwendener/ueli/blob/dev/LICENSE\">MIT</a> License.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-ueli\" class=\"anchor\" aria-hidden=\"true\" href=\"#ueli\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ueli</h1>\n<p dir=\"auto\">This is a keystroke launcher for Windows and macOS.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-app-search.png\"><img src=\"assets/feature-app-search.png\" alt=\"example-image\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"#installation\">Installation</a></li>\n<li><a href=\"#features\">Features</a></li>\n<li><a href=\"#keyboard-shortcuts\">Keyboard shortcuts</a></li>\n<li><a href=\"#supported-languages\">Supported Languages</a></li>\n<li><a href=\"#settings\">Settings</a></li>\n<li><a href=\"#updating\">Updating</a></li>\n<li><a href=\"#privacy\">Privacy</a></li>\n<li><a href=\"#known-bugs\">Known bugs</a></li>\n<li><a href=\"#development\">Development</a></li>\n<li><a href=\"#alternatives\">Alternatives</a></li>\n<li><a href=\"#license\">License</a></li>\n<li><a href=\"https://github.com/oliverschwendener/ueli/releases\">Release notes</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<h3 dir=\"auto\"><a id=\"user-content-installer--zip\" class=\"anchor\" aria-hidden=\"true\" href=\"#installer--zip\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installer / Zip</h3>\n<ul dir=\"auto\">\n<li>Download the latest version from here: <a href=\"https://ueli.app/#/download\" rel=\"nofollow\">https://ueli.app/#/download</a></li>\n<li>Run the installer or unzip</li>\n<li>Run the application</li>\n</ul>\n<blockquote>\n<p dir=\"auto\">Note: because the executables are not signed Windows and macOS will probably prevent you from executing the installer or the program itself.</p>\n</blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-installing-via-chocolatey-repository\" class=\"anchor\" aria-hidden=\"true\" href=\"#installing-via-chocolatey-repository\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing via chocolatey repository</h3>\n<ul dir=\"auto\">\n<li>Open a powershell with administration rights (Right click on your start button and click <code>Windows PowerShell (Admin)</code></li>\n<li>Type <code>choco install ueli</code></li>\n<li>Accept the upcoming prompt by entering <code>y</code> or run above command with <code>-y</code> switch</li>\n<li>Run the application</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<h3 dir=\"auto\"><a id=\"user-content-application-search\" class=\"anchor\" aria-hidden=\"true\" href=\"#application-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Application Search</h3>\n<p dir=\"auto\">This plugin is searching for applications on your computer. You can specify the folders where your applications are installed and which file extension should be used to recognize an application.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-app-search.png\"><img src=\"assets/feature-app-search.png\" alt=\"app-search\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-browser-bookmarks\" class=\"anchor\" aria-hidden=\"true\" href=\"#browser-bookmarks\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Browser bookmarks</h3>\n<p dir=\"auto\">This plugin enables you to search your browser bookmarks.</p>\n<p dir=\"auto\">Currently supported browsers:</p>\n<ul dir=\"auto\">\n<li>Google Chrome</li>\n<li>Chromium</li>\n<li>Firefox</li>\n<li>Brave</li>\n<li>Vivaldi</li>\n<li>SideKick</li>\n<li>Microsoft Edge</li>\n<li>Yandex Browser</li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-browser-bookmarks.png\"><img src=\"assets/feature-browser-bookmarks.png\" alt=\"browser-bookmarks\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-calculator\" class=\"anchor\" aria-hidden=\"true\" href=\"#calculator\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Calculator</h3>\n<p dir=\"auto\">This Plugin lets you quickly do simple calculations.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-calculator.png\"><img src=\"assets/feature-calculator.png\" alt=\"calculator\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-color-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"#color-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Color Converter</h3>\n<p dir=\"auto\">This plugin enables you to quickly convert colors into different formats.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-color-converter.png\"><img src=\"assets/feature-color-converter.png\" alt=\"color-converter\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-commandline\" class=\"anchor\" aria-hidden=\"true\" href=\"#commandline\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Commandline</h3>\n<p dir=\"auto\">This plugin enables you to quickly execute commandline commands.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-commandline.png\"><img src=\"assets/feature-commandline.png\" alt=\"commandline\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-control-panel-windows-only\" class=\"anchor\" aria-hidden=\"true\" href=\"#control-panel-windows-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Control panel (Windows only)</h3>\n<p dir=\"auto\">This plugin enables you to quickly find control panel items.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-control-panel.png\"><img src=\"assets/feature-control-panel.png\" alt=\"control-panel\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-currency-converter\" class=\"anchor\" aria-hidden=\"true\" href=\"#currency-converter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Currency Converter</h3>\n<p dir=\"auto\">This plugin enables you to quickly convert currencies. The latest conversion rates are provided by <a href=\"https://exchangeratesapi.io/\" rel=\"nofollow\">https://exchangeratesapi.io/</a>.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-currency-converter.png\"><img src=\"assets/feature-currency-converter.png\" alt=\"currency-converter\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-dictionary\" class=\"anchor\" aria-hidden=\"true\" href=\"#dictionary\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Dictionary</h3>\n<p dir=\"auto\">This plugin enables you to quickly look up the definition and synonyms of words. It uses an unofficial Google Dictionary API (<a href=\"https://dictionaryapi.dev/\" rel=\"nofollow\">https://dictionaryapi.dev/</a>)</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-dictionary.png\"><img src=\"assets/feature-dictionary.png\" alt=\"dictionary\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-email\" class=\"anchor\" aria-hidden=\"true\" href=\"#email\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Email</h3>\n<p dir=\"auto\">This plugin enables you to quickly start writing an email by typing in an email address.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-email.png\"><img src=\"assets/feature-email.png\" alt=\"email\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-everything-windows-only\" class=\"anchor\" aria-hidden=\"true\" href=\"#everything-windows-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Everything (Windows only)</h3>\n<p dir=\"auto\">This feature enables you to use <a href=\"https://www.voidtools.com\" rel=\"nofollow\">Everything Search</a> to find files and folders on your local file system.</p>\n<ol dir=\"auto\">\n<li>Install \"Everything\" and the \"Everything Command-line interface\" from <a href=\"https://www.voidtools.com/downloads\" rel=\"nofollow\">https://www.voidtools.com/downloads</a>.</li>\n<li>Specify the file path to <code>es.exe</code> in ueli's settings.</li>\n</ol>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-everything.png\"><img src=\"assets/feature-everything.png\" alt=\"everything\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-mdfind-macos-only\" class=\"anchor\" aria-hidden=\"true\" href=\"#mdfind-macos-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>mdfind (macOS only)</h3>\n<p dir=\"auto\">This plugin enables you to use the native macOS search to find files and folders on your local file system.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-mdfind.png\"><img src=\"assets/feature-mdfind.png\" alt=\"mdfind\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-file-browser\" class=\"anchor\" aria-hidden=\"true\" href=\"#file-browser\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>File Browser</h3>\n<p dir=\"auto\">This plugin enables you to browse through your local file system. To start you have to enter a valid absolute filepath.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-file-browser.png\"><img src=\"assets/feature-file-browser.png\" alt=\"file-browser\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-operating-system-commands\" class=\"anchor\" aria-hidden=\"true\" href=\"#operating-system-commands\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Operating System Commands</h3>\n<p dir=\"auto\">Operating system commands are simple commands to control your operating system e.g. to shutdown or restart your computer.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-operating-system-commands.png\"><img src=\"assets/feature-operating-system-commands.png\" alt=\"operating-system-commands\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-operating-system-settings\" class=\"anchor\" aria-hidden=\"true\" href=\"#operating-system-settings\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Operating System Settings</h3>\n<p dir=\"auto\">This plugin enables you to quickly find operating system settings.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-operating-system-settings.png\"><img src=\"assets/feature-operating-system-settings.png\" alt=\"operating-system-settings\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"#shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Shortcuts</h3>\n<p dir=\"auto\">This plugin enables you to quickly open files or websites by setting up your own shortcuts.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-shortcuts.png\"><img src=\"assets/feature-shortcuts.png\" alt=\"shortcuts\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-simple-folder-search\" class=\"anchor\" aria-hidden=\"true\" href=\"#simple-folder-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Simple Folder Search</h3>\n<p dir=\"auto\">This plugin enables you to quickly search for files or folders.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-simple-folder-search.png\"><img src=\"assets/feature-simple-folder-search.png\" alt=\"simple-folder-search\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-translation\" class=\"anchor\" aria-hidden=\"true\" href=\"#translation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Translation</h3>\n<p dir=\"auto\">This plugin enables you to quickly translate words or short sentences. It uses an unofficial <a href=\"https://github.com/imankulov/linguee-api\">API</a> for <a href=\"https://linguee.de\" rel=\"nofollow\">Linguee</a> and may be unstable.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-translation.png\"><img src=\"assets/feature-translation.png\" alt=\"translation\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-uwp-windows-only\" class=\"anchor\" aria-hidden=\"true\" href=\"#uwp-windows-only\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>UWP (Windows only)</h3>\n<p dir=\"auto\">This plugin enables you to find preinstalled UWP apps.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-uwp.png\"><img src=\"assets/feature-uwp.png\" alt=\"uwp\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-url\" class=\"anchor\" aria-hidden=\"true\" href=\"#url\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>URL</h3>\n<p dir=\"auto\">This plugin enables you to quickly open websites by typing in a URL.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-url.png\"><img src=\"assets/feature-url.png\" alt=\"url\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-web-search\" class=\"anchor\" aria-hidden=\"true\" href=\"#web-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web Search</h3>\n<p dir=\"auto\">This plugin enables you to quickly search the internet with your favorite web search engine by setting up your own web search engines.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-web-search.png\"><img src=\"assets/feature-web-search.png\" alt=\"web-search\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-workflow\" class=\"anchor\" aria-hidden=\"true\" href=\"#workflow\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Workflow</h3>\n<p dir=\"auto\">This plugin enables you to quickly execute multiple things at once.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/feature-workflow.png\"><img src=\"assets/feature-workflow.png\" alt=\"workflow\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard shortcuts</h2>\n<table>\n<thead>\n<tr>\n<th>Keyboard shortcut</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><kbd>Alt</kbd> <kbd>Space Bar</kbd></td>\n<td>Open search box (Default value, can be adjusted in settings)</td>\n</tr>\n<tr>\n<td><kbd>Enter</kbd></td>\n<td>Execute selected search result</td>\n</tr>\n<tr>\n<td><kbd>Shift</kbd> <kbd>Enter</kbd></td>\n<td>Execute selected program as admin (Windows only)</td>\n</tr>\n<tr>\n<td><kbd>Tab</kbd></td>\n<td>Autocomplete file path</td>\n</tr>\n<tr>\n<td><kbd>Ctrl</kbd> <kbd>o</kbd></td>\n<td>Open the selected program or file at it's location (Windows)</td>\n</tr>\n<tr>\n<td><kbd>Cmd</kbd> <kbd>o</kbd></td>\n<td>Open the selected program or file at it's location (macOS)</td>\n</tr>\n<tr>\n<td><kbd>↑</kbd></td>\n<td>Scroll up</td>\n</tr>\n<tr>\n<td><kbd>↓</kbd></td>\n<td>Scroll down</td>\n</tr>\n<tr>\n<td><kbd>Ctrl or Cmd</kbd> <kbd>p</kbd></td>\n<td>Scroll up</td>\n</tr>\n<tr>\n<td><kbd>Ctrl or Cmd</kbd> <kbd>n</kbd></td>\n<td>Scroll down</td>\n</tr>\n<tr>\n<td><kbd>Ctrl</kbd> <kbd>i</kbd></td>\n<td>Open settings (Windows)</td>\n</tr>\n<tr>\n<td><kbd>Cmd</kbd> <kbd>,</kbd></td>\n<td>Open settings (macOS)</td>\n</tr>\n<tr>\n<td><kbd>Shift</kbd> <kbd>↑</kbd></td>\n<td>Browse user input history up</td>\n</tr>\n<tr>\n<td><kbd>Shift</kbd> <kbd>↓</kbd></td>\n<td>Browse user input history down</td>\n</tr>\n<tr>\n<td><kbd>Ctrl</kbd> <kbd>l</kbd></td>\n<td>Set focus on user input</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"auto\"><a id=\"user-content-supported-languages\" class=\"anchor\" aria-hidden=\"true\" href=\"#supported-languages\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Supported Languages</h2>\n<ul dir=\"auto\">\n<li>English</li>\n<li>Chinese (简体中文)</li>\n<li>Czech (Česky)</li>\n<li>German (Deutsch)</li>\n<li>Hindi (हिन्दी)</li>\n<li>Italian (Italiano)</li>\n<li>Japanese (日本語)</li>\n<li>Korean (한국어)</li>\n<li>Portuguese (Português)</li>\n<li>Russian (Русский)</li>\n<li>Spanish (Español)</li>\n<li>Turkish (Türkçe)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-settings\" class=\"anchor\" aria-hidden=\"true\" href=\"#settings\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Settings</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/settings.png\"><img src=\"assets/settings.png\" alt=\"settings\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">To open the settings simply search for \"Settings\" or press <code>Ctrl+i</code> on Windows or <code>Cmd+,</code> on macOS. Here you can start configuring the app to your needs by enabling/disabling features or changing the settings.</p>\n<h2 dir=\"auto\"><a id=\"user-content-updating\" class=\"anchor\" aria-hidden=\"true\" href=\"#updating\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Updating</h2>\n<p dir=\"auto\">The check if any updates are available open the settings. Under \"General Settings\" you can check if an update is available or not.</p>\n<p dir=\"auto\">On Windows you can directly update the app. On macOS you have to manually download the newest release and replace the existing app.</p>\n<h2 dir=\"auto\"><a id=\"user-content-privacy\" class=\"anchor\" aria-hidden=\"true\" href=\"#privacy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Privacy</h2>\n<p dir=\"auto\">For better search results ueli is keeping track of the applications, files and folders you are executing. If you don't want ueli to track your executions simply open the settings and click on the \"three-dot\" menu on the top right and choose \"Clear execution log\" and disable the option \"Log execution\".</p>\n<h2 dir=\"auto\"><a id=\"user-content-known-bugs\" class=\"anchor\" aria-hidden=\"true\" href=\"#known-bugs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Known bugs</h2>\n<ul dir=\"auto\">\n<li>(<a href=\"https://github.com/oliverschwendener/ueli/issues/37\" data-hovercard-type=\"issue\" data-hovercard-url=\"/oliverschwendener/ueli/issues/37/hovercard\">#37</a>) Window starts to move while typing when custom scaling in Windows is set.</li>\n<li>(<a href=\"https://github.com/oliverschwendener/ueli/issues/92\" data-hovercard-type=\"issue\" data-hovercard-url=\"/oliverschwendener/ueli/issues/92/hovercard\">#92</a>) If you see an error that says <code>spawn powershell.exe ENOENT</code> check if powershell is installed (should be installed in all recent Versions of Windows by default) and check if powershell is in the PATH variable.</li>\n<li>(<a href=\"https://github.com/oliverschwendener/ueli/issues/278\" data-hovercard-type=\"issue\" data-hovercard-url=\"/oliverschwendener/ueli/issues/278/hovercard\">#278</a>) If you're on macOS Catalina you might miss some system apps (for example: Books or QuickTime Player). Try adding <code>/System/Applications</code> to your application search settings.</li>\n</ul>\n<p dir=\"auto\">For more check <a href=\"https://github.com/oliverschwendener/ueli/issues\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<h3 dir=\"auto\"><a id=\"user-content-requirements\" class=\"anchor\" aria-hidden=\"true\" href=\"#requirements\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Requirements</h3>\n<ul dir=\"auto\">\n<li>Git</li>\n<li>Node 16.x.x</li>\n<li>Yarn</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-setup\" class=\"anchor\" aria-hidden=\"true\" href=\"#setup\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setup</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/oliverschwendener/ueli\n$ cd ueli\n$ yarn\"><pre class=\"notranslate\"><code class=\"notranslate\">$ git clone https://github.com/oliverschwendener/ueli\n$ cd ueli\n$ yarn\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run\" class=\"anchor\" aria-hidden=\"true\" href=\"#run\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn bundle\n$ yarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn bundle\n$ yarn start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-debug\" class=\"anchor\" aria-hidden=\"true\" href=\"#debug\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Debug</h3>\n<p dir=\"auto\">For debugging Visual Studio Code is recommended.</p>\n<ol dir=\"auto\">\n<li>Go to .vscode folder</li>\n<li>Make a copy of launch.example.json and rename it to launch.json</li>\n<li>Select one of the preconfigured debug modes and start debugging</li>\n</ol>\n<h3 dir=\"auto\"><a id=\"user-content-run-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run tests</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn test\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn test\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-package\" class=\"anchor\" aria-hidden=\"true\" href=\"#package\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Package</h3>\n<h4 dir=\"auto\"><a id=\"user-content-create-portable-version\" class=\"anchor\" aria-hidden=\"true\" href=\"#create-portable-version\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Create portable version</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn package:dir\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn package:dir\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-create-installer\" class=\"anchor\" aria-hidden=\"true\" href=\"#create-installer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Create installer</h4>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn package\"><pre class=\"notranslate\"><code class=\"notranslate\">$ yarn package\n</code></pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-alternatives\" class=\"anchor\" aria-hidden=\"true\" href=\"#alternatives\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Alternatives</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://www.launchy.net/\" rel=\"nofollow\">Launchy</a></li>\n<li><a href=\"https://github.com/Wox-launcher/Wox\">Wox</a></li>\n<li><a href=\"https://docs.microsoft.com/en-us/windows/powertoys/run\" rel=\"nofollow\">Microsoft PowerToys Run</a></li>\n<li><a href=\"https://www.fluentsearch.net/\" rel=\"nofollow\">Fluent Search</a></li>\n<li><a href=\"https://github.com/Flow-Launcher/Flow.Launcher\">Flow-Launcher</a></li>\n<li><a href=\"https://keypirinha.com/\" rel=\"nofollow\">Keypirinha</a></li>\n<li><a href=\"https://www.listary.com/\" rel=\"nofollow\">Listary</a></li>\n<li><a href=\"https://www.alfredapp.com/\" rel=\"nofollow\">Alfred</a></li>\n<li><a href=\"https://www.raycast.com/\" rel=\"nofollow\">Raycast</a></li>\n<li><a href=\"https://github.com/hainproject/hain\">Hain</a></li>\n<li><a href=\"https://zazuapp.org/\" rel=\"nofollow\">Zazu App</a></li>\n<li><a href=\"https://cerebroapp.com/\" rel=\"nofollow\">Cerebro</a></li>\n</ul>\n<p dir=\"auto\">For more check <a href=\"https://alternativeto.net/software/ueli\" rel=\"nofollow\">here</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-contributors-wall\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributors-wall\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors Wall</h3>\n<a href=\"https://github.com/oliverschwendener/ueli/graphs/contributors\">\n <img src=\"https://camo.githubusercontent.com/5e101531664969d934a46285e35203108cd7b58418e569b342b184a992432d72/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6f6c6976657273636877656e64656e65722f75656c69\" data-canonical-src=\"https://contrib.rocks/image?repo=oliverschwendener/ueli\" style=\"max-width: 100%;\">\n</a>\n<p dir=\"auto\"><em>Note: It may take up to 24h for the <a href=\"https://contrib.rocks/image?repo=oliverschwendener/ueli\" rel=\"nofollow\">contrib.rocks</a> plugin to update because it's refreshed once a day.</em></p>\n<h2 dir=\"auto\"><a id=\"user-content-thanks\" class=\"anchor\" aria-hidden=\"true\" href=\"#thanks\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Thanks</h2>\n<p dir=\"auto\">Thanks to <a href=\"https://davidgabathuler.ch\" rel=\"nofollow\">David Gabathuler</a> for the logo!</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">Copyright <g-emoji class=\"g-emoji\" alias=\"copyright\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/00a9.png\">©️</g-emoji> Oliver Schwendener. All rights reserved.\nLicensed under the <a href=\"LICENSE\">MIT</a> License.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.351Z" }, "unofficial-riot-games-launcher": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-unofficial-riot-games-launcher\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#unofficial-riot-games-launcher\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unofficial Riot-Games-Launcher</h1>\n<h2 dir=\"auto\"><a id=\"\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Eliosth/Eliosth.github.io/blob/master/images/banner1.jpg\"><img src=\"https://github.com/Eliosth/Eliosth.github.io/raw/master/images/banner1.jpg\" alt=\"Overview\" style=\"max-width: 100%;\"></a></h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/ee7861ed4317199b5db7702b93773d5d5ec8fe49ffca413cb94df4384f3d3e19/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\"><img src=\"https://camo.githubusercontent.com/ee7861ed4317199b5db7702b93773d5d5ec8fe49ffca413cb94df4384f3d3e19/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\" alt=\"Issues\" data-canonical-src=\"https://img.shields.io/github/issues/Eliosth/UNOFFICIAL-Riot-Games-Launcher?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/240c31aa9ed14d1a0d4c093244f821163b35570935d5068884cbfbc945ad6391/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\"><img src=\"https://camo.githubusercontent.com/240c31aa9ed14d1a0d4c093244f821163b35570935d5068884cbfbc945ad6391/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\" alt=\"Forks\" data-canonical-src=\"https://img.shields.io/github/forks/Eliosth/UNOFFICIAL-Riot-Games-Launcher?style=for-the-badge\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/ada7a71ce5f57be42bac98159ff112c0bb246e6a4709ec635c71a37c9a2d6c87/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\"><img src=\"https://camo.githubusercontent.com/ada7a71ce5f57be42bac98159ff112c0bb246e6a4709ec635c71a37c9a2d6c87/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\" alt=\"Stars\" data-canonical-src=\"https://img.shields.io/github/stars/Eliosth/UNOFFICIAL-Riot-Games-Launcher?style=for-the-badge\" style=\"max-width: 100%;\"></a></p>\n<hr>\n<h1 dir=\"auto\"><a id=\"user-content-team\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#team\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Team</h1>\n<h3 dir=\"auto\"><a id=\"user-content-eliosth---developer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#eliosth---developer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Eliosth - Developer</h3>\n<h3 dir=\"auto\"><a id=\"user-content-lunepassage---concept-artist\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#lunepassage---concept-artist\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://www.reddit.com/user/lunepassage\" rel=\"nofollow\">lunepassage</a> - Concept Artist</h3>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-description\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Description</h2>\n<p dir=\"auto\">This project is carried out with the sole purpose of placing all the games made by <a href=\"https://www.riotgames.com/en\" rel=\"nofollow\"> Riot Games </a> on a single platform for easy access.</p>\n<h1 dir=\"auto\"><a id=\"user-content-lastest-release\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#lastest-release\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/releases\">Lastest Release</a></h1>\n<hr>\n<p dir=\"auto\">Simply install the file and the program will automatically detect the path to C: \"Riot Games\", if you have any problem visit the following link <a href=\"https://urgl.me/Support.html\" rel=\"nofollow\">https://urgl.me/Support.html</a></p>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-node-modules\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#node-modules\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Node Modules</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\"><a href=\"https://www.electronjs.org/docs/tutorial/installation\" rel=\"nofollow\">Electron</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://github.com/sindresorhus/electron-is-dev\">electron-is-dev</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://github.com/megahertz/electron-log\">electron-log</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://yarnpkg.com/package/electron-updater\" rel=\"nofollow\">electron-updater</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://sweetalert2.github.io/\" rel=\"nofollow\">Sweet Alert 2</a></p>\n</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-transparent-tittle-bar-by--binaryfunt\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#transparent-tittle-bar-by--binaryfunt\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Transparent Tittle Bar by binaryfunt</h3>\n<p dir=\"auto\"><a href=\"https://github.com/binaryfunt/electron-seamless-titlebar-tutorial\">electron-seamless-titlebar-tutorial</a></p>\n<hr>\n<h1 dir=\"auto\"><a id=\"user-content-mit-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#mit-license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>MIT LICENSE</h1>\n<h2 dir=\"auto\"><a id=\"user-content-all-game-assets-belongs-to-riot-games\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#all-game-assets-belongs-to-riot-games\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>All game assets belongs to <a href=\"https://www.riotgames.com/\" rel=\"nofollow\">Riot Games</a></h2>\n<hr>\n<p dir=\"auto\"><a href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/blob/URGL/#unofficial-riot-games-launcher\">Back To Top</a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-unofficial-riot-games-launcher\" class=\"anchor\" aria-hidden=\"true\" href=\"#unofficial-riot-games-launcher\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unofficial Riot-Games-Launcher</h1>\n<h2 dir=\"auto\"><a id=\"\" class=\"anchor\" aria-hidden=\"true\" href=\"#\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Eliosth/Eliosth.github.io/blob/master/images/banner1.jpg\"><img src=\"https://github.com/Eliosth/Eliosth.github.io/raw/master/images/banner1.jpg\" alt=\"Overview\" style=\"max-width: 100%;\"></a></h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/ee7861ed4317199b5db7702b93773d5d5ec8fe49ffca413cb94df4384f3d3e19/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\"><img src=\"https://camo.githubusercontent.com/ee7861ed4317199b5db7702b93773d5d5ec8fe49ffca413cb94df4384f3d3e19/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\" alt=\"Issues\" data-canonical-src=\"https://img.shields.io/github/issues/Eliosth/UNOFFICIAL-Riot-Games-Launcher?style=for-the-badge\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/240c31aa9ed14d1a0d4c093244f821163b35570935d5068884cbfbc945ad6391/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\"><img src=\"https://camo.githubusercontent.com/240c31aa9ed14d1a0d4c093244f821163b35570935d5068884cbfbc945ad6391/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\" alt=\"Forks\" data-canonical-src=\"https://img.shields.io/github/forks/Eliosth/UNOFFICIAL-Riot-Games-Launcher?style=for-the-badge\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/ada7a71ce5f57be42bac98159ff112c0bb246e6a4709ec635c71a37c9a2d6c87/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\"><img src=\"https://camo.githubusercontent.com/ada7a71ce5f57be42bac98159ff112c0bb246e6a4709ec635c71a37c9a2d6c87/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f456c696f7374682f554e4f4646494349414c2d52696f742d47616d65732d4c61756e636865723f7374796c653d666f722d7468652d6261646765\" alt=\"Stars\" data-canonical-src=\"https://img.shields.io/github/stars/Eliosth/UNOFFICIAL-Riot-Games-Launcher?style=for-the-badge\" style=\"max-width: 100%;\"></a></p>\n<hr>\n<h1 dir=\"auto\"><a id=\"user-content-team\" class=\"anchor\" aria-hidden=\"true\" href=\"#team\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Team</h1>\n<h3 dir=\"auto\"><a id=\"user-content-eliosth---developer\" class=\"anchor\" aria-hidden=\"true\" href=\"#eliosth---developer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Eliosth - Developer</h3>\n<h3 dir=\"auto\"><a id=\"user-content-lunepassage---concept-artist\" class=\"anchor\" aria-hidden=\"true\" href=\"#lunepassage---concept-artist\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://www.reddit.com/user/lunepassage\" rel=\"nofollow\">lunepassage</a> - Concept Artist</h3>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-description\" class=\"anchor\" aria-hidden=\"true\" href=\"#description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Description</h2>\n<p dir=\"auto\">This project is carried out with the sole purpose of placing all the games made by <a href=\"https://www.riotgames.com/en\" rel=\"nofollow\"> Riot Games </a> on a single platform for easy access.</p>\n<h1 dir=\"auto\"><a id=\"user-content-lastest-release\" class=\"anchor\" aria-hidden=\"true\" href=\"#lastest-release\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Eliosth/UNOFFICIAL-Riot-Games-Launcher/releases\">Lastest Release</a></h1>\n<hr>\n<p dir=\"auto\">Simply install the file and the program will automatically detect the path to C: \"Riot Games\", if you have any problem visit the following link <a href=\"https://urgl.me/Support.html\" rel=\"nofollow\">https://urgl.me/Support.html</a></p>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-node-modules\" class=\"anchor\" aria-hidden=\"true\" href=\"#node-modules\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Node Modules</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\"><a href=\"https://www.electronjs.org/docs/tutorial/installation\" rel=\"nofollow\">Electron</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://github.com/sindresorhus/electron-is-dev\">electron-is-dev</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://github.com/megahertz/electron-log\">electron-log</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://yarnpkg.com/package/electron-updater\" rel=\"nofollow\">electron-updater</a></p>\n</li>\n<li>\n<p dir=\"auto\"><a href=\"https://sweetalert2.github.io/\" rel=\"nofollow\">Sweet Alert 2</a></p>\n</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-transparent-tittle-bar-by--binaryfunt\" class=\"anchor\" aria-hidden=\"true\" href=\"#transparent-tittle-bar-by--binaryfunt\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Transparent Tittle Bar by binaryfunt</h3>\n<p dir=\"auto\"><a href=\"https://github.com/binaryfunt/electron-seamless-titlebar-tutorial\">electron-seamless-titlebar-tutorial</a></p>\n<hr>\n<h1 dir=\"auto\"><a id=\"user-content-mit-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#mit-license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>MIT LICENSE</h1>\n<h2 dir=\"auto\"><a id=\"user-content-all-game-assets-belongs-to-riot-games\" class=\"anchor\" aria-hidden=\"true\" href=\"#all-game-assets-belongs-to-riot-games\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>All game assets belongs to <a href=\"https://www.riotgames.com/\" rel=\"nofollow\">Riot Games</a></h2>\n<hr>\n<p dir=\"auto\"><a href=\"#unofficial-riot-games-launcher\">Back To Top</a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.441Z" }, "unicopedia-plus": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--unicopedia-plus\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#-unicopedia-plus\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/icons/icon-256.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Unicopedia Plus icon\" style=\"max-width: 100%;\" crossorigin=\"\"></a> UNICOPEDIA PLUS</h1>\n<p dir=\"auto\"><strong>Unicopedia Plus</strong> is a developer-oriented set of Unicode, Unihan & emoji utilities wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/UP-social-preview.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/UP-social-preview.png\" alt=\"Unicopedia Plus social preview\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>CJK Font Variants</strong></li>\n<li><strong>JavaScript Runner</strong></li>\n<li><strong>Regex Properties</strong></li>\n<li><strong>Emoji Data Finder</strong>\n<ul dir=\"auto\">\n<li><strong>Find by Name</strong></li>\n<li><strong>Match Sequence</strong></li>\n<li><strong>Filter Text</strong></li>\n</ul>\n</li>\n<li><strong>Emoji Picture Book</strong></li>\n<li><strong>Emoji References</strong></li>\n<li><strong>Unicode Data Finder</strong>\n<ul dir=\"auto\">\n<li><strong>Find by Name</strong></li>\n<li><strong>Match Character</strong></li>\n<li><strong>List by Block</strong></li>\n</ul>\n</li>\n<li><strong>Unicode Foldings</strong></li>\n<li><strong>Unicode Inspector</strong></li>\n<li><strong>Unicode Normalizer</strong></li>\n<li><strong>Unicode References</strong></li>\n<li><strong>Unicode Segmenter</strong></li>\n<li><strong>Unihan Data Finder</strong>\n<ul dir=\"auto\">\n<li><strong>Find by Tag Value</strong></li>\n<li><strong>Match Character</strong></li>\n<li><strong>View by Grid</strong></li>\n</ul>\n</li>\n<li><strong>Unihan Inspector</strong></li>\n<li><strong>Unihan Radical-Strokes</strong></li>\n<li><strong>Unihan References</strong></li>\n<li><strong>Unihan Variants</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-font-variants\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#cjk-font-variants\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Font Variants</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Font Variants</strong> utility displays simultaneously any string of CJK (Chinese/Japanese/Korean) characters in five different typefaces belonging to the open-source set of <a href=\"https://github.com/adobe-fonts/source-han-sans\">Source Han Sans Fonts</a>:</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th>Language</th>\n<th>Tag</th>\n<th>Code</th>\n<th>Typeface</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Japanese</td>\n<td>ja</td>\n<td>JP</td>\n<td>Source Han Sans</td>\n</tr>\n<tr>\n<td>Korean</td>\n<td>ko</td>\n<td>KR</td>\n<td>Source Han Sans K</td>\n</tr>\n<tr>\n<td>Simplified Chinese</td>\n<td>zh-Hans</td>\n<td>SC</td>\n<td>Source Han Sans SC</td>\n</tr>\n<tr>\n<td>Traditional Chinese (Taiwan)</td>\n<td>zh-Hant-TW</td>\n<td>TC</td>\n<td>Source Han Sans TC</td>\n</tr>\n<tr>\n<td>Traditional Chinese (Hong Kong)</td>\n<td>zh-Hant-HK</td>\n<td>HK</td>\n<td>Source Han Sans HC</td>\n</tr>\n</tbody>\n</table>\n<ul dir=\"auto\">\n<li>Additionally, it is possible to specify a set of logographic glyph variants for display by using the <kbd>East Asian Variant</kbd> drop-down menu.</li>\n<li>Font variants of the CJK characters can be visualized either vertically or horizontally. Use the <kbd>Writing Mode</kbd> drop-down menu to toggle between the two modes.</li>\n<li>Use the <kbd>Font Weight</kbd> drop-down menu to select the font weight of the CJK characters, among: <code>Extra Light</code>, <code>Light</code>, <code>Regular</code>, <code>Medium</code>, <code>Semi Bold</code>, <code>Bold</code>, <code>Extra Bold</code>, <code>Heavy</code>.</li>\n<li>Clicking inside any character frame displays momentarily the same glyph for all language flavors, while alt-clicking (or shift-clicking) applies to all characters of the string in a given language flavor. This is especially useful to quickly spot the differences between glyph variations. If the <kbd>⇪ Caps Lock</kbd> key is turned on as well, the differences are shown in contrasting colors instead.</li>\n<li>CJK characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined strings of CJK characters selected from the <kbd>Samples ▾</kbd> pop-up menu; some of them make use of the information found in the <a href=\"https://www.unicode.org/Public/UNIDATA/StandardizedVariants.txt\" rel=\"nofollow\">StandardizedVariants.txt</a> or <a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Sequences.txt\" rel=\"nofollow\">IVD_Sequences.txt</a> data files.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>In output, the standard Unicode code point format <code>U+7ADC</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u9F8D</code> or <code>\\u{20B9F}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/cjk-font-variants-horizontal.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/cjk-font-variants-horizontal.png\" width=\"1080px\" alt=\"CJK Font Variants (Horizontal) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/cjk-font-variants-vertical.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/cjk-font-variants-vertical.png\" width=\"1080px\" alt=\"CJK Font Variants (Vertical) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-runner\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#javascript-runner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Runner</h2>\n<ul dir=\"auto\">\n<li>The <strong>JavaScript Runner</strong> utility lets you execute JavaScript code, and comes with several sample scripts related to Unicode, Unihan, and emoji; it is useful for quick testing/prototyping or data processing.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/javascript-runner.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/javascript-runner.png\" width=\"1080px\" alt=\"JavaScript Runner screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-regex-properties\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#regex-properties\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Regex Properties</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">The <strong>Regex Properties</strong> utility displays all the <strong>Unicode 14.0</strong> properties available for regular expressions, used in particular by the <strong>Emoji Data Finder</strong>, <strong>Unicode Data Finder</strong> and <strong>Unihan Data Finder</strong> utilities.</p>\n</li>\n<li>\n<p dir=\"auto\">These properties are suitable to build Unicode-aware regular expressions in JavaScript (ECMAScript 6) using the 'u' flag.</p>\n</li>\n<li>\n<p dir=\"auto\">Unicode properties fall into four groups, which can be displayed individually using the <kbd>Category</kbd> drop-down menu:</p>\n<ul dir=\"auto\">\n<li><strong>General Category</strong> properties</li>\n<li><strong>Binary</strong> properties</li>\n<li><strong>Script</strong> properties</li>\n<li><strong>Script Extensions</strong> properties</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">For <strong>General Category</strong> properties, prefixing with <code>General_Category=</code> (Canonical) or <code>gc=</code> (Alias) is optional. Use the <kbd>Optional Prefix</kbd> checkbox to control whether the prefix is included or not.</p>\n</li>\n<li>\n<p dir=\"auto\">Groupings:</p>\n<table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Cased_Letter</td>\n<td>Uppercase_Letter | Lowercase_Letter | Titlecase_Letter</td>\n</tr>\n<tr>\n<td>Letter</td>\n<td>Uppercase_Letter | Lowercase_Letter | Titlecase_Letter | Modifier_Letter | Other_Letter</td>\n</tr>\n<tr>\n<td>Mark</td>\n<td>Nonspacing_Mark | Spacing_Mark | Enclosing_Mark</td>\n</tr>\n<tr>\n<td>Number</td>\n<td>Decimal_Number | Letter_Number | Other_Number</td>\n</tr>\n<tr>\n<td>Punctuation</td>\n<td>Connector_Punctuation | Dash_Punctuation | Open_Punctuation | Close_Punctuation | Initial_Punctuation | Final_Punctuation | Other_Punctuation</td>\n</tr>\n<tr>\n<td>Symbol</td>\n<td>Math_Symbol | Currency_Symbol | Modifier_Symbol | Other_Symbol</td>\n</tr>\n<tr>\n<td>Separator</td>\n<td>Space_Separator | Line_Separator | Paragraph_Separator</td>\n</tr>\n<tr>\n<td>Other</td>\n<td>Control | Format | Surrogate | Private_Use | Unassigned</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>\n<p dir=\"auto\"><code>\\P{…}</code> is the negated form of <code>\\p{…}</code>. Use the <kbd>Negated</kbd> checkbox to toggle between the two forms.</p>\n</li>\n<li>\n<p dir=\"auto\">Notes:</p>\n<ul dir=\"auto\">\n<li><code>\\p{Any}</code> is equivalent to <code>[\\u{0}-\\u{10FFFF}]</code></li>\n<li><code>\\p{ASCII}</code> is equivalent to <code>[\\u{0}-\\u{7F}]</code></li>\n<li><code>\\p{Assigned}</code> is equivalent to <code>\\P{Unassigned}</code> or <code>\\P{General_Category=Unassigned}</code></li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/regex-properties.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/regex-properties.png\" width=\"1080px\" alt=\"Regex Properties screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-emoji-data-finder\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#emoji-data-finder\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Emoji Data Finder</h2>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-name\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#find-by-name\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Name</h3>\n<ul dir=\"auto\">\n<li>The <strong>Find by Name</strong> feature of the <strong>Emoji Data Finder</strong> utility displays a list of basic data (emoji, short name, keywords, code points) of matching Unicode emoji searched by name or keyword, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any.</li>\n<li>This feature deals with the 4,702 emoji defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>The 9 <em>component</em> (5 <em>skin-tone</em> and 4 <em>hair-style</em>) emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) emoji are presented in a standard way, while the 1,069 <em>non-fully-qualified</em> emoji are shown in a distinctive muted (grayed out) style.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/emoji-data-finder-find-by-name.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/emoji-data-finder-find-by-name.png\" width=\"1080px\" alt=\"Emoji Data Finder - Find by Name screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-sequence\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#match-sequence\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match Sequence</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match Sequence</strong> feature of the <strong>Emoji Data Finder</strong> utility displays a list of basic data (emoji, short name, keywords, code points) of Unicode emoji matching a character sequence, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any.</li>\n<li>This feature deals with the 4,702 emoji defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>The 9 <em>component</em> (5 <em>skin-tone</em> and 4 <em>hair-style</em>) emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) emoji are presented in a standard way, while the 1,069 <em>non-fully-qualified</em> emoji are shown in a distinctive muted (grayed out) style.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/emoji-data-finder-match-sequence.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/emoji-data-finder-match-sequence.png\" width=\"1080px\" alt=\"Emoji Data Finder - Match Sequence screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-filter-text\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#filter-text\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Filter Text</h3>\n<ul dir=\"auto\">\n<li>The <strong>Filter Text</strong> feature of the <strong>Emoji Data Finder</strong> utility displays in real time a list of basic data (emoji, short name, keywords, code points) of all the Unicode emoji contained in a text string.</li>\n<li>Text can by directly typed, or pasted from the clipboard into the main input field.</li>\n<li>It is also possible to input predefined sets of emoji selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input field can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>Use the <kbd>Filter ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Discard Non-Emoji</code> [strip out non-emoji characters]</li>\n<li><code>Upgrade to RGI Emoji</code> [restore incomplete emoji to their <strong>RGI</strong> form]</li>\n<li><code>Remove Duplicate Emoji</code> [delete emoji duplicates]</li>\n</ul>\n</li>\n<li>This feature deals with the 4,702 emoji defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>The 9 <em>component</em> (5 <em>skin-tone</em> and 4 <em>hair-style</em>) emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) emoji are presented in a standard way, while the 1,069 <em>non-fully-qualified</em> emoji are shown in a distinctive muted (grayed out) style.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n</ul>\n</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/emoji-data-finder-filter-text.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/emoji-data-finder-filter-text.png\" width=\"1080px\" alt=\"Emoji Data Finder - Filter Text screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-emoji-picture-book\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#emoji-picture-book\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Emoji Picture Book</h2>\n<ul dir=\"auto\">\n<li>The <strong>Emoji Picture Book</strong> utility displays lists of Unicode emoji in a color picture book fashion.</li>\n<li>Any group of pictures can be displayed by selecting its name in the <kbd>Category</kbd> drop-down menu, among:\n<ul dir=\"auto\">\n<li><strong>Smileys & Emotion</strong></li>\n<li><strong>People & Body</strong></li>\n<li><strong>Component</strong></li>\n<li><strong>Animals & Nature</strong></li>\n<li><strong>Food & Drink</strong></li>\n<li><strong>Travel & Places</strong></li>\n<li><strong>Activities</strong></li>\n<li><strong>Objects</strong></li>\n<li><strong>Symbols</strong></li>\n<li><strong>Flags</strong></li>\n</ul>\n</li>\n<li>The size of all emoji pictures (from 32 to 128 pixels) can be adjusted by moving the dedicated slider left and right.</li>\n<li>The groups and subgroups of emoji are those defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>Only the 9 <em>component</em> emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) forms of the emoji are used unless they cannot be displayed properly, depending on the emoji support level of the operating system.</li>\n<li>Emoji failing to be represented as proper color pictures are purely and simply discarded.</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/emoji-picture-book.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/emoji-picture-book.png\" width=\"1080px\" alt=\"Emoji Picture Book screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-emoji-references\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#emoji-references\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Emoji References</h2>\n<ul dir=\"auto\">\n<li>The <strong>Emoji References</strong> utility provides a list of reference links to emoji-related web pages.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/emoji-references.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/emoji-references.png\" width=\"1080px\" alt=\"Emoji References screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-data-finder\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unicode-data-finder\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Data Finder</h2>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-name-1\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#find-by-name-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Name</h3>\n<ul dir=\"auto\">\n<li>The <strong>Find by Name</strong> feature of the <strong>Unicode Data Finder</strong> utility displays a list of basic data (character, code point, name/aliases, block) of matching Unicode characters searched by name or alias, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>When available, name aliases are displayed (in italics and smaller typeface) after the unique and immutable Unicode name. A correction alias is indicated by a leading reference mark <code>※</code>.</li>\n<li>All names and aliases are obtained from the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> and <a href=\"https://www.unicode.org/Public/UNIDATA/NameAliases.txt\" rel=\"nofollow\">NameAliases.txt</a> data files.</li>\n<li>The search is performed on the 284,278 assigned characters (or code points) defined in the <strong>Unicode 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> data file.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-data-finder-find-by-name.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-data-finder-find-by-name.png\" width=\"1080px\" alt=\"Unicode Data Finder - Find by Name screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-character\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#match-character\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match Character</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match Character</strong> feature of the <strong>Unicode Data Finder</strong> utility displays a list of basic data (character, code point, name/aliases, block) of Unicode characters matching a character, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Match Decomposition</kbd> toggle button to extend the search to characters whose <em>decomposition mapping</em> matches the query string.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the 284,278 assigned characters (or code points) defined in the <strong>Unicode 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> data file.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-data-finder-match-character.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-data-finder-match-character.png\" width=\"1080px\" alt=\"Unicode Data Finder - Match Character screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-list-by-block\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#list-by-block\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>List by Block</h3>\n<ul dir=\"auto\">\n<li>The <strong>List by Block</strong> feature of the <strong>Unicode Data Finder</strong> utility displays in real time a list of basic data (character, code point, name/aliases, block) of Unicode characters belonging to the same block range.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>A block can be selected either by <kbd>Block Name</kbd> or by <kbd>Block Range</kbd>, as defined in the <a href=\"https://www.unicode.org/Public/UNIDATA/Blocks.txt\" rel=\"nofollow\">Blocks.txt</a> data file.</li>\n<li>It is also possible to directly enter a code point (or character) in the <kbd>Specimen</kbd> field, then click on the <kbd>Go</kbd> button to automatically select the block containing the code point, scroll its basic data into view, and highlight its hexadecimal code value.</li>\n<li>You can quickly reuse a previously entered code point by using the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate up and down through the history stack in the <kbd>Specimen</kbd> field. Alternatively, you can also use the <kbd>Specimen History ▾</kbd> pop-up menu to automatically jump to a specific character.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-data-finder-list-by-block.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-data-finder-list-by-block.png\" width=\"1080px\" alt=\"Unicode Data Finder - List by Block screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-foldings\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unicode-foldings\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Foldings</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode Foldings</strong> utility displays simultaneously the uppercase and lowercase foldings of a given string, making use of the JavaScript string functions <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase\" rel=\"nofollow\">toUpperCase</a> and <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase\" rel=\"nofollow\">toLowerCase</a>, or <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase\" rel=\"nofollow\">toLocaleUpperCase</a> and <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase\" rel=\"nofollow\">toLocaleLowerCase</a> when a specific locale is selected from the <kbd>Locale</kbd> drop-down menu.</li>\n<li>Characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined strings of characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>In output, the standard Unicode code point format <code>U+00DF</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u212B</code> or <code>\\u{10400}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n<li>Note: <em>folding</em> is an operation that maps similar characters to a common target, such as uppercasing or lowercasing a string. Folding operations are most often used to temporarily ignore certain distinctions between characters.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-foldings.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-foldings.png\" width=\"1080px\" alt=\"Unicode Foldings screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-inspector\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unicode-inspector\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Inspector</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode Inspector</strong> utility displays code point information in real time for each Unicode character of a text string.</li>\n<li>Characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined sets of characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>In output, the standard Unicode code point format <code>U+0041</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u611B</code> or <code>\\u{1F49C}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n<li>Information is provided for the 284,278 assigned characters (or code points) defined in the <strong>Unicode 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> data file.</li>\n<li>Extra information is also obtained from the following data files:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/ArabicShaping.txt\" rel=\"nofollow\">ArabicShaping.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/Blocks.txt\" rel=\"nofollow\">Blocks.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/CaseFolding.txt\" rel=\"nofollow\">CaseFolding.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/DerivedAge.txt\" rel=\"nofollow\">DerivedAge.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt\" rel=\"nofollow\">DerivedCoreProperties.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt\" rel=\"nofollow\">EastAsianWidth.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/EquivalentUnifiedIdeograph.txt\" rel=\"nofollow\">EquivalentUnifiedIdeograph.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/IndicPositionalCategory.txt\" rel=\"nofollow\">IndicPositionalCategory.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/IndicSyllabicCategory.txt\" rel=\"nofollow\">IndicSyllabicCategory.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/LineBreak.txt\" rel=\"nofollow\">LineBreak.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/NameAliases.txt\" rel=\"nofollow\">NameAliases.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/PropList.txt\" rel=\"nofollow\">PropList.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/Scripts.txt\" rel=\"nofollow\">Scripts.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/ScriptExtensions.txt\" rel=\"nofollow\">ScriptExtensions.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/StandardizedVariants.txt\" rel=\"nofollow\">StandardizedVariants.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/VerticalOrientation.txt\" rel=\"nofollow\">VerticalOrientation.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/14.0.0/ucd/emoji/emoji-data.txt\" rel=\"nofollow\">emoji-data.txt</a></li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-inspector.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-inspector.png\" width=\"1080px\" alt=\"Unicode Inspector screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-normalizer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unicode-normalizer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Normalizer</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">The <strong>Unicode Normalizer</strong> utility displays simultaneously the four normalization forms of a given string, making use of the JavaScript string function <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize\" rel=\"nofollow\">normalize</a>, as specified in the <a href=\"https://www.unicode.org/reports/tr15/\" rel=\"nofollow\">UAX #15: Unicode Normalization Forms</a>:</p>\n<table>\n<thead>\n<tr>\n<th>Form</th>\n<th>Name</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>NFC</td>\n<td>Normalization Form C</td>\n<td>Canonical Decomposition, followed by Canonical Composition</td>\n</tr>\n<tr>\n<td>NFD</td>\n<td>Normalization Form D</td>\n<td>Canonical Decomposition</td>\n</tr>\n<tr>\n<td>NFKC</td>\n<td>Normalization Form KC</td>\n<td>Compatibility Decomposition, followed by Canonical Composition</td>\n</tr>\n<tr>\n<td>NFKD</td>\n<td>Normalization Form KD</td>\n<td>Compatibility Decomposition</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>\n<p dir=\"auto\">Characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</p>\n</li>\n<li>\n<p dir=\"auto\">It is also possible to input predefined strings of characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</p>\n</li>\n<li>\n<p dir=\"auto\">As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</p>\n</li>\n<li>\n<p dir=\"auto\">In output, the standard Unicode code point format <code>U+212B</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</p>\n</li>\n<li>\n<p dir=\"auto\">In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u24B6</code> or <code>\\u{1F201}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</p>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-normalizer.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-normalizer.png\" width=\"1080px\" alt=\"Unicode Normalizer screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-references\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unicode-references\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode References</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode References</strong> utility provides a list of reference links to Unicode-related web pages.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-references.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-references.png\" width=\"1080px\" alt=\"Unicode References screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-segmenter\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unicode-segmenter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Segmenter</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode Segmenter</strong> utility performs in real time the segmentation of a text string into a visual list of graphemes, words, or sentences, making use of the JavaScript <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter\" rel=\"nofollow\">Intl.Segmenter</a> API, as specified in the <a href=\"https://www.unicode.org/reports/tr29/\" rel=\"nofollow\">UAX #29: Unicode Text Segmentation</a>.</li>\n<li>Text can by directly typed, or pasted from the clipboard into the main input field.</li>\n<li>It is also possible to input predefined text strings selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input field can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>Choose the appropriate segmentation granularity from the <kbd>Granularity</kbd> drop-down menu, among: <code>Grapheme</code>, <code>Word</code>, or <code>Sentence</code>.</li>\n<li>If required, choose a specific locale from the <kbd>Locale</kbd> drop-down menu: boundary types are actually locale-dependent.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unicode-segmenter.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unicode-segmenter.png\" width=\"1080px\" alt=\"Unicode Segmenter screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-data-finder\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unihan-data-finder\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Data Finder</h2>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-tag-value\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#find-by-tag-value\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Tag Value</h3>\n<ul dir=\"auto\">\n<li>The <strong>Find by Tag Value</strong> feature of the <strong>Unihan Data Finder</strong> utility displays a list of basic data (character, code point, Unihan tag, value, block) of matching Unihan characters searched by tag value, including through regular expressions.</li>\n<li>Use the <kbd>Unihan Tag</kbd> drop-down menu to select the tag you wish to search value by.</li>\n<li>Use the <kbd>Categories</kbd> checkbox to toggle between: all Unihan tags ordered alphabetically, or grouped by categories in the drop-down menu.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the 93,867 Unihan characters (or code points) defined in <strong>Unicode 14.0</strong>, in the set of data files contained in the <a href=\"https://www.unicode.org/Public/UNIDATA/Unihan.zip\" rel=\"nofollow\">Unihan.zip</a> archive file:\n<ul dir=\"auto\">\n<li><em>Unihan_DictionaryIndices.txt</em></li>\n<li><em>Unihan_DictionaryLikeData.txt</em></li>\n<li><em>Unihan_IRGSources.txt</em></li>\n<li><em>Unihan_NumericValues.txt</em></li>\n<li><em>Unihan_OtherMappings.txt</em></li>\n<li><em>Unihan_RadicalStrokeCounts.txt</em></li>\n<li><em>Unihan_Readings.txt</em></li>\n<li><em>Unihan_Variants.txt</em></li>\n</ul>\n</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-data-finder-find-by-tag-value.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-data-finder-find-by-tag-value.png\" width=\"1080px\" alt=\"Unihan Data Finder - Find by Tag Value screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-character-1\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#match-character-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match Character</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match Character</strong> feature of the <strong>Unihan Data Finder</strong> utility displays a list of basic data (character, code point, age, set, ideograph status, block) of matching Unihan characters, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Match Variants</kbd> toggle button to extend the search to characters whose <em>variants</em> match the query string.</li>\n<li>Unihan variants, if any, are displayed in a distinctive muted (grayed out) style.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the set of 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-data-finder-match-character.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-data-finder-match-character.png\" width=\"1080px\" alt=\"Unihan Data Finder - Match Character screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-view-by-grid\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#view-by-grid\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>View by Grid</h3>\n<ul dir=\"auto\">\n<li>The <strong>View by Grid</strong> feature of the <strong>Unihan Data Finder</strong> utility displays in real time a grid view of the 10 blocks containing the 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>A block can be selected either by <kbd>Block Name</kbd> or by <kbd>Block Range</kbd>.</li>\n<li>It is also possible to directly enter a Unihan character or code point in the <kbd>Specimen</kbd> field, then click on the <kbd>Go</kbd> button to automatically select the block containing the character, scroll it into view, and highlight it.</li>\n<li>You can quickly reuse a previously entered Unihan character by using the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate up and down through the history stack in the <kbd>Specimen</kbd> field. Alternatively, you can also use the <kbd>Specimen History ▾</kbd> pop-up menu to automatically jump to a specific character.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n</ul>\n</li>\n<li>A list of all the Unihan blocks is available for quick reference.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-data-finder-view-by-grid.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-data-finder-view-by-grid.png\" width=\"1080px\" alt=\"Unihan Data Finder - View by Grid screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-data-finder-view-by-grid-misclassified.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-data-finder-view-by-grid-misclassified.png\" width=\"1080px\" alt=\"Unihan Data Finder - View by Grid (Misclassified) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-inspector\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unihan-inspector\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Inspector</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan Inspector</strong> utility displays all available Unihan tags for each of the 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>, in the set of data files contained in the <a href=\"https://www.unicode.org/Public/UNIDATA/Unihan.zip\" rel=\"nofollow\">Unihan.zip</a> archive file:\n<ul dir=\"auto\">\n<li><em>Unihan_DictionaryIndices.txt</em></li>\n<li><em>Unihan_DictionaryLikeData.txt</em></li>\n<li><em>Unihan_IRGSources.txt</em></li>\n<li><em>Unihan_NumericValues.txt</em></li>\n<li><em>Unihan_OtherMappings.txt</em></li>\n<li><em>Unihan_RadicalStrokeCounts.txt</em></li>\n<li><em>Unihan_Readings.txt</em></li>\n<li><em>Unihan_Variants.txt</em></li>\n</ul>\n</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display the list of Unihan tags.</li>\n<li>In addition, the utility provides, for each Unihan character:\n<ul dir=\"auto\">\n<li>basic Unicode information: name, age, plane, block, script, script extensions, general category, extended properties, decomposition, standardized variation, equivalent unified ideograph;</li>\n<li>basic Unihan information: set (<em>IICore</em>, <em>Unihan Core</em>, <em>Full Unihan</em>), status (<em>unified</em> or <em>compatibility</em> ideograph), compatibility source, radical/strokes, definition, numeric value, related characters, variant characters.</li>\n</ul>\n</li>\n<li>Basic radical information can also be obtained for the 214 KangXi radicals and the 115 additional CJK radicals.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>It is also possible to look up a randomly selected Unihan character by clicking on the <kbd>Random</kbd> button; use the <kbd>Set</kbd> drop-down menu to perform the draw on a specified Unihan set:\n<ul dir=\"auto\">\n<li><code>IICore</code>: the IICore set of 9,810 CJK unified ideographs in common usage,</li>\n<li><code>Unihan Core</code>: the Unihan core set (2020) of 20,720 CJK unified and compatibility ideographs, minimal set of required ideographs for East Asia,</li>\n<li><code>Full Unihan</code>: the full set of 93,867 Unihan characters.</li>\n</ul>\n</li>\n<li>The currently looked up character is displayed at a large scale, followed by its code point.</li>\n<li>Click on <kbd><g-emoji class=\"g-emoji\" alias=\"arrow_backward\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/25c0.png\">◀</g-emoji></kbd> or <kbd><g-emoji class=\"g-emoji\" alias=\"arrow_forward\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/25b6.png\">▶</g-emoji></kbd> to step through five different CJK typefaces, among:\n<ul dir=\"auto\">\n<li><code>JP</code>: Japanese</li>\n<li><code>KR</code>: Korean</li>\n<li><code>SC</code>: Simplified Chinese</li>\n<li><code>TC</code>: Traditional Chinese (Taiwan)</li>\n<li><code>HK</code>: Traditional Chinese (Hong Kong)</li>\n</ul>\n</li>\n<li>If a character cannot be properly rendered in the five CJK typefaces, the system default typeface is automatically used instead.</li>\n<li>Use the <kbd>Categories</kbd> checkbox to toggle between: all Unihan tags ordered alphabetically, or grouped by categories.</li>\n<li>Variant characters, if any, are listed under several classes in the basic Unihan information panel:\n<ul dir=\"auto\">\n<li><code>Unified Variant</code>: decomposition of the looked up character</li>\n<li><code>Compatibility Variants</code>: characters whose decomposition is the looked up character</li>\n<li><code>Semantic Variants</code>: characters listed under the <em>kSemanticVariant</em> Unihan tag</li>\n<li><code>Specialized Variants</code>: characters listed under the <em>kSpecializedSemanticVariant</em> Unihan tag</li>\n<li><code>Spoofing Variants</code>: characters listed under the <em>kSpoofingVariant</em> Unihan tag</li>\n<li><code>Shape (Z-) Variants</code> characters listed under the <em>kZVariant</em> Unihan tag</li>\n<li><code>Simplified Variants</code>: characters listed under the <em>kSimplifiedVariant</em> Unihan tag</li>\n<li><code>Traditional Variants</code>: characters listed under the <em>kTraditionalVariant</em> Unihan tag</li>\n<li><code>Shinjitai Variants</code>: Japanese simplified character variants (新字体)</li>\n<li><code>Kyūjitai Variants</code>: Japanese traditional character variants (旧字体)</li>\n<li><code>Yasuoka Variants</code>: characters drawn from the \"Variants table for Unicode\" data file <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" rel=\"nofollow\">UniVariants.txt</a> provided by Prof. <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" rel=\"nofollow\">Kōichi Yasuoka</a></li>\n</ul>\n</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>The top Radical/Strokes fields are displaying data obtained from the only informative IRG Source: <em>kRSUnicode</em>, while the bottom ones (in grayed-out style, if any) make use of the provisional sources: <em>kRSKangXi</em> and <em>kRSAdobe_Japan1_6</em>.</li>\n<li>IICore (<em>International Ideographs Core</em>) represents a set of 9,810 important Unihan characters in everyday use throughout East Asia; it has been developed by the IRG.</li>\n<li>IRG stands for <em>Ideographic Research Group</em>, formerly called <em>Ideographic Rapporteur Group</em>, a committee advising the Unicode Consortium about Asian language characters.</li>\n<li>Radicals do <em>not</em> belong to the Unihan character set; they are allowed to be looked up here merely as a convenience, since they are closely related, and because their appearance is similar, or even identical, to their equivalent unified ideograph.</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-inspector.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-inspector.png\" width=\"1080px\" alt=\"Unihan Inspector screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-inspector-radical.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-inspector-radical.png\" width=\"1080px\" alt=\"Unihan Inspector (Radical) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-radical-strokes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unihan-radical-strokes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Radical-Strokes</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan Radical-Strokes</strong> utility displays all the Unihan characters searched by KangXi radical and additional stroke count.</li>\n<li>Use the <kbd>Set</kbd> drop-down menu to perform the search on a specified Unihan set:\n<ul dir=\"auto\">\n<li><code>IICore</code>: the IICore set of 9,810 CJK unified ideographs in common usage,</li>\n<li><code>Unihan Core</code>: the Unihan core set (2020) of 20,720 CJK unified and compatibility ideographs, minimal set of required ideographs for East Asia,</li>\n<li><code>Full Unihan</code>: the full set of 93,867 Unihan characters.</li>\n</ul>\n</li>\n<li>Use the <kbd>Extra Sources</kbd> checkbox to extend the search to all radical/strokes source tags, or use only the IRG-defined source tag common to all Unihan characters.</li>\n<li>Use the <kbd>Radical</kbd> and <kbd>Strokes</kbd> drop-down menus to select the KangXi radical and the additional stroke count of the Unihan characters you are looking for, then click on the <kbd>Search</kbd> button.</li>\n<li>If the number of additional strokes is negative, 0 is used instead. For example, the Unihan character 王 gets listed under 'Radical 96 ⽟ (Jade)' + '0 Stroke', although its additional stroke count is -1.</li>\n<li>Selecting <code>All</code> from the <kbd>Strokes</kbd> menu lets you display all the Unihan characters sharing the same KangXi radical, sorted by additional stroke count.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>A complete list of the 214 KangXi radicals is available for reference, showing also CJK variants as well as simplified forms.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-radical-strokes.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-radical-strokes.png\" width=\"1080px\" alt=\"Unihan Radical-Strokes screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-references\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unihan-references\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan References</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan References</strong> utility provides a list of reference links to Unihan-related web pages.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-references.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-references.png\" width=\"1080px\" alt=\"Unihan References screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-variants\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#unihan-variants\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Variants</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan Variants</strong> utility displays all the variants of a given Unihan character.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display the variants.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>Click on the <kbd>Extra Variants</kbd> checkbox to include the Yasuoka variants as well; otherwise, only the standard Unihan variants are listed.</li>\n<li>Click on the <kbd>Detailed Relations</kbd> checkbox to make use of a directed labeled graph to display variant relations; otherwise, a basic undirected graph is used instead.</li>\n<li>Click on the <kbd>Code Points</kbd> checkbox to display as well the code point of each Unihan character of the graph.</li>\n<li>The different variant relations are indicated using the following labels:\n<ul dir=\"auto\">\n<li><code>Compat.</code>: reverse link of <code>Unified</code></li>\n<li><code>Kyūjitai</code>: Japanese traditional character variants (旧字体)</li>\n<li><code>Semantic</code>: characters listed under the <em>kSemanticVariant</em> Unihan tag</li>\n<li><code>Shape</code>: characters listed under the <em>kZVariant</em> Unihan tag</li>\n<li><code>Shinjitai</code>: Japanese simplified character variants (新字体)</li>\n<li><code>Simplified</code>: characters listed under the <em>kSimplifiedVariant</em> Unihan tag</li>\n<li><code>Specialized</code>: characters listed under the <em>kSpecializedSemanticVariant</em> Unihan tag</li>\n<li><code>Spoofing</code>: characters listed under the <em>kSpoofingVariant</em> Unihan tag</li>\n<li><code>Traditional</code>: characters listed under the <em>kTraditionalVariant</em> Unihan tag</li>\n<li><code>Unified</code>: characters listed under the <em>kCompatibilityVariant</em> Unihan tag</li>\n<li><code>Yasuoka</code>: characters drawn from the \"Variants table for Unicode\" data file <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" rel=\"nofollow\">UniVariants.txt</a> provided by Prof. <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" rel=\"nofollow\">Kōichi Yasuoka</a></li>\n</ul>\n</li>\n<li>Click on the <kbd>Save...</kbd> button to save the current graph as a SVG file.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Hovering over any circled Unihan character of the graph displays a tooltip with basic information: code point, age, set, ideograph status, compatibility source.</li>\n<li>The currently looked up Unihan character appears in a bolder circle; clicking on any other circled variant character lets you \"navigate\" through all the variants.</li>\n<li>In order to avoid visual clutter, any relation between two Unihan characters obtained from the Yasuoka variants is not displayed if another \"standard\" one with the same orientation already exists.</li>\n<li>By design, <em>compatibility</em> characters, if any, always appear on the <em>left</em> side of a graph with detailed relations.</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-variants.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-variants.png\" width=\"1080px\" alt=\"Unihan Variants screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/screenshots/unihan-variants-detailed.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-plus/master/screenshots/unihan-variants-detailed.png\" width=\"1080px\" alt=\"Unihan Variants (Detailed) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/unicopedia-plus/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/unicopedia-plus\n# Go into the repository\ncd unicopedia-plus\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/unicopedia-plus\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> unicopedia-plus\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/unicopedia-plus/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>unicopedia-plus-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Unicopedia Plus.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-plus/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2018-2022 Michel Mariani.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--unicopedia-plus\" class=\"anchor\" aria-hidden=\"true\" href=\"#-unicopedia-plus\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"icons/icon-256.png\"><img src=\"icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Unicopedia Plus icon\" style=\"max-width: 100%;\"></a> UNICOPEDIA PLUS</h1>\n<p dir=\"auto\"><strong>Unicopedia Plus</strong> is a developer-oriented set of Unicode, Unihan & emoji utilities wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/UP-social-preview.png\"><img src=\"screenshots/UP-social-preview.png\" alt=\"Unicopedia Plus social preview\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>CJK Font Variants</strong></li>\n<li><strong>JavaScript Runner</strong></li>\n<li><strong>Regex Properties</strong></li>\n<li><strong>Emoji Data Finder</strong>\n<ul dir=\"auto\">\n<li><strong>Find by Name</strong></li>\n<li><strong>Match Sequence</strong></li>\n<li><strong>Filter Text</strong></li>\n</ul>\n</li>\n<li><strong>Emoji Picture Book</strong></li>\n<li><strong>Emoji References</strong></li>\n<li><strong>Unicode Data Finder</strong>\n<ul dir=\"auto\">\n<li><strong>Find by Name</strong></li>\n<li><strong>Match Character</strong></li>\n<li><strong>List by Block</strong></li>\n</ul>\n</li>\n<li><strong>Unicode Foldings</strong></li>\n<li><strong>Unicode Inspector</strong></li>\n<li><strong>Unicode Normalizer</strong></li>\n<li><strong>Unicode References</strong></li>\n<li><strong>Unicode Segmenter</strong></li>\n<li><strong>Unihan Data Finder</strong>\n<ul dir=\"auto\">\n<li><strong>Find by Tag Value</strong></li>\n<li><strong>Match Character</strong></li>\n<li><strong>View by Grid</strong></li>\n</ul>\n</li>\n<li><strong>Unihan Inspector</strong></li>\n<li><strong>Unihan Radical-Strokes</strong></li>\n<li><strong>Unihan References</strong></li>\n<li><strong>Unihan Variants</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-font-variants\" class=\"anchor\" aria-hidden=\"true\" href=\"#cjk-font-variants\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Font Variants</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Font Variants</strong> utility displays simultaneously any string of CJK (Chinese/Japanese/Korean) characters in five different typefaces belonging to the open-source set of <a href=\"https://github.com/adobe-fonts/source-han-sans\">Source Han Sans Fonts</a>:</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th>Language</th>\n<th>Tag</th>\n<th>Code</th>\n<th>Typeface</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Japanese</td>\n<td>ja</td>\n<td>JP</td>\n<td>Source Han Sans</td>\n</tr>\n<tr>\n<td>Korean</td>\n<td>ko</td>\n<td>KR</td>\n<td>Source Han Sans K</td>\n</tr>\n<tr>\n<td>Simplified Chinese</td>\n<td>zh-Hans</td>\n<td>SC</td>\n<td>Source Han Sans SC</td>\n</tr>\n<tr>\n<td>Traditional Chinese (Taiwan)</td>\n<td>zh-Hant-TW</td>\n<td>TC</td>\n<td>Source Han Sans TC</td>\n</tr>\n<tr>\n<td>Traditional Chinese (Hong Kong)</td>\n<td>zh-Hant-HK</td>\n<td>HK</td>\n<td>Source Han Sans HC</td>\n</tr>\n</tbody>\n</table>\n<ul dir=\"auto\">\n<li>Additionally, it is possible to specify a set of logographic glyph variants for display by using the <kbd>East Asian Variant</kbd> drop-down menu.</li>\n<li>Font variants of the CJK characters can be visualized either vertically or horizontally. Use the <kbd>Writing Mode</kbd> drop-down menu to toggle between the two modes.</li>\n<li>Use the <kbd>Font Weight</kbd> drop-down menu to select the font weight of the CJK characters, among: <code>Extra Light</code>, <code>Light</code>, <code>Regular</code>, <code>Medium</code>, <code>Semi Bold</code>, <code>Bold</code>, <code>Extra Bold</code>, <code>Heavy</code>.</li>\n<li>Clicking inside any character frame displays momentarily the same glyph for all language flavors, while alt-clicking (or shift-clicking) applies to all characters of the string in a given language flavor. This is especially useful to quickly spot the differences between glyph variations. If the <kbd>⇪ Caps Lock</kbd> key is turned on as well, the differences are shown in contrasting colors instead.</li>\n<li>CJK characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined strings of CJK characters selected from the <kbd>Samples ▾</kbd> pop-up menu; some of them make use of the information found in the <a href=\"https://www.unicode.org/Public/UNIDATA/StandardizedVariants.txt\" rel=\"nofollow\">StandardizedVariants.txt</a> or <a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Sequences.txt\" rel=\"nofollow\">IVD_Sequences.txt</a> data files.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>In output, the standard Unicode code point format <code>U+7ADC</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u9F8D</code> or <code>\\u{20B9F}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-font-variants-horizontal.png\"><img src=\"screenshots/cjk-font-variants-horizontal.png\" width=\"1080px\" alt=\"CJK Font Variants (Horizontal) screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-font-variants-vertical.png\"><img src=\"screenshots/cjk-font-variants-vertical.png\" width=\"1080px\" alt=\"CJK Font Variants (Vertical) screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-runner\" class=\"anchor\" aria-hidden=\"true\" href=\"#javascript-runner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Runner</h2>\n<ul dir=\"auto\">\n<li>The <strong>JavaScript Runner</strong> utility lets you execute JavaScript code, and comes with several sample scripts related to Unicode, Unihan, and emoji; it is useful for quick testing/prototyping or data processing.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/javascript-runner.png\"><img src=\"screenshots/javascript-runner.png\" width=\"1080px\" alt=\"JavaScript Runner screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-regex-properties\" class=\"anchor\" aria-hidden=\"true\" href=\"#regex-properties\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Regex Properties</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">The <strong>Regex Properties</strong> utility displays all the <strong>Unicode 14.0</strong> properties available for regular expressions, used in particular by the <strong>Emoji Data Finder</strong>, <strong>Unicode Data Finder</strong> and <strong>Unihan Data Finder</strong> utilities.</p>\n</li>\n<li>\n<p dir=\"auto\">These properties are suitable to build Unicode-aware regular expressions in JavaScript (ECMAScript 6) using the 'u' flag.</p>\n</li>\n<li>\n<p dir=\"auto\">Unicode properties fall into four groups, which can be displayed individually using the <kbd>Category</kbd> drop-down menu:</p>\n<ul dir=\"auto\">\n<li><strong>General Category</strong> properties</li>\n<li><strong>Binary</strong> properties</li>\n<li><strong>Script</strong> properties</li>\n<li><strong>Script Extensions</strong> properties</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">For <strong>General Category</strong> properties, prefixing with <code>General_Category=</code> (Canonical) or <code>gc=</code> (Alias) is optional. Use the <kbd>Optional Prefix</kbd> checkbox to control whether the prefix is included or not.</p>\n</li>\n<li>\n<p dir=\"auto\">Groupings:</p>\n<table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Cased_Letter</td>\n<td>Uppercase_Letter | Lowercase_Letter | Titlecase_Letter</td>\n</tr>\n<tr>\n<td>Letter</td>\n<td>Uppercase_Letter | Lowercase_Letter | Titlecase_Letter | Modifier_Letter | Other_Letter</td>\n</tr>\n<tr>\n<td>Mark</td>\n<td>Nonspacing_Mark | Spacing_Mark | Enclosing_Mark</td>\n</tr>\n<tr>\n<td>Number</td>\n<td>Decimal_Number | Letter_Number | Other_Number</td>\n</tr>\n<tr>\n<td>Punctuation</td>\n<td>Connector_Punctuation | Dash_Punctuation | Open_Punctuation | Close_Punctuation | Initial_Punctuation | Final_Punctuation | Other_Punctuation</td>\n</tr>\n<tr>\n<td>Symbol</td>\n<td>Math_Symbol | Currency_Symbol | Modifier_Symbol | Other_Symbol</td>\n</tr>\n<tr>\n<td>Separator</td>\n<td>Space_Separator | Line_Separator | Paragraph_Separator</td>\n</tr>\n<tr>\n<td>Other</td>\n<td>Control | Format | Surrogate | Private_Use | Unassigned</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>\n<p dir=\"auto\"><code>\\P{…}</code> is the negated form of <code>\\p{…}</code>. Use the <kbd>Negated</kbd> checkbox to toggle between the two forms.</p>\n</li>\n<li>\n<p dir=\"auto\">Notes:</p>\n<ul dir=\"auto\">\n<li><code>\\p{Any}</code> is equivalent to <code>[\\u{0}-\\u{10FFFF}]</code></li>\n<li><code>\\p{ASCII}</code> is equivalent to <code>[\\u{0}-\\u{7F}]</code></li>\n<li><code>\\p{Assigned}</code> is equivalent to <code>\\P{Unassigned}</code> or <code>\\P{General_Category=Unassigned}</code></li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/regex-properties.png\"><img src=\"screenshots/regex-properties.png\" width=\"1080px\" alt=\"Regex Properties screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-emoji-data-finder\" class=\"anchor\" aria-hidden=\"true\" href=\"#emoji-data-finder\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Emoji Data Finder</h2>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-name\" class=\"anchor\" aria-hidden=\"true\" href=\"#find-by-name\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Name</h3>\n<ul dir=\"auto\">\n<li>The <strong>Find by Name</strong> feature of the <strong>Emoji Data Finder</strong> utility displays a list of basic data (emoji, short name, keywords, code points) of matching Unicode emoji searched by name or keyword, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any.</li>\n<li>This feature deals with the 4,702 emoji defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>The 9 <em>component</em> (5 <em>skin-tone</em> and 4 <em>hair-style</em>) emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) emoji are presented in a standard way, while the 1,069 <em>non-fully-qualified</em> emoji are shown in a distinctive muted (grayed out) style.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/emoji-data-finder-find-by-name.png\"><img src=\"screenshots/emoji-data-finder-find-by-name.png\" width=\"1080px\" alt=\"Emoji Data Finder - Find by Name screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-sequence\" class=\"anchor\" aria-hidden=\"true\" href=\"#match-sequence\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match Sequence</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match Sequence</strong> feature of the <strong>Emoji Data Finder</strong> utility displays a list of basic data (emoji, short name, keywords, code points) of Unicode emoji matching a character sequence, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any.</li>\n<li>This feature deals with the 4,702 emoji defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>The 9 <em>component</em> (5 <em>skin-tone</em> and 4 <em>hair-style</em>) emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) emoji are presented in a standard way, while the 1,069 <em>non-fully-qualified</em> emoji are shown in a distinctive muted (grayed out) style.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/emoji-data-finder-match-sequence.png\"><img src=\"screenshots/emoji-data-finder-match-sequence.png\" width=\"1080px\" alt=\"Emoji Data Finder - Match Sequence screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-filter-text\" class=\"anchor\" aria-hidden=\"true\" href=\"#filter-text\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Filter Text</h3>\n<ul dir=\"auto\">\n<li>The <strong>Filter Text</strong> feature of the <strong>Emoji Data Finder</strong> utility displays in real time a list of basic data (emoji, short name, keywords, code points) of all the Unicode emoji contained in a text string.</li>\n<li>Text can by directly typed, or pasted from the clipboard into the main input field.</li>\n<li>It is also possible to input predefined sets of emoji selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input field can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>Use the <kbd>Filter ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Discard Non-Emoji</code> [strip out non-emoji characters]</li>\n<li><code>Upgrade to RGI Emoji</code> [restore incomplete emoji to their <strong>RGI</strong> form]</li>\n<li><code>Remove Duplicate Emoji</code> [delete emoji duplicates]</li>\n</ul>\n</li>\n<li>This feature deals with the 4,702 emoji defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>The 9 <em>component</em> (5 <em>skin-tone</em> and 4 <em>hair-style</em>) emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) emoji are presented in a standard way, while the 1,069 <em>non-fully-qualified</em> emoji are shown in a distinctive muted (grayed out) style.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n</ul>\n</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/emoji-data-finder-filter-text.png\"><img src=\"screenshots/emoji-data-finder-filter-text.png\" width=\"1080px\" alt=\"Emoji Data Finder - Filter Text screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-emoji-picture-book\" class=\"anchor\" aria-hidden=\"true\" href=\"#emoji-picture-book\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Emoji Picture Book</h2>\n<ul dir=\"auto\">\n<li>The <strong>Emoji Picture Book</strong> utility displays lists of Unicode emoji in a color picture book fashion.</li>\n<li>Any group of pictures can be displayed by selecting its name in the <kbd>Category</kbd> drop-down menu, among:\n<ul dir=\"auto\">\n<li><strong>Smileys & Emotion</strong></li>\n<li><strong>People & Body</strong></li>\n<li><strong>Component</strong></li>\n<li><strong>Animals & Nature</strong></li>\n<li><strong>Food & Drink</strong></li>\n<li><strong>Travel & Places</strong></li>\n<li><strong>Activities</strong></li>\n<li><strong>Objects</strong></li>\n<li><strong>Symbols</strong></li>\n<li><strong>Flags</strong></li>\n</ul>\n</li>\n<li>The size of all emoji pictures (from 32 to 128 pixels) can be adjusted by moving the dedicated slider left and right.</li>\n<li>The groups and subgroups of emoji are those defined in the <strong>Emoji 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/emoji/14.0/emoji-test.txt\" rel=\"nofollow\">emoji-test.txt</a> data file.</li>\n<li>Only the 9 <em>component</em> emoji and the 3,624 <em>fully-qualified</em> (<strong>RGI</strong>) forms of the emoji are used unless they cannot be displayed properly, depending on the emoji support level of the operating system.</li>\n<li>Emoji failing to be represented as proper color pictures are purely and simply discarded.</li>\n<li>Note: <strong>RGI</strong> stands for <em>Recommended for General Interchange</em>.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/emoji-picture-book.png\"><img src=\"screenshots/emoji-picture-book.png\" width=\"1080px\" alt=\"Emoji Picture Book screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-emoji-references\" class=\"anchor\" aria-hidden=\"true\" href=\"#emoji-references\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Emoji References</h2>\n<ul dir=\"auto\">\n<li>The <strong>Emoji References</strong> utility provides a list of reference links to emoji-related web pages.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/emoji-references.png\"><img src=\"screenshots/emoji-references.png\" width=\"1080px\" alt=\"Emoji References screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-data-finder\" class=\"anchor\" aria-hidden=\"true\" href=\"#unicode-data-finder\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Data Finder</h2>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-name-1\" class=\"anchor\" aria-hidden=\"true\" href=\"#find-by-name-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Name</h3>\n<ul dir=\"auto\">\n<li>The <strong>Find by Name</strong> feature of the <strong>Unicode Data Finder</strong> utility displays a list of basic data (character, code point, name/aliases, block) of matching Unicode characters searched by name or alias, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>When available, name aliases are displayed (in italics and smaller typeface) after the unique and immutable Unicode name. A correction alias is indicated by a leading reference mark <code>※</code>.</li>\n<li>All names and aliases are obtained from the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> and <a href=\"https://www.unicode.org/Public/UNIDATA/NameAliases.txt\" rel=\"nofollow\">NameAliases.txt</a> data files.</li>\n<li>The search is performed on the 284,278 assigned characters (or code points) defined in the <strong>Unicode 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> data file.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-data-finder-find-by-name.png\"><img src=\"screenshots/unicode-data-finder-find-by-name.png\" width=\"1080px\" alt=\"Unicode Data Finder - Find by Name screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-character\" class=\"anchor\" aria-hidden=\"true\" href=\"#match-character\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match Character</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match Character</strong> feature of the <strong>Unicode Data Finder</strong> utility displays a list of basic data (character, code point, name/aliases, block) of Unicode characters matching a character, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Match Decomposition</kbd> toggle button to extend the search to characters whose <em>decomposition mapping</em> matches the query string.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the 284,278 assigned characters (or code points) defined in the <strong>Unicode 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> data file.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-data-finder-match-character.png\"><img src=\"screenshots/unicode-data-finder-match-character.png\" width=\"1080px\" alt=\"Unicode Data Finder - Match Character screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-list-by-block\" class=\"anchor\" aria-hidden=\"true\" href=\"#list-by-block\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>List by Block</h3>\n<ul dir=\"auto\">\n<li>The <strong>List by Block</strong> feature of the <strong>Unicode Data Finder</strong> utility displays in real time a list of basic data (character, code point, name/aliases, block) of Unicode characters belonging to the same block range.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>A block can be selected either by <kbd>Block Name</kbd> or by <kbd>Block Range</kbd>, as defined in the <a href=\"https://www.unicode.org/Public/UNIDATA/Blocks.txt\" rel=\"nofollow\">Blocks.txt</a> data file.</li>\n<li>It is also possible to directly enter a code point (or character) in the <kbd>Specimen</kbd> field, then click on the <kbd>Go</kbd> button to automatically select the block containing the code point, scroll its basic data into view, and highlight its hexadecimal code value.</li>\n<li>You can quickly reuse a previously entered code point by using the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate up and down through the history stack in the <kbd>Specimen</kbd> field. Alternatively, you can also use the <kbd>Specimen History ▾</kbd> pop-up menu to automatically jump to a specific character.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-data-finder-list-by-block.png\"><img src=\"screenshots/unicode-data-finder-list-by-block.png\" width=\"1080px\" alt=\"Unicode Data Finder - List by Block screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-foldings\" class=\"anchor\" aria-hidden=\"true\" href=\"#unicode-foldings\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Foldings</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode Foldings</strong> utility displays simultaneously the uppercase and lowercase foldings of a given string, making use of the JavaScript string functions <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase\" rel=\"nofollow\">toUpperCase</a> and <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase\" rel=\"nofollow\">toLowerCase</a>, or <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase\" rel=\"nofollow\">toLocaleUpperCase</a> and <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase\" rel=\"nofollow\">toLocaleLowerCase</a> when a specific locale is selected from the <kbd>Locale</kbd> drop-down menu.</li>\n<li>Characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined strings of characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>In output, the standard Unicode code point format <code>U+00DF</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u212B</code> or <code>\\u{10400}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n<li>Note: <em>folding</em> is an operation that maps similar characters to a common target, such as uppercasing or lowercasing a string. Folding operations are most often used to temporarily ignore certain distinctions between characters.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-foldings.png\"><img src=\"screenshots/unicode-foldings.png\" width=\"1080px\" alt=\"Unicode Foldings screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-inspector\" class=\"anchor\" aria-hidden=\"true\" href=\"#unicode-inspector\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Inspector</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode Inspector</strong> utility displays code point information in real time for each Unicode character of a text string.</li>\n<li>Characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined sets of characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>In output, the standard Unicode code point format <code>U+0041</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u611B</code> or <code>\\u{1F49C}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n<li>Information is provided for the 284,278 assigned characters (or code points) defined in the <strong>Unicode 14.0</strong> version of the <a href=\"https://www.unicode.org/Public/UNIDATA/UnicodeData.txt\" rel=\"nofollow\">UnicodeData.txt</a> data file.</li>\n<li>Extra information is also obtained from the following data files:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/ArabicShaping.txt\" rel=\"nofollow\">ArabicShaping.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/Blocks.txt\" rel=\"nofollow\">Blocks.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/CaseFolding.txt\" rel=\"nofollow\">CaseFolding.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/DerivedAge.txt\" rel=\"nofollow\">DerivedAge.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt\" rel=\"nofollow\">DerivedCoreProperties.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt\" rel=\"nofollow\">EastAsianWidth.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/EquivalentUnifiedIdeograph.txt\" rel=\"nofollow\">EquivalentUnifiedIdeograph.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/IndicPositionalCategory.txt\" rel=\"nofollow\">IndicPositionalCategory.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/IndicSyllabicCategory.txt\" rel=\"nofollow\">IndicSyllabicCategory.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/LineBreak.txt\" rel=\"nofollow\">LineBreak.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/NameAliases.txt\" rel=\"nofollow\">NameAliases.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/PropList.txt\" rel=\"nofollow\">PropList.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/Scripts.txt\" rel=\"nofollow\">Scripts.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/ScriptExtensions.txt\" rel=\"nofollow\">ScriptExtensions.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/StandardizedVariants.txt\" rel=\"nofollow\">StandardizedVariants.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/UNIDATA/VerticalOrientation.txt\" rel=\"nofollow\">VerticalOrientation.txt</a></li>\n<li><a href=\"https://www.unicode.org/Public/14.0.0/ucd/emoji/emoji-data.txt\" rel=\"nofollow\">emoji-data.txt</a></li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-inspector.png\"><img src=\"screenshots/unicode-inspector.png\" width=\"1080px\" alt=\"Unicode Inspector screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-normalizer\" class=\"anchor\" aria-hidden=\"true\" href=\"#unicode-normalizer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Normalizer</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">The <strong>Unicode Normalizer</strong> utility displays simultaneously the four normalization forms of a given string, making use of the JavaScript string function <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize\" rel=\"nofollow\">normalize</a>, as specified in the <a href=\"https://www.unicode.org/reports/tr15/\" rel=\"nofollow\">UAX #15: Unicode Normalization Forms</a>:</p>\n<table>\n<thead>\n<tr>\n<th>Form</th>\n<th>Name</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>NFC</td>\n<td>Normalization Form C</td>\n<td>Canonical Decomposition, followed by Canonical Composition</td>\n</tr>\n<tr>\n<td>NFD</td>\n<td>Normalization Form D</td>\n<td>Canonical Decomposition</td>\n</tr>\n<tr>\n<td>NFKC</td>\n<td>Normalization Form KC</td>\n<td>Compatibility Decomposition, followed by Canonical Composition</td>\n</tr>\n<tr>\n<td>NFKD</td>\n<td>Normalization Form KD</td>\n<td>Compatibility Decomposition</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>\n<p dir=\"auto\">Characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</p>\n</li>\n<li>\n<p dir=\"auto\">It is also possible to input predefined strings of characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</p>\n</li>\n<li>\n<p dir=\"auto\">As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</p>\n</li>\n<li>\n<p dir=\"auto\">In output, the standard Unicode code point format <code>U+212B</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</p>\n</li>\n<li>\n<p dir=\"auto\">In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u24B6</code> or <code>\\u{1F201}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</p>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-normalizer.png\"><img src=\"screenshots/unicode-normalizer.png\" width=\"1080px\" alt=\"Unicode Normalizer screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-references\" class=\"anchor\" aria-hidden=\"true\" href=\"#unicode-references\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode References</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode References</strong> utility provides a list of reference links to Unicode-related web pages.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-references.png\"><img src=\"screenshots/unicode-references.png\" width=\"1080px\" alt=\"Unicode References screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unicode-segmenter\" class=\"anchor\" aria-hidden=\"true\" href=\"#unicode-segmenter\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unicode Segmenter</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unicode Segmenter</strong> utility performs in real time the segmentation of a text string into a visual list of graphemes, words, or sentences, making use of the JavaScript <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter\" rel=\"nofollow\">Intl.Segmenter</a> API, as specified in the <a href=\"https://www.unicode.org/reports/tr29/\" rel=\"nofollow\">UAX #29: Unicode Text Segmentation</a>.</li>\n<li>Text can by directly typed, or pasted from the clipboard into the main input field.</li>\n<li>It is also possible to input predefined text strings selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input field can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>Choose the appropriate segmentation granularity from the <kbd>Granularity</kbd> drop-down menu, among: <code>Grapheme</code>, <code>Word</code>, or <code>Sentence</code>.</li>\n<li>If required, choose a specific locale from the <kbd>Locale</kbd> drop-down menu: boundary types are actually locale-dependent.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unicode-segmenter.png\"><img src=\"screenshots/unicode-segmenter.png\" width=\"1080px\" alt=\"Unicode Segmenter screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-data-finder\" class=\"anchor\" aria-hidden=\"true\" href=\"#unihan-data-finder\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Data Finder</h2>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-tag-value\" class=\"anchor\" aria-hidden=\"true\" href=\"#find-by-tag-value\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Tag Value</h3>\n<ul dir=\"auto\">\n<li>The <strong>Find by Tag Value</strong> feature of the <strong>Unihan Data Finder</strong> utility displays a list of basic data (character, code point, Unihan tag, value, block) of matching Unihan characters searched by tag value, including through regular expressions.</li>\n<li>Use the <kbd>Unihan Tag</kbd> drop-down menu to select the tag you wish to search value by.</li>\n<li>Use the <kbd>Categories</kbd> checkbox to toggle between: all Unihan tags ordered alphabetically, or grouped by categories in the drop-down menu.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the 93,867 Unihan characters (or code points) defined in <strong>Unicode 14.0</strong>, in the set of data files contained in the <a href=\"https://www.unicode.org/Public/UNIDATA/Unihan.zip\" rel=\"nofollow\">Unihan.zip</a> archive file:\n<ul dir=\"auto\">\n<li><em>Unihan_DictionaryIndices.txt</em></li>\n<li><em>Unihan_DictionaryLikeData.txt</em></li>\n<li><em>Unihan_IRGSources.txt</em></li>\n<li><em>Unihan_NumericValues.txt</em></li>\n<li><em>Unihan_OtherMappings.txt</em></li>\n<li><em>Unihan_RadicalStrokeCounts.txt</em></li>\n<li><em>Unihan_Readings.txt</em></li>\n<li><em>Unihan_Variants.txt</em></li>\n</ul>\n</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-data-finder-find-by-tag-value.png\"><img src=\"screenshots/unihan-data-finder-find-by-tag-value.png\" width=\"1080px\" alt=\"Unihan Data Finder - Find by Tag Value screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-character-1\" class=\"anchor\" aria-hidden=\"true\" href=\"#match-character-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match Character</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match Character</strong> feature of the <strong>Unihan Data Finder</strong> utility displays a list of basic data (character, code point, age, set, ideograph status, block) of matching Unihan characters, including through regular expressions.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Match Variants</kbd> toggle button to extend the search to characters whose <em>variants</em> match the query string.</li>\n<li>Unihan variants, if any, are displayed in a distinctive muted (grayed out) style.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the set of 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-data-finder-match-character.png\"><img src=\"screenshots/unihan-data-finder-match-character.png\" width=\"1080px\" alt=\"Unihan Data Finder - Match Character screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-view-by-grid\" class=\"anchor\" aria-hidden=\"true\" href=\"#view-by-grid\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>View by Grid</h3>\n<ul dir=\"auto\">\n<li>The <strong>View by Grid</strong> feature of the <strong>Unihan Data Finder</strong> utility displays in real time a grid view of the 10 blocks containing the 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>A block can be selected either by <kbd>Block Name</kbd> or by <kbd>Block Range</kbd>.</li>\n<li>It is also possible to directly enter a Unihan character or code point in the <kbd>Specimen</kbd> field, then click on the <kbd>Go</kbd> button to automatically select the block containing the character, scroll it into view, and highlight it.</li>\n<li>You can quickly reuse a previously entered Unihan character by using the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate up and down through the history stack in the <kbd>Specimen</kbd> field. Alternatively, you can also use the <kbd>Specimen History ▾</kbd> pop-up menu to automatically jump to a specific character.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n</ul>\n</li>\n<li>A list of all the Unihan blocks is available for quick reference.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-data-finder-view-by-grid.png\"><img src=\"screenshots/unihan-data-finder-view-by-grid.png\" width=\"1080px\" alt=\"Unihan Data Finder - View by Grid screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-data-finder-view-by-grid-misclassified.png\"><img src=\"screenshots/unihan-data-finder-view-by-grid-misclassified.png\" width=\"1080px\" alt=\"Unihan Data Finder - View by Grid (Misclassified) screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-inspector\" class=\"anchor\" aria-hidden=\"true\" href=\"#unihan-inspector\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Inspector</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan Inspector</strong> utility displays all available Unihan tags for each of the 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>, in the set of data files contained in the <a href=\"https://www.unicode.org/Public/UNIDATA/Unihan.zip\" rel=\"nofollow\">Unihan.zip</a> archive file:\n<ul dir=\"auto\">\n<li><em>Unihan_DictionaryIndices.txt</em></li>\n<li><em>Unihan_DictionaryLikeData.txt</em></li>\n<li><em>Unihan_IRGSources.txt</em></li>\n<li><em>Unihan_NumericValues.txt</em></li>\n<li><em>Unihan_OtherMappings.txt</em></li>\n<li><em>Unihan_RadicalStrokeCounts.txt</em></li>\n<li><em>Unihan_Readings.txt</em></li>\n<li><em>Unihan_Variants.txt</em></li>\n</ul>\n</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display the list of Unihan tags.</li>\n<li>In addition, the utility provides, for each Unihan character:\n<ul dir=\"auto\">\n<li>basic Unicode information: name, age, plane, block, script, script extensions, general category, extended properties, decomposition, standardized variation, equivalent unified ideograph;</li>\n<li>basic Unihan information: set (<em>IICore</em>, <em>Unihan Core</em>, <em>Full Unihan</em>), status (<em>unified</em> or <em>compatibility</em> ideograph), compatibility source, radical/strokes, definition, numeric value, related characters, variant characters.</li>\n</ul>\n</li>\n<li>Basic radical information can also be obtained for the 214 KangXi radicals and the 115 additional CJK radicals.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>It is also possible to look up a randomly selected Unihan character by clicking on the <kbd>Random</kbd> button; use the <kbd>Set</kbd> drop-down menu to perform the draw on a specified Unihan set:\n<ul dir=\"auto\">\n<li><code>IICore</code>: the IICore set of 9,810 CJK unified ideographs in common usage,</li>\n<li><code>Unihan Core</code>: the Unihan core set (2020) of 20,720 CJK unified and compatibility ideographs, minimal set of required ideographs for East Asia,</li>\n<li><code>Full Unihan</code>: the full set of 93,867 Unihan characters.</li>\n</ul>\n</li>\n<li>The currently looked up character is displayed at a large scale, followed by its code point.</li>\n<li>Click on <kbd><g-emoji class=\"g-emoji\" alias=\"arrow_backward\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/25c0.png\">◀</g-emoji></kbd> or <kbd><g-emoji class=\"g-emoji\" alias=\"arrow_forward\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/25b6.png\">▶</g-emoji></kbd> to step through five different CJK typefaces, among:\n<ul dir=\"auto\">\n<li><code>JP</code>: Japanese</li>\n<li><code>KR</code>: Korean</li>\n<li><code>SC</code>: Simplified Chinese</li>\n<li><code>TC</code>: Traditional Chinese (Taiwan)</li>\n<li><code>HK</code>: Traditional Chinese (Hong Kong)</li>\n</ul>\n</li>\n<li>If a character cannot be properly rendered in the five CJK typefaces, the system default typeface is automatically used instead.</li>\n<li>Use the <kbd>Categories</kbd> checkbox to toggle between: all Unihan tags ordered alphabetically, or grouped by categories.</li>\n<li>Variant characters, if any, are listed under several classes in the basic Unihan information panel:\n<ul dir=\"auto\">\n<li><code>Unified Variant</code>: decomposition of the looked up character</li>\n<li><code>Compatibility Variants</code>: characters whose decomposition is the looked up character</li>\n<li><code>Semantic Variants</code>: characters listed under the <em>kSemanticVariant</em> Unihan tag</li>\n<li><code>Specialized Variants</code>: characters listed under the <em>kSpecializedSemanticVariant</em> Unihan tag</li>\n<li><code>Spoofing Variants</code>: characters listed under the <em>kSpoofingVariant</em> Unihan tag</li>\n<li><code>Shape (Z-) Variants</code> characters listed under the <em>kZVariant</em> Unihan tag</li>\n<li><code>Simplified Variants</code>: characters listed under the <em>kSimplifiedVariant</em> Unihan tag</li>\n<li><code>Traditional Variants</code>: characters listed under the <em>kTraditionalVariant</em> Unihan tag</li>\n<li><code>Shinjitai Variants</code>: Japanese simplified character variants (新字体)</li>\n<li><code>Kyūjitai Variants</code>: Japanese traditional character variants (旧字体)</li>\n<li><code>Yasuoka Variants</code>: characters drawn from the \"Variants table for Unicode\" data file <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" rel=\"nofollow\">UniVariants.txt</a> provided by Prof. <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" rel=\"nofollow\">Kōichi Yasuoka</a></li>\n</ul>\n</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>The top Radical/Strokes fields are displaying data obtained from the only informative IRG Source: <em>kRSUnicode</em>, while the bottom ones (in grayed-out style, if any) make use of the provisional sources: <em>kRSKangXi</em> and <em>kRSAdobe_Japan1_6</em>.</li>\n<li>IICore (<em>International Ideographs Core</em>) represents a set of 9,810 important Unihan characters in everyday use throughout East Asia; it has been developed by the IRG.</li>\n<li>IRG stands for <em>Ideographic Research Group</em>, formerly called <em>Ideographic Rapporteur Group</em>, a committee advising the Unicode Consortium about Asian language characters.</li>\n<li>Radicals do <em>not</em> belong to the Unihan character set; they are allowed to be looked up here merely as a convenience, since they are closely related, and because their appearance is similar, or even identical, to their equivalent unified ideograph.</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-inspector.png\"><img src=\"screenshots/unihan-inspector.png\" width=\"1080px\" alt=\"Unihan Inspector screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-inspector-radical.png\"><img src=\"screenshots/unihan-inspector-radical.png\" width=\"1080px\" alt=\"Unihan Inspector (Radical) screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-radical-strokes\" class=\"anchor\" aria-hidden=\"true\" href=\"#unihan-radical-strokes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Radical-Strokes</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan Radical-Strokes</strong> utility displays all the Unihan characters searched by KangXi radical and additional stroke count.</li>\n<li>Use the <kbd>Set</kbd> drop-down menu to perform the search on a specified Unihan set:\n<ul dir=\"auto\">\n<li><code>IICore</code>: the IICore set of 9,810 CJK unified ideographs in common usage,</li>\n<li><code>Unihan Core</code>: the Unihan core set (2020) of 20,720 CJK unified and compatibility ideographs, minimal set of required ideographs for East Asia,</li>\n<li><code>Full Unihan</code>: the full set of 93,867 Unihan characters.</li>\n</ul>\n</li>\n<li>Use the <kbd>Extra Sources</kbd> checkbox to extend the search to all radical/strokes source tags, or use only the IRG-defined source tag common to all Unihan characters.</li>\n<li>Use the <kbd>Radical</kbd> and <kbd>Strokes</kbd> drop-down menus to select the KangXi radical and the additional stroke count of the Unihan characters you are looking for, then click on the <kbd>Search</kbd> button.</li>\n<li>If the number of additional strokes is negative, 0 is used instead. For example, the Unihan character 王 gets listed under 'Radical 96 ⽟ (Jade)' + '0 Stroke', although its additional stroke count is -1.</li>\n<li>Selecting <code>All</code> from the <kbd>Strokes</kbd> menu lets you display all the Unihan characters sharing the same KangXi radical, sorted by additional stroke count.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results...</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>A complete list of the 214 KangXi radicals is available for reference, showing also CJK variants as well as simplified forms.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-radical-strokes.png\"><img src=\"screenshots/unihan-radical-strokes.png\" width=\"1080px\" alt=\"Unihan Radical-Strokes screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-references\" class=\"anchor\" aria-hidden=\"true\" href=\"#unihan-references\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan References</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan References</strong> utility provides a list of reference links to Unihan-related web pages.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-references.png\"><img src=\"screenshots/unihan-references.png\" width=\"1080px\" alt=\"Unihan References screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-unihan-variants\" class=\"anchor\" aria-hidden=\"true\" href=\"#unihan-variants\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unihan Variants</h2>\n<ul dir=\"auto\">\n<li>The <strong>Unihan Variants</strong> utility displays all the variants of a given Unihan character.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display the variants.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>Click on the <kbd>Extra Variants</kbd> checkbox to include the Yasuoka variants as well; otherwise, only the standard Unihan variants are listed.</li>\n<li>Click on the <kbd>Detailed Relations</kbd> checkbox to make use of a directed labeled graph to display variant relations; otherwise, a basic undirected graph is used instead.</li>\n<li>Click on the <kbd>Code Points</kbd> checkbox to display as well the code point of each Unihan character of the graph.</li>\n<li>The different variant relations are indicated using the following labels:\n<ul dir=\"auto\">\n<li><code>Compat.</code>: reverse link of <code>Unified</code></li>\n<li><code>Kyūjitai</code>: Japanese traditional character variants (旧字体)</li>\n<li><code>Semantic</code>: characters listed under the <em>kSemanticVariant</em> Unihan tag</li>\n<li><code>Shape</code>: characters listed under the <em>kZVariant</em> Unihan tag</li>\n<li><code>Shinjitai</code>: Japanese simplified character variants (新字体)</li>\n<li><code>Simplified</code>: characters listed under the <em>kSimplifiedVariant</em> Unihan tag</li>\n<li><code>Specialized</code>: characters listed under the <em>kSpecializedSemanticVariant</em> Unihan tag</li>\n<li><code>Spoofing</code>: characters listed under the <em>kSpoofingVariant</em> Unihan tag</li>\n<li><code>Traditional</code>: characters listed under the <em>kTraditionalVariant</em> Unihan tag</li>\n<li><code>Unified</code>: characters listed under the <em>kCompatibilityVariant</em> Unihan tag</li>\n<li><code>Yasuoka</code>: characters drawn from the \"Variants table for Unicode\" data file <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/UniVariants.Z\" rel=\"nofollow\">UniVariants.txt</a> provided by Prof. <a title=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" href=\"http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/\" rel=\"nofollow\">Kōichi Yasuoka</a></li>\n</ul>\n</li>\n<li>Click on the <kbd>Save...</kbd> button to save the current graph as a SVG file.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Hovering over any circled Unihan character of the graph displays a tooltip with basic information: code point, age, set, ideograph status, compatibility source.</li>\n<li>The currently looked up Unihan character appears in a bolder circle; clicking on any other circled variant character lets you \"navigate\" through all the variants.</li>\n<li>In order to avoid visual clutter, any relation between two Unihan characters obtained from the Yasuoka variants is not displayed if another \"standard\" one with the same orientation already exists.</li>\n<li>By design, <em>compatibility</em> characters, if any, always appear on the <em>left</em> side of a graph with detailed relations.</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-variants.png\"><img src=\"screenshots/unihan-variants.png\" width=\"1080px\" alt=\"Unihan Variants screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/unihan-variants-detailed.png\"><img src=\"screenshots/unihan-variants-detailed.png\" width=\"1080px\" alt=\"Unihan Variants (Detailed) screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/unicopedia-plus/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/unicopedia-plus\n# Go into the repository\ncd unicopedia-plus\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/unicopedia-plus\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> unicopedia-plus\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/unicopedia-plus/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>unicopedia-plus-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Unicopedia Plus.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2018-2022 Michel Mariani.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.461Z" }, "unicopedia-sinica": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--unicopedia-sinica\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#-unicopedia-sinica\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/icons/icon-256.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Unicopedia Sinica icon\" style=\"max-width: 100%;\" crossorigin=\"\"></a> UNICOPEDIA SINICA</h1>\n<p dir=\"auto\"><strong>Unicopedia Sinica</strong> is a developer-oriented set of Unicode utilities related to ideographs, wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p dir=\"auto\">It is a specialized complement to the <a href=\"https://github.com/tonton-pixel/unicopedia-plus\">Unicopedia Plus</a> application.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/US-social-preview.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/US-social-preview.png\" alt=\"Unicopedia Sinica social preview\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>CJK Components</strong>\n<ul dir=\"auto\">\n<li><strong>Look Up IDS</strong></li>\n<li><strong>Parse IDS</strong></li>\n<li><strong>Match IDS</strong></li>\n<li><strong>Find by Components</strong></li>\n</ul>\n</li>\n<li><strong>CJK Local Fonts</strong></li>\n<li><strong>CJK Sources</strong></li>\n<li><strong>CJK Variations</strong></li>\n<li><strong>JavaScript Runner</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-components\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#cjk-components\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Components</h2>\n<h3 dir=\"auto\"><a id=\"user-content-look-up-ids\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#look-up-ids\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Look Up IDS</h3>\n<ul dir=\"auto\">\n<li>The <strong>Look Up IDS</strong> feature of the <strong>CJK Components</strong> utility displays all the IDS (Ideographic Description Sequences) of a given Unihan character, as compiled in the freely available <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display the IDS.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>Click on the <kbd>Show Graphs</kbd> checkbox to display the IDS as graphs instead of text strings.</li>\n<li>IDS are provided for the set of 92,865 Unihan characters (excluding CJK <em>compatibility</em> ideographs) defined in <strong>Unicode 14.0</strong>.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Unencoded components of IDS, if any, are assigned code points belonging to the PUA (Private Use Area) block, and are properly displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>The IDS are based on the reference character glyphs shown in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-components-lookup-ids.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-components-lookup-ids.png\" width=\"1080px\" alt=\"CJK Components - Look Up IDS screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-components-lookup-ids-show-graphs.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-components-lookup-ids-show-graphs.png\" width=\"1080px\" alt=\"CJK Components - Look Up IDS - Show Graphs screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-parse-ids\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#parse-ids\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Parse IDS</h3>\n<ul dir=\"auto\">\n<li>The <strong>Parse IDS</strong> feature of the <strong>CJK Components</strong> utility displays the parsing graph of any well-formed IDS (Ideographic Description Sequence), in accordance with the set of extended IDCs (Ideographic Description Characters) defined in the freely available <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>The IDS string can by directly typed, or pasted from the clipboard into the <kbd>IDS</kbd> input field.</li>\n<li>Optionally, a Unihan character can be used as reference in the <kbd>Entry</kbd> input field. Any standardized variant or Ideographic Variation Sequence (IVS) is also accepted, and is displayed in the graph with an outstanding dashed outline.</li>\n<li>It is possible to input predefined sets of Entry and IDS strings selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>The IDS graph can be displayed either vertically or horizontally. Use the <kbd>Display Mode</kbd> drop-down menu to toggle between the two modes.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>This feature is primarily designed for IDS validation (well-formed <em>syntax</em>), and can even be used as a kind of \"playground\" for experimentation, without the need to provide any correct <em>semantics</em>.</li>\n<li>The IDS parsing is performed recursively, based on the following set of <em>prefix</em> operators:\n<table>\n<thead>\n<tr>\n<th>Operator</th>\n<th>Name</th>\n<th>Arity</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>⿰</td>\n<td>IDC Left to Right</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿱</td>\n<td>IDC Above to Below</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿲</td>\n<td>IDC Left to Middle and Right</td>\n<td>3</td>\n</tr>\n<tr>\n<td>⿳</td>\n<td>IDC Above to Middle and Below</td>\n<td>3</td>\n</tr>\n<tr>\n<td>⿴</td>\n<td>IDC Full Surround</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿵</td>\n<td>IDC Surround from Above</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿶</td>\n<td>IDC Surround from Below</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿷</td>\n<td>IDC Surround from Left</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿸</td>\n<td>IDC Surround from Upper Left</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿹</td>\n<td>IDC Surround from Upper Right</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿺</td>\n<td>IDC Surround from Lower Left</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿻</td>\n<td>IDC Overlaid</td>\n<td>2</td>\n</tr>\n<tr>\n<td>〾</td>\n<td>Ideographic Variation Indicator</td>\n<td>1</td>\n</tr>\n<tr>\n<td><g-emoji class=\"g-emoji\" alias=\"left_right_arrow\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2194.png\">↔</g-emoji></td>\n<td>Horizontal Mirror Operator</td>\n<td>1</td>\n</tr>\n<tr>\n<td>↷</td>\n<td>180° Rotation Operator</td>\n<td>1</td>\n</tr>\n<tr>\n<td>⊖</td>\n<td>Subtraction Operator</td>\n<td>2</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>Components whose code point belongs to the PUA (Private Use Area) block are displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-components-parse-ids-ivs.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-components-parse-ids-ivs.png\" width=\"1080px\" alt=\"CJK Components - Parse IDS (IVS) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-components-parse-ids-unencoded.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-components-parse-ids-unencoded.png\" width=\"1080px\" alt=\"CJK Components - Parse IDS (Unencoded) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-ids\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#match-ids\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match IDS</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match IDS</strong> feature of the <strong>CJK Components</strong> utility displays a list of IDS-matching Unihan characters, including through regular expressions. It makes use of the IDS (Ideographic Description Sequences) defined in the <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Nested Match</kbd> toggle button to extend the search to IDS-nested characters whose <em>IDS</em> match the query string.</li>\n<li>Click on the <kbd>Code Points</kbd> checkbox to display the code point under each matching Unihan character.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the set of 92,865 Unihan characters (excluding CJK <em>compatibility</em> ideographs) defined in <strong>Unicode 14.0</strong>.</li>\n<li>The results may include the searched component itself when it happens to be a proper Unihan character too.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results..</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Unencoded components of IDS, if any, are assigned code points belonging to the PUA (Private Use Area) block, and are properly displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>The IDS are based on the reference character glyphs shown in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-components-match-ids.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-components-match-ids.png\" width=\"1080px\" alt=\"CJK Components - Match IDS screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-components\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#find-by-components\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Components</h3>\n<p dir=\"auto\"><em><strong>** Under Construction **</strong></em></p>\n<ul dir=\"auto\">\n<li>The <strong>Find by Components</strong> feature of the <strong>CJK Components</strong> utility displays a list of Unihan characters matching a set of individual components. It makes use of the IDS (Ideographic Description Sequences) defined in the <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Code Points</kbd> checkbox to display the code point under each matching Unihan character.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the set of 92,865 Unihan characters (excluding CJK <em>compatibility</em> ideographs) defined in <strong>Unicode 14.0</strong>.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results..</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Unencoded components of IDS, if any, are assigned code points belonging to the PUA (Private Use Area) block, and are properly displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>The IDS are based on the reference character glyphs shown in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-components-find-by-components.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-components-find-by-components.png\" width=\"1080px\" alt=\"CJK Components - Find by Components screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-local-fonts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#cjk-local-fonts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Local Fonts</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Local Fonts</strong> utility displays all the local font glyphs of a given Unihan character.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display all the glyphs.</li>\n<li>Standardized variants and Ideographic Variation Sequences (IVS) are also accepted in input, either directly, e.g., <code>劍󠄁</code>, or as a combination of two code points: Unihan base character + variation selector (VS1 to VS256), e.g., <code>U+6F22 U+FE00</code>, or <code>U+9F8D U+E0101</code>; the specific format <code><9F8D,E0107></code> is also allowed.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>Click on the <kbd>Compact Layout</kbd> checkbox to display the local font glyphs in a more compact way: hovering over each glyph frame brings up a tooltip with the local font name.</li>\n<li>Use the <kbd>Font Name Filter</kbd> input field to restrict in real time the display of local font glyphs to the font names matching the text string.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>A dashed outline is added to a character frame whenever the glyph of a Unihan character coming with a variation selector is visually different from the glyph of its base character alone; in such case, alt-clicking (or shift-clicking) inside the character frame displays momentarily the base character glyph; this is especially useful to spot subtle differences between glyph variations.</li>\n<li>For best coverage of Unicode Variation Sequences, some of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"https://moji.or.jp/mojikiban/font/\" rel=\"nofollow\">IPA MJ Mincho</a> (<code>ipamjm.ttf</code>)</li>\n</ul>\n \n<ul dir=\"auto\">\n<li><a href=\"https://github.com/adobe-fonts/source-han-serif/tree/release\">Source Han Serif</a> (various set formats)</li>\n<li><a href=\"https://github.com/adobe-fonts/source-han-sans/tree/release\">Source Han Sans</a> (various set formats)</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-local-fonts.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-local-fonts.png\" width=\"1080px\" alt=\"CJK Local Fonts screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-local-fonts-filter.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-local-fonts-filter.png\" width=\"1080px\" alt=\"CJK Local Fonts - Filter screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-local-fonts-vs.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-local-fonts-vs.png\" width=\"1080px\" alt=\"CJK Local Fonts - Variation Selector screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-sources\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#cjk-sources\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Sources</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Sources</strong> utility displays in a grid fashion the various sources of a given subset of CJK (Chinese/Japanese/Korean) characters, as referenced in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/UF900.pdf\" rel=\"nofollow\">CJK Compatibility Ideographs - UF900.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2F800.pdf\" rel=\"nofollow\">CJK Compatibility Ideographs Supplement - U2F800.pdf</a></li>\n</ul>\n</li>\n<li>This is especially useful for comparison purposes between relatable character glyphs.</li>\n<li>These CJK characters belong to the full set of 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>CJK characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined strings of CJK characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.\nIn output, the standard Unicode code point format <code>U+9999</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u6E7E</code> or <code>\\u{21FE7}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n<li>Code point and alphanumeric source references of CJK <em>compatibility</em> characters are systematically displayed in <em>italics</em>.</li>\n<li>Whereas the original code charts are making use of mutually incompatible, block-specific source orderings, this utility displays the relevant sources always sorted in the same order, discarding any empty column for the sake of clarity:\n<table>\n<thead>\n<tr>\n<th>Prefix</th>\n<th>Source</th>\n<th>Unihan Property</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>G</td>\n<td>China</td>\n<td>kIRG_GSource</td>\n</tr>\n<tr>\n<td>H</td>\n<td>Hong Kong</td>\n<td>kIRG_HSource</td>\n</tr>\n<tr>\n<td>M</td>\n<td>Macao</td>\n<td>kIRG_MSource</td>\n</tr>\n<tr>\n<td>T</td>\n<td>Taiwan</td>\n<td>kIRG_TSource</td>\n</tr>\n<tr>\n<td>J</td>\n<td>Japan</td>\n<td>kIRG_JSource</td>\n</tr>\n<tr>\n<td>K</td>\n<td>South Korea</td>\n<td>kIRG_KSource</td>\n</tr>\n<tr>\n<td>KP</td>\n<td>North Korea</td>\n<td>kIRG_KPSource</td>\n</tr>\n<tr>\n<td>V</td>\n<td>Vietnam</td>\n<td>kIRG_VSource</td>\n</tr>\n<tr>\n<td>UTC</td>\n<td>UTC</td>\n<td>kIRG_USource</td>\n</tr>\n<tr>\n<td>SAT</td>\n<td>SAT</td>\n<td>kIRG_SSource</td>\n</tr>\n<tr>\n<td>UK</td>\n<td>U.K.</td>\n<td>kIRG_UKSource</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>UTC stands for <em>Unicode Technical Committee</em>, which is responsible for the development and maintenance of the Unicode Standard.</li>\n<li>SAT (<em>SAmganikikrtam Taisotripitakam</em> in Sanskrit) represents a machine-readable text database of the <a href=\"https://en.wikipedia.org/wiki/Taish%C5%8D_Tripi%E1%B9%ADaka\" rel=\"nofollow\">Taishō Tripiṭaka</a>.</li>\n<li>A table of glyphs statistics is available for quick reference.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-sources.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-sources.png\" width=\"1080px\" alt=\"CJK Sources screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-variations\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#cjk-variations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Variations</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Variations</strong> utility displays all the registered Ideographic Variation Sequences (IVS) of a given Unihan character, as referenced in their respective <strong>IVD 2020</strong> charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_Adobe-Japan1.pdf\" rel=\"nofollow\">Adobe-Japan1 collection - IVD_Charts_Adobe-Japan1.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_Hanyo-Denshi.pdf\" rel=\"nofollow\">Hanyo-Denshi collection - IVD_Charts_Hanyo-Denshi.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_KRName.pdf\" rel=\"nofollow\">KRName collection - IVD_Charts_KRName.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_Moji_Joho.pdf\" rel=\"nofollow\">Moji_Joho collection - IVD_Charts_Moji_Joho.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_MSARG.pdf\" rel=\"nofollow\">MSARG collection - IVD_Charts_MSARG.pdf</a></li>\n</ul>\n</li>\n<li>In addition, as an <em>experimental</em> feature, an <strong>unregistered</strong> set of <a href=\"https://www.babelstone.co.uk/Fonts/BSH_IVS.html\" rel=\"nofollow\">BabelStone Han Variation Sequences</a> is also supported, intended to be registered in the <a href=\"https://unicode.org/ivd/\" rel=\"nofollow\">Ideographic Variation Database</a> as a future <code>BabelStone Collection</code>.</li>\n<li>Clicking inside any character glyph displays momentarily the same glyph for all variations in the same collection, while alt-clicking (or shift-clicking) applies to all characters glyphs sharing the same IVS across different collections. This is especially useful to quickly spot visual differences between glyph variations.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display all the IVS glyphs along with their VS (Variation Selector) code points.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-variations.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-variations.png\" width=\"1080px\" alt=\"CJK Variations screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/cjk-variations-unregistered.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/cjk-variations-unregistered.png\" width=\"1080px\" alt=\"CJK Variations (Unregistered) screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-runner\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#javascript-runner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Runner</h2>\n<ul dir=\"auto\">\n<li>The <strong>JavaScript Runner</strong> utility lets you execute JavaScript code, and comes with several sample scripts related to CJK, IDS, and IVD; it is useful for quick testing/prototyping or data processing.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/screenshots/javascript-runner.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/unicopedia-sinica/master/screenshots/javascript-runner.png\" width=\"1080px\" alt=\"JavaScript Runner screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/unicopedia-sinica/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/unicopedia-sinica\n# Go into the repository\ncd unicopedia-sinica\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/unicopedia-sinica\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> unicopedia-sinica\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/unicopedia-sinica/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>unicopedia-sinica-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Unicopedia Sinica.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/unicopedia-sinica/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2021-2022 Michel Mariani.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--unicopedia-sinica\" class=\"anchor\" aria-hidden=\"true\" href=\"#-unicopedia-sinica\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"icons/icon-256.png\"><img src=\"icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Unicopedia Sinica icon\" style=\"max-width: 100%;\"></a> UNICOPEDIA SINICA</h1>\n<p dir=\"auto\"><strong>Unicopedia Sinica</strong> is a developer-oriented set of Unicode utilities related to ideographs, wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p dir=\"auto\">It is a specialized complement to the <a href=\"https://github.com/tonton-pixel/unicopedia-plus\">Unicopedia Plus</a> application.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/US-social-preview.png\"><img src=\"screenshots/US-social-preview.png\" alt=\"Unicopedia Sinica social preview\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>CJK Components</strong>\n<ul dir=\"auto\">\n<li><strong>Look Up IDS</strong></li>\n<li><strong>Parse IDS</strong></li>\n<li><strong>Match IDS</strong></li>\n<li><strong>Find by Components</strong></li>\n</ul>\n</li>\n<li><strong>CJK Local Fonts</strong></li>\n<li><strong>CJK Sources</strong></li>\n<li><strong>CJK Variations</strong></li>\n<li><strong>JavaScript Runner</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-components\" class=\"anchor\" aria-hidden=\"true\" href=\"#cjk-components\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Components</h2>\n<h3 dir=\"auto\"><a id=\"user-content-look-up-ids\" class=\"anchor\" aria-hidden=\"true\" href=\"#look-up-ids\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Look Up IDS</h3>\n<ul dir=\"auto\">\n<li>The <strong>Look Up IDS</strong> feature of the <strong>CJK Components</strong> utility displays all the IDS (Ideographic Description Sequences) of a given Unihan character, as compiled in the freely available <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display the IDS.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>Click on the <kbd>Show Graphs</kbd> checkbox to display the IDS as graphs instead of text strings.</li>\n<li>IDS are provided for the set of 92,865 Unihan characters (excluding CJK <em>compatibility</em> ideographs) defined in <strong>Unicode 14.0</strong>.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Unencoded components of IDS, if any, are assigned code points belonging to the PUA (Private Use Area) block, and are properly displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>The IDS are based on the reference character glyphs shown in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-components-lookup-ids.png\"><img src=\"screenshots/cjk-components-lookup-ids.png\" width=\"1080px\" alt=\"CJK Components - Look Up IDS screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-components-lookup-ids-show-graphs.png\"><img src=\"screenshots/cjk-components-lookup-ids-show-graphs.png\" width=\"1080px\" alt=\"CJK Components - Look Up IDS - Show Graphs screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-parse-ids\" class=\"anchor\" aria-hidden=\"true\" href=\"#parse-ids\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Parse IDS</h3>\n<ul dir=\"auto\">\n<li>The <strong>Parse IDS</strong> feature of the <strong>CJK Components</strong> utility displays the parsing graph of any well-formed IDS (Ideographic Description Sequence), in accordance with the set of extended IDCs (Ideographic Description Characters) defined in the freely available <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>The IDS string can by directly typed, or pasted from the clipboard into the <kbd>IDS</kbd> input field.</li>\n<li>Optionally, a Unihan character can be used as reference in the <kbd>Entry</kbd> input field. Any standardized variant or Ideographic Variation Sequence (IVS) is also accepted, and is displayed in the graph with an outstanding dashed outline.</li>\n<li>It is possible to input predefined sets of Entry and IDS strings selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.</li>\n<li>The IDS graph can be displayed either vertically or horizontally. Use the <kbd>Display Mode</kbd> drop-down menu to toggle between the two modes.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>This feature is primarily designed for IDS validation (well-formed <em>syntax</em>), and can even be used as a kind of \"playground\" for experimentation, without the need to provide any correct <em>semantics</em>.</li>\n<li>The IDS parsing is performed recursively, based on the following set of <em>prefix</em> operators:\n<table>\n<thead>\n<tr>\n<th>Operator</th>\n<th>Name</th>\n<th>Arity</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>⿰</td>\n<td>IDC Left to Right</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿱</td>\n<td>IDC Above to Below</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿲</td>\n<td>IDC Left to Middle and Right</td>\n<td>3</td>\n</tr>\n<tr>\n<td>⿳</td>\n<td>IDC Above to Middle and Below</td>\n<td>3</td>\n</tr>\n<tr>\n<td>⿴</td>\n<td>IDC Full Surround</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿵</td>\n<td>IDC Surround from Above</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿶</td>\n<td>IDC Surround from Below</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿷</td>\n<td>IDC Surround from Left</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿸</td>\n<td>IDC Surround from Upper Left</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿹</td>\n<td>IDC Surround from Upper Right</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿺</td>\n<td>IDC Surround from Lower Left</td>\n<td>2</td>\n</tr>\n<tr>\n<td>⿻</td>\n<td>IDC Overlaid</td>\n<td>2</td>\n</tr>\n<tr>\n<td>〾</td>\n<td>Ideographic Variation Indicator</td>\n<td>1</td>\n</tr>\n<tr>\n<td><g-emoji class=\"g-emoji\" alias=\"left_right_arrow\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2194.png\">↔</g-emoji></td>\n<td>Horizontal Mirror Operator</td>\n<td>1</td>\n</tr>\n<tr>\n<td>↷</td>\n<td>180° Rotation Operator</td>\n<td>1</td>\n</tr>\n<tr>\n<td>⊖</td>\n<td>Subtraction Operator</td>\n<td>2</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>Components whose code point belongs to the PUA (Private Use Area) block are displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-components-parse-ids-ivs.png\"><img src=\"screenshots/cjk-components-parse-ids-ivs.png\" width=\"1080px\" alt=\"CJK Components - Parse IDS (IVS) screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-components-parse-ids-unencoded.png\"><img src=\"screenshots/cjk-components-parse-ids-unencoded.png\" width=\"1080px\" alt=\"CJK Components - Parse IDS (Unencoded) screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-match-ids\" class=\"anchor\" aria-hidden=\"true\" href=\"#match-ids\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Match IDS</h3>\n<ul dir=\"auto\">\n<li>The <strong>Match IDS</strong> feature of the <strong>CJK Components</strong> utility displays a list of IDS-matching Unihan characters, including through regular expressions. It makes use of the IDS (Ideographic Description Sequences) defined in the <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Nested Match</kbd> toggle button to extend the search to IDS-nested characters whose <em>IDS</em> match the query string.</li>\n<li>Click on the <kbd>Code Points</kbd> checkbox to display the code point under each matching Unihan character.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the set of 92,865 Unihan characters (excluding CJK <em>compatibility</em> ideographs) defined in <strong>Unicode 14.0</strong>.</li>\n<li>The results may include the searched component itself when it happens to be a proper Unihan character too.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results..</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Various examples of regular expressions are provided for quick copy-and-paste.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Unencoded components of IDS, if any, are assigned code points belonging to the PUA (Private Use Area) block, and are properly displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>The IDS are based on the reference character glyphs shown in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-components-match-ids.png\"><img src=\"screenshots/cjk-components-match-ids.png\" width=\"1080px\" alt=\"CJK Components - Match IDS screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-find-by-components\" class=\"anchor\" aria-hidden=\"true\" href=\"#find-by-components\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find by Components</h3>\n<p dir=\"auto\"><em><strong>** Under Construction **</strong></em></p>\n<ul dir=\"auto\">\n<li>The <strong>Find by Components</strong> feature of the <strong>CJK Components</strong> utility displays a list of Unihan characters matching a set of individual components. It makes use of the IDS (Ideographic Description Sequences) defined in the <a href=\"https://babelstone.co.uk/CJK/IDS.TXT\" rel=\"nofollow\">IDS.TXT</a> data file, maintained by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>After entering a query, click on the <kbd>Search</kbd> button to display a list of all relevant matches, if any, ordered by code point value.</li>\n<li>Click on the <kbd>Code Points</kbd> checkbox to display the code point under each matching Unihan character.</li>\n<li>It is possible to choose how many characters are shown one page at a time.</li>\n<li>The search is performed on the set of 92,865 Unihan characters (excluding CJK <em>compatibility</em> ideographs) defined in <strong>Unicode 14.0</strong>.</li>\n<li>Use the <kbd>Results ▾</kbd> pop-up menu to perform an action among:\n<ul dir=\"auto\">\n<li><code>Copy Results</code> [copy the results as string to the clipboard]</li>\n<li><code>Save Results..</code> [save the results as string to a text file]</li>\n<li><code>Clear Results</code> [clear the current list of results]</li>\n</ul>\n</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>Unencoded components of IDS, if any, are assigned code points belonging to the PUA (Private Use Area) block, and are properly displayed by using an embedded copy of the custom font <a href=\"https://www.babelstone.co.uk/Fonts/PUA.html\" rel=\"nofollow\">BabelStone Han PUA</a>, created by <a href=\"https://en.wikipedia.org/wiki/Andrew_West_(linguist)\" rel=\"nofollow\">Andrew West</a>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>The IDS are based on the reference character glyphs shown in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-components-find-by-components.png\"><img src=\"screenshots/cjk-components-find-by-components.png\" width=\"1080px\" alt=\"CJK Components - Find by Components screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-local-fonts\" class=\"anchor\" aria-hidden=\"true\" href=\"#cjk-local-fonts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Local Fonts</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Local Fonts</strong> utility displays all the local font glyphs of a given Unihan character.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display all the glyphs.</li>\n<li>Standardized variants and Ideographic Variation Sequences (IVS) are also accepted in input, either directly, e.g., <code>劍󠄁</code>, or as a combination of two code points: Unihan base character + variation selector (VS1 to VS256), e.g., <code>U+6F22 U+FE00</code>, or <code>U+9F8D U+E0101</code>; the specific format <code><9F8D,E0107></code> is also allowed.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n<li>Click on the <kbd>Compact Layout</kbd> checkbox to display the local font glyphs in a more compact way: hovering over each glyph frame brings up a tooltip with the local font name.</li>\n<li>Use the <kbd>Font Name Filter</kbd> input field to restrict in real time the display of local font glyphs to the font names matching the text string.</li>\n<li>Notes:\n<ul dir=\"auto\">\n<li>A dashed outline is added to a character frame whenever the glyph of a Unihan character coming with a variation selector is visually different from the glyph of its base character alone; in such case, alt-clicking (or shift-clicking) inside the character frame displays momentarily the base character glyph; this is especially useful to spot subtle differences between glyph variations.</li>\n<li>For best coverage of Unicode Variation Sequences, some of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"https://moji.or.jp/mojikiban/font/\" rel=\"nofollow\">IPA MJ Mincho</a> (<code>ipamjm.ttf</code>)</li>\n</ul>\n \n<ul dir=\"auto\">\n<li><a href=\"https://github.com/adobe-fonts/source-han-serif/tree/release\">Source Han Serif</a> (various set formats)</li>\n<li><a href=\"https://github.com/adobe-fonts/source-han-sans/tree/release\">Source Han Sans</a> (various set formats)</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-local-fonts.png\"><img src=\"screenshots/cjk-local-fonts.png\" width=\"1080px\" alt=\"CJK Local Fonts screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-local-fonts-filter.png\"><img src=\"screenshots/cjk-local-fonts-filter.png\" width=\"1080px\" alt=\"CJK Local Fonts - Filter screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-local-fonts-vs.png\"><img src=\"screenshots/cjk-local-fonts-vs.png\" width=\"1080px\" alt=\"CJK Local Fonts - Variation Selector screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-sources\" class=\"anchor\" aria-hidden=\"true\" href=\"#cjk-sources\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Sources</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Sources</strong> utility displays in a grid fashion the various sources of a given subset of CJK (Chinese/Japanese/Korean) characters, as referenced in their respective <strong>Unicode 14.0</strong> code charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/charts/PDF/U4E00.pdf\" rel=\"nofollow\">CJK Unified Ideographs - U4E00.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U3400.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension A - U3400.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U20000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension B - U20000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2A700.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension C - U2A700.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B740.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension D - U2B740.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2B820.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension E - U2B820.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2CEB0.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension F - U2CEB0.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U30000.pdf\" rel=\"nofollow\">CJK Unified Ideographs Extension G - U30000.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/UF900.pdf\" rel=\"nofollow\">CJK Compatibility Ideographs - UF900.pdf</a></li>\n<li><a href=\"https://www.unicode.org/charts/PDF/U2F800.pdf\" rel=\"nofollow\">CJK Compatibility Ideographs Supplement - U2F800.pdf</a></li>\n</ul>\n</li>\n<li>This is especially useful for comparison purposes between relatable character glyphs.</li>\n<li>These CJK characters belong to the full set of 93,867 Unihan characters defined in <strong>Unicode 14.0</strong>.</li>\n<li>For best display results, most recent versions of the following fonts should be downloaded and installed at the OS level:\n<ul dir=\"auto\">\n<li><a href=\"https://www.babelstone.co.uk/Fonts/Han.html\" rel=\"nofollow\">BabelStone Han</a> (<code>BabelStoneHan.ttf</code>)</li>\n<li><a href=\"https://github.com/cjkvi/HanaMinAFDKO/releases\">Hanazono Mincho</a> (<code>HanaMinA.otf</code>, <code>HanaMinB.otf</code>, <code>HanaMinC.otf</code>)</li>\n<li><a href=\"http://cheonhyeong.com/Simplified/download.html\" rel=\"nofollow\">TH-Tshyn</a> (<code>TH-Tshyn-P0.ttf</code>, <code>TH-Tshyn-P1.ttf</code>, <code>TH-Tshyn-P2.ttf</code>, <code>TH-Tshyn-P16.ttf</code>)</li>\n</ul>\n</li>\n<li>CJK characters can be entered either directly in the \"Characters\" input field, or using a series of code points in hexadecimal format in the \"Code points\" input field.</li>\n<li>It is also possible to input predefined strings of CJK characters selected from the <kbd>Samples ▾</kbd> pop-up menu.</li>\n<li>As a convenience, the input fields can be emptied using the <kbd>Clear</kbd> button.\nIn output, the standard Unicode code point format <code>U+9999</code> is used, i.e. \"U+\" directly followed by 4 or 5 hex digits.</li>\n<li>In input, more hexadecimal formats are allowed, including Unicode escape sequences, such as <code>\\u6E7E</code> or <code>\\u{21FE7}</code>. Moving out of the field or typing the Enter key converts all valid codes to standard Unicode code point format.</li>\n<li>Code point and alphanumeric source references of CJK <em>compatibility</em> characters are systematically displayed in <em>italics</em>.</li>\n<li>Whereas the original code charts are making use of mutually incompatible, block-specific source orderings, this utility displays the relevant sources always sorted in the same order, discarding any empty column for the sake of clarity:\n<table>\n<thead>\n<tr>\n<th>Prefix</th>\n<th>Source</th>\n<th>Unihan Property</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>G</td>\n<td>China</td>\n<td>kIRG_GSource</td>\n</tr>\n<tr>\n<td>H</td>\n<td>Hong Kong</td>\n<td>kIRG_HSource</td>\n</tr>\n<tr>\n<td>M</td>\n<td>Macao</td>\n<td>kIRG_MSource</td>\n</tr>\n<tr>\n<td>T</td>\n<td>Taiwan</td>\n<td>kIRG_TSource</td>\n</tr>\n<tr>\n<td>J</td>\n<td>Japan</td>\n<td>kIRG_JSource</td>\n</tr>\n<tr>\n<td>K</td>\n<td>South Korea</td>\n<td>kIRG_KSource</td>\n</tr>\n<tr>\n<td>KP</td>\n<td>North Korea</td>\n<td>kIRG_KPSource</td>\n</tr>\n<tr>\n<td>V</td>\n<td>Vietnam</td>\n<td>kIRG_VSource</td>\n</tr>\n<tr>\n<td>UTC</td>\n<td>UTC</td>\n<td>kIRG_USource</td>\n</tr>\n<tr>\n<td>SAT</td>\n<td>SAT</td>\n<td>kIRG_SSource</td>\n</tr>\n<tr>\n<td>UK</td>\n<td>U.K.</td>\n<td>kIRG_UKSource</td>\n</tr>\n</tbody>\n</table>\n</li>\n<li>UTC stands for <em>Unicode Technical Committee</em>, which is responsible for the development and maintenance of the Unicode Standard.</li>\n<li>SAT (<em>SAmganikikrtam Taisotripitakam</em> in Sanskrit) represents a machine-readable text database of the <a href=\"https://en.wikipedia.org/wiki/Taish%C5%8D_Tripi%E1%B9%ADaka\" rel=\"nofollow\">Taishō Tripiṭaka</a>.</li>\n<li>A table of glyphs statistics is available for quick reference.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-sources.png\"><img src=\"screenshots/cjk-sources.png\" width=\"1080px\" alt=\"CJK Sources screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-cjk-variations\" class=\"anchor\" aria-hidden=\"true\" href=\"#cjk-variations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>CJK Variations</h2>\n<ul dir=\"auto\">\n<li>The <strong>CJK Variations</strong> utility displays all the registered Ideographic Variation Sequences (IVS) of a given Unihan character, as referenced in their respective <strong>IVD 2020</strong> charts:\n<ul dir=\"auto\">\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_Adobe-Japan1.pdf\" rel=\"nofollow\">Adobe-Japan1 collection - IVD_Charts_Adobe-Japan1.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_Hanyo-Denshi.pdf\" rel=\"nofollow\">Hanyo-Denshi collection - IVD_Charts_Hanyo-Denshi.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_KRName.pdf\" rel=\"nofollow\">KRName collection - IVD_Charts_KRName.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_Moji_Joho.pdf\" rel=\"nofollow\">Moji_Joho collection - IVD_Charts_Moji_Joho.pdf</a></li>\n<li><a href=\"https://www.unicode.org/ivd/data/2020-11-06/IVD_Charts_MSARG.pdf\" rel=\"nofollow\">MSARG collection - IVD_Charts_MSARG.pdf</a></li>\n</ul>\n</li>\n<li>In addition, as an <em>experimental</em> feature, an <strong>unregistered</strong> set of <a href=\"https://www.babelstone.co.uk/Fonts/BSH_IVS.html\" rel=\"nofollow\">BabelStone Han Variation Sequences</a> is also supported, intended to be registered in the <a href=\"https://unicode.org/ivd/\" rel=\"nofollow\">Ideographic Variation Database</a> as a future <code>BabelStone Collection</code>.</li>\n<li>Clicking inside any character glyph displays momentarily the same glyph for all variations in the same collection, while alt-clicking (or shift-clicking) applies to all characters glyphs sharing the same IVS across different collections. This is especially useful to quickly spot visual differences between glyph variations.</li>\n<li>Any Unihan character can be entered in the <kbd>Unihan</kbd> input field either as a character or a code point. Click on the <kbd>Look Up</kbd> button to display all the IVS glyphs along with their VS (Variation Selector) code points.</li>\n<li>Previously looked up characters are kept in a history stack; use the <kbd>Alt</kbd>+<kbd>↑</kbd> and <kbd>Alt</kbd>+<kbd>↓</kbd> keyboard shortcuts to navigate through them up and down inside the input field. Alternatively, you can also use the <kbd>Lookup History ▾</kbd> pop-up menu to automatically look up a specific character.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-variations.png\"><img src=\"screenshots/cjk-variations.png\" width=\"1080px\" alt=\"CJK Variations screenshot\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/cjk-variations-unregistered.png\"><img src=\"screenshots/cjk-variations-unregistered.png\" width=\"1080px\" alt=\"CJK Variations (Unregistered) screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-javascript-runner\" class=\"anchor\" aria-hidden=\"true\" href=\"#javascript-runner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>JavaScript Runner</h2>\n<ul dir=\"auto\">\n<li>The <strong>JavaScript Runner</strong> utility lets you execute JavaScript code, and comes with several sample scripts related to CJK, IDS, and IVD; it is useful for quick testing/prototyping or data processing.</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/javascript-runner.png\"><img src=\"screenshots/javascript-runner.png\" width=\"1080px\" alt=\"JavaScript Runner screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/unicopedia-sinica/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/unicopedia-sinica\n# Go into the repository\ncd unicopedia-sinica\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/unicopedia-sinica\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> unicopedia-sinica\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/unicopedia-sinica/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>unicopedia-sinica-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Unicopedia Sinica.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2021-2022 Michel Mariani.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.508Z" }, "unofficial-zalo": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-unofficial-zalo-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#unofficial-zalo-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unofficial Zalo App</h1>\n<p dir=\"auto\"><a href=\"https://greenkeeper.io/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/2981ed1af6498d1e22f72e12deacc7b4bfb44329a7c997a333a78ab5ae847ca5/68747470733a2f2f6261646765732e677265656e6b65657065722e696f2f5361666553747564696f2f756e6f6666696369616c2d7a616c6f2e737667\" alt=\"Greenkeeper badge\" data-canonical-src=\"https://badges.greenkeeper.io/SafeStudio/unofficial-zalo.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-build-instruction\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#build-instruction\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build Instruction</h2>\n<h3 dir=\"auto\"><a id=\"user-content-install-npm-package-globally\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#install-npm-package-globally\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install NPM package globally</h3>\n<h4 dir=\"auto\"><a id=\"user-content-for-macos-and-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#for-macos-and-linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>For macOS and Linux</h4>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# install dependencies\nnpm install --save-dev\n# or\nyarn install -D\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> install dependencies</span>\nnpm install --save-dev\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> or</span>\nyarn install -D</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-package-application\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#package-application\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Package application</h3>\n<h4 dir=\"auto\"><a id=\"user-content-for-macos-and-linux-1\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#for-macos-and-linux-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>For macOS and Linux</h4>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dist\n#or \nyarn dist\"><pre>npm run dist\n<span class=\"pl-c\"><span class=\"pl-c\">#</span>or </span>\nyarn dist</pre></div>\n<p dir=\"auto\">Currently, I don't support Windows. But you can build it for Windows.</p>\n<h2 dir=\"auto\"><a id=\"user-content-creating-issue-instruction\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/SafeStudio/unofficial-zalo/blob/main/#creating-issue-instruction\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Creating Issue Instruction</h2>\n<p dir=\"auto\">Please submit detail issues at <a href=\"https://github.com/SafeStudio/unofficial-zalo/issues\">Unofficial Zalo Issues</a> if you detect them.</p>\n<p dir=\"auto\"><strong>Tips</strong>: You can assign label for issue.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-unofficial-zalo-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#unofficial-zalo-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Unofficial Zalo App</h1>\n<p dir=\"auto\"><a href=\"https://greenkeeper.io/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/2981ed1af6498d1e22f72e12deacc7b4bfb44329a7c997a333a78ab5ae847ca5/68747470733a2f2f6261646765732e677265656e6b65657065722e696f2f5361666553747564696f2f756e6f6666696369616c2d7a616c6f2e737667\" alt=\"Greenkeeper badge\" data-canonical-src=\"https://badges.greenkeeper.io/SafeStudio/unofficial-zalo.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-build-instruction\" class=\"anchor\" aria-hidden=\"true\" href=\"#build-instruction\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build Instruction</h2>\n<h3 dir=\"auto\"><a id=\"user-content-install-npm-package-globally\" class=\"anchor\" aria-hidden=\"true\" href=\"#install-npm-package-globally\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install NPM package globally</h3>\n<h4 dir=\"auto\"><a id=\"user-content-for-macos-and-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#for-macos-and-linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>For macOS and Linux</h4>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# install dependencies\nnpm install --save-dev\n# or\nyarn install -D\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> install dependencies</span>\nnpm install --save-dev\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> or</span>\nyarn install -D</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-package-application\" class=\"anchor\" aria-hidden=\"true\" href=\"#package-application\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Package application</h3>\n<h4 dir=\"auto\"><a id=\"user-content-for-macos-and-linux-1\" class=\"anchor\" aria-hidden=\"true\" href=\"#for-macos-and-linux-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>For macOS and Linux</h4>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run dist\n#or \nyarn dist\"><pre>npm run dist\n<span class=\"pl-c\"><span class=\"pl-c\">#</span>or </span>\nyarn dist</pre></div>\n<p dir=\"auto\">Currently, I don't support Windows. But you can build it for Windows.</p>\n<h2 dir=\"auto\"><a id=\"user-content-creating-issue-instruction\" class=\"anchor\" aria-hidden=\"true\" href=\"#creating-issue-instruction\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Creating Issue Instruction</h2>\n<p dir=\"auto\">Please submit detail issues at <a href=\"https://github.com/SafeStudio/unofficial-zalo/issues\">Unofficial Zalo Issues</a> if you detect them.</p>\n<p dir=\"auto\"><strong>Tips</strong>: You can assign label for issue.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.624Z" }, "upcount": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-upcount-invoicing-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#upcount-invoicing-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Upcount invoicing app</h1>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/madisvain/upcount/workflows/Release/badge.svg\"><img src=\"https://github.com/madisvain/upcount/workflows/Release/badge.svg\" alt=\"Github actions\" style=\"max-width: 100%;\"></a> <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/cf00d92acdf2e1ea21eec2e8466d989b2a63d23a150872444418681d51bb6410/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d616469737661696e2f7570636f756e743f696e636c7564655f70726572656c6561736573\"><img src=\"https://camo.githubusercontent.com/cf00d92acdf2e1ea21eec2e8466d989b2a63d23a150872444418681d51bb6410/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d616469737661696e2f7570636f756e743f696e636c7564655f70726572656c6561736573\" alt=\"GitHub release (latest by date including pre-releases)\" data-canonical-src=\"https://img.shields.io/github/v/release/madisvain/upcount?include_prereleases\" style=\"max-width: 100%;\"></a> <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/ff080bc2b142f5ef124eeb8216fa482b0d8fa767b8b11716e6173f287cc4c17f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d616469737661696e2f7570636f756e74\"><img src=\"https://camo.githubusercontent.com/ff080bc2b142f5ef124eeb8216fa482b0d8fa767b8b11716e6173f287cc4c17f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d616469737661696e2f7570636f756e74\" alt=\"GitHub\" data-canonical-src=\"https://img.shields.io/github/license/madisvain/upcount\" style=\"max-width: 100%;\"></a> <a href=\"https://join.slack.com/t/upcount/shared_invite/enQtOTY0Nzk5NTgzMjQ5LThlMWE3Y2YyNGY1MTc3M2Y1YmQ4YTdmZDYyNmJlYzBiNmQ0NTFhYjBkNzNjZjIwNWNlZDY2OTdiN2UwYzc3YWU\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/60f70c7db510f0c1ec07a7e06a2ea19f88308c3f57740c04a0c0e2b19962aa72/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736c61636b2d7570636f756e742d677265656e2e7376673f6c6f676f3d736c61636b\" alt=\"Slack\" data-canonical-src=\"https://img.shields.io/badge/slack-upcount-green.svg?logo=slack\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Upcount is a painless cross-platform invoicing application, built with <a href=\"https://reactjs.org/\" rel=\"nofollow\">React</a> & <a href=\"https://electronjs.org/\" rel=\"nofollow\">Electron</a> and simplicity in mind.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2963cd1078ba506762c61c0432615dc83b9ff5660d8bf09bbaa513adc3e1bf6d/68747470733a2f2f7777772e7570636f756e742e6170702f73637265656e73686f74732f696e766f696365732e706e67\"><img src=\"https://camo.githubusercontent.com/2963cd1078ba506762c61c0432615dc83b9ff5660d8bf09bbaa513adc3e1bf6d/68747470733a2f2f7777772e7570636f756e742e6170702f73637265656e73686f74732f696e766f696365732e706e67\" alt=\"Invoice list\" data-canonical-src=\"https://www.upcount.app/screenshots/invoices.png\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.upcount.app/screenshots/invoice-edit.png\" rel=\"nofollow\">Invoice editing</a>\n<a href=\"https://www.upcount.app/screenshots/settings.png\" rel=\"nofollow\">Invoice settings</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">Upcount is available for Mac, Linux & Windows and can be downloaded from Github releases.</p>\n<p dir=\"auto\"><strong><a href=\"https://github.com/madisvain/upcount/releases\">https://github.com/madisvain/upcount/releases</a></strong></p>\n<h1 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h1>\n<ul dir=\"auto\">\n<li><g-emoji class=\"g-emoji\" alias=\"dart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png\">🎯</g-emoji> Totally free & Open source</li>\n<li><g-emoji class=\"g-emoji\" alias=\"performing_arts\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f3ad.png\">🎭</g-emoji> Cross platform</li>\n<li><g-emoji class=\"g-emoji\" alias=\"zap\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a1.png\">⚡️</g-emoji> Offline-first for privacy</li>\n<li><g-emoji class=\"g-emoji\" alias=\"space_invader\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f47e.png\">👾</g-emoji> Use your own logo</li>\n<li><g-emoji class=\"g-emoji\" alias=\"lollipop\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f36d.png\">🍭</g-emoji> Customizable settings</li>\n<li><g-emoji class=\"g-emoji\" alias=\"globe_with_meridians\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f310.png\">🌐</g-emoji> Internationalized</li>\n<li><g-emoji class=\"g-emoji\" alias=\"copyright\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/00a9.png\">©️</g-emoji> <a href=\"https://github.com/madisvain/upcount/blob/master/LICENSE\">GPLv3 License</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-languages\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#languages\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Languages</h1>\n<ul dir=\"auto\">\n<li><g-emoji class=\"g-emoji\" alias=\"gb\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png\">🇬🇧</g-emoji> English</li>\n<li><g-emoji class=\"g-emoji\" alias=\"netherlands\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f1.png\">🇳🇱</g-emoji> Dutch</li>\n<li><g-emoji class=\"g-emoji\" alias=\"de\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ea.png\">🇩🇪</g-emoji> German</li>\n<li><g-emoji class=\"g-emoji\" alias=\"finland\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1ee.png\">🇫🇮</g-emoji> Finnish</li>\n<li><g-emoji class=\"g-emoji\" alias=\"estonia\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ea.png\">🇪🇪</g-emoji> Estonian</li>\n</ul>\n<p dir=\"auto\">If you are interested in adding a language translation to Upcount <a href=\"https://github.com/madisvain/upcount/issues\">please open a new issue</a>.</p>\n<p dir=\"auto\">For developers the following commands are needed to add a language.</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run add-locale de\nnpm run extract\"><pre>npm run add-locale de\nnpm run extract</pre></div>\n<p dir=\"auto\"><em><code>de</code> must be replaced with the language code you are adding.</em></p>\n<p dir=\"auto\">The translations are stored in .po files under <a href=\"https://github.com/madisvain/upcount/tree/master/src/locales\">locales</a> folder. A cross platform app named <a href=\"https://poedit.net/\" rel=\"nofollow\">POEdit</a> could be used for translating them.</p>\n<h2 dir=\"auto\"><a id=\"user-content-bugs-and-feature-requests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#bugs-and-feature-requests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Bugs and Feature Requests</h2>\n<p dir=\"auto\">Have a bug or a feature request? First, read the <a href=\"https://github.com/madisvain/upcount/blob/master/CONTRIBUTING.md#using-the-issue-tracker\">issue guidelines</a> and search for existing and closed issues. If your problem or idea is not addressed yet, <a href=\"https://github.com/madisvain/upcount/issues\">please open a new issue</a>.</p>\n<p dir=\"auto\">For more generic product questions and feedback please email <a href=\"https://github.com/madisvain/upcount/blob/master/mailto:hello@upcount.app\">hello@upcount.app</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h2>\n<table>\n<thead>\n<tr>\n<th align=\"center\"><a href=\"https://github.com/madisvain\"><img alt=\"madisvain\" src=\"https://avatars2.githubusercontent.com/u/727994?v=4&s=200\" width=\"100\" style=\"max-width: 100%;\"></a></th>\n<th align=\"center\"><a href=\"https://github.com/stgeipel\"><img alt=\"stgeipel\" src=\"https://avatars3.githubusercontent.com/u/46808966?v=4&s=200\" width=\"100\" style=\"max-width: 100%;\"></a></th>\n<th align=\"center\"><a href=\"https://github.com/KurtMar\"><img alt=\"KurtMar\" src=\"https://avatars1.githubusercontent.com/u/10009649?v=4&s=200\" width=\"100\" style=\"max-width: 100%;\"></a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"https://github.com/madisvain\">madisvain</a></td>\n<td align=\"center\"><a href=\"https://github.com/stgeipel\">stgeipel</a></td>\n<td align=\"center\"><a href=\"https://github.com/KurtMar\">KurtMar</a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">Join Upcount <a href=\"https://join.slack.com/t/upcount/shared_invite/enQtOTY0Nzk5NTgzMjQ5LThlMWE3Y2YyNGY1MTc3M2Y1YmQ4YTdmZDYyNmJlYzBiNmQ0NTFhYjBkNzNjZjIwNWNlZDY2OTdiN2UwYzc3YWU\" rel=\"nofollow\">Slack workspace</a> to join in on the discussion.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/madisvain/upcount/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://github.com/madisvain/upcount/blob/master/LICENSE\">GPLv3 License</a> © <a href=\"https://upcount.app\" rel=\"nofollow\">Upcount</a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-upcount-invoicing-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#upcount-invoicing-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Upcount invoicing app</h1>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/madisvain/upcount/workflows/Release/badge.svg\"><img src=\"https://github.com/madisvain/upcount/workflows/Release/badge.svg\" alt=\"Github actions\" style=\"max-width: 100%;\"></a> <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/cf00d92acdf2e1ea21eec2e8466d989b2a63d23a150872444418681d51bb6410/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d616469737661696e2f7570636f756e743f696e636c7564655f70726572656c6561736573\"><img src=\"https://camo.githubusercontent.com/cf00d92acdf2e1ea21eec2e8466d989b2a63d23a150872444418681d51bb6410/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d616469737661696e2f7570636f756e743f696e636c7564655f70726572656c6561736573\" alt=\"GitHub release (latest by date including pre-releases)\" data-canonical-src=\"https://img.shields.io/github/v/release/madisvain/upcount?include_prereleases\" style=\"max-width: 100%;\"></a> <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/ff080bc2b142f5ef124eeb8216fa482b0d8fa767b8b11716e6173f287cc4c17f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d616469737661696e2f7570636f756e74\"><img src=\"https://camo.githubusercontent.com/ff080bc2b142f5ef124eeb8216fa482b0d8fa767b8b11716e6173f287cc4c17f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d616469737661696e2f7570636f756e74\" alt=\"GitHub\" data-canonical-src=\"https://img.shields.io/github/license/madisvain/upcount\" style=\"max-width: 100%;\"></a> <a href=\"https://join.slack.com/t/upcount/shared_invite/enQtOTY0Nzk5NTgzMjQ5LThlMWE3Y2YyNGY1MTc3M2Y1YmQ4YTdmZDYyNmJlYzBiNmQ0NTFhYjBkNzNjZjIwNWNlZDY2OTdiN2UwYzc3YWU\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/60f70c7db510f0c1ec07a7e06a2ea19f88308c3f57740c04a0c0e2b19962aa72/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736c61636b2d7570636f756e742d677265656e2e7376673f6c6f676f3d736c61636b\" alt=\"Slack\" data-canonical-src=\"https://img.shields.io/badge/slack-upcount-green.svg?logo=slack\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Upcount is a painless cross-platform invoicing application, built with <a href=\"https://reactjs.org/\" rel=\"nofollow\">React</a> & <a href=\"https://electronjs.org/\" rel=\"nofollow\">Electron</a> and simplicity in mind.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2963cd1078ba506762c61c0432615dc83b9ff5660d8bf09bbaa513adc3e1bf6d/68747470733a2f2f7777772e7570636f756e742e6170702f73637265656e73686f74732f696e766f696365732e706e67\"><img src=\"https://camo.githubusercontent.com/2963cd1078ba506762c61c0432615dc83b9ff5660d8bf09bbaa513adc3e1bf6d/68747470733a2f2f7777772e7570636f756e742e6170702f73637265656e73686f74732f696e766f696365732e706e67\" alt=\"Invoice list\" data-canonical-src=\"https://www.upcount.app/screenshots/invoices.png\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.upcount.app/screenshots/invoice-edit.png\" rel=\"nofollow\">Invoice editing</a>\n<a href=\"https://www.upcount.app/screenshots/settings.png\" rel=\"nofollow\">Invoice settings</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">Upcount is available for Mac, Linux & Windows and can be downloaded from Github releases.</p>\n<p dir=\"auto\"><strong><a href=\"https://github.com/madisvain/upcount/releases\">https://github.com/madisvain/upcount/releases</a></strong></p>\n<h1 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h1>\n<ul dir=\"auto\">\n<li><g-emoji class=\"g-emoji\" alias=\"dart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png\">🎯</g-emoji> Totally free & Open source</li>\n<li><g-emoji class=\"g-emoji\" alias=\"performing_arts\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f3ad.png\">🎭</g-emoji> Cross platform</li>\n<li><g-emoji class=\"g-emoji\" alias=\"zap\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a1.png\">⚡️</g-emoji> Offline-first for privacy</li>\n<li><g-emoji class=\"g-emoji\" alias=\"space_invader\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f47e.png\">👾</g-emoji> Use your own logo</li>\n<li><g-emoji class=\"g-emoji\" alias=\"lollipop\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f36d.png\">🍭</g-emoji> Customizable settings</li>\n<li><g-emoji class=\"g-emoji\" alias=\"globe_with_meridians\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f310.png\">🌐</g-emoji> Internationalized</li>\n<li><g-emoji class=\"g-emoji\" alias=\"copyright\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/00a9.png\">©️</g-emoji> <a href=\"https://github.com/madisvain/upcount/blob/master/LICENSE\">GPLv3 License</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-languages\" class=\"anchor\" aria-hidden=\"true\" href=\"#languages\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Languages</h1>\n<ul dir=\"auto\">\n<li><g-emoji class=\"g-emoji\" alias=\"gb\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png\">🇬🇧</g-emoji> English</li>\n<li><g-emoji class=\"g-emoji\" alias=\"netherlands\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1f3-1f1f1.png\">🇳🇱</g-emoji> Dutch</li>\n<li><g-emoji class=\"g-emoji\" alias=\"de\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ea.png\">🇩🇪</g-emoji> German</li>\n<li><g-emoji class=\"g-emoji\" alias=\"finland\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1eb-1f1ee.png\">🇫🇮</g-emoji> Finnish</li>\n<li><g-emoji class=\"g-emoji\" alias=\"estonia\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1ea.png\">🇪🇪</g-emoji> Estonian</li>\n</ul>\n<p dir=\"auto\">If you are interested in adding a language translation to Upcount <a href=\"https://github.com/madisvain/upcount/issues\">please open a new issue</a>.</p>\n<p dir=\"auto\">For developers the following commands are needed to add a language.</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run add-locale de\nnpm run extract\"><pre>npm run add-locale de\nnpm run extract</pre></div>\n<p dir=\"auto\"><em><code>de</code> must be replaced with the language code you are adding.</em></p>\n<p dir=\"auto\">The translations are stored in .po files under <a href=\"https://github.com/madisvain/upcount/tree/master/src/locales\">locales</a> folder. A cross platform app named <a href=\"https://poedit.net/\" rel=\"nofollow\">POEdit</a> could be used for translating them.</p>\n<h2 dir=\"auto\"><a id=\"user-content-bugs-and-feature-requests\" class=\"anchor\" aria-hidden=\"true\" href=\"#bugs-and-feature-requests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Bugs and Feature Requests</h2>\n<p dir=\"auto\">Have a bug or a feature request? First, read the <a href=\"https://github.com/madisvain/upcount/blob/master/CONTRIBUTING.md#using-the-issue-tracker\">issue guidelines</a> and search for existing and closed issues. If your problem or idea is not addressed yet, <a href=\"https://github.com/madisvain/upcount/issues\">please open a new issue</a>.</p>\n<p dir=\"auto\">For more generic product questions and feedback please email <a href=\"mailto:hello@upcount.app\">hello@upcount.app</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h2>\n<table>\n<thead>\n<tr>\n<th align=\"center\"><a href=\"https://github.com/madisvain\"><img alt=\"madisvain\" src=\"https://avatars2.githubusercontent.com/u/727994?v=4&s=200\" width=\"100\" style=\"max-width: 100%;\"></a></th>\n<th align=\"center\"><a href=\"https://github.com/stgeipel\"><img alt=\"stgeipel\" src=\"https://avatars3.githubusercontent.com/u/46808966?v=4&s=200\" width=\"100\" style=\"max-width: 100%;\"></a></th>\n<th align=\"center\"><a href=\"https://github.com/KurtMar\"><img alt=\"KurtMar\" src=\"https://avatars1.githubusercontent.com/u/10009649?v=4&s=200\" width=\"100\" style=\"max-width: 100%;\"></a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"https://github.com/madisvain\">madisvain</a></td>\n<td align=\"center\"><a href=\"https://github.com/stgeipel\">stgeipel</a></td>\n<td align=\"center\"><a href=\"https://github.com/KurtMar\">KurtMar</a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">Join Upcount <a href=\"https://join.slack.com/t/upcount/shared_invite/enQtOTY0Nzk5NTgzMjQ5LThlMWE3Y2YyNGY1MTc3M2Y1YmQ4YTdmZDYyNmJlYzBiNmQ0NTFhYjBkNzNjZjIwNWNlZDY2OTdiN2UwYzc3YWU\" rel=\"nofollow\">Slack workspace</a> to join in on the discussion.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://github.com/madisvain/upcount/blob/master/LICENSE\">GPLv3 License</a> © <a href=\"https://upcount.app\" rel=\"nofollow\">Upcount</a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.669Z" }, "vade-mecum-shelf": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--vade-mecum-shelf\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#-vade-mecum-shelf\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/icons/icon-256.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Vade Mecum Shelf icon\" style=\"max-width: 100%;\" crossorigin=\"\"></a> VADE MECUM SHELF</h1>\n<p dir=\"auto\"><strong>Vade Mecum Shelf</strong> is a collection of vade mecum-like utilities wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/VMS-social-preview.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/VMS-social-preview.png\" alt=\"Vade Mecum Shelf social preview\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>Chemical Elements</strong></li>\n<li><strong>Chinese Zodiac</strong></li>\n<li><strong>Color Names</strong></li>\n<li><strong>Departments of France</strong></li>\n<li><strong>Derivative Formulas</strong></li>\n<li><strong>HTTP Status Codes</strong></li>\n<li><strong>ISO Country Codes</strong></li>\n<li><strong>ISO Language Codes</strong></li>\n<li><strong>ISO Script Codes</strong></li>\n<li><strong>Jabberwocky</strong></li>\n<li><strong>List of U.S. States</strong></li>\n<li><strong>Prefectures of Japan</strong></li>\n<li><strong>Technical Definitions</strong></li>\n<li><strong>Trigonometric Formulas</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-chemical-elements\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#chemical-elements\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Chemical Elements</h2>\n<p dir=\"auto\">Full list of chemical elements, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/chemical-elements.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/chemical-elements.png\" width=\"1080px\" alt=\"Chemical Elements screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-chinese-zodiac\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#chinese-zodiac\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Chinese Zodiac</h2>\n<p dir=\"auto\">Full list of the twelve Chinese zodiac signs, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/chinese-zodiac.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/chinese-zodiac.png\" width=\"1080px\" alt=\"Chinese Zodiac screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-color-names\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#color-names\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Color Names</h2>\n<p dir=\"auto\">Lists of color names, with live search:</p>\n<ul dir=\"auto\">\n<li>W3C Color Names</li>\n<li>X11 Color Names</li>\n<li>XKCD Color Names</li>\n<li>Mac OS X Crayons</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/color-names.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/color-names.png\" width=\"1080px\" alt=\"Color Names screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-departments-of-france\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#departments-of-france\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Departments of France</h2>\n<p dir=\"auto\">Full list of French departments, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/departments-of-france.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/departments-of-france.png\" width=\"1080px\" alt=\"Departments of France screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-derivative-formulas\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#derivative-formulas\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Derivative Formulas</h2>\n<p dir=\"auto\">Sets of derivative formulas, by category:</p>\n<ul dir=\"auto\">\n<li>Constant Rule</li>\n<li>Sum Rule</li>\n<li>Product Rule</li>\n<li>Quotient Rule</li>\n<li>Chain Rule</li>\n<li>Power Rule</li>\n<li>Exponential</li>\n<li>Logarithmic</li>\n<li>Trigonometric</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/derivative-formulas.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/derivative-formulas.png\" width=\"1080px\" alt=\"Derivative Formulas screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-http-status-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#http-status-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>HTTP Status Codes</h2>\n<p dir=\"auto\">Full list of HTTP status codes, with definitions in several languages:</p>\n<ul dir=\"auto\">\n<li>English</li>\n<li>French</li>\n<li>Japanese</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/http-status-codes.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/http-status-codes.png\" width=\"1080px\" alt=\"HTTP Status Codes screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-iso-country-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#iso-country-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ISO Country Codes</h2>\n<p dir=\"auto\">Full list of ISO 3166-1 country codes, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/iso-country-codes.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/iso-country-codes.png\" width=\"1080px\" alt=\"ISO Country Codes screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-iso-language-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#iso-language-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ISO Language Codes</h2>\n<p dir=\"auto\">Full list of ISO 639-1 language codes, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/iso-language-codes.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/iso-language-codes.png\" width=\"1080px\" alt=\"ISO Language Codes screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-iso-script-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#iso-script-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ISO Script Codes</h2>\n<p dir=\"auto\">Full list of ISO 15924 script codes, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/iso-script-codes.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/iso-script-codes.png\" width=\"1080px\" alt=\"ISO Script Codes screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-jabberwocky\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#jabberwocky\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Jabberwocky</h2>\n<p dir=\"auto\">Typographic rendition of Lewis Carroll's nonsense poem \"Jabberwocky\":</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/jabberwocky.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/jabberwocky.png\" width=\"1080px\" alt=\"Jabberwocky screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-list-of-us-states\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#list-of-us-states\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>List of U.S. States</h2>\n<p dir=\"auto\">Full list of states and territories of the United States, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/list-of-us-states.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/list-of-us-states.png\" width=\"1080px\" alt=\"List of U.S. States screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-prefectures-of-japan\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#prefectures-of-japan\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Prefectures of Japan</h2>\n<p dir=\"auto\">Full list of prefectures of Japan, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/prefectures-of-japan.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/prefectures-of-japan.png\" width=\"1080px\" alt=\"Prefectures of Japan screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-technical-definitions\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#technical-definitions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Technical Definitions</h2>\n<p dir=\"auto\">Lists of technical definitions:</p>\n<ul dir=\"auto\">\n<li>Computing Abbreviations</li>\n<li>Mac OS Release Names</li>\n<li>Unicode Release Dates</li>\n<li>Emoji Release Dates</li>\n<li>Metric Prefixes | Fractions</li>\n<li>Metric Prefixes | Multiples</li>\n<li>IEC Binary Prefixes | Multiples</li>\n<li>Name of a Polynomial by Degree</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/technical-definitions.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/technical-definitions.png\" width=\"1080px\" alt=\"Technical Definitions screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-trigonometric-formulas\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#trigonometric-formulas\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trigonometric Formulas</h2>\n<p dir=\"auto\">Sets of trigonometric formulas, by category:</p>\n<ul dir=\"auto\">\n<li>Basic Definitions</li>\n<li>Symmetry Identities</li>\n<li>Cofunction Identities</li>\n<li>Pythagorean Identities</li>\n<li>Sum to Product</li>\n<li>Product to Sum</li>\n<li>Squares</li>\n<li>Half Angle</li>\n<li>Sum of Angles</li>\n<li>Double Angle</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/screenshots/trigonometric-formulas.png\"><img src=\"https://raw.githubusercontent.com/tonton-pixel/vade-mecum-shelf/master/screenshots/trigonometric-formulas.png\" width=\"1080px\" alt=\"Trigonometric Formulas screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/vade-mecum-shelf/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/vade-mecum-shelf\n# Go into the repository\ncd vade-mecum-shelf\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/vade-mecum-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> vade-mecum-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/vade-mecum-shelf/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>vade-mecum-shelf-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Vade Mecum Shelf.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/tonton-pixel/vade-mecum-shelf/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2017-2022 Michel Mariani.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content--vade-mecum-shelf\" class=\"anchor\" aria-hidden=\"true\" href=\"#-vade-mecum-shelf\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"icons/icon-256.png\"><img src=\"icons/icon-256.png\" width=\"64px\" align=\"center\" alt=\"Vade Mecum Shelf icon\" style=\"max-width: 100%;\"></a> VADE MECUM SHELF</h1>\n<p dir=\"auto\"><strong>Vade Mecum Shelf</strong> is a collection of vade mecum-like utilities wrapped into one single app, built with <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\">This desktop application works on macOS, Linux and Windows operating systems.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/VMS-social-preview.png\"><img src=\"screenshots/VMS-social-preview.png\" alt=\"Vade Mecum Shelf social preview\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-utilities\" class=\"anchor\" aria-hidden=\"true\" href=\"#utilities\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Utilities</h2>\n<p dir=\"auto\">The following utilities are currently available:</p>\n<ul dir=\"auto\">\n<li><strong>Chemical Elements</strong></li>\n<li><strong>Chinese Zodiac</strong></li>\n<li><strong>Color Names</strong></li>\n<li><strong>Departments of France</strong></li>\n<li><strong>Derivative Formulas</strong></li>\n<li><strong>HTTP Status Codes</strong></li>\n<li><strong>ISO Country Codes</strong></li>\n<li><strong>ISO Language Codes</strong></li>\n<li><strong>ISO Script Codes</strong></li>\n<li><strong>Jabberwocky</strong></li>\n<li><strong>List of U.S. States</strong></li>\n<li><strong>Prefectures of Japan</strong></li>\n<li><strong>Technical Definitions</strong></li>\n<li><strong>Trigonometric Formulas</strong></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-chemical-elements\" class=\"anchor\" aria-hidden=\"true\" href=\"#chemical-elements\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Chemical Elements</h2>\n<p dir=\"auto\">Full list of chemical elements, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/chemical-elements.png\"><img src=\"screenshots/chemical-elements.png\" width=\"1080px\" alt=\"Chemical Elements screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-chinese-zodiac\" class=\"anchor\" aria-hidden=\"true\" href=\"#chinese-zodiac\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Chinese Zodiac</h2>\n<p dir=\"auto\">Full list of the twelve Chinese zodiac signs, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/chinese-zodiac.png\"><img src=\"screenshots/chinese-zodiac.png\" width=\"1080px\" alt=\"Chinese Zodiac screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-color-names\" class=\"anchor\" aria-hidden=\"true\" href=\"#color-names\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Color Names</h2>\n<p dir=\"auto\">Lists of color names, with live search:</p>\n<ul dir=\"auto\">\n<li>W3C Color Names</li>\n<li>X11 Color Names</li>\n<li>XKCD Color Names</li>\n<li>Mac OS X Crayons</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/color-names.png\"><img src=\"screenshots/color-names.png\" width=\"1080px\" alt=\"Color Names screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-departments-of-france\" class=\"anchor\" aria-hidden=\"true\" href=\"#departments-of-france\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Departments of France</h2>\n<p dir=\"auto\">Full list of French departments, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/departments-of-france.png\"><img src=\"screenshots/departments-of-france.png\" width=\"1080px\" alt=\"Departments of France screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-derivative-formulas\" class=\"anchor\" aria-hidden=\"true\" href=\"#derivative-formulas\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Derivative Formulas</h2>\n<p dir=\"auto\">Sets of derivative formulas, by category:</p>\n<ul dir=\"auto\">\n<li>Constant Rule</li>\n<li>Sum Rule</li>\n<li>Product Rule</li>\n<li>Quotient Rule</li>\n<li>Chain Rule</li>\n<li>Power Rule</li>\n<li>Exponential</li>\n<li>Logarithmic</li>\n<li>Trigonometric</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/derivative-formulas.png\"><img src=\"screenshots/derivative-formulas.png\" width=\"1080px\" alt=\"Derivative Formulas screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-http-status-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"#http-status-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>HTTP Status Codes</h2>\n<p dir=\"auto\">Full list of HTTP status codes, with definitions in several languages:</p>\n<ul dir=\"auto\">\n<li>English</li>\n<li>French</li>\n<li>Japanese</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/http-status-codes.png\"><img src=\"screenshots/http-status-codes.png\" width=\"1080px\" alt=\"HTTP Status Codes screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-iso-country-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"#iso-country-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ISO Country Codes</h2>\n<p dir=\"auto\">Full list of ISO 3166-1 country codes, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/iso-country-codes.png\"><img src=\"screenshots/iso-country-codes.png\" width=\"1080px\" alt=\"ISO Country Codes screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-iso-language-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"#iso-language-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ISO Language Codes</h2>\n<p dir=\"auto\">Full list of ISO 639-1 language codes, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/iso-language-codes.png\"><img src=\"screenshots/iso-language-codes.png\" width=\"1080px\" alt=\"ISO Language Codes screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-iso-script-codes\" class=\"anchor\" aria-hidden=\"true\" href=\"#iso-script-codes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>ISO Script Codes</h2>\n<p dir=\"auto\">Full list of ISO 15924 script codes, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/iso-script-codes.png\"><img src=\"screenshots/iso-script-codes.png\" width=\"1080px\" alt=\"ISO Script Codes screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-jabberwocky\" class=\"anchor\" aria-hidden=\"true\" href=\"#jabberwocky\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Jabberwocky</h2>\n<p dir=\"auto\">Typographic rendition of Lewis Carroll's nonsense poem \"Jabberwocky\":</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/jabberwocky.png\"><img src=\"screenshots/jabberwocky.png\" width=\"1080px\" alt=\"Jabberwocky screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-list-of-us-states\" class=\"anchor\" aria-hidden=\"true\" href=\"#list-of-us-states\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>List of U.S. States</h2>\n<p dir=\"auto\">Full list of states and territories of the United States, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/list-of-us-states.png\"><img src=\"screenshots/list-of-us-states.png\" width=\"1080px\" alt=\"List of U.S. States screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-prefectures-of-japan\" class=\"anchor\" aria-hidden=\"true\" href=\"#prefectures-of-japan\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Prefectures of Japan</h2>\n<p dir=\"auto\">Full list of prefectures of Japan, with live search:</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/prefectures-of-japan.png\"><img src=\"screenshots/prefectures-of-japan.png\" width=\"1080px\" alt=\"Prefectures of Japan screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-technical-definitions\" class=\"anchor\" aria-hidden=\"true\" href=\"#technical-definitions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Technical Definitions</h2>\n<p dir=\"auto\">Lists of technical definitions:</p>\n<ul dir=\"auto\">\n<li>Computing Abbreviations</li>\n<li>Mac OS Release Names</li>\n<li>Unicode Release Dates</li>\n<li>Emoji Release Dates</li>\n<li>Metric Prefixes | Fractions</li>\n<li>Metric Prefixes | Multiples</li>\n<li>IEC Binary Prefixes | Multiples</li>\n<li>Name of a Polynomial by Degree</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/technical-definitions.png\"><img src=\"screenshots/technical-definitions.png\" width=\"1080px\" alt=\"Technical Definitions screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-trigonometric-formulas\" class=\"anchor\" aria-hidden=\"true\" href=\"#trigonometric-formulas\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Trigonometric Formulas</h2>\n<p dir=\"auto\">Sets of trigonometric formulas, by category:</p>\n<ul dir=\"auto\">\n<li>Basic Definitions</li>\n<li>Symmetry Identities</li>\n<li>Cofunction Identities</li>\n<li>Pythagorean Identities</li>\n<li>Sum to Product</li>\n<li>Product to Sum</li>\n<li>Squares</li>\n<li>Half Angle</li>\n<li>Sum of Angles</li>\n<li>Double Angle</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshots/trigonometric-formulas.png\"><img src=\"screenshots/trigonometric-formulas.png\" width=\"1080px\" alt=\"Trigonometric Formulas screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-using\" class=\"anchor\" aria-hidden=\"true\" href=\"#using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Using</h2>\n<p dir=\"auto\">You can <a href=\"https://github.com/tonton-pixel/vade-mecum-shelf/releases\">download the latest release</a> for macOS.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building\" class=\"anchor\" aria-hidden=\"true\" href=\"#building\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building</h2>\n<p dir=\"auto\">You'll need <a href=\"https://nodejs.org/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"https://www.npmjs.com/\" rel=\"nofollow\">npm</a>) installed on your computer in order to build this application.</p>\n<h3 dir=\"auto\"><a id=\"user-content-clone-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#clone-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone method</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone the repository\ngit clone https://github.com/tonton-pixel/vade-mecum-shelf\n# Go into the repository\ncd vade-mecum-shelf\n# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone the repository</span>\ngit clone https://github.com/tonton-pixel/vade-mecum-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> vade-mecum-shelf\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<p dir=\"auto\"><strong>Note</strong>: to use the clone method, the core tool <a href=\"https://www.git-scm.com/\" rel=\"nofollow\">git</a> must also be installed.</p>\n<h3 dir=\"auto\"><a id=\"user-content-download-method\" class=\"anchor\" aria-hidden=\"true\" href=\"#download-method\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download method</h3>\n<p dir=\"auto\">If you don't wish to clone, you can <a href=\"https://github.com/tonton-pixel/vade-mecum-shelf/archive/master.zip\">download the source code</a>, unZip it, then directly run the following commands from a Terminal opened at the resulting <code>vade-mecum-shelf-master</code> folder location:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Install dependencies\nnpm install\n# Run the application\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the application</span>\nnpm start</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-packaging\" class=\"anchor\" aria-hidden=\"true\" href=\"#packaging\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packaging</h3>\n<p dir=\"auto\">Several scripts are also defined in the <code>package.json</code> file to build OS-specific bundles of the application, using the simple yet powerful <a href=\"https://github.com/electron-userland/electron-packager\">Electron Packager</a> Node module.<br>\nFor instance, running the following command (once the dependencies are installed) will create a <code>Vade Mecum Shelf.app</code> version for macOS:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Build macOS (Darwin) application\nnpm run build-darwin\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Build macOS (Darwin) application</span>\nnpm run build-darwin</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">The MIT License (MIT).</p>\n<p dir=\"auto\">Copyright © 2017-2022 Michel Mariani.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.832Z" }, "unlimited-clipboard": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-unlimited-clipboard\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/morozovsk/unlimited-clipboard.git/blob/master/#unlimited-clipboard\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>unlimited-clipboard</h1>\n<p dir=\"auto\">simple clipboard manager with unlimited history on electron</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/morozovsk/unlimited-clipboard/master/unlimited_clipboard.png\"><img src=\"https://raw.githubusercontent.com/morozovsk/unlimited-clipboard/master/unlimited_clipboard.png\" alt=\"unlimited_clipboard.png\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-precompiled-binaries\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/morozovsk/unlimited-clipboard.git/blob/master/#precompiled-binaries\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Precompiled binaries:</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/morozovsk/unlimited-clipboard/releases/download/v1.0.1/unlimited-clipboard.AppImage\">unlimited-clipboard.AppImage</a> (linux)</li>\n<li><a href=\"https://github.com/morozovsk/unlimited-clipboard/releases/download/v1.0.1/unlimited-clipboard.snap\">unlimited-clipboard.snap</a> (linux)</li>\n<li><a href=\"https://github.com/morozovsk/unlimited-clipboard/releases/download/v1.0.1/unlimited-clipboard.exe\">unlimited-clipboard.exe</a> (windows 10)</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-installation-from-sources\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/morozovsk/unlimited-clipboard.git/blob/master/#installation-from-sources\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation from sources:</h3>\n<ul dir=\"auto\">\n<li>git clone <a href=\"https://github.com/morozovsk/unlimited-clipboard.git\">https://github.com/morozovsk/unlimited-clipboard.git</a> && cd unlimited-clipboard && npm install</li>\n<li>npm run start</li>\n<li>npm run build && ./dist/unlimited-clipboard-1.0.0.AppImage</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/morozovsk/unlimited-clipboard.git/blob/master/#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage:</h3>\n<ul dir=\"auto\">\n<li>Ctrl+Alt+Up - show window (you can change it in menu)</li>\n<li>Escape - close window</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-unlimited-clipboard\" class=\"anchor\" aria-hidden=\"true\" href=\"#unlimited-clipboard\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>unlimited-clipboard</h1>\n<p dir=\"auto\">simple clipboard manager with unlimited history on electron</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/morozovsk/unlimited-clipboard/master/unlimited_clipboard.png\"><img src=\"https://raw.githubusercontent.com/morozovsk/unlimited-clipboard/master/unlimited_clipboard.png\" alt=\"unlimited_clipboard.png\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-precompiled-binaries\" class=\"anchor\" aria-hidden=\"true\" href=\"#precompiled-binaries\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Precompiled binaries:</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/morozovsk/unlimited-clipboard/releases/download/v1.0.1/unlimited-clipboard.AppImage\">unlimited-clipboard.AppImage</a> (linux)</li>\n<li><a href=\"https://github.com/morozovsk/unlimited-clipboard/releases/download/v1.0.1/unlimited-clipboard.snap\">unlimited-clipboard.snap</a> (linux)</li>\n<li><a href=\"https://github.com/morozovsk/unlimited-clipboard/releases/download/v1.0.1/unlimited-clipboard.exe\">unlimited-clipboard.exe</a> (windows 10)</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-installation-from-sources\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation-from-sources\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation from sources:</h3>\n<ul dir=\"auto\">\n<li>git clone <a href=\"https://github.com/morozovsk/unlimited-clipboard.git\">https://github.com/morozovsk/unlimited-clipboard.git</a> && cd unlimited-clipboard && npm install</li>\n<li>npm run start</li>\n<li>npm run build && ./dist/unlimited-clipboard-1.0.0.AppImage</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage:</h3>\n<ul dir=\"auto\">\n<li>Ctrl+Alt+Up - show window (you can change it in menu)</li>\n<li>Escape - close window</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.855Z" }, "video-player": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-video-player\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Video-Player/blob/master/#video-player\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Video Player</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Tenpi/Video-Player/blob/master/assets/images/readme.png\"><img src=\"https://raw.githubusercontent.com/Tenpi/Video-Player/master/assets/images/readme.png\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\">This is a video player that can apply reversing and time stretching effects.</p>\n<h3 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Video-Player/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features:</h3>\n<ul dir=\"auto\">\n<li>Play local videos, links, and YouTube videos (MP4, MKV, MOV, AVI, WEBM, M4V)</li>\n<li>Play local audio and links (MP3, WAV, OGG)</li>\n<li>Adjust the volume of the video</li>\n<li>Reversing effect</li>\n<li>Time stretching (can preserve or affect the pitch)</li>\n<li>Looping from point A to point B</li>\n<li>Enter full-screen mode</li>\n<li>Export videos with applied effects</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Video-Player/blob/master/#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard Shortcuts:</h3>\n<ul dir=\"auto\">\n<li>Space: Play/pause</li>\n<li>Left Arrow: Rewind</li>\n<li>Right Arrow: Fast forward</li>\n<li>Up Arrow: Increase volume</li>\n<li>Down Arrow: Decrease volume</li>\n<li>Mouse Wheel: Increase/decrease volume</li>\n<li>Ctrl O: Upload file</li>\n<li>Ctrl S: Download file</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Video-Player/blob/master/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<p dir=\"auto\">Download the latest exe installer from the <a href=\"https://github.com/Tenpi/Video-Player/releases\">releases</a> tab. Updates can be installed automatically.</p>\n<h3 dir=\"auto\"><a id=\"user-content-bugs-and-requests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Video-Player/blob/master/#bugs-and-requests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Bugs and Requests</h3>\n<p dir=\"auto\">Open an issue on my GitHub repository.</p>\n<h3 dir=\"auto\"><a id=\"user-content-also-see\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Video-Player/blob/master/#also-see\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Also See</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/Tenpi/Music-Player\">Music Player</a></li>\n<li><a href=\"https://github.com/Tenpi/Photo-Viewer\">Photo Viewer</a></li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-video-player\" class=\"anchor\" aria-hidden=\"true\" href=\"#video-player\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Video Player</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/images/readme.png\"><img src=\"assets/images/readme.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This is a video player that can apply reversing and time stretching effects.</p>\n<h3 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features:</h3>\n<ul dir=\"auto\">\n<li>Play local videos, links, and YouTube videos (MP4, MKV, MOV, AVI, WEBM, M4V)</li>\n<li>Play local audio and links (MP3, WAV, OGG)</li>\n<li>Adjust the volume of the video</li>\n<li>Reversing effect</li>\n<li>Time stretching (can preserve or affect the pitch)</li>\n<li>Looping from point A to point B</li>\n<li>Enter full-screen mode</li>\n<li>Export videos with applied effects</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-keyboard-shortcuts\" class=\"anchor\" aria-hidden=\"true\" href=\"#keyboard-shortcuts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Keyboard Shortcuts:</h3>\n<ul dir=\"auto\">\n<li>Space: Play/pause</li>\n<li>Left Arrow: Rewind</li>\n<li>Right Arrow: Fast forward</li>\n<li>Up Arrow: Increase volume</li>\n<li>Down Arrow: Decrease volume</li>\n<li>Mouse Wheel: Increase/decrease volume</li>\n<li>Ctrl O: Upload file</li>\n<li>Ctrl S: Download file</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<p dir=\"auto\">Download the latest exe installer from the <a href=\"https://github.com/Tenpi/Video-Player/releases\">releases</a> tab. Updates can be installed automatically.</p>\n<h3 dir=\"auto\"><a id=\"user-content-bugs-and-requests\" class=\"anchor\" aria-hidden=\"true\" href=\"#bugs-and-requests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Bugs and Requests</h3>\n<p dir=\"auto\">Open an issue on my GitHub repository.</p>\n<h3 dir=\"auto\"><a id=\"user-content-also-see\" class=\"anchor\" aria-hidden=\"true\" href=\"#also-see\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Also See</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/Tenpi/Music-Player\">Music Player</a></li>\n<li><a href=\"https://github.com/Tenpi/Photo-Viewer\">Photo Viewer</a></li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.871Z" }, "vagrant-manager": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content-------------vagrant-manager\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master/#------------vagrant-manager\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master//app/assets/images/logo.gif\"><img src=\"https://raw.githubusercontent.com/absalomedia/vagrant-manager/master//app/assets/images/logo.gif\" alt=\"Vagrant Manager\" width=\"400px\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n <br>\n Vagrant Manager\n</h1>\n<p dir=\"auto\">Vagrant Manager is a status bar menu app that lets you manage all of your Vagrant machines from one central location. It covers multiple languages, plugin management and snapshots.</p>\n<p dir=\"auto\">It has now been translated into the following languages:</p>\n<ul dir=\"auto\">\n<li>ربى</li>\n<li>Čeština</li>\n<li>Dansk</li>\n<li>Deutsch</li>\n<li>Ελληνικά</li>\n<li>English</li>\n<li>Español</li>\n<li>Français</li>\n<li>עִברִית</li>\n<li>\"िंदी</li>\n<li>Italiano</li>\n<li>bahasa Indonesia</li>\n<li>日本語</li>\n<li>Melayu</li>\n<li>Māori</li>\n<li>Norsk</li>\n<li>Svenska</li>\n<li>Português</li>\n<li>தமிழ்</li>\n<li>Türkçe</li>\n<li>Українець</li>\n<li>简体中文</li>\n</ul>\n<p dir=\"auto\">A menubar/taskbar App based on <a href=\"http://electron.atom.io\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/absalomedia/vagrant-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/3003b5e009aeeb10368d02d3c62eef3bf239c89c53f9ec0970dc9674e6e57156/68747470733a2f2f7472617669732d63692e6f72672f616273616c6f6d656469612f76616772616e742d6d616e616765722e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/absalomedia/vagrant-manager.svg?branch=master\" style=\"max-width: 100%;\"></a> <a href=\"https://ci.appveyor.com/project/absalomedia/vagrant-manager/branch/master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e4c6edc97bc232330a3e90d9de73c6a466a1453211029396cf01a94101cb0b22/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f316a75313369647763777468757670662f6272616e63682f6d61737465723f7376673d74727565\" alt=\"Build status\" data-canonical-src=\"https://ci.appveyor.com/api/projects/status/1ju13idwcwthuvpf/branch/master?svg=true\" style=\"max-width: 100%;\"></a> <a href=\"https://www.codacy.com/app/media/vagrant-manager?utm_source=github.com&utm_medium=referral&utm_content=absalomedia/vagrant-manager&utm_campaign=badger\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/0b7fdb145146b0ee701980f593f0fae6a4913095d7ff95977dd459213005a999/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6136653362623636383732323434346438613662663862663561663434623533\" alt=\"Codacy Badge\" data-canonical-src=\"https://api.codacy.com/project/badge/Grade/a6e3bb668722444d8a6bf8bf5af44b53\" style=\"max-width: 100%;\"></a> <a href=\"https://codecov.io/gh/absalomedia/vagrant-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/34c418402d19bd1db2263d18d380cd5c068bc0fb3f93a151e48e4fca7b9f9add/68747470733a2f2f636f6465636f762e696f2f67682f616273616c6f6d656469612f76616772616e742d6d616e616765722f6272616e63682f6d61737465722f67726170682f62616467652e737667\" alt=\"codecov\" data-canonical-src=\"https://codecov.io/gh/absalomedia/vagrant-manager/branch/master/graph/badge.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/9966252be2001a356d4e05ff02970710d35db6959a46c5b5a7f3bc2ed5687f29/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f616273616c6f6d656469612f76616772616e742d6d616e616765722f746f74616c2e737667\"><img src=\"https://camo.githubusercontent.com/9966252be2001a356d4e05ff02970710d35db6959a46c5b5a7f3bc2ed5687f29/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f616273616c6f6d656469612f76616772616e742d6d616e616765722f746f74616c2e737667\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/absalomedia/vagrant-manager/total.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://www.patreon.com/bePatron?u=14641360\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/5fb26c55dbc3ea3388d1aceb1f01c08418c568eff9e81174b729d20844fcea23/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d646f6e6174652d677265656e2e737667\" alt=\"Patreon\" data-canonical-src=\"https://img.shields.io/badge/patreon-donate-green.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://snyk.io/test/github/absalomedia/vagrant-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f429308fda81d34292903ace62c4c3bc2adcdaa9f8d74523ea6094728cd309d1/68747470733a2f2f736e796b2e696f2f746573742f6769746875622f616273616c6f6d656469612f76616772616e742d6d616e616765722f62616467652e737667\" alt=\"Known Vulnerabilities\" data-canonical-src=\"https://snyk.io/test/github/absalomedia/vagrant-manager/badge.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 align=\"center\" dir=\"auto\"><a id=\"user-content------osx---------windows----\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master/#-----osx---------windows----\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n OSX<br>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master//app/assets/images/demo.gif\"><img src=\"https://raw.githubusercontent.com/absalomedia/vagrant-manager/master//app/assets/images/demo.gif\" alt=\"Vagrant Manager Demo\" style=\"max-width: 100%;\" crossorigin=\"\"></a><br>\n Windows<br>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master//app/assets/images/windows.gif\"><img src=\"https://raw.githubusercontent.com/absalomedia/vagrant-manager/master//app/assets/images/windows.gif\" alt=\"Vagrant Manager Windows Demo\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</h2>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">Download the latest release of Vagrant Manager from <a href=\"https://github.com/absalomedia/vagrant-manager/releases/latest\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-use\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master/#how-to-use\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How To Use</h2>\n<p dir=\"auto\">Install Vagrant if you haven't already & run the installer for either the Windows or OSX build. Manage Vagrant boxes & plugins from the app.</p>\n<h3 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/absalomedia/vagrant-manager/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h3>\n<blockquote>\n<p dir=\"auto\">The <a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\">MIT license</a> (MIT)</p>\n<p dir=\"auto\">Copyright (c) <a href=\"https://github.com/absalomedia/vagrant-manager/blob/master/mailto:vaibhav.sidapara@gmail.com\">Vaibhav Sidapara</a>\nCopyright (c) <a href=\"http://www.absalom.biz\" rel=\"nofollow\">Lawrence Meckan</a></p>\n<p dir=\"auto\">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>\n<p dir=\"auto\">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>\n<p dir=\"auto\">THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>\n</blockquote>\n<hr>\n<p dir=\"auto\"><em>Inspired by <a href=\"http://vagrantmanager.com/\" rel=\"nofollow\">Vagrant Manager for OS X</a></em></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content-------------vagrant-manager\" class=\"anchor\" aria-hidden=\"true\" href=\"#------------vagrant-manager\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/app/assets/images/logo.gif\"><img src=\"/app/assets/images/logo.gif\" alt=\"Vagrant Manager\" width=\"400px\" style=\"max-width: 100%;\"></a>\n <br>\n Vagrant Manager\n</h1>\n<p dir=\"auto\">Vagrant Manager is a status bar menu app that lets you manage all of your Vagrant machines from one central location. It covers multiple languages, plugin management and snapshots.</p>\n<p dir=\"auto\">It has now been translated into the following languages:</p>\n<ul dir=\"auto\">\n<li>ربى</li>\n<li>Čeština</li>\n<li>Dansk</li>\n<li>Deutsch</li>\n<li>Ελληνικά</li>\n<li>English</li>\n<li>Español</li>\n<li>Français</li>\n<li>עִברִית</li>\n<li>\"िंदी</li>\n<li>Italiano</li>\n<li>bahasa Indonesia</li>\n<li>日本語</li>\n<li>Melayu</li>\n<li>Māori</li>\n<li>Norsk</li>\n<li>Svenska</li>\n<li>Português</li>\n<li>தமிழ்</li>\n<li>Türkçe</li>\n<li>Українець</li>\n<li>简体中文</li>\n</ul>\n<p dir=\"auto\">A menubar/taskbar App based on <a href=\"http://electron.atom.io\" rel=\"nofollow\">Electron</a>.</p>\n<p dir=\"auto\"><a href=\"https://travis-ci.org/absalomedia/vagrant-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/3003b5e009aeeb10368d02d3c62eef3bf239c89c53f9ec0970dc9674e6e57156/68747470733a2f2f7472617669732d63692e6f72672f616273616c6f6d656469612f76616772616e742d6d616e616765722e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/absalomedia/vagrant-manager.svg?branch=master\" style=\"max-width: 100%;\"></a> <a href=\"https://ci.appveyor.com/project/absalomedia/vagrant-manager/branch/master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e4c6edc97bc232330a3e90d9de73c6a466a1453211029396cf01a94101cb0b22/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f316a75313369647763777468757670662f6272616e63682f6d61737465723f7376673d74727565\" alt=\"Build status\" data-canonical-src=\"https://ci.appveyor.com/api/projects/status/1ju13idwcwthuvpf/branch/master?svg=true\" style=\"max-width: 100%;\"></a> <a href=\"https://www.codacy.com/app/media/vagrant-manager?utm_source=github.com&utm_medium=referral&utm_content=absalomedia/vagrant-manager&utm_campaign=badger\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/0b7fdb145146b0ee701980f593f0fae6a4913095d7ff95977dd459213005a999/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6136653362623636383732323434346438613662663862663561663434623533\" alt=\"Codacy Badge\" data-canonical-src=\"https://api.codacy.com/project/badge/Grade/a6e3bb668722444d8a6bf8bf5af44b53\" style=\"max-width: 100%;\"></a> <a href=\"https://codecov.io/gh/absalomedia/vagrant-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/34c418402d19bd1db2263d18d380cd5c068bc0fb3f93a151e48e4fca7b9f9add/68747470733a2f2f636f6465636f762e696f2f67682f616273616c6f6d656469612f76616772616e742d6d616e616765722f6272616e63682f6d61737465722f67726170682f62616467652e737667\" alt=\"codecov\" data-canonical-src=\"https://codecov.io/gh/absalomedia/vagrant-manager/branch/master/graph/badge.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/9966252be2001a356d4e05ff02970710d35db6959a46c5b5a7f3bc2ed5687f29/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f616273616c6f6d656469612f76616772616e742d6d616e616765722f746f74616c2e737667\"><img src=\"https://camo.githubusercontent.com/9966252be2001a356d4e05ff02970710d35db6959a46c5b5a7f3bc2ed5687f29/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f616273616c6f6d656469612f76616772616e742d6d616e616765722f746f74616c2e737667\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/absalomedia/vagrant-manager/total.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://www.patreon.com/bePatron?u=14641360\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/5fb26c55dbc3ea3388d1aceb1f01c08418c568eff9e81174b729d20844fcea23/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d646f6e6174652d677265656e2e737667\" alt=\"Patreon\" data-canonical-src=\"https://img.shields.io/badge/patreon-donate-green.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://snyk.io/test/github/absalomedia/vagrant-manager\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f429308fda81d34292903ace62c4c3bc2adcdaa9f8d74523ea6094728cd309d1/68747470733a2f2f736e796b2e696f2f746573742f6769746875622f616273616c6f6d656469612f76616772616e742d6d616e616765722f62616467652e737667\" alt=\"Known Vulnerabilities\" data-canonical-src=\"https://snyk.io/test/github/absalomedia/vagrant-manager/badge.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 align=\"center\" dir=\"auto\"><a id=\"user-content------osx---------windows----\" class=\"anchor\" aria-hidden=\"true\" href=\"#-----osx---------windows----\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n OSX<br>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/app/assets/images/demo.gif\"><img src=\"/app/assets/images/demo.gif\" alt=\"Vagrant Manager Demo\" style=\"max-width: 100%;\"></a><br>\n Windows<br>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/app/assets/images/windows.gif\"><img src=\"/app/assets/images/windows.gif\" alt=\"Vagrant Manager Windows Demo\" style=\"max-width: 100%;\"></a>\n</h2>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">Download the latest release of Vagrant Manager from <a href=\"https://github.com/absalomedia/vagrant-manager/releases/latest\">here</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-use\" class=\"anchor\" aria-hidden=\"true\" href=\"#how-to-use\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How To Use</h2>\n<p dir=\"auto\">Install Vagrant if you haven't already & run the installer for either the Windows or OSX build. Manage Vagrant boxes & plugins from the app.</p>\n<h3 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h3>\n<blockquote>\n<p dir=\"auto\">The <a href=\"https://opensource.org/licenses/MIT\" rel=\"nofollow\">MIT license</a> (MIT)</p>\n<p dir=\"auto\">Copyright (c) <a href=\"mailto:vaibhav.sidapara@gmail.com\">Vaibhav Sidapara</a>\nCopyright (c) <a href=\"http://www.absalom.biz\" rel=\"nofollow\">Lawrence Meckan</a></p>\n<p dir=\"auto\">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>\n<p dir=\"auto\">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>\n<p dir=\"auto\">THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>\n</blockquote>\n<hr>\n<p dir=\"auto\"><em>Inspired by <a href=\"http://vagrantmanager.com/\" rel=\"nofollow\">Vagrant Manager for OS X</a></em></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:13.894Z" }, "visual-family-tree": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-visualfamilytree\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#visualfamilytree\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>VisualFamilyTree</h1>\n<p dir=\"auto\">With this app you can create a family tree with extensive information and pictures about the individual family members. The whole thing can be done very simply using the mouse and a few keystrokes. An editor to export this family tree in different formats (pdf, svg, png) is also included. The output can be configured extensively.</p>\n<p dir=\"auto\">Website: <a href=\"https://jisco.me/visual-family-tree\" rel=\"nofollow\">https://jisco.me/visual-family-tree</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-star-in-progress-star\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#star-in-progress-star\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"star\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b50.png\">⭐</g-emoji> In Progress <g-emoji class=\"g-emoji\" alias=\"star\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b50.png\">⭐</g-emoji></h2>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> New export to extern files (png, pdf...)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> <a href=\"https://github.com/Jisco/VisualFamilyTree/projects/1\">Export to GEDCOM</a></li>\n</ul>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"loudspeaker\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png\">📢</g-emoji> If you have a question about VFT or one of the planned features, you can ask your questions here <strong><a href=\"https://github.com/Jisco/VisualFamilyTree/discussions\">Discussions</a></strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-version-140\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-140\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Version 1.4.0</h2>\n<ul dir=\"auto\">\n<li>First release on Mac OSx <g-emoji class=\"g-emoji\" alias=\"apple\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f34e.png\">🍎</g-emoji></li>\n<li>Enable import of GEDCOM files <g-emoji class=\"g-emoji\" alias=\"rocket\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f680.png\">🚀</g-emoji></li>\n<li>Donation button added to menu ( maybe you will click on it... ) <g-emoji class=\"g-emoji\" alias=\"sweat_smile\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f605.png\">😅</g-emoji>\nBy the way, you can spend via <a href=\"http://paypal.me/jisco\" rel=\"nofollow\">PayPal</a>, <a href=\"https://www.patreon.com/jiscoMe\" rel=\"nofollow\">Patreon</a> or you just <a href=\"https://www.buymeacoffee.com/Jisco\" rel=\"nofollow\">buy me a pizza</a></li>\n<li>Adding an awesome \"what's new\" popup (will only show once after each update)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-135\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-135\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Version 1.3.5</h2>\n<ul dir=\"auto\">\n<li>Minor Bugfixings</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-134\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-134\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.4.md\">Version 1.3.4</a></h2>\n<ul dir=\"auto\">\n<li>add files as source and open via button</li>\n<li>added keyboard navigation in chart view (<g-emoji class=\"g-emoji\" alias=\"arrow_left\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b05.png\">⬅️</g-emoji>, <g-emoji class=\"g-emoji\" alias=\"arrow_right\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/27a1.png\">➡️</g-emoji>, <g-emoji class=\"g-emoji\" alias=\"arrow_up\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b06.png\">⬆️</g-emoji>, <g-emoji class=\"g-emoji\" alias=\"arrow_down\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b07.png\">⬇️</g-emoji>) and zoom via keyboard (crtl + <g-emoji class=\"g-emoji\" alias=\"heavy_plus_sign\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2795.png\">➕</g-emoji> and crtl + <g-emoji class=\"g-emoji\" alias=\"heavy_minus_sign\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2796.png\">➖</g-emoji>)</li>\n<li>persons are now collapsible</li>\n<li>activate vertical layout beginning with a specific generation</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-133\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-133\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.3.md\">Version 1.3.3</a></h2>\n<ul dir=\"auto\">\n<li>extended search for main person in chart view</li>\n<li>adjustable zoom factor in chart view</li>\n<li>fix when adding files</li>\n<li>linux icon fix</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-131\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-131\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.1.md\">Version 1.3.1</a></h2>\n<ul dir=\"auto\">\n<li>Save last used directory for import\\export</li>\n<li>Refactoring export for large family trees</li>\n<li>Third-party component updates</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-130\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-130\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.0.md\">Version 1.3.0</a></h2>\n<ul dir=\"auto\">\n<li>add russian translation\nThanks @Gimanh <g-emoji class=\"g-emoji\" alias=\"rocket\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f680.png\">🚀</g-emoji></li>\n<li>performance improvments</li>\n<li>display persons in chart ascending by creation date (aka \"None\"), by birth date or alphabetically</li>\n<li>minor bugfixings</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-120\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-120\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.2.0.md\">Version 1.2.0</a></h2>\n<ul dir=\"auto\">\n<li>New screen for extended app settings\n<ul dir=\"auto\">\n<li>New Languages: Farsi and Spanish (thanks @SepSol, @MrOlivo)</li>\n<li>5 date formats</li>\n<li>9 different fonts</li>\n</ul>\n</li>\n<li>Far-reaching right to left support (special thanks @SepSol <g-emoji class=\"g-emoji\" alias=\"grinning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f600.png\">😀</g-emoji>)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-110\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-110\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.1.0.md\">Version 1.1.0</a></h2>\n<ul dir=\"auto\">\n<li>Weddingdates in chart and export</li>\n<li>Icons instead of symbols</li>\n<li>Stackable Text in export mode</li>\n<li>Dates in 3 different modes (year, month and year or full)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-101\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-101\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.0.1.md\">Version 1.0.1</a></h2>\n<ul dir=\"auto\">\n<li>improved performance</li>\n<li>definable color markings for people in the chart view</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-100\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/#version-100\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.0.0.md\">Version 1.0.0</a></h2>\n<ul dir=\"auto\">\n<li>First Release</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-visualfamilytree\" class=\"anchor\" aria-hidden=\"true\" href=\"#visualfamilytree\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>VisualFamilyTree</h1>\n<p dir=\"auto\">With this app you can create a family tree with extensive information and pictures about the individual family members. The whole thing can be done very simply using the mouse and a few keystrokes. An editor to export this family tree in different formats (pdf, svg, png) is also included. The output can be configured extensively.</p>\n<p dir=\"auto\">Website: <a href=\"https://jisco.me/visual-family-tree\" rel=\"nofollow\">https://jisco.me/visual-family-tree</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-star-in-progress-star\" class=\"anchor\" aria-hidden=\"true\" href=\"#star-in-progress-star\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><g-emoji class=\"g-emoji\" alias=\"star\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b50.png\">⭐</g-emoji> In Progress <g-emoji class=\"g-emoji\" alias=\"star\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b50.png\">⭐</g-emoji></h2>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> New export to extern files (png, pdf...)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> <a href=\"https://github.com/Jisco/VisualFamilyTree/projects/1\">Export to GEDCOM</a></li>\n</ul>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"loudspeaker\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png\">📢</g-emoji> If you have a question about VFT or one of the planned features, you can ask your questions here <strong><a href=\"https://github.com/Jisco/VisualFamilyTree/discussions\">Discussions</a></strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-version-140\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-140\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Version 1.4.0</h2>\n<ul dir=\"auto\">\n<li>First release on Mac OSx <g-emoji class=\"g-emoji\" alias=\"apple\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f34e.png\">🍎</g-emoji></li>\n<li>Enable import of GEDCOM files <g-emoji class=\"g-emoji\" alias=\"rocket\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f680.png\">🚀</g-emoji></li>\n<li>Donation button added to menu ( maybe you will click on it... ) <g-emoji class=\"g-emoji\" alias=\"sweat_smile\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f605.png\">😅</g-emoji>\nBy the way, you can spend via <a href=\"http://paypal.me/jisco\" rel=\"nofollow\">PayPal</a>, <a href=\"https://www.patreon.com/jiscoMe\" rel=\"nofollow\">Patreon</a> or you just <a href=\"https://www.buymeacoffee.com/Jisco\" rel=\"nofollow\">buy me a pizza</a></li>\n<li>Adding an awesome \"what's new\" popup (will only show once after each update)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-135\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-135\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Version 1.3.5</h2>\n<ul dir=\"auto\">\n<li>Minor Bugfixings</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-134\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-134\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.4.md\">Version 1.3.4</a></h2>\n<ul dir=\"auto\">\n<li>add files as source and open via button</li>\n<li>added keyboard navigation in chart view (<g-emoji class=\"g-emoji\" alias=\"arrow_left\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b05.png\">⬅️</g-emoji>, <g-emoji class=\"g-emoji\" alias=\"arrow_right\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/27a1.png\">➡️</g-emoji>, <g-emoji class=\"g-emoji\" alias=\"arrow_up\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b06.png\">⬆️</g-emoji>, <g-emoji class=\"g-emoji\" alias=\"arrow_down\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2b07.png\">⬇️</g-emoji>) and zoom via keyboard (crtl + <g-emoji class=\"g-emoji\" alias=\"heavy_plus_sign\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2795.png\">➕</g-emoji> and crtl + <g-emoji class=\"g-emoji\" alias=\"heavy_minus_sign\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2796.png\">➖</g-emoji>)</li>\n<li>persons are now collapsible</li>\n<li>activate vertical layout beginning with a specific generation</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-133\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-133\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.3.md\">Version 1.3.3</a></h2>\n<ul dir=\"auto\">\n<li>extended search for main person in chart view</li>\n<li>adjustable zoom factor in chart view</li>\n<li>fix when adding files</li>\n<li>linux icon fix</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-131\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-131\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.1.md\">Version 1.3.1</a></h2>\n<ul dir=\"auto\">\n<li>Save last used directory for import\\export</li>\n<li>Refactoring export for large family trees</li>\n<li>Third-party component updates</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-130\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-130\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.3.0.md\">Version 1.3.0</a></h2>\n<ul dir=\"auto\">\n<li>add russian translation\nThanks @Gimanh <g-emoji class=\"g-emoji\" alias=\"rocket\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f680.png\">🚀</g-emoji></li>\n<li>performance improvments</li>\n<li>display persons in chart ascending by creation date (aka \"None\"), by birth date or alphabetically</li>\n<li>minor bugfixings</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-120\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-120\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.2.0.md\">Version 1.2.0</a></h2>\n<ul dir=\"auto\">\n<li>New screen for extended app settings\n<ul dir=\"auto\">\n<li>New Languages: Farsi and Spanish (thanks @SepSol, @MrOlivo)</li>\n<li>5 date formats</li>\n<li>9 different fonts</li>\n</ul>\n</li>\n<li>Far-reaching right to left support (special thanks @SepSol <g-emoji class=\"g-emoji\" alias=\"grinning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f600.png\">😀</g-emoji>)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-110\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-110\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.1.0.md\">Version 1.1.0</a></h2>\n<ul dir=\"auto\">\n<li>Weddingdates in chart and export</li>\n<li>Icons instead of symbols</li>\n<li>Stackable Text in export mode</li>\n<li>Dates in 3 different modes (year, month and year or full)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-101\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-101\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.0.1.md\">Version 1.0.1</a></h2>\n<ul dir=\"auto\">\n<li>improved performance</li>\n<li>definable color markings for people in the chart view</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-version-100\" class=\"anchor\" aria-hidden=\"true\" href=\"#version-100\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/Jisco/VisualFamilyTree/blob/master/v1.0.0.md\">Version 1.0.0</a></h2>\n<ul dir=\"auto\">\n<li>First Release</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.019Z" }, "vivifyscrum": { "readmeOriginal": null, "readmeFetchedAt": "2022-05-10T00:08:14.043Z" }, "vue-calc": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-vue-calc\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/el3um4s/vue-calc/blob/master/#vue-calc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Vue Calc</h1>\n<blockquote>\n<p dir=\"auto\">A Simple VueJS's Calculator built with ElectronJS</p>\n</blockquote>\n<p dir=\"auto\"><strong>Last Releases</strong> <a href=\"https://github.com/el3um4s/vue-calc/releases\">link</a></p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-32bit.exe\">Portable Windows 32bit</a></li>\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-64bit.exe\">Portable Windows 64bit</a></li>\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-i386.AppImage\">Linux (.appimage 32bit)</a></li>\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-x86_64.AppImage\">Linux (.appimage 64bit)</a></li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/el3um4s/vue-calc/master/altro/screenshot.JPG\"><img src=\"https://raw.githubusercontent.com/el3um4s/vue-calc/master/altro/screenshot.JPG\" alt=\"screenshot\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Version</strong> 0.18.04.06</p>\n<p dir=\"auto\"><strong>License</strong> MIT © 2017-2018 - Samuele de Tomasi</p>\n<p dir=\"auto\"><strong>GitHub</strong> <a href=\"https://github.com/el3um4s/vue-calc/\">el3um4s/vue-calc</a></p>\n<p dir=\"auto\"><strong>Created with:</strong></p>\n<ul dir=\"auto\">\n<li>Vue.js</li>\n<li>Vuetify</li>\n<li>Electron-vue</li>\n<li>decimal.js</li>\n<li>Google Font Roboto</li>\n<li>Google Font Mina</li>\n<li>vue-shortkey</li>\n<li>electron-store</li>\n</ul>\n<p dir=\"auto\"><strong>Icons</strong> created by <a href=\"https://twitter.com/arslansahin\" rel=\"nofollow\">Arslan Şahìn</a></p>\n<p dir=\"auto\"><strong>Note about Calculator Logic:</strong> It should be noted that there are two main schools of thought on calculator input logic: immediate execution logic and formula logic. Formula logic observes order of operation precedence, immediate execution does not. <strong>Vue Calc utilizes immediate execution logic</strong>.</p>\n<p dir=\"auto\">Either is acceptable, but please note that depending on which you choose, your calculator may yield different results than ours for certain equations (see below example)</p>\n<p dir=\"auto\"><code>3 + 5 x 6 - 2 / 4 =</code></p>\n<ul dir=\"auto\">\n<li>Immediate Execution Logic: 11.5</li>\n<li>Formula/Expression Logic: 32.5</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-vue-calc\" class=\"anchor\" aria-hidden=\"true\" href=\"#vue-calc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Vue Calc</h1>\n<blockquote>\n<p dir=\"auto\">A Simple VueJS's Calculator built with ElectronJS</p>\n</blockquote>\n<p dir=\"auto\"><strong>Last Releases</strong> <a href=\"https://github.com/el3um4s/vue-calc/releases\">link</a></p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-32bit.exe\">Portable Windows 32bit</a></li>\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-64bit.exe\">Portable Windows 64bit</a></li>\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-i386.AppImage\">Linux (.appimage 32bit)</a></li>\n<li><a href=\"https://github.com/el3um4s/vue-calc/releases/download/v0.18.04.15/vue-calc-x86_64.AppImage\">Linux (.appimage 64bit)</a></li>\n</ul>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/el3um4s/vue-calc/master/altro/screenshot.JPG\"><img src=\"https://raw.githubusercontent.com/el3um4s/vue-calc/master/altro/screenshot.JPG\" alt=\"screenshot\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><strong>Version</strong> 0.18.04.06</p>\n<p dir=\"auto\"><strong>License</strong> MIT © 2017-2018 - Samuele de Tomasi</p>\n<p dir=\"auto\"><strong>GitHub</strong> <a href=\"https://github.com/el3um4s/vue-calc/\">el3um4s/vue-calc</a></p>\n<p dir=\"auto\"><strong>Created with:</strong></p>\n<ul dir=\"auto\">\n<li>Vue.js</li>\n<li>Vuetify</li>\n<li>Electron-vue</li>\n<li>decimal.js</li>\n<li>Google Font Roboto</li>\n<li>Google Font Mina</li>\n<li>vue-shortkey</li>\n<li>electron-store</li>\n</ul>\n<p dir=\"auto\"><strong>Icons</strong> created by <a href=\"https://twitter.com/arslansahin\" rel=\"nofollow\">Arslan Şahìn</a></p>\n<p dir=\"auto\"><strong>Note about Calculator Logic:</strong> It should be noted that there are two main schools of thought on calculator input logic: immediate execution logic and formula logic. Formula logic observes order of operation precedence, immediate execution does not. <strong>Vue Calc utilizes immediate execution logic</strong>.</p>\n<p dir=\"auto\">Either is acceptable, but please note that depending on which you choose, your calculator may yield different results than ours for certain equations (see below example)</p>\n<p dir=\"auto\"><code>3 + 5 x 6 - 2 / 4 =</code></p>\n<ul dir=\"auto\">\n<li>Immediate Execution Logic: 11.5</li>\n<li>Formula/Expression Logic: 32.5</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.075Z" }, "vupc": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com//machester4/vupc/blob/master/logo.png?raw=true\"><img src=\"https://github.com//machester4/vupc/blob/master/logo.png?raw=true\" title=\"\" alt=\"logo\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-vupc\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#vupc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>VUPC</strong></h1>\n<blockquote>\n<p dir=\"auto\">WebRTC screensharing Electron app for all desktop platforms</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#general-info\">General info</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#screenshots\">Screenshots</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#technologies\">Technologies</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#setup\">Setup</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#features\">Features</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#status\">Status</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#inspiration\">Inspiration</a></li>\n<li><a href=\"https://github.com/machester4/vupc/blob/master/#contact\">Contact</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-general-info\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#general-info\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>General info</h2>\n<p dir=\"auto\">VUPC is an open source screen sharing + remote collaboration application for Mac OS, Linux, Windows. You can share your desktop with someone else while letting them share your mouse and keyboard remotely. Right now it is not as good as commercial alternatives, mostly because this initial prototype was written in 3 days. <a href=\"https://github.com/machester4/vupc\">The big difference is that you can send PRs to make VUPC better</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/machester4/vupc/blob/master/screenshot.png?raw=true\"><img src=\"https://github.com/machester4/vupc/raw/master/screenshot.png?raw=true\" alt=\"Example screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-demo\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#demo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Demo</h2>\n<p dir=\"auto\">You can <strong>download</strong> the demo application which may <strong>not be up to date with the latest changes in master</strong>. This application uses our server for signaling.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://drive.google.com/file/d/15eohUZNS0Vgd9YpBUTsd21IuKtdqriZD/view?usp=sharing\" rel=\"nofollow\">MacOS</a></li>\n<li><a href=\"https://drive.google.com/file/d/1iS4YPbWAH87yQgRc7nIkajDAG2t9LWo2/view?usp=sharing\" rel=\"nofollow\">Linux</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-technologies\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#technologies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Technologies</h2>\n<ul dir=\"auto\">\n<li>Electron - version 9.0</li>\n<li>VueJS - version 2.6</li>\n<li>NodeJS - version 13.9</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-setup\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#setup\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setup</h2>\n<p dir=\"auto\">You can download the binaries already compiled, or you can compile a local version yourself.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#building-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building the app</h2>\n<p dir=\"auto\"> <strong>Requirements</strong></p>\n<ul dir=\"auto\">\n<li>Common - <a href=\"https://nodejs.org/en/\" rel=\"nofollow\">NodeJS</a> & <a href=\"https://classic.yarnpkg.com/en/docs/install\" rel=\"nofollow\">Yarn</a></li>\n<li>MacOS - <a href=\"https://apps.apple.com/us/app/xcode/id497799835?mt=12\" rel=\"nofollow\">XCode</a></li>\n<li>Windows - <a href=\"https://chocolatey.org/packages/visualstudio2017buildtools\" rel=\"nofollow\">Microsoft visual studio build tools 2017</a></li>\n<li>Linux - libxtst & libpng <code>sudo apt-get install libxtst-dev libpng++-dev</code></li>\n</ul>\n<p dir=\"auto\">Clone repository :\n<code>git clone git@github.com:machester4/vupc.git</code></p>\n<p dir=\"auto\">Install server dependencies :</p>\n<p dir=\"auto\"><code>cd server && yarn</code></p>\n<p dir=\"auto\">Install app dependencies :</p>\n<p dir=\"auto\"><code>cd app && yarn</code></p>\n<p dir=\"auto\">run server :</p>\n<p dir=\"auto\"><code>cd server && yarn run start:debug</code></p>\n<p dir=\"auto\">run app :</p>\n<p dir=\"auto\"><code>cd app && yarn run electron:serve</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<p dir=\"auto\">List of features ready and TODOs for future development</p>\n<ul dir=\"auto\">\n<li>Share screen</li>\n<li>Mouse click event in host\n<h3 dir=\"auto\"><a id=\"user-content-to-do-list\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#to-do-list\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To-do list:</h3>\n</li>\n<li>Keyboard events in host</li>\n<li>Your ideas :)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-status\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#status\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Status</h2>\n<p dir=\"auto\">VUPC is currently <strong>ALPHA STATUS</strong> and is intended for developers/early adopters. Check out the Issues to get involved. VUPC is a volunteer run project, your contributions and improvements are welcome!</p>\n<h2 dir=\"auto\"><a id=\"user-content-inspiration\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#inspiration\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Inspiration</h2>\n<p dir=\"auto\">This project is inspired by <a href=\"https://github.com/maxogden/screencat\">ScreenCat</a> which was discontinued a long time ago.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contact\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#contact\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contact</h2>\n<p dir=\"auto\">Created by <a href=\"https://github.com/machester4\">@machester4 (Michael Pintos)</a> - feel free to contact me!</p>\n<h3 dir=\"auto\"><a id=\"user-content-mit-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/machester4/vupc/blob/master/#mit-license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>MIT License</h3>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com//machester4/vupc/blob/master/logo.png?raw=true\"><img src=\"https://github.com//machester4/vupc/blob/master/logo.png?raw=true\" title=\"\" alt=\"logo\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-vupc\" class=\"anchor\" aria-hidden=\"true\" href=\"#vupc\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><strong>VUPC</strong></h1>\n<blockquote>\n<p dir=\"auto\">WebRTC screensharing Electron app for all desktop platforms</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"#general-info\">General info</a></li>\n<li><a href=\"#screenshots\">Screenshots</a></li>\n<li><a href=\"#technologies\">Technologies</a></li>\n<li><a href=\"#setup\">Setup</a></li>\n<li><a href=\"#features\">Features</a></li>\n<li><a href=\"#status\">Status</a></li>\n<li><a href=\"#inspiration\">Inspiration</a></li>\n<li><a href=\"#contact\">Contact</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-general-info\" class=\"anchor\" aria-hidden=\"true\" href=\"#general-info\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>General info</h2>\n<p dir=\"auto\">VUPC is an open source screen sharing + remote collaboration application for Mac OS, Linux, Windows. You can share your desktop with someone else while letting them share your mouse and keyboard remotely. Right now it is not as good as commercial alternatives, mostly because this initial prototype was written in 3 days. <a href=\"https://github.com/machester4/vupc\">The big difference is that you can send PRs to make VUPC better</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/machester4/vupc/blob/master/screenshot.png?raw=true\"><img src=\"https://github.com/machester4/vupc/raw/master/screenshot.png?raw=true\" alt=\"Example screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-demo\" class=\"anchor\" aria-hidden=\"true\" href=\"#demo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Demo</h2>\n<p dir=\"auto\">You can <strong>download</strong> the demo application which may <strong>not be up to date with the latest changes in master</strong>. This application uses our server for signaling.</p>\n<ul dir=\"auto\">\n<li><a href=\"https://drive.google.com/file/d/15eohUZNS0Vgd9YpBUTsd21IuKtdqriZD/view?usp=sharing\" rel=\"nofollow\">MacOS</a></li>\n<li><a href=\"https://drive.google.com/file/d/1iS4YPbWAH87yQgRc7nIkajDAG2t9LWo2/view?usp=sharing\" rel=\"nofollow\">Linux</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-technologies\" class=\"anchor\" aria-hidden=\"true\" href=\"#technologies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Technologies</h2>\n<ul dir=\"auto\">\n<li>Electron - version 9.0</li>\n<li>VueJS - version 2.6</li>\n<li>NodeJS - version 13.9</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-setup\" class=\"anchor\" aria-hidden=\"true\" href=\"#setup\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Setup</h2>\n<p dir=\"auto\">You can download the binaries already compiled, or you can compile a local version yourself.</p>\n<h2 dir=\"auto\"><a id=\"user-content-building-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#building-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building the app</h2>\n<p dir=\"auto\"> <strong>Requirements</strong></p>\n<ul dir=\"auto\">\n<li>Common - <a href=\"https://nodejs.org/en/\" rel=\"nofollow\">NodeJS</a> & <a href=\"https://classic.yarnpkg.com/en/docs/install\" rel=\"nofollow\">Yarn</a></li>\n<li>MacOS - <a href=\"https://apps.apple.com/us/app/xcode/id497799835?mt=12\" rel=\"nofollow\">XCode</a></li>\n<li>Windows - <a href=\"https://chocolatey.org/packages/visualstudio2017buildtools\" rel=\"nofollow\">Microsoft visual studio build tools 2017</a></li>\n<li>Linux - libxtst & libpng <code>sudo apt-get install libxtst-dev libpng++-dev</code></li>\n</ul>\n<p dir=\"auto\">Clone repository :\n<code>git clone git@github.com:machester4/vupc.git</code></p>\n<p dir=\"auto\">Install server dependencies :</p>\n<p dir=\"auto\"><code>cd server && yarn</code></p>\n<p dir=\"auto\">Install app dependencies :</p>\n<p dir=\"auto\"><code>cd app && yarn</code></p>\n<p dir=\"auto\">run server :</p>\n<p dir=\"auto\"><code>cd server && yarn run start:debug</code></p>\n<p dir=\"auto\">run app :</p>\n<p dir=\"auto\"><code>cd app && yarn run electron:serve</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<p dir=\"auto\">List of features ready and TODOs for future development</p>\n<ul dir=\"auto\">\n<li>Share screen</li>\n<li>Mouse click event in host\n<h3 dir=\"auto\"><a id=\"user-content-to-do-list\" class=\"anchor\" aria-hidden=\"true\" href=\"#to-do-list\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To-do list:</h3>\n</li>\n<li>Keyboard events in host</li>\n<li>Your ideas :)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-status\" class=\"anchor\" aria-hidden=\"true\" href=\"#status\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Status</h2>\n<p dir=\"auto\">VUPC is currently <strong>ALPHA STATUS</strong> and is intended for developers/early adopters. Check out the Issues to get involved. VUPC is a volunteer run project, your contributions and improvements are welcome!</p>\n<h2 dir=\"auto\"><a id=\"user-content-inspiration\" class=\"anchor\" aria-hidden=\"true\" href=\"#inspiration\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Inspiration</h2>\n<p dir=\"auto\">This project is inspired by <a href=\"https://github.com/maxogden/screencat\">ScreenCat</a> which was discontinued a long time ago.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contact\" class=\"anchor\" aria-hidden=\"true\" href=\"#contact\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contact</h2>\n<p dir=\"auto\">Created by <a href=\"https://github.com/machester4\">@machester4 (Michael Pintos)</a> - feel free to contact me!</p>\n<h3 dir=\"auto\"><a id=\"user-content-mit-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#mit-license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>MIT License</h3>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.123Z" }, "waifu2x-gui": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-waifu2x-gui\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Waifu2x-GUI/blob/master/#waifu2x-gui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Waifu2x GUI</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Tenpi/Waifu2x-GUI/blob/master/assets/example.png\"><img src=\"https://raw.githubusercontent.com/Tenpi/Waifu2x-GUI/master/assets/example.png\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\">This is a GUI app that can upscale anime-styled images, gifs, and videos using waifu2x. It aims to be simple to use, but\nyou can access more advanced settings in the top bar.</p>\n<p dir=\"auto\">Note: Upscaling videos and gifs will take a very long time without a high-end graphics card!</p>\n<h3 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Waifu2x-GUI/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features:</h3>\n<ul dir=\"auto\">\n<li>Upscale and/or denoise images (png, jpg, webp, etc.)</li>\n<li>Upscale and/or denoise animated images (gif, animated webp)</li>\n<li>Upscale and/or denoise videos (mp4, webm, ogv, etc.)</li>\n<li>Apply effects such as speed or reverse (animated images/videos)</li>\n<li>Customize settings (noise, scale, mode, framerate, etc.)</li>\n<li>Upscale multiple images (or multiple frames of an animated image/video) concurrently</li>\n</ul>\n<p dir=\"auto\">Warning: Upscaling too many images in parallel can cause your computer to freeze if it runs out of CPU/memory.</p>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Waifu2x-GUI/blob/master/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<p dir=\"auto\">To install, just download the latest exe installer from the <a href=\"https://github.com/Tenpi/Waifu2x-GUI/releases\">releases</a> tab. You may get a warning message that says \"running this app can harm your PC\", but don't worry because it's safe. Updates can be installed automatically.</p>\n<p dir=\"auto\">Note: If you install it under <code>C:/Program Files</code> you might need to run it as administrator.</p>\n<h3 dir=\"auto\"><a id=\"user-content-bugs-and-requests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Waifu2x-GUI/blob/master/#bugs-and-requests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Bugs and Requests</h3>\n<p dir=\"auto\">Open an issue on my GitHub repository. I appreciate any requests, but I can't guarantee that I will fulfill all of them.</p>\n<h3 dir=\"auto\"><a id=\"user-content-relatedcredits\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Tenpi/Waifu2x-GUI/blob/master/#relatedcredits\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Related/Credits</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/Tenpi/waifu2x\">my waifu2x npm module</a></li>\n<li><a href=\"https://github.com/DeadSix27/waifu2x-converter-cpp\">waifu2x-converter-cpp</a></li>\n<li><a href=\"https://github.com/nagadomi/waifu2x\">waifu2x</a></li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-waifu2x-gui\" class=\"anchor\" aria-hidden=\"true\" href=\"#waifu2x-gui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Waifu2x GUI</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/example.png\"><img src=\"assets/example.png\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This is a GUI app that can upscale anime-styled images, gifs, and videos using waifu2x. It aims to be simple to use, but\nyou can access more advanced settings in the top bar.</p>\n<p dir=\"auto\">Note: Upscaling videos and gifs will take a very long time without a high-end graphics card!</p>\n<h3 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features:</h3>\n<ul dir=\"auto\">\n<li>Upscale and/or denoise images (png, jpg, webp, etc.)</li>\n<li>Upscale and/or denoise animated images (gif, animated webp)</li>\n<li>Upscale and/or denoise videos (mp4, webm, ogv, etc.)</li>\n<li>Apply effects such as speed or reverse (animated images/videos)</li>\n<li>Customize settings (noise, scale, mode, framerate, etc.)</li>\n<li>Upscale multiple images (or multiple frames of an animated image/video) concurrently</li>\n</ul>\n<p dir=\"auto\">Warning: Upscaling too many images in parallel can cause your computer to freeze if it runs out of CPU/memory.</p>\n<h3 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h3>\n<p dir=\"auto\">To install, just download the latest exe installer from the <a href=\"https://github.com/Tenpi/Waifu2x-GUI/releases\">releases</a> tab. You may get a warning message that says \"running this app can harm your PC\", but don't worry because it's safe. Updates can be installed automatically.</p>\n<p dir=\"auto\">Note: If you install it under <code>C:/Program Files</code> you might need to run it as administrator.</p>\n<h3 dir=\"auto\"><a id=\"user-content-bugs-and-requests\" class=\"anchor\" aria-hidden=\"true\" href=\"#bugs-and-requests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Bugs and Requests</h3>\n<p dir=\"auto\">Open an issue on my GitHub repository. I appreciate any requests, but I can't guarantee that I will fulfill all of them.</p>\n<h3 dir=\"auto\"><a id=\"user-content-relatedcredits\" class=\"anchor\" aria-hidden=\"true\" href=\"#relatedcredits\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Related/Credits</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/Tenpi/waifu2x\">my waifu2x npm module</a></li>\n<li><a href=\"https://github.com/DeadSix27/waifu2x-converter-cpp\">waifu2x-converter-cpp</a></li>\n<li><a href=\"https://github.com/nagadomi/waifu2x\">waifu2x</a></li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.223Z" }, "wail": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 align=\"center\" dir=\"auto\"><a id=\"user-content--web-archiving-integration-layer-wail\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/#-web-archiving-integration-layer-wail\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a href=\"http://github.com/machawk1/wail\"><img src=\"https://camo.githubusercontent.com/936d2d342100fdd286da19a228542c8c4e66cfd819d63f65b2dbc353d8e31964/68747470733a2f2f63646e2e7261776769742e636f6d2f6d61636861776b312f7761696c2f6f7361676e6f737469632f6275696c642f69636f6e732f7768616c655f3235362e706e67\" alt=\"WAIL logo\" data-canonical-src=\"https://cdn.rawgit.com/machawk1/wail/osagnostic/build/icons/whale_256.png\" style=\"max-width: 100%;\"></a><br> Web Archiving Integration Layer (WAIL)</h2>\n<p align=\"center\" dir=\"auto\"><em>\"One-Click User Instigated Preservation\"</em></p>\n<p dir=\"auto\">Web Archiving Integration Layer (WAIL)</p>\n<p dir=\"auto\"><em>\"One-Click User Instigated Preservation\"</em></p>\n<p dir=\"auto\">Web Archiving Integration Layer (WAIL) is a graphical user interface (GUI) atop multiple web archiving tools\nintended to be used as an easy way for anyone to preserve and replay web pages.\nTools included and accessible through the GUI are <a href=\"https://github.com/internetarchive/heritrix3\">Heritrix 3.2.0</a>\nand <a href=\"https://github.com/webrecorder/pywb\">PyWb 0.33.0</a>.</p>\n<p dir=\"auto\">More information about the motivations behind WAIL see the <a href=\"https://github.com/N0taN3rd/wail/wiki/Why-Wail%3F\">Motivations</a> section in the projects wiki.</p>\n<p dir=\"auto\">This work is supported by the <a href=\"https://www.neh.gov/\" rel=\"nofollow\">National Endowment for the Humanities</a> (NEH), through Digital Humanities grants <a href=\"https://securegrants.neh.gov/publicquery/main.aspx?f=1&gn=HD-51670-13\" rel=\"nofollow\">HD-51670-13</a> and <a href=\"https://securegrants.neh.gov/publicquery/main.aspx?f=1&gn=HK-50181-14\" rel=\"nofollow\">HK-50181-14</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-wail-electron\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/#wail-electron\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WAIL Electron</h2>\n<p dir=\"auto\"><a href=\"https://github.com/feross/standard\"><img src=\"https://camo.githubusercontent.com/3f7317235f4a4220e4384f3065e200ac756dc22d496bc3eb8fde2d512c8c8f05/68747470733a2f2f63646e2e7261776769742e636f6d2f6665726f73732f7374616e646172642f6d61737465722f62616467652e737667\" alt=\"js-standard-style\" data-canonical-src=\"https://cdn.rawgit.com/feross/standard/master/badge.svg\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/images/wailHome.png\"><img src=\"https://raw.githubusercontent.com/N0taN3rd/wail/wail-electron/images/wailHome.png\" alt=\"WAIL Home Screen\" height=\"500\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<p dir=\"auto\">You can download the latest release <a href=\"https://github.com/N0taN3rd/wail/releases\">here</a>.</p>\n<p dir=\"auto\">For information on using WAIL please consult the <a href=\"https://github.com/N0taN3rd/wail/wiki\">wiki</a>.</p>\n<p dir=\"auto\">To get up and running from source consult the Development section in this projects wiki.</p>\n<h3 dir=\"auto\"><a id=\"user-content-slides-from-archives-unleased-20\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/#slides-from-archives-unleased-20\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Slides from Archives Unleased 2.0</h3>\n<p dir=\"auto\"><a href=\"http://www.slideshare.net/JohnBerlin3/are-wails-electric\" rel=\"nofollow\">Are Wails Electric?</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-problems-questions\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/#problems-questions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Problems? Questions?</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/N0taN3rd/wail/wiki/FAQ\">Frequently Asked Questions</a> page.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contact\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/#contact\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contact</h2>\n<p dir=\"auto\">WAIL is a project of the Web Science and Digital Libraries (WS-DL) research group at Old Dominion University (ODU), created by Mat Kelly.</p>\n<p dir=\"auto\">For support e-mail <a href=\"https://github.com/N0taN3rd/wail/blob/wail-electron/mailto:jberlin@cs.odu.edu\">jberlin@cs.odu.edu</a> or tweet to us at <a href=\"https://twitter.com/johnaberlin\" rel=\"nofollow\">@johnaberlin</a> and/or <a href=\"https://twitter.com/WebSciDL\" rel=\"nofollow\">@WebSciDL</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 align=\"center\" dir=\"auto\"><a id=\"user-content--web-archiving-integration-layer-wail\" class=\"anchor\" aria-hidden=\"true\" href=\"#-web-archiving-integration-layer-wail\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a href=\"http://github.com/machawk1/wail\"><img src=\"https://camo.githubusercontent.com/936d2d342100fdd286da19a228542c8c4e66cfd819d63f65b2dbc353d8e31964/68747470733a2f2f63646e2e7261776769742e636f6d2f6d61636861776b312f7761696c2f6f7361676e6f737469632f6275696c642f69636f6e732f7768616c655f3235362e706e67\" alt=\"WAIL logo\" data-canonical-src=\"https://cdn.rawgit.com/machawk1/wail/osagnostic/build/icons/whale_256.png\" style=\"max-width: 100%;\"></a><br> Web Archiving Integration Layer (WAIL)</h2>\n<p align=\"center\" dir=\"auto\"><em>\"One-Click User Instigated Preservation\"</em></p>\n<p dir=\"auto\">Web Archiving Integration Layer (WAIL)</p>\n<p dir=\"auto\"><em>\"One-Click User Instigated Preservation\"</em></p>\n<p dir=\"auto\">Web Archiving Integration Layer (WAIL) is a graphical user interface (GUI) atop multiple web archiving tools\nintended to be used as an easy way for anyone to preserve and replay web pages.\nTools included and accessible through the GUI are <a href=\"https://github.com/internetarchive/heritrix3\">Heritrix 3.2.0</a>\nand <a href=\"https://github.com/webrecorder/pywb\">PyWb 0.33.0</a>.</p>\n<p dir=\"auto\">More information about the motivations behind WAIL see the <a href=\"https://github.com/N0taN3rd/wail/wiki/Why-Wail%3F\">Motivations</a> section in the projects wiki.</p>\n<p dir=\"auto\">This work is supported by the <a href=\"https://www.neh.gov/\" rel=\"nofollow\">National Endowment for the Humanities</a> (NEH), through Digital Humanities grants <a href=\"https://securegrants.neh.gov/publicquery/main.aspx?f=1&gn=HD-51670-13\" rel=\"nofollow\">HD-51670-13</a> and <a href=\"https://securegrants.neh.gov/publicquery/main.aspx?f=1&gn=HK-50181-14\" rel=\"nofollow\">HK-50181-14</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-wail-electron\" class=\"anchor\" aria-hidden=\"true\" href=\"#wail-electron\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WAIL Electron</h2>\n<p dir=\"auto\"><a href=\"https://github.com/feross/standard\"><img src=\"https://camo.githubusercontent.com/3f7317235f4a4220e4384f3065e200ac756dc22d496bc3eb8fde2d512c8c8f05/68747470733a2f2f63646e2e7261776769742e636f6d2f6665726f73732f7374616e646172642f6d61737465722f62616467652e737667\" alt=\"js-standard-style\" data-canonical-src=\"https://cdn.rawgit.com/feross/standard/master/badge.svg\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"images/wailHome.png\"><img src=\"images/wailHome.png\" alt=\"WAIL Home Screen\" height=\"500\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-usage\" class=\"anchor\" aria-hidden=\"true\" href=\"#usage\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Usage</h2>\n<p dir=\"auto\">You can download the latest release <a href=\"https://github.com/N0taN3rd/wail/releases\">here</a>.</p>\n<p dir=\"auto\">For information on using WAIL please consult the <a href=\"https://github.com/N0taN3rd/wail/wiki\">wiki</a>.</p>\n<p dir=\"auto\">To get up and running from source consult the Development section in this projects wiki.</p>\n<h3 dir=\"auto\"><a id=\"user-content-slides-from-archives-unleased-20\" class=\"anchor\" aria-hidden=\"true\" href=\"#slides-from-archives-unleased-20\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Slides from Archives Unleased 2.0</h3>\n<p dir=\"auto\"><a href=\"http://www.slideshare.net/JohnBerlin3/are-wails-electric\" rel=\"nofollow\">Are Wails Electric?</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-problems-questions\" class=\"anchor\" aria-hidden=\"true\" href=\"#problems-questions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Problems? Questions?</h2>\n<p dir=\"auto\">Please see the <a href=\"https://github.com/N0taN3rd/wail/wiki/FAQ\">Frequently Asked Questions</a> page.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contact\" class=\"anchor\" aria-hidden=\"true\" href=\"#contact\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contact</h2>\n<p dir=\"auto\">WAIL is a project of the Web Science and Digital Libraries (WS-DL) research group at Old Dominion University (ODU), created by Mat Kelly.</p>\n<p dir=\"auto\">For support e-mail <a href=\"mailto:jberlin@cs.odu.edu\">jberlin@cs.odu.edu</a> or tweet to us at <a href=\"https://twitter.com/johnaberlin\" rel=\"nofollow\">@johnaberlin</a> and/or <a href=\"https://twitter.com/WebSciDL\" rel=\"nofollow\">@WebSciDL</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.278Z" }, "waqt": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/arafatamim/waqt/blob/master//build/icon.png?raw=true\"><img src=\"https://raw.githubusercontent.com/arafatamim/waqt/master//build/icon.png?raw=true\" height=\"64\" width=\"64\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-waqt-deprecated\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arafatamim/waqt/blob/master/#waqt-deprecated\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Waqt [deprecated]</h1>\n<p dir=\"auto\">Electron-based app to display today's Islamic prayer times.</p>\n<h2 dir=\"auto\"><a id=\"user-content-screenshot\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arafatamim/waqt/blob/master/#screenshot\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshot</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/arafatamim/waqt/blob/master/screenshot.png?raw=true\"><img src=\"https://raw.githubusercontent.com/arafatamim/waqt/master/screenshot.png?raw=true\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-try-it-out\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arafatamim/waqt/blob/master/#try-it-out\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Try it out</h2>\n<ul dir=\"auto\">\n<li>Go to the <a href=\"https://github.com/arafatamim/waqt/releases\">releases</a> page and download the appropriate build for your platform.</li>\n</ul>\n<p dir=\"auto\">OR,</p>\n<ul dir=\"auto\">\n<li>Build it yourself:</li>\n</ul>\n<ol dir=\"auto\">\n<li>Clone this repo: <code>git clone https://github.com/arafatamim/waqt ~/Documents/waqt && cd ~/Documents/waqt</code>.</li>\n<li><code>npm install && npm start</code>.</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-to-do\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arafatamim/waqt/blob/master/#to-do\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To-do</h2>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Add 24-hr time option</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Highlight the next time</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Tray support and notifications</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arafatamim/waqt/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">MIT Licensed.</p>\n<hr>\n<h3 dir=\"auto\"><a id=\"user-content--this-project-is-deprecated-check-out-the-successor-of-waqt-here\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arafatamim/waqt/blob/master/#-this-project-is-deprecated-check-out-the-successor-of-waqt-here\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>[!] This project is deprecated. Check out the successor of Waqt <a href=\"https://github.com/arafatamim/waqt-web\">here</a></h3>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/build/icon.png?raw=true\"><img src=\"/build/icon.png?raw=true\" height=\"64\" width=\"64\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-waqt-deprecated\" class=\"anchor\" aria-hidden=\"true\" href=\"#waqt-deprecated\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Waqt [deprecated]</h1>\n<p dir=\"auto\">Electron-based app to display today's Islamic prayer times.</p>\n<h2 dir=\"auto\"><a id=\"user-content-screenshot\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshot\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshot</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"screenshot.png?raw=true\"><img src=\"screenshot.png?raw=true\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-try-it-out\" class=\"anchor\" aria-hidden=\"true\" href=\"#try-it-out\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Try it out</h2>\n<ul dir=\"auto\">\n<li>Go to the <a href=\"https://github.com/arafatamim/waqt/releases\">releases</a> page and download the appropriate build for your platform.</li>\n</ul>\n<p dir=\"auto\">OR,</p>\n<ul dir=\"auto\">\n<li>Build it yourself:</li>\n</ul>\n<ol dir=\"auto\">\n<li>Clone this repo: <code>git clone https://github.com/arafatamim/waqt ~/Documents/waqt && cd ~/Documents/waqt</code>.</li>\n<li><code>npm install && npm start</code>.</li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-to-do\" class=\"anchor\" aria-hidden=\"true\" href=\"#to-do\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To-do</h2>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Add 24-hr time option</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Highlight the next time</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Tray support and notifications</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">MIT Licensed.</p>\n<hr>\n<h3 dir=\"auto\"><a id=\"user-content--this-project-is-deprecated-check-out-the-successor-of-waqt-here\" class=\"anchor\" aria-hidden=\"true\" href=\"#-this-project-is-deprecated-check-out-the-successor-of-waqt-here\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>[!] This project is deprecated. Check out the successor of Waqt <a href=\"https://github.com/arafatamim/waqt-web\">here</a></h3>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.309Z" }, "wanna-class": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/icon-512x512.png\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/icon-512x512.png\" height=\"130\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://img.shields.io/badge/NodeJs-v14.15.3-green\" alt=\"Node Js Version\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/680ead55385ab58f1141e4fcbe3de5a470dad8b01bb158c7562e8e653317e08d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f64654a732d7631342e31352e332d677265656e\" data-canonical-src=\"https://img.shields.io/badge/NodeJs-v14.15.3-green\" style=\"max-width: 100%;\">\n</a>\n<a href=\"https://img.shields.io/badge/Platform-Win%2010-lightgrey\" alt=\"Supported Platform\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/14da86b660e5264f73d93fddba8ba73005551c1e06f845b924886e1f083d7704/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d57696e25323031302d6c6967687467726579\" data-canonical-src=\"https://img.shields.io/badge/Platform-Win%2010-lightgrey\" style=\"max-width: 100%;\">\n</a>\n<a href=\"https://img.shields.io/github/package-json/v/MissterHao/WannaClass\" alt=\"Wanna Class Version\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/4ff206b08eb7ab1f08f080957497f075afaead30f6ba63021a869c801334ebc0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f4d69737374657248616f2f57616e6e61436c617373\" data-canonical-src=\"https://img.shields.io/github/package-json/v/MissterHao/WannaClass\" style=\"max-width: 100%;\">\n</a>\n</p>\n<h1 dir=\"auto\"><a id=\"user-content-wanna-class-元智選課系統\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MissterHao/WannaClass/blob/release/#wanna-class-元智選課系統\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Wanna Class 元智選課系統</h1>\n<p dir=\"auto\">半夜依舊在電腦前守著?\n想修熱門的課卻永遠搶不到?\n查課表還在官網上輸入驗證碼慢慢搜尋?</p>\n<p dir=\"auto\">那現在正是一個好時機嘗試全新的選課方式!</p>\n<p dir=\"auto\">此軟體保證:</p>\n<ul dir=\"auto\">\n<li><strong>不紀錄帳號密碼</strong>\n使用元智 Portal 帳號密碼登入,不須擔心帳號密碼會被盜用或記錄,程式碼完全公開接受開源社群的檢驗,絕對安全。</li>\n<li><strong>不對電腦造成額外負擔</strong>\n不像其他程式會使用電腦挖礦,本程式使用最基本的方式簡化您電腦需要的資源!</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/assets/Index%20Demo.png\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/assets/Index%20Demo.png\" height=\"300\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-左方列表功能\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MissterHao/WannaClass/blob/release/#左方列表功能\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>左方列表功能:</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/assets/sidebar.jpg\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/assets/sidebar.jpg\" height=\"300\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<ul dir=\"auto\">\n<li>首頁\n未來將會加入 「portal 通知列表」、「圖書館還書通知」等功能。</li>\n<li>課程查詢\n快速查詢每學期的課表,點擊列表可以顯示該課程資訊(學分數、上課教室、教授名稱等資訊),列表最右方有「加入選課清單」按鈕可以加入選課任務列表中。</li>\n<li>選課任務列表\n以列表方式顯示目前每一門課的選課進度(「尚未選到」、「已選到!恭喜!」、「此課程已選過喔!」以及「其他未明狀態 狀態碼 x」),若出現未明狀態可以通知作者喔!</li>\n<li>設定\n設定選課的階段,根據元智選課方法,需要設定目前需要選課的階段(第一、第二、第三階段)才可選課。</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/./assets/Index%20Demo.png\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/./assets/Index%20Demo.png\" alt=\"Index Screen\" height=\"300\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/./assets/Course%20Selection%20Screen.png\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/./assets/Course%20Selection%20Screen.png\" alt=\"Course Selection Screen\" height=\"300\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/./assets/Login%20Screen%20Demo.png\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/./assets/Login%20Screen%20Demo.png\" alt=\"Login Screen\" height=\"300\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/MissterHao/WannaClass/blob/release/./assets/Loading%20Screen%20Demo.png\"><img src=\"https://raw.githubusercontent.com/MissterHao/WannaClass/release/./assets/Loading%20Screen%20Demo.png\" alt=\"Loading Screen\" height=\"300\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-future-feature\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MissterHao/WannaClass/blob/release/#future-feature\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Future Feature</h2>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> 任務控制鈕</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> 多國語系</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> 首頁顯示 Portal 通知</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Unit Test</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Mac application Build</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Github Action CI</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Github Action CD</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Isolation Environment</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-作者聲明\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MissterHao/WannaClass/blob/release/#作者聲明\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>作者聲明</h2>\n<p dir=\"auto\">本程式只供本人學術上的作品集使用喔!</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/MissterHao/WannaClass/blob/release/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is projected under GNU GPL v3 LICENCE.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"icon-512x512.png\"><img src=\"icon-512x512.png\" height=\"130\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https://img.shields.io/badge/NodeJs-v14.15.3-green\" alt=\"Node Js Version\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/680ead55385ab58f1141e4fcbe3de5a470dad8b01bb158c7562e8e653317e08d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f64654a732d7631342e31352e332d677265656e\" data-canonical-src=\"https://img.shields.io/badge/NodeJs-v14.15.3-green\" style=\"max-width: 100%;\">\n</a>\n<a href=\"https://img.shields.io/badge/Platform-Win%2010-lightgrey\" alt=\"Supported Platform\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/14da86b660e5264f73d93fddba8ba73005551c1e06f845b924886e1f083d7704/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d57696e25323031302d6c6967687467726579\" data-canonical-src=\"https://img.shields.io/badge/Platform-Win%2010-lightgrey\" style=\"max-width: 100%;\">\n</a>\n<a href=\"https://img.shields.io/github/package-json/v/MissterHao/WannaClass\" alt=\"Wanna Class Version\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/4ff206b08eb7ab1f08f080957497f075afaead30f6ba63021a869c801334ebc0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f4d69737374657248616f2f57616e6e61436c617373\" data-canonical-src=\"https://img.shields.io/github/package-json/v/MissterHao/WannaClass\" style=\"max-width: 100%;\">\n</a>\n</p>\n<h1 dir=\"auto\"><a id=\"user-content-wanna-class-元智選課系統\" class=\"anchor\" aria-hidden=\"true\" href=\"#wanna-class-元智選課系統\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Wanna Class 元智選課系統</h1>\n<p dir=\"auto\">半夜依舊在電腦前守著?\n想修熱門的課卻永遠搶不到?\n查課表還在官網上輸入驗證碼慢慢搜尋?</p>\n<p dir=\"auto\">那現在正是一個好時機嘗試全新的選課方式!</p>\n<p dir=\"auto\">此軟體保證:</p>\n<ul dir=\"auto\">\n<li><strong>不紀錄帳號密碼</strong>\n使用元智 Portal 帳號密碼登入,不須擔心帳號密碼會被盜用或記錄,程式碼完全公開接受開源社群的檢驗,絕對安全。</li>\n<li><strong>不對電腦造成額外負擔</strong>\n不像其他程式會使用電腦挖礦,本程式使用最基本的方式簡化您電腦需要的資源!</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/Index%20Demo.png\"><img src=\"assets/Index%20Demo.png\" height=\"300\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-左方列表功能\" class=\"anchor\" aria-hidden=\"true\" href=\"#左方列表功能\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>左方列表功能:</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/sidebar.jpg\"><img src=\"assets/sidebar.jpg\" height=\"300\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>首頁\n未來將會加入 「portal 通知列表」、「圖書館還書通知」等功能。</li>\n<li>課程查詢\n快速查詢每學期的課表,點擊列表可以顯示該課程資訊(學分數、上課教室、教授名稱等資訊),列表最右方有「加入選課清單」按鈕可以加入選課任務列表中。</li>\n<li>選課任務列表\n以列表方式顯示目前每一門課的選課進度(「尚未選到」、「已選到!恭喜!」、「此課程已選過喔!」以及「其他未明狀態 狀態碼 x」),若出現未明狀態可以通知作者喔!</li>\n<li>設定\n設定選課的階段,根據元智選課方法,需要設定目前需要選課的階段(第一、第二、第三階段)才可選課。</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"./assets/Index%20Demo.png\"><img src=\"./assets/Index%20Demo.png\" alt=\"Index Screen\" height=\"300\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"./assets/Course%20Selection%20Screen.png\"><img src=\"./assets/Course%20Selection%20Screen.png\" alt=\"Course Selection Screen\" height=\"300\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"./assets/Login%20Screen%20Demo.png\"><img src=\"./assets/Login%20Screen%20Demo.png\" alt=\"Login Screen\" height=\"300\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"./assets/Loading%20Screen%20Demo.png\"><img src=\"./assets/Loading%20Screen%20Demo.png\" alt=\"Loading Screen\" height=\"300\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-future-feature\" class=\"anchor\" aria-hidden=\"true\" href=\"#future-feature\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Future Feature</h2>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> 任務控制鈕</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> 多國語系</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> 首頁顯示 Portal 通知</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Unit Test</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Mac application Build</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Github Action CI</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Github Action CD</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Isolation Environment</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-作者聲明\" class=\"anchor\" aria-hidden=\"true\" href=\"#作者聲明\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>作者聲明</h2>\n<p dir=\"auto\">本程式只供本人學術上的作品集使用喔!</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is projected under GNU GPL v3 LICENCE.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.315Z" }, "webcatalog": { "readmeOriginal": null, "readmeFetchedAt": "2022-05-10T00:08:14.396Z" }, "webkiosk-wrapper": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-webkiosk-wrapper\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#webkiosk-wrapper\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Webkiosk-Wrapper</h1>\n<p dir=\"auto\"><a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/b0e09c8b844d6a2535f21675ef1c32de3fcf989f031df32e3cdb7b923999a6cb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656c656173652d312e302e322d677265656e2e737667\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/badge/Release-1.0.2-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/package.json\"><img src=\"https://camo.githubusercontent.com/935855ed3634cc2843bc84aef6bb02c1e353104c323d713d830b7bf403524525/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f6e677564626861762f5765626b696f736b2d577261707065722e737667\" alt=\"Dependencies\" data-canonical-src=\"https://img.shields.io/david/ngudbhav/Webkiosk-Wrapper.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/ed72ec191680db4b77fe255b55d8c4ec30c3525f27ed8f41ab6540d17bb2c119/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6e677564626861762f5765626b696f736b2d577261707065722f746f74616c2e737667\" alt=\"Downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/ngudbhav/Webkiosk-Wrapper/total.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/e23a65131b7cb6882edbf56fe276eceb3a65b8b5a8eaf088152b96a7ebd52f76/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f6e677564626861762f5765626b696f736b2d577261707065722e737667\" alt=\"Last-Release\" data-canonical-src=\"https://img.shields.io/github/release-date/ngudbhav/Webkiosk-Wrapper.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/e4b994bc4cfcca65db4386c8f2113de103c8cfe140f694be557ed19865f21d05/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d77696e25323025374325323064656225323025374325323072706d2d677265656e2e737667\" alt=\"Platforms\" data-canonical-src=\"https://img.shields.io/badge/platform-win%20%7C%20deb%20%7C%20rpm-green.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This software is made for students of Jaypee Institute of Information Technology(JIIT). The software is made to ease the process of browsing <a href=\"https://webkiosk.jiit.ac.in\" rel=\"nofollow\">https://webkiosk.jiit.ac.in</a>. Webkiosk is a one-stop portal where every student gets his academic/personal records including but not limited to grades, attendance and marks.</p>\n<h1 dir=\"auto\"><a id=\"user-content-important\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#important\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Important</h1>\n<p dir=\"auto\">Please do not enter invalid credentials 3 times or more. This may lock down your account.</p>\n<h1 dir=\"auto\"><a id=\"user-content-installing-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#installing-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing The App</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"Setup(64).exe => Full Windows install for 64-bit PCs\nSetup(32).exe => Full Windows install for 32-bit PCs\nPortable(64).exe => Unzip and run the exe (64-bit).\nPortable(32).exe => Unzip and run the exe (32-bit).\nSetup.deb => Installable on Debian distributions (Ubuntu, Kali, etc.)\nSetup.rpm => Installable on Red Hat distributions (Fedora, etc.) \"><pre>Setup(64).exe =<span class=\"pl-k\">></span> Full Windows install <span class=\"pl-k\">for</span> 64-bit PCs\nSetup(32).exe =<span class=\"pl-k\">></span> Full Windows install <span class=\"pl-k\">for</span> 32-bit PCs\nPortable(64).exe =<span class=\"pl-k\">></span> Unzip and run the exe (64-bit).\nPortable(32).exe =<span class=\"pl-k\">></span> Unzip and run the exe (32-bit).\nSetup.deb =<span class=\"pl-k\">></span> Installable on Debian distributions (Ubuntu, Kali, etc.)\nSetup.rpm =<span class=\"pl-k\">></span> Installable on Red Hat distributions (Fedora, etc.) </pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-installing-on-debian\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#installing-on-debian\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing on debian</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"//Install the software\nsudo dpkg -i setup.deb\n//Fix dependencies if any\nsudo apt-get install -f\"><pre>//Install the software\nsudo dpkg -i setup.deb\n//Fix dependencies <span class=\"pl-k\">if</span> any\nsudo apt-get install -f</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-installing-on-fedora\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#installing-on-fedora\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing on fedora</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"//Install the software\nsudo dnf install setup.rpm\"><pre>//Install the software\nsudo dnf install setup.rpm</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-running-on-mac-os\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#running-on-mac-os\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running on Mac OS</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"//Directly run the software\nDouble click Webkiosk-Wrapper.app inside the extracted directory\"><pre>//Directly run the software\nDouble click Webkiosk-Wrapper.app inside the extracted directory</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-starting-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#starting-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Starting The App</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"sudo npm install -g electron\ngit clone https://github.com/ngudbhav/Webkiosk-Wrapper.git\ncd Webkiosk-Wrapper\nnpm install\nnpm start\"><pre>sudo npm install -g electron\ngit clone https://github.com/ngudbhav/Webkiosk-Wrapper.git\n<span class=\"pl-c1\">cd</span> Webkiosk-Wrapper\nnpm install\nnpm start</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-do-rate-and-give-feedback\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/#do-rate-and-give-feedback\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Do rate and give Feedback!</h1>\n<p dir=\"auto\">P.S. This app saves the credentials and all of the users data in System's %APPDATA% directory. NOTHING is collected by me.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-webkiosk-wrapper\" class=\"anchor\" aria-hidden=\"true\" href=\"#webkiosk-wrapper\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Webkiosk-Wrapper</h1>\n<p dir=\"auto\"><a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/b0e09c8b844d6a2535f21675ef1c32de3fcf989f031df32e3cdb7b923999a6cb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656c656173652d312e302e322d677265656e2e737667\" alt=\"Release\" data-canonical-src=\"https://img.shields.io/badge/Release-1.0.2-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/blob/master/package.json\"><img src=\"https://camo.githubusercontent.com/935855ed3634cc2843bc84aef6bb02c1e353104c323d713d830b7bf403524525/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f6e677564626861762f5765626b696f736b2d577261707065722e737667\" alt=\"Dependencies\" data-canonical-src=\"https://img.shields.io/david/ngudbhav/Webkiosk-Wrapper.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/ed72ec191680db4b77fe255b55d8c4ec30c3525f27ed8f41ab6540d17bb2c119/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6e677564626861762f5765626b696f736b2d577261707065722f746f74616c2e737667\" alt=\"Downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/ngudbhav/Webkiosk-Wrapper/total.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/e23a65131b7cb6882edbf56fe276eceb3a65b8b5a8eaf088152b96a7ebd52f76/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f6e677564626861762f5765626b696f736b2d577261707065722e737667\" alt=\"Last-Release\" data-canonical-src=\"https://img.shields.io/github/release-date/ngudbhav/Webkiosk-Wrapper.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ngudbhav/Webkiosk-Wrapper/releases\"><img src=\"https://camo.githubusercontent.com/e4b994bc4cfcca65db4386c8f2113de103c8cfe140f694be557ed19865f21d05/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d77696e25323025374325323064656225323025374325323072706d2d677265656e2e737667\" alt=\"Platforms\" data-canonical-src=\"https://img.shields.io/badge/platform-win%20%7C%20deb%20%7C%20rpm-green.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">This software is made for students of Jaypee Institute of Information Technology(JIIT). The software is made to ease the process of browsing <a href=\"https://webkiosk.jiit.ac.in\" rel=\"nofollow\">https://webkiosk.jiit.ac.in</a>. Webkiosk is a one-stop portal where every student gets his academic/personal records including but not limited to grades, attendance and marks.</p>\n<h1 dir=\"auto\"><a id=\"user-content-important\" class=\"anchor\" aria-hidden=\"true\" href=\"#important\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Important</h1>\n<p dir=\"auto\">Please do not enter invalid credentials 3 times or more. This may lock down your account.</p>\n<h1 dir=\"auto\"><a id=\"user-content-installing-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#installing-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing The App</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"Setup(64).exe => Full Windows install for 64-bit PCs\nSetup(32).exe => Full Windows install for 32-bit PCs\nPortable(64).exe => Unzip and run the exe (64-bit).\nPortable(32).exe => Unzip and run the exe (32-bit).\nSetup.deb => Installable on Debian distributions (Ubuntu, Kali, etc.)\nSetup.rpm => Installable on Red Hat distributions (Fedora, etc.) \"><pre>Setup(64).exe =<span class=\"pl-k\">></span> Full Windows install <span class=\"pl-k\">for</span> 64-bit PCs\nSetup(32).exe =<span class=\"pl-k\">></span> Full Windows install <span class=\"pl-k\">for</span> 32-bit PCs\nPortable(64).exe =<span class=\"pl-k\">></span> Unzip and run the exe (64-bit).\nPortable(32).exe =<span class=\"pl-k\">></span> Unzip and run the exe (32-bit).\nSetup.deb =<span class=\"pl-k\">></span> Installable on Debian distributions (Ubuntu, Kali, etc.)\nSetup.rpm =<span class=\"pl-k\">></span> Installable on Red Hat distributions (Fedora, etc.) </pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-installing-on-debian\" class=\"anchor\" aria-hidden=\"true\" href=\"#installing-on-debian\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing on debian</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"//Install the software\nsudo dpkg -i setup.deb\n//Fix dependencies if any\nsudo apt-get install -f\"><pre>//Install the software\nsudo dpkg -i setup.deb\n//Fix dependencies <span class=\"pl-k\">if</span> any\nsudo apt-get install -f</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-installing-on-fedora\" class=\"anchor\" aria-hidden=\"true\" href=\"#installing-on-fedora\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installing on fedora</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"//Install the software\nsudo dnf install setup.rpm\"><pre>//Install the software\nsudo dnf install setup.rpm</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-running-on-mac-os\" class=\"anchor\" aria-hidden=\"true\" href=\"#running-on-mac-os\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running on Mac OS</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"//Directly run the software\nDouble click Webkiosk-Wrapper.app inside the extracted directory\"><pre>//Directly run the software\nDouble click Webkiosk-Wrapper.app inside the extracted directory</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-starting-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#starting-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Starting The App</h1>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"sudo npm install -g electron\ngit clone https://github.com/ngudbhav/Webkiosk-Wrapper.git\ncd Webkiosk-Wrapper\nnpm install\nnpm start\"><pre>sudo npm install -g electron\ngit clone https://github.com/ngudbhav/Webkiosk-Wrapper.git\n<span class=\"pl-c1\">cd</span> Webkiosk-Wrapper\nnpm install\nnpm start</pre></div>\n<h1 dir=\"auto\"><a id=\"user-content-do-rate-and-give-feedback\" class=\"anchor\" aria-hidden=\"true\" href=\"#do-rate-and-give-feedback\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Do rate and give Feedback!</h1>\n<p dir=\"auto\">P.S. This app saves the credentials and all of the users data in System's %APPDATA% directory. NOTHING is collected by me.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.570Z" }, "wdos": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-wdos\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Webdeskme/wdOS/releases/blob/master/#wdos\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>wdOS</h1>\n<h3 dir=\"auto\"><a id=\"user-content-webdesktop-wdos-is-the-easy-way-to-make-desktop-apps-with-web-languages-and-nothing-else\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/Webdeskme/wdOS/releases/blob/master/#webdesktop-wdos-is-the-easy-way-to-make-desktop-apps-with-web-languages-and-nothing-else\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WebDesktop (wdOS) is the easy way to make desktop apps with web languages and nothing else!</h3>\n<p dir=\"auto\"><a href=\"https://snapcraft.io/wdos\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b7928e7a2bd959959cc9a3f2854ad112966dc1fbc5fac7cebbef8e868c80d16f/68747470733a2f2f736e617063726166742e696f2f77646f732f62616467652e737667\" alt=\"wdos\" data-canonical-src=\"https://snapcraft.io/wdos/badge.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">WebDesktop OS GUI is the easy way to make desktop apps with web languages and nothing else!</p>\n<p dir=\"auto\">Installing apps is as easy. All you need to do is unzip the app in this folder Documents/wdOS/App/</p>\n<p dir=\"auto\">With WebDesktop you can broadcast a website or files on your local network or over the internet with router configurations. (You may need to play with firewall settings)</p>\n<p dir=\"auto\">WebDesktop even comes with a very basic web browser.(not currently in mac addition)</p>\n<p dir=\"auto\">** Many more update and a marketplace for apps will becoming in the near future!</p>\n<p dir=\"auto\">To build an app:</p>\n<ul dir=\"auto\">\n<li>create a folder with your app title in this directory Documents/wdOS/App/</li>\n<li>add you code with entry point index.html</li>\n<li>add an icon with name ic.png</li>\n<li>add a file called wd.json with contents that look like this\n{\"name\": \"Sample\", \"des\": \"This is a test project!\"}</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-wdos\" class=\"anchor\" aria-hidden=\"true\" href=\"#wdos\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>wdOS</h1>\n<h3 dir=\"auto\"><a id=\"user-content-webdesktop-wdos-is-the-easy-way-to-make-desktop-apps-with-web-languages-and-nothing-else\" class=\"anchor\" aria-hidden=\"true\" href=\"#webdesktop-wdos-is-the-easy-way-to-make-desktop-apps-with-web-languages-and-nothing-else\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WebDesktop (wdOS) is the easy way to make desktop apps with web languages and nothing else!</h3>\n<p dir=\"auto\"><a href=\"https://snapcraft.io/wdos\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b7928e7a2bd959959cc9a3f2854ad112966dc1fbc5fac7cebbef8e868c80d16f/68747470733a2f2f736e617063726166742e696f2f77646f732f62616467652e737667\" alt=\"wdos\" data-canonical-src=\"https://snapcraft.io/wdos/badge.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">WebDesktop OS GUI is the easy way to make desktop apps with web languages and nothing else!</p>\n<p dir=\"auto\">Installing apps is as easy. All you need to do is unzip the app in this folder Documents/wdOS/App/</p>\n<p dir=\"auto\">With WebDesktop you can broadcast a website or files on your local network or over the internet with router configurations. (You may need to play with firewall settings)</p>\n<p dir=\"auto\">WebDesktop even comes with a very basic web browser.(not currently in mac addition)</p>\n<p dir=\"auto\">** Many more update and a marketplace for apps will becoming in the near future!</p>\n<p dir=\"auto\">To build an app:</p>\n<ul dir=\"auto\">\n<li>create a folder with your app title in this directory Documents/wdOS/App/</li>\n<li>add you code with entry point index.html</li>\n<li>add an icon with name ic.png</li>\n<li>add a file called wd.json with contents that look like this\n{\"name\": \"Sample\", \"des\": \"This is a test project!\"}</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.573Z" }, "web-toolbox": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-web-toolbox\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#web-toolbox\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web Toolbox</h1>\n<p dir=\"auto\">Collection of web developer utilities</p>\n<div align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/public/icon-512x512.png\"><img src=\"https://raw.githubusercontent.com/amwebexpert/etoolbox/main/public/icon-512x512.png\" width=\"200\" alt=\"Web Toolbox\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n <div dir=\"auto\">Code author: <a href=\"https://github.com/amwebexpert/etoolbox/blob/main/mailto:amwebexpert@gmail.com\">amwebexpert@gmail.com</a></div>\n <div dir=\"auto\">Icon made by: <a href=\"https://therealjerrylow.com/\" rel=\"nofollow\">Jerry Low</a></div>\n</div>\n<br>\n<div align=\"center\" dir=\"auto\"><strong>Web Toolbox</strong></div>\n<div align=\"center\" dir=\"auto\">Collection of web developer utilities</div>\n<br>\n<div align=\"center\" dir=\"auto\">\n <sub>Powered by <a href=\"https://reactjs.org/docs/create-a-new-react-app.html\" rel=\"nofollow\">Create React App</a>.</sub>\n</div>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<p dir=\"auto\">Some screen captures of the implemented features...</p>\n<div align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/public/screen-captures/JSONFormatter-demo.gif\"><img src=\"https://raw.githubusercontent.com/amwebexpert/etoolbox/main/public/screen-captures/JSONFormatter-demo.gif\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/public/screen-captures/ImageEncoder-demo.gif\"><img src=\"https://raw.githubusercontent.com/amwebexpert/etoolbox/main/public/screen-captures/ImageEncoder-demo.gif\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/public/screen-captures/RegexTester-demo.gif\"><img src=\"https://raw.githubusercontent.com/amwebexpert/etoolbox/main/public/screen-captures/RegexTester-demo.gif\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/public/screen-captures/ImageOCR-demo.gif\"><img src=\"https://raw.githubusercontent.com/amwebexpert/etoolbox/main/public/screen-captures/ImageOCR-demo.gif\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</div>\n<h2 dir=\"auto\"><a id=\"user-content-online-demo\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#online-demo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Online demo</h2>\n<p dir=\"auto\">The app has been deployed and you can test it <a href=\"https://amwebexpert.github.io/etoolbox\" rel=\"nofollow\">right here!</a>. Whenever a feature is only available under <code>Electron</code> the UI element will be disabled or a corresponding popup message will be displayed. But most of the time we will try to make the feature available online.</p>\n<h2 dir=\"auto\"><a id=\"user-content-windows-linux-and-macos-versions\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#windows-linux-and-macos-versions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows, Linux and MacOS versions</h2>\n<p dir=\"auto\">Since most of the features don't need to access desktop capabilities, <code>Electron</code> is actually not absolutely required. However, having a desktop application gives nice things like:</p>\n<ul dir=\"auto\">\n<li>global OS shortcuts</li>\n<li>dedicated OS window</li>\n<li>ability to select exactly where a file will be stored whenever the SPA offers a <code>Save As...</code> button</li>\n<li>etc.</li>\n</ul>\n<p dir=\"auto\">Again feel free to try out the <a href=\"https://amwebexpert.github.io/etoolbox/\" rel=\"nofollow\">online demo</a> before trying to package the <code>Electron</code> app for your platform :-) since you will enjoy:</p>\n<ul dir=\"auto\">\n<li>live updates</li>\n<li>usage as a progressive web app (PWA)</li>\n<li>or just add bookmark(s) to the specific feature(s) of the app you use the most</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-builded-desktop-releases\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#builded-desktop-releases\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Builded desktop releases</h3>\n<p dir=\"auto\">The following installers (may be old release in some cases) are available under <code>releases</code> folder:</p>\n<ul dir=\"auto\">\n<li>Windows: <code>releases/Web Toolbox Setup <version>.exe</code></li>\n<li>Linux: <code>releases/Web Toolbox-<version>.AppImage</code></li>\n<li>MacOS: <code>releases/Web Toolbox-<version>.dmg</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-build-releases-from-source\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#build-releases-from-source\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build releases from source</h3>\n<p dir=\"auto\">To build a desktop version just get the source code and run the following command, which will package the installers for all the platforms:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install -g yarn\nnpm install\nnpm run electron:build:all\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install -g yarn\nnpm install\nnpm run electron:build:all\n</code></pre></div>\n<p dir=\"auto\">This creates the following installers:</p>\n<ul dir=\"auto\">\n<li>Windows: <code>build/Web Toolbox Setup <version>.exe</code></li>\n<li>Linux: <code>build/Web Toolbox-<version>.AppImage</code></li>\n<li>MacOS: <code>build/Web Toolbox-<version>.dmg</code></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-project-detail\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#project-detail\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Project detail</h2>\n<p dir=\"auto\">This project is originaly a fork of <a href=\"https://github.com/yhirose/react-typescript-electron-sample-with-create-react-app-and-electron-builder\">React-TypeScript-<code>Electron</code> sample with Create React App and <code>Electron</code> Builder</a></p>\n<p dir=\"auto\">Also bootstrapped with <a href=\"https://github.com/facebook/create-react-app\">Create React App</a> with <code>--typescript</code> option. On the top of it, the following features have been added with relatively small changes:</p>\n<ul dir=\"auto\">\n<li>TypeScript supports for <code>Electron</code> main process source code</li>\n<li>Hot-reload support for <code>Electron</code> app</li>\n<li><code>Electron</code> Builder support</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-project-directory-structure\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#project-directory-structure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Project directory structure</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"my-app/\n├── package.json\n│\n## render process\n├── tsconfig.json\n├── public/\n├── src/\n│\n## main process\n├── electron/\n│   ├── main.ts\n│   └── tsconfig.json\n│\n## build output\n├── build/\n│   ├── index.html\n│   ├── static/\n│   │ ├── css/\n│   │ └── js/\n│   │\n│   └── electron/\n│      └── main.js\n│\n## distribution packges\n└── dist/\n    ├── mac/\n    │   └── my-app.app\n    └── my-app-0.1.0.dmg\"><pre>my-app/\n├── package.json\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># render process</span>\n├── tsconfig.json\n├── public/\n├── src/\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># main process</span>\n├── electron/\n│   ├── main.ts\n│   └── tsconfig.json\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># build output</span>\n├── build/\n│   ├── index.html\n│   ├── static/\n│   │ ├── css/\n│   │ └── js/\n│   │\n│   └── electron/\n│      └── main.js\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># distribution packges</span>\n└── dist/\n    ├── mac/\n    │   └── my-app.app\n    └── my-app-0.1.0.dmg</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-available-scripts-in-addition-to-the-existing-cra-ones\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#available-scripts-in-addition-to-the-existing-cra-ones\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Available Scripts in addition to the existing CRA ones</h3>\n<h4 dir=\"auto\"><a id=\"user-content-yarn-run-electrondev\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#yarn-run-electrondev\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>yarn run electron:dev</code></h4>\n<p dir=\"auto\">Runs the <code>Electron</code> app in the development mode.</p>\n<p dir=\"auto\">The <code>Electron</code> app will reload if you make edits in the <code>electron</code> directory.<br>\nYou will also see any lint errors in the console.</p>\n<h4 dir=\"auto\"><a id=\"user-content-yarn-run-electronbuild\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#yarn-run-electronbuild\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>yarn run electron:build</code></h4>\n<p dir=\"auto\">Builds the <code>Electron</code> app package for production to the <code>dist</code> folder.</p>\n<p dir=\"auto\">Your <code>Electron</code> app is ready to be distributed!</p>\n<h4 dir=\"auto\"><a id=\"user-content-yarn-run-release\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#yarn-run-release\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>yarn run release</code></h4>\n<p dir=\"auto\">CHANGELOG generation powered by Conventional Commits. Detail here: <a href=\"https://www.npmjs.com/package/standard-version\" rel=\"nofollow\">https://www.npmjs.com/package/standard-version</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-roadmap-of-next-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#roadmap-of-next-features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roadmap (of next features)</h2>\n<ul dir=\"auto\">\n<li>CSV Viewer, see this <a href=\"https://github.com/phaniteja1/react-csv-viewer/blob/master/src/CsvInterface.js\">nice wrapper for displaying CSV data in a formatted table</a></li>\n<li>Code snippets online store with text search capabilities on keywords and programming language type</li>\n<li>Suggests something or add your pull request!</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is licensed under the MIT license. For more information see <code>LICENSE.md</code>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-useful-links\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#useful-links\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Useful links</h2>\n<ul dir=\"auto\">\n<li><a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"178473677\" data-permission-text=\"Title is private\" data-url=\"https://github.com/electron/electron/issues/7300\" data-hovercard-type=\"issue\" data-hovercard-url=\"/electron/electron/issues/7300/hovercard\" href=\"https://github.com/electron/electron/issues/7300\">electron/electron#7300</a></li>\n<li><a href=\"https://askubuntu.com/a/935249/990301\" rel=\"nofollow\">https://askubuntu.com/a/935249/990301</a> (to setup *.AppImage in Ubuntu and make it auto discoverable inside your ~/.local/bin/ folder)</li>\n<li><a href=\"https://stackoverflow.com/questions/41551110/unable-to-override-app-name-on-mac-os-electron-menu\" rel=\"nofollow\">https://stackoverflow.com/questions/41551110/unable-to-override-app-name-on-mac-os-electron-menu</a></li>\n<li><a href=\"https://apple.stackexchange.com/a/385074/364767\" rel=\"nofollow\">https://apple.stackexchange.com/a/385074/364767</a></li>\n<li><a href=\"https://www.electron.build/icons\" rel=\"nofollow\">https://www.electron.build/icons</a></li>\n<li><a href=\"https://cloudconvert.com/png-to-icns\" rel=\"nofollow\">https://cloudconvert.com/png-to-icns</a></li>\n<li><a href=\"https://stackoverflow.com/a/8684009/704681\" rel=\"nofollow\">https://stackoverflow.com/a/8684009/704681</a></li>\n<li><a href=\"https://stackoverflow.com/a/52409047/704681\" rel=\"nofollow\">https://stackoverflow.com/a/52409047/704681</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-react-router-dom\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#react-router-dom\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>react-router-dom</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://medium.com/swlh/defining-nested-routes-with-react-router-8f140e87b360\" rel=\"nofollow\">https://medium.com/swlh/defining-nested-routes-with-react-router-8f140e87b360</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-interesting-posts-this-app-has-been-inspired-by\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#interesting-posts-this-app-has-been-inspired-by\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Interesting posts this app has been inspired by</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://omakoleg.gitlab.io/posts/spa-image-base64-react/\" rel=\"nofollow\">https://omakoleg.gitlab.io/posts/spa-image-base64-react/</a></li>\n<li><a href=\"https://stackoverflow.com/questions/53028778/how-to-show-build-datetime-on-my-react-web-app-using-create-react-app\" rel=\"nofollow\">https://stackoverflow.com/questions/53028778/how-to-show-build-datetime-on-my-react-web-app-using-create-react-app</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-spinner\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#spinner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Spinner</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://www.npmjs.com/package/react-loading-overlay\" rel=\"nofollow\">https://www.npmjs.com/package/react-loading-overlay</a></li>\n<li><a href=\"https://www.npmjs.com/package/react-spinners\" rel=\"nofollow\">https://www.npmjs.com/package/react-spinners</a></li>\n<li><a href=\"https://www.davidhu.io/react-spinners/\" rel=\"nofollow\">https://www.davidhu.io/react-spinners/</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-authors\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/amwebexpert/etoolbox/blob/main/#authors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Authors</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/amwebexpert\">amwebexpert@gmail.com</a></li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-web-toolbox\" class=\"anchor\" aria-hidden=\"true\" href=\"#web-toolbox\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Web Toolbox</h1>\n<p dir=\"auto\">Collection of web developer utilities</p>\n<div align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"public/icon-512x512.png\"><img src=\"public/icon-512x512.png\" width=\"200\" alt=\"Web Toolbox\" style=\"max-width: 100%;\"></a>\n <div dir=\"auto\">Code author: <a href=\"mailto:amwebexpert@gmail.com\">amwebexpert@gmail.com</a></div>\n <div dir=\"auto\">Icon made by: <a href=\"https://therealjerrylow.com/\" rel=\"nofollow\">Jerry Low</a></div>\n</div>\n<br>\n<div align=\"center\" dir=\"auto\"><strong>Web Toolbox</strong></div>\n<div align=\"center\" dir=\"auto\">Collection of web developer utilities</div>\n<br>\n<div align=\"center\" dir=\"auto\">\n <sub>Powered by <a href=\"https://reactjs.org/docs/create-a-new-react-app.html\" rel=\"nofollow\">Create React App</a>.</sub>\n</div>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<p dir=\"auto\">Some screen captures of the implemented features...</p>\n<div align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"public/screen-captures/JSONFormatter-demo.gif\"><img src=\"public/screen-captures/JSONFormatter-demo.gif\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"public/screen-captures/ImageEncoder-demo.gif\"><img src=\"public/screen-captures/ImageEncoder-demo.gif\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"public/screen-captures/RegexTester-demo.gif\"><img src=\"public/screen-captures/RegexTester-demo.gif\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"public/screen-captures/ImageOCR-demo.gif\"><img src=\"public/screen-captures/ImageOCR-demo.gif\" style=\"max-width: 100%;\"></a>\n</div>\n<h2 dir=\"auto\"><a id=\"user-content-online-demo\" class=\"anchor\" aria-hidden=\"true\" href=\"#online-demo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Online demo</h2>\n<p dir=\"auto\">The app has been deployed and you can test it <a href=\"https://amwebexpert.github.io/etoolbox\" rel=\"nofollow\">right here!</a>. Whenever a feature is only available under <code>Electron</code> the UI element will be disabled or a corresponding popup message will be displayed. But most of the time we will try to make the feature available online.</p>\n<h2 dir=\"auto\"><a id=\"user-content-windows-linux-and-macos-versions\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows-linux-and-macos-versions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows, Linux and MacOS versions</h2>\n<p dir=\"auto\">Since most of the features don't need to access desktop capabilities, <code>Electron</code> is actually not absolutely required. However, having a desktop application gives nice things like:</p>\n<ul dir=\"auto\">\n<li>global OS shortcuts</li>\n<li>dedicated OS window</li>\n<li>ability to select exactly where a file will be stored whenever the SPA offers a <code>Save As...</code> button</li>\n<li>etc.</li>\n</ul>\n<p dir=\"auto\">Again feel free to try out the <a href=\"https://amwebexpert.github.io/etoolbox/\" rel=\"nofollow\">online demo</a> before trying to package the <code>Electron</code> app for your platform :-) since you will enjoy:</p>\n<ul dir=\"auto\">\n<li>live updates</li>\n<li>usage as a progressive web app (PWA)</li>\n<li>or just add bookmark(s) to the specific feature(s) of the app you use the most</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-builded-desktop-releases\" class=\"anchor\" aria-hidden=\"true\" href=\"#builded-desktop-releases\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Builded desktop releases</h3>\n<p dir=\"auto\">The following installers (may be old release in some cases) are available under <code>releases</code> folder:</p>\n<ul dir=\"auto\">\n<li>Windows: <code>releases/Web Toolbox Setup <version>.exe</code></li>\n<li>Linux: <code>releases/Web Toolbox-<version>.AppImage</code></li>\n<li>MacOS: <code>releases/Web Toolbox-<version>.dmg</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-build-releases-from-source\" class=\"anchor\" aria-hidden=\"true\" href=\"#build-releases-from-source\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build releases from source</h3>\n<p dir=\"auto\">To build a desktop version just get the source code and run the following command, which will package the installers for all the platforms:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install -g yarn\nnpm install\nnpm run electron:build:all\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install -g yarn\nnpm install\nnpm run electron:build:all\n</code></pre></div>\n<p dir=\"auto\">This creates the following installers:</p>\n<ul dir=\"auto\">\n<li>Windows: <code>build/Web Toolbox Setup <version>.exe</code></li>\n<li>Linux: <code>build/Web Toolbox-<version>.AppImage</code></li>\n<li>MacOS: <code>build/Web Toolbox-<version>.dmg</code></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-project-detail\" class=\"anchor\" aria-hidden=\"true\" href=\"#project-detail\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Project detail</h2>\n<p dir=\"auto\">This project is originaly a fork of <a href=\"https://github.com/yhirose/react-typescript-electron-sample-with-create-react-app-and-electron-builder\">React-TypeScript-<code>Electron</code> sample with Create React App and <code>Electron</code> Builder</a></p>\n<p dir=\"auto\">Also bootstrapped with <a href=\"https://github.com/facebook/create-react-app\">Create React App</a> with <code>--typescript</code> option. On the top of it, the following features have been added with relatively small changes:</p>\n<ul dir=\"auto\">\n<li>TypeScript supports for <code>Electron</code> main process source code</li>\n<li>Hot-reload support for <code>Electron</code> app</li>\n<li><code>Electron</code> Builder support</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-project-directory-structure\" class=\"anchor\" aria-hidden=\"true\" href=\"#project-directory-structure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Project directory structure</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"my-app/\n├── package.json\n│\n## render process\n├── tsconfig.json\n├── public/\n├── src/\n│\n## main process\n├── electron/\n│   ├── main.ts\n│   └── tsconfig.json\n│\n## build output\n├── build/\n│   ├── index.html\n│   ├── static/\n│   │ ├── css/\n│   │ └── js/\n│   │\n│   └── electron/\n│      └── main.js\n│\n## distribution packges\n└── dist/\n    ├── mac/\n    │   └── my-app.app\n    └── my-app-0.1.0.dmg\"><pre>my-app/\n├── package.json\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># render process</span>\n├── tsconfig.json\n├── public/\n├── src/\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># main process</span>\n├── electron/\n│   ├── main.ts\n│   └── tsconfig.json\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># build output</span>\n├── build/\n│   ├── index.html\n│   ├── static/\n│   │ ├── css/\n│   │ └── js/\n│   │\n│   └── electron/\n│      └── main.js\n│\n<span class=\"pl-c\"><span class=\"pl-c\">#</span># distribution packges</span>\n└── dist/\n    ├── mac/\n    │   └── my-app.app\n    └── my-app-0.1.0.dmg</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-available-scripts-in-addition-to-the-existing-cra-ones\" class=\"anchor\" aria-hidden=\"true\" href=\"#available-scripts-in-addition-to-the-existing-cra-ones\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Available Scripts in addition to the existing CRA ones</h3>\n<h4 dir=\"auto\"><a id=\"user-content-yarn-run-electrondev\" class=\"anchor\" aria-hidden=\"true\" href=\"#yarn-run-electrondev\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>yarn run electron:dev</code></h4>\n<p dir=\"auto\">Runs the <code>Electron</code> app in the development mode.</p>\n<p dir=\"auto\">The <code>Electron</code> app will reload if you make edits in the <code>electron</code> directory.<br>\nYou will also see any lint errors in the console.</p>\n<h4 dir=\"auto\"><a id=\"user-content-yarn-run-electronbuild\" class=\"anchor\" aria-hidden=\"true\" href=\"#yarn-run-electronbuild\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>yarn run electron:build</code></h4>\n<p dir=\"auto\">Builds the <code>Electron</code> app package for production to the <code>dist</code> folder.</p>\n<p dir=\"auto\">Your <code>Electron</code> app is ready to be distributed!</p>\n<h4 dir=\"auto\"><a id=\"user-content-yarn-run-release\" class=\"anchor\" aria-hidden=\"true\" href=\"#yarn-run-release\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>yarn run release</code></h4>\n<p dir=\"auto\">CHANGELOG generation powered by Conventional Commits. Detail here: <a href=\"https://www.npmjs.com/package/standard-version\" rel=\"nofollow\">https://www.npmjs.com/package/standard-version</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-roadmap-of-next-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#roadmap-of-next-features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roadmap (of next features)</h2>\n<ul dir=\"auto\">\n<li>CSV Viewer, see this <a href=\"https://github.com/phaniteja1/react-csv-viewer/blob/master/src/CsvInterface.js\">nice wrapper for displaying CSV data in a formatted table</a></li>\n<li>Code snippets online store with text search capabilities on keywords and programming language type</li>\n<li>Suggests something or add your pull request!</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is licensed under the MIT license. For more information see <code>LICENSE.md</code>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-useful-links\" class=\"anchor\" aria-hidden=\"true\" href=\"#useful-links\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Useful links</h2>\n<ul dir=\"auto\">\n<li><a class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"178473677\" data-permission-text=\"Title is private\" data-url=\"https://github.com/electron/electron/issues/7300\" data-hovercard-type=\"issue\" data-hovercard-url=\"/electron/electron/issues/7300/hovercard\" href=\"https://github.com/electron/electron/issues/7300\">electron/electron#7300</a></li>\n<li><a href=\"https://askubuntu.com/a/935249/990301\" rel=\"nofollow\">https://askubuntu.com/a/935249/990301</a> (to setup *.AppImage in Ubuntu and make it auto discoverable inside your ~/.local/bin/ folder)</li>\n<li><a href=\"https://stackoverflow.com/questions/41551110/unable-to-override-app-name-on-mac-os-electron-menu\" rel=\"nofollow\">https://stackoverflow.com/questions/41551110/unable-to-override-app-name-on-mac-os-electron-menu</a></li>\n<li><a href=\"https://apple.stackexchange.com/a/385074/364767\" rel=\"nofollow\">https://apple.stackexchange.com/a/385074/364767</a></li>\n<li><a href=\"https://www.electron.build/icons\" rel=\"nofollow\">https://www.electron.build/icons</a></li>\n<li><a href=\"https://cloudconvert.com/png-to-icns\" rel=\"nofollow\">https://cloudconvert.com/png-to-icns</a></li>\n<li><a href=\"https://stackoverflow.com/a/8684009/704681\" rel=\"nofollow\">https://stackoverflow.com/a/8684009/704681</a></li>\n<li><a href=\"https://stackoverflow.com/a/52409047/704681\" rel=\"nofollow\">https://stackoverflow.com/a/52409047/704681</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-react-router-dom\" class=\"anchor\" aria-hidden=\"true\" href=\"#react-router-dom\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>react-router-dom</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://medium.com/swlh/defining-nested-routes-with-react-router-8f140e87b360\" rel=\"nofollow\">https://medium.com/swlh/defining-nested-routes-with-react-router-8f140e87b360</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-interesting-posts-this-app-has-been-inspired-by\" class=\"anchor\" aria-hidden=\"true\" href=\"#interesting-posts-this-app-has-been-inspired-by\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Interesting posts this app has been inspired by</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://omakoleg.gitlab.io/posts/spa-image-base64-react/\" rel=\"nofollow\">https://omakoleg.gitlab.io/posts/spa-image-base64-react/</a></li>\n<li><a href=\"https://stackoverflow.com/questions/53028778/how-to-show-build-datetime-on-my-react-web-app-using-create-react-app\" rel=\"nofollow\">https://stackoverflow.com/questions/53028778/how-to-show-build-datetime-on-my-react-web-app-using-create-react-app</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-spinner\" class=\"anchor\" aria-hidden=\"true\" href=\"#spinner\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Spinner</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://www.npmjs.com/package/react-loading-overlay\" rel=\"nofollow\">https://www.npmjs.com/package/react-loading-overlay</a></li>\n<li><a href=\"https://www.npmjs.com/package/react-spinners\" rel=\"nofollow\">https://www.npmjs.com/package/react-spinners</a></li>\n<li><a href=\"https://www.davidhu.io/react-spinners/\" rel=\"nofollow\">https://www.davidhu.io/react-spinners/</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-authors\" class=\"anchor\" aria-hidden=\"true\" href=\"#authors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Authors</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/amwebexpert\">amwebexpert@gmail.com</a></li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.592Z" }, "webkitty": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/banner.svg\"><img src=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/banner.svg\" alt=\"Logo\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-webkitty\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yikuansun/webkitty/blob/master/#webkitty\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WebKitty</h1>\n<p dir=\"auto\"><strong>Web Development shouldn't be hard.</strong></p>\n<p dir=\"auto\">That's why I built WebKitty, an all-in one tool for editing, testing and debugging HTML projects.</p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yikuansun/webkitty/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Customizable theme</li>\n<li>Integrated preview</li>\n<li>Google Chrome-style debugging tools</li>\n<li>Emulation of different hosts and browsers</li>\n<li>Fast file navigation</li>\n<li>Cross platform</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yikuansun/webkitty/blob/master/#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/screenshots/Screen%20Shot%202022-04-01%20at%204.40.07%20PM.png\"><img src=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/screenshots/Screen%20Shot%202022-04-01%20at%204.40.07%20PM.png\" alt=\"App Screenshot\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/banner.svg\"><img src=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/banner.svg\" alt=\"Logo\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-webkitty\" class=\"anchor\" aria-hidden=\"true\" href=\"#webkitty\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WebKitty</h1>\n<p dir=\"auto\"><strong>Web Development shouldn't be hard.</strong></p>\n<p dir=\"auto\">That's why I built WebKitty, an all-in one tool for editing, testing and debugging HTML projects.</p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Customizable theme</li>\n<li>Integrated preview</li>\n<li>Google Chrome-style debugging tools</li>\n<li>Emulation of different hosts and browsers</li>\n<li>Fast file navigation</li>\n<li>Cross platform</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/screenshots/Screen%20Shot%202022-04-01%20at%204.40.07%20PM.png\"><img src=\"https://raw.githubusercontent.com/yikuansun/webkitty/master/screenshots/Screen%20Shot%202022-04-01%20at%204.40.07%20PM.png\" alt=\"App Screenshot\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.599Z" }, "whale": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-whale-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/1000ch/whale/blob/main/#whale-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Whale <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/1000ch/whale/workflows/test/badge.svg\"><img src=\"https://github.com/1000ch/whale/workflows/test/badge.svg\" alt=\"GitHub Actions Status\" style=\"max-width: 100%;\"></a></h1>\n<p dir=\"auto\">Unofficial <a href=\"https://trello.com/\" rel=\"nofollow\">Trello</a> app <g-emoji class=\"g-emoji\" alias=\"whale\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f433.png\">🐳</g-emoji></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/1000ch/whale/blob/main/demo.png\"><img src=\"https://raw.githubusercontent.com/1000ch/whale/main/demo.png\" alt=\"Whale demo\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/1000ch/whale/blob/main/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<p dir=\"auto\"><a href=\"https://www.electronjs.org/docs/tutorial/support#macos\" rel=\"nofollow\">macOS 10.10 (Yosemite)</a>+, <a href=\"https://www.electronjs.org/docs/tutorial/support#windows\" rel=\"nofollow\">Windows</a> and <a href=\"https://www.electronjs.org/docs/tutorial/support#linux\" rel=\"nofollow\">Linux</a> are supported.</p>\n<h3 dir=\"auto\"><a id=\"user-content-macos\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/1000ch/whale/blob/main/#macos\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>macOS</h3>\n<p dir=\"auto\"><a href=\"https://github.com/1000ch/whale/releases\">Download</a> and extract <code>.zip</code>, and move <code>Whale.app</code> to <code>/Applications</code>.</p>\n<p dir=\"auto\">Alternatively, if you use <a href=\"http://brew.sh/\" rel=\"nofollow\">Homebrew</a>, you can install via:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install --cask whale\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install --cask whale\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/1000ch/whale/blob/main/#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\"><a href=\"https://github.com/1000ch/whale/releases\">Download</a> and extract <code>.zip</code>, and move <code>Whale.exe</code> to some location.</p>\n<h3 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/1000ch/whale/blob/main/#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h3>\n<p dir=\"auto\"><a href=\"https://github.com/1000ch/whale/releases\">Download</a> and extract <code>.zip</code>, and move <code>Whale</code> to some location.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/1000ch/whale/blob/main/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://1000ch.mit-license.org\" rel=\"nofollow\">MIT</a> © <a href=\"https://github.com/1000ch\">Shogo Sensui</a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-whale-\" class=\"anchor\" aria-hidden=\"true\" href=\"#whale-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Whale <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/1000ch/whale/workflows/test/badge.svg\"><img src=\"https://github.com/1000ch/whale/workflows/test/badge.svg\" alt=\"GitHub Actions Status\" style=\"max-width: 100%;\"></a></h1>\n<p dir=\"auto\">Unofficial <a href=\"https://trello.com/\" rel=\"nofollow\">Trello</a> app <g-emoji class=\"g-emoji\" alias=\"whale\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f433.png\">🐳</g-emoji></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"demo.png\"><img src=\"demo.png\" alt=\"Whale demo\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<p dir=\"auto\"><a href=\"https://www.electronjs.org/docs/tutorial/support#macos\" rel=\"nofollow\">macOS 10.10 (Yosemite)</a>+, <a href=\"https://www.electronjs.org/docs/tutorial/support#windows\" rel=\"nofollow\">Windows</a> and <a href=\"https://www.electronjs.org/docs/tutorial/support#linux\" rel=\"nofollow\">Linux</a> are supported.</p>\n<h3 dir=\"auto\"><a id=\"user-content-macos\" class=\"anchor\" aria-hidden=\"true\" href=\"#macos\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>macOS</h3>\n<p dir=\"auto\"><a href=\"https://github.com/1000ch/whale/releases\">Download</a> and extract <code>.zip</code>, and move <code>Whale.app</code> to <code>/Applications</code>.</p>\n<p dir=\"auto\">Alternatively, if you use <a href=\"http://brew.sh/\" rel=\"nofollow\">Homebrew</a>, you can install via:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install --cask whale\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install --cask whale\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\"><a href=\"https://github.com/1000ch/whale/releases\">Download</a> and extract <code>.zip</code>, and move <code>Whale.exe</code> to some location.</p>\n<h3 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h3>\n<p dir=\"auto\"><a href=\"https://github.com/1000ch/whale/releases\">Download</a> and extract <code>.zip</code>, and move <code>Whale</code> to some location.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"https://1000ch.mit-license.org\" rel=\"nofollow\">MIT</a> © <a href=\"https://github.com/1000ch\">Shogo Sensui</a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.776Z" }, "weltenschaft": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/assets/icons/logo.png\"><img src=\"https://raw.githubusercontent.com/HoubkneghteS/Weltenschaft/master/assets/icons/logo.png\" alt=\"Weltenschaft\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n<a href=\"https://badge.fury.io/gh/HoubkneghteS%2FWeltenschaft\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/99345dae7094c44ddb5950cdf61724e461652302dfd32edda0c88ea5af8a2e73/68747470733a2f2f62616467652e667572792e696f2f67682f486f75626b6e65676874655325324657656c74656e7363686166742e737667\" alt=\"GitHub version\" data-canonical-src=\"https://badge.fury.io/gh/HoubkneghteS%2FWeltenschaft.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Weltenschaft is an Open-Source JS terrain generator, running on Electron.js as a standalone program</p>\n<p dir=\"auto\">For more info and documentation, visit the <a href=\"https://github.com/HoubkneghteS/Weltenschaft/wiki\">Weltenschaft Wiki</a>!</p>\n<p dir=\"auto\"><a href=\"https://github.com/HoubkneghteS/Weltenschaft\"><img alt=\"Github\" src=\"https://camo.githubusercontent.com/eff93eb40f9cb9691cdbedba4158b8acca6e4a33d723234f5135cea107381a05/68747470733a2f2f63646e342e69636f6e66696e6465722e636f6d2f646174612f69636f6e732f69636f6e73696d706c652d6c6f676f74797065732f3531322f6769746875622d3531322e706e67\" title=\"Github\" width=\"40px\" data-canonical-src=\"https://cdn4.iconfinder.com/data/icons/iconsimple-logotypes/512/github-512.png\" style=\"max-width: 100%;\"></a>\n<a href=\"https://discord.gg/trJnfSQ\" rel=\"nofollow\"><img alt=\"Discord Server\" src=\"https://camo.githubusercontent.com/10a2618a2f8e08523c46fbf8b0d0e2f1bd66689c5af8c0b80dd93e4525d0e40f/68747470733a2f2f646973636f72646170702e636f6d2f6173736574732f30376463613830613130326434313439653937333664346231363263666636662e69636f\" title=\"Discord Server\" width=\"40px\" data-canonical-src=\"https://discordapp.com/assets/07dca80a102d4149e9736d4b162cff6f.ico\" style=\"max-width: 100%;\"></a></p>\n<hr>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/assets/Screenshots/Screenshot1.png\"><img src=\"https://github.com/HoubkneghteS/Weltenschaft/raw/master/assets/Screenshots/Screenshot1.png\" alt=\"Weltenschaft 0.4.1\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Random perlin-based elevation</li>\n<li>13 Humidity- and elevation-based biomes</li>\n<li>Saving & Loading worlds</li>\n<li>4 Draw modes</li>\n<li>English, German, and Spanish support</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-roadmap\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/#roadmap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roadmap</h2>\n<ul dir=\"auto\">\n<li>Cities, rivers, and other structures (in progress)</li>\n<li>Temperature</li>\n<li>Basic in-browser implementation</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-dependencies\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/#dependencies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Dependencies</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/electron/electron\">Electron.js</a> (App framework)</li>\n<li><a href=\"https://github.com/ScottyFillups/tumult\">Tumult</a> (Noise library)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This code is released under the MIT License</p>\n<p dir=\"auto\">© Adam Simons</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"assets/icons/logo.png\"><img src=\"assets/icons/logo.png\" alt=\"Weltenschaft\" style=\"max-width: 100%;\"></a>\n<a href=\"https://badge.fury.io/gh/HoubkneghteS%2FWeltenschaft\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/99345dae7094c44ddb5950cdf61724e461652302dfd32edda0c88ea5af8a2e73/68747470733a2f2f62616467652e667572792e696f2f67682f486f75626b6e65676874655325324657656c74656e7363686166742e737667\" alt=\"GitHub version\" data-canonical-src=\"https://badge.fury.io/gh/HoubkneghteS%2FWeltenschaft.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Weltenschaft is an Open-Source JS terrain generator, running on Electron.js as a standalone program</p>\n<p dir=\"auto\">For more info and documentation, visit the <a href=\"https://github.com/HoubkneghteS/Weltenschaft/wiki\">Weltenschaft Wiki</a>!</p>\n<p dir=\"auto\"><a href=\"https://github.com/HoubkneghteS/Weltenschaft\"><img alt=\"Github\" src=\"https://camo.githubusercontent.com/eff93eb40f9cb9691cdbedba4158b8acca6e4a33d723234f5135cea107381a05/68747470733a2f2f63646e342e69636f6e66696e6465722e636f6d2f646174612f69636f6e732f69636f6e73696d706c652d6c6f676f74797065732f3531322f6769746875622d3531322e706e67\" title=\"Github\" width=\"40px\" data-canonical-src=\"https://cdn4.iconfinder.com/data/icons/iconsimple-logotypes/512/github-512.png\" style=\"max-width: 100%;\"></a>\n<a href=\"https://discord.gg/trJnfSQ\" rel=\"nofollow\"><img alt=\"Discord Server\" src=\"https://camo.githubusercontent.com/10a2618a2f8e08523c46fbf8b0d0e2f1bd66689c5af8c0b80dd93e4525d0e40f/68747470733a2f2f646973636f72646170702e636f6d2f6173736574732f30376463613830613130326434313439653937333664346231363263666636662e69636f\" title=\"Discord Server\" width=\"40px\" data-canonical-src=\"https://discordapp.com/assets/07dca80a102d4149e9736d4b162cff6f.ico\" style=\"max-width: 100%;\"></a></p>\n<hr>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/HoubkneghteS/Weltenschaft/blob/master/assets/Screenshots/Screenshot1.png\"><img src=\"https://github.com/HoubkneghteS/Weltenschaft/raw/master/assets/Screenshots/Screenshot1.png\" alt=\"Weltenschaft 0.4.1\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Random perlin-based elevation</li>\n<li>13 Humidity- and elevation-based biomes</li>\n<li>Saving & Loading worlds</li>\n<li>4 Draw modes</li>\n<li>English, German, and Spanish support</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-roadmap\" class=\"anchor\" aria-hidden=\"true\" href=\"#roadmap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roadmap</h2>\n<ul dir=\"auto\">\n<li>Cities, rivers, and other structures (in progress)</li>\n<li>Temperature</li>\n<li>Basic in-browser implementation</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-dependencies\" class=\"anchor\" aria-hidden=\"true\" href=\"#dependencies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Dependencies</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/electron/electron\">Electron.js</a> (App framework)</li>\n<li><a href=\"https://github.com/ScottyFillups/tumult\">Tumult</a> (Noise library)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This code is released under the MIT License</p>\n<p dir=\"auto\">© Adam Simons</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.777Z" }, "webtorrent": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content---------------webtorrent-desktop----\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#--------------webtorrent-desktop----\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <br>\n <a href=\"https://webtorrent.io\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/e259515889cb66a74c645cfdb09029e92e4da796fc3a9718e02748bd03209c62/68747470733a2f2f776562746f7272656e742e696f2f696d672f576562546f7272656e742e706e67\" alt=\"WebTorrent\" width=\"200\" data-canonical-src=\"https://webtorrent.io/img/WebTorrent.png\" style=\"max-width: 100%;\">\n </a>\n <br>\n WebTorrent Desktop\n <br>\n <br>\n</h1>\n<h4 align=\"center\" dir=\"auto\"><a id=\"user-content-the-streaming-torrent-app-for-mac-windows-and-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#the-streaming-torrent-app-for-mac-windows-and-linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>The streaming torrent app. For Mac, Windows, and Linux.</h4>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://discord.gg/cnXkm4Z\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/ca87fe78386dcc0ba169b9b2675c33e0906c560e54c15be7f52a88fcba9f39e4/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f363132353735313131373138383935363136\" alt=\"discord\" data-canonical-src=\"https://img.shields.io/discord/612575111718895616\" style=\"max-width: 100%;\"></a>\n <a href=\"https://travis-ci.org/webtorrent/webtorrent-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/0c2d66f1edb087c4ee2a7d70cdd91c5fd28f5f83753eca72445098cb702a190d/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f776562746f7272656e742f776562746f7272656e742d6465736b746f702f6d61737465722e737667\" alt=\"travis\" data-canonical-src=\"https://img.shields.io/travis/webtorrent/webtorrent-desktop/master.svg\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/webtorrent/webtorrent-desktop/releases\"><img src=\"https://camo.githubusercontent.com/649a2eadfda710baabad5820b4399bf6f51d8df844d03a5a737ebad45e98ec09/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f776562746f7272656e742f776562746f7272656e742d6465736b746f702e737667\" alt=\"github release version\" data-canonical-src=\"https://img.shields.io/github/release/webtorrent/webtorrent-desktop.svg\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/webtorrent/webtorrent-desktop/releases\"><img src=\"https://camo.githubusercontent.com/0402d3489760489d7ed07d92c0bcf1e119e6197c73116278c3db239d6a1c5090/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f776562746f7272656e742f776562746f7272656e742d6465736b746f702f746f74616c2e737667\" alt=\"github release downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/webtorrent/webtorrent-desktop/total.svg\" style=\"max-width: 100%;\"></a>\n <a href=\"https://standardjs.com\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bde227e3207c7143032c0feb73889ffbda8eb1ef234b820b915ccaf74f9c66d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d7374616e646172642d627269676874677265656e2e737667\" alt=\"Standard - JavaScript Style Guide\" data-canonical-src=\"https://img.shields.io/badge/code_style-standard-brightgreen.svg\" style=\"max-width: 100%;\"></a>\n</p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<h3 dir=\"auto\"><a id=\"user-content-recommended-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#recommended-install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Recommended Install</h3>\n<p dir=\"auto\">Download the latest version of WebTorrent Desktop from\n<a href=\"https://webtorrent.io/desktop/\" rel=\"nofollow\">the official website</a>:</p>\n<h3 dir=\"auto\"><a id=\"user-content--download-webtorrent-desktop-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#-download-webtorrent-desktop-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://webtorrent.io/desktop/\" rel=\"nofollow\"><g-emoji class=\"g-emoji\" alias=\"sparkles\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2728.png\">✨</g-emoji> Download WebTorrent Desktop <g-emoji class=\"g-emoji\" alias=\"sparkles\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2728.png\">✨</g-emoji></a></h3>\n<h3 dir=\"auto\"><a id=\"user-content-advanced-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#advanced-install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Advanced Install</h3>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Download specific installer files from the <a href=\"https://github.com/webtorrent/webtorrent-desktop/releases\">GitHub releases</a> page.</p>\n</li>\n<li>\n<p dir=\"auto\">Use <a href=\"https://github.com/caskroom/homebrew-cask\">Homebrew-Cask</a> to install from the command line:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ brew install --cask webtorrent\"><pre class=\"notranslate\"><code class=\"notranslate\">$ brew install --cask webtorrent\n</code></pre></div>\n</li>\n<li>\n<p dir=\"auto\">Try the (unstable) development version by cloning the Git repository. See the\n<a href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#how-to-contribute\">\"How to Contribute\"</a> instructions.</p>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d903f184388654fa7f564bffb9e79451768085d5278a56f75cbb64063fc065bf/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d706c61796572332e706e67\"><img src=\"https://camo.githubusercontent.com/d903f184388654fa7f564bffb9e79451768085d5278a56f75cbb64063fc065bf/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d706c61796572332e706e67\" alt=\"screenshot\" align=\"center\" data-canonical-src=\"https://webtorrent.io/img/screenshot-player3.png\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/73fcf363d3a4c882121f4b301dafe98d294f7ffa0b8834941e71b72656226dd0/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d6d61696e2e706e67\"><img src=\"https://camo.githubusercontent.com/73fcf363d3a4c882121f4b301dafe98d294f7ffa0b8834941e71b72656226dd0/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d6d61696e2e706e67\" width=\"612\" height=\"749\" alt=\"screenshot\" align=\"center\" data-canonical-src=\"https://webtorrent.io/img/screenshot-main.png\" style=\"max-width: 100%;\"></a>\n</p>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#how-to-contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How to Contribute</h2>\n<h3 dir=\"auto\"><a id=\"user-content-get-the-code\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#get-the-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Get the code</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/webtorrent/webtorrent-desktop.git\n$ cd webtorrent-desktop\n$ npm install\"><pre class=\"notranslate\"><code class=\"notranslate\">$ git clone https://github.com/webtorrent/webtorrent-desktop.git\n$ cd webtorrent-desktop\n$ npm install\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#run-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run the app</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm start\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-watch-the-code\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#watch-the-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Watch the code</h3>\n<p dir=\"auto\">Restart the app automatically every time code changes. Useful during development.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run watch\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run watch\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run-linters\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#run-linters\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run linters</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm test\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm test\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run-integration-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#run-integration-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run integration tests</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run test-integration\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run test-integration\n</code></pre></div>\n<p dir=\"auto\">The integration tests use Spectron and Tape. They click through the app, taking screenshots and\ncomparing each one to a reference. Why screenshots?</p>\n<ul dir=\"auto\">\n<li>Ad-hoc checking makes the tests a lot more work to write</li>\n<li>Even diffing the whole HTML is not as thorough as screenshot diffing. For example, it wouldn't\ncatch an bug where hitting ESC from a video doesn't correctly restore window size.</li>\n<li>Chrome's own integration tests use screenshot diffing iirc</li>\n<li>Small UI changes will break a few tests, but the fix is as easy as deleting the offending\nscreenshots and running the tests, which will recreate them with the new look.</li>\n<li>The resulting Github PR will then show, pixel by pixel, the exact UI changes that were made! See\n<a href=\"https://github.com/blog/817-behold-image-view-modes\">https://github.com/blog/817-behold-image-view-modes</a></li>\n</ul>\n<p dir=\"auto\">For MacOS, you'll need a Retina screen for the integration tests to pass. Your screen should have\nthe same resolution as a 2018 MacBook Pro 13\".</p>\n<p dir=\"auto\">For Windows, you'll need Windows 10 with a 1366x768 screen.</p>\n<p dir=\"auto\">When running integration tests, keep the mouse on the edge of the screen and don't touch the mouse\nor keyboard while the tests are running.</p>\n<h3 dir=\"auto\"><a id=\"user-content-package-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#package-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Package the app</h3>\n<p dir=\"auto\">Builds app binaries for Mac, Linux, and Windows.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run package\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run package\n</code></pre></div>\n<p dir=\"auto\">To build for one platform:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run package -- [platform] [options]\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run package -- [platform] [options]\n</code></pre></div>\n<p dir=\"auto\">Where <code>[platform]</code> is <code>darwin</code>, <code>linux</code>, <code>win32</code>, or <code>all</code> (default).</p>\n<p dir=\"auto\">The following optional arguments are available:</p>\n<ul dir=\"auto\">\n<li><code>--sign</code> - Sign the application (Mac, Windows)</li>\n<li><code>--package=[type]</code> - Package single output type.\n<ul dir=\"auto\">\n<li><code>deb</code> - Debian package</li>\n<li><code>rpm</code> - RedHat package</li>\n<li><code>zip</code> - Linux zip file</li>\n<li><code>dmg</code> - Mac disk image</li>\n<li><code>exe</code> - Windows installer</li>\n<li><code>portable</code> - Windows portable app</li>\n<li><code>all</code> - All platforms (default)</li>\n</ul>\n</li>\n</ul>\n<p dir=\"auto\">Note: Even with the <code>--package</code> option, the auto-update files (.nupkg for Windows,\n-darwin.zip for Mac) will always be produced.</p>\n<h4 dir=\"auto\"><a id=\"user-content-windows-build-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#windows-build-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows build notes</h4>\n<p dir=\"auto\">The Windows app can be packaged from <strong>any</strong> platform.</p>\n<p dir=\"auto\">Note: Windows code signing only works from <strong>Windows</strong>, for now.</p>\n<p dir=\"auto\">Note: To package the Windows app from non-Windows platforms,\n<a href=\"https://www.winehq.org/\" rel=\"nofollow\">Wine</a> and <a href=\"https://www.mono-project.com/\" rel=\"nofollow\">Mono</a> need\nto be installed. For example on Mac, first install\n<a href=\"http://www.xquartz.org/\" rel=\"nofollow\">XQuartz</a>, then run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ brew install wine mono\"><pre class=\"notranslate\"><code class=\"notranslate\">$ brew install wine mono\n</code></pre></div>\n<p dir=\"auto\">(Requires the <a href=\"http://brew.sh/\" rel=\"nofollow\">Homebrew</a> package manager.)</p>\n<h4 dir=\"auto\"><a id=\"user-content-mac-build-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#mac-build-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Mac build notes</h4>\n<p dir=\"auto\">The Mac app can only be packaged from <strong>macOS</strong>.</p>\n<h4 dir=\"auto\"><a id=\"user-content-linux-build-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#linux-build-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux build notes</h4>\n<p dir=\"auto\">The Linux app can be packaged from <strong>any</strong> platform.</p>\n<p dir=\"auto\">If packaging from Mac, install system dependencies with Homebrew by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run install-system-deps\"><pre class=\"notranslate\"><code class=\"notranslate\">npm run install-system-deps\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-recommended-readings-to-start-working-in-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#recommended-readings-to-start-working-in-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Recommended readings to start working in the app</h4>\n<p dir=\"auto\">Electron (Framework to make native apps for Windows, OSX and Linux in Javascript):\n<a href=\"https://electronjs.org/docs/tutorial/quick-start\" rel=\"nofollow\">https://electronjs.org/docs/tutorial/quick-start</a></p>\n<p dir=\"auto\">React.js (Framework to work with Frontend UI):\n<a href=\"https://reactjs.org/docs/getting-started.html\" rel=\"nofollow\">https://reactjs.org/docs/getting-started.html</a></p>\n<p dir=\"auto\">Material UI (React components that implement Google's Material Design.):\n<a href=\"https://material-ui.com/getting-started/installation\" rel=\"nofollow\">https://material-ui.com/getting-started/installation</a></p>\n<h3 dir=\"auto\"><a id=\"user-content-privacy\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#privacy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Privacy</h3>\n<p dir=\"auto\">WebTorrent Desktop collects some basic usage stats to help us make the app better.\nFor example, we track how well the play button works. How often does it succeed?\nTime out? Show a missing codec error?</p>\n<p dir=\"auto\">The app never sends any personally identifying information, nor does it track which\ntorrents you add.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/webtorrent/webtorrent-desktop/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">MIT. Copyright (c) <a href=\"https://webtorrent.io\" rel=\"nofollow\">WebTorrent, LLC</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content---------------webtorrent-desktop----\" class=\"anchor\" aria-hidden=\"true\" href=\"#--------------webtorrent-desktop----\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <br>\n <a href=\"https://webtorrent.io\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/e259515889cb66a74c645cfdb09029e92e4da796fc3a9718e02748bd03209c62/68747470733a2f2f776562746f7272656e742e696f2f696d672f576562546f7272656e742e706e67\" alt=\"WebTorrent\" width=\"200\" data-canonical-src=\"https://webtorrent.io/img/WebTorrent.png\" style=\"max-width: 100%;\">\n </a>\n <br>\n WebTorrent Desktop\n <br>\n <br>\n</h1>\n<h4 align=\"center\" dir=\"auto\"><a id=\"user-content-the-streaming-torrent-app-for-mac-windows-and-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#the-streaming-torrent-app-for-mac-windows-and-linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>The streaming torrent app. For Mac, Windows, and Linux.</h4>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://discord.gg/cnXkm4Z\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/ca87fe78386dcc0ba169b9b2675c33e0906c560e54c15be7f52a88fcba9f39e4/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f363132353735313131373138383935363136\" alt=\"discord\" data-canonical-src=\"https://img.shields.io/discord/612575111718895616\" style=\"max-width: 100%;\"></a>\n <a href=\"https://travis-ci.org/webtorrent/webtorrent-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/0c2d66f1edb087c4ee2a7d70cdd91c5fd28f5f83753eca72445098cb702a190d/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f776562746f7272656e742f776562746f7272656e742d6465736b746f702f6d61737465722e737667\" alt=\"travis\" data-canonical-src=\"https://img.shields.io/travis/webtorrent/webtorrent-desktop/master.svg\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/webtorrent/webtorrent-desktop/releases\"><img src=\"https://camo.githubusercontent.com/649a2eadfda710baabad5820b4399bf6f51d8df844d03a5a737ebad45e98ec09/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f776562746f7272656e742f776562746f7272656e742d6465736b746f702e737667\" alt=\"github release version\" data-canonical-src=\"https://img.shields.io/github/release/webtorrent/webtorrent-desktop.svg\" style=\"max-width: 100%;\"></a>\n <a href=\"https://github.com/webtorrent/webtorrent-desktop/releases\"><img src=\"https://camo.githubusercontent.com/0402d3489760489d7ed07d92c0bcf1e119e6197c73116278c3db239d6a1c5090/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f776562746f7272656e742f776562746f7272656e742d6465736b746f702f746f74616c2e737667\" alt=\"github release downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/webtorrent/webtorrent-desktop/total.svg\" style=\"max-width: 100%;\"></a>\n <a href=\"https://standardjs.com\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bde227e3207c7143032c0feb73889ffbda8eb1ef234b820b915ccaf74f9c66d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d7374616e646172642d627269676874677265656e2e737667\" alt=\"Standard - JavaScript Style Guide\" data-canonical-src=\"https://img.shields.io/badge/code_style-standard-brightgreen.svg\" style=\"max-width: 100%;\"></a>\n</p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<h3 dir=\"auto\"><a id=\"user-content-recommended-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#recommended-install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Recommended Install</h3>\n<p dir=\"auto\">Download the latest version of WebTorrent Desktop from\n<a href=\"https://webtorrent.io/desktop/\" rel=\"nofollow\">the official website</a>:</p>\n<h3 dir=\"auto\"><a id=\"user-content--download-webtorrent-desktop-\" class=\"anchor\" aria-hidden=\"true\" href=\"#-download-webtorrent-desktop-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://webtorrent.io/desktop/\" rel=\"nofollow\"><g-emoji class=\"g-emoji\" alias=\"sparkles\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2728.png\">✨</g-emoji> Download WebTorrent Desktop <g-emoji class=\"g-emoji\" alias=\"sparkles\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2728.png\">✨</g-emoji></a></h3>\n<h3 dir=\"auto\"><a id=\"user-content-advanced-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#advanced-install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Advanced Install</h3>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">Download specific installer files from the <a href=\"https://github.com/webtorrent/webtorrent-desktop/releases\">GitHub releases</a> page.</p>\n</li>\n<li>\n<p dir=\"auto\">Use <a href=\"https://github.com/caskroom/homebrew-cask\">Homebrew-Cask</a> to install from the command line:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ brew install --cask webtorrent\"><pre class=\"notranslate\"><code class=\"notranslate\">$ brew install --cask webtorrent\n</code></pre></div>\n</li>\n<li>\n<p dir=\"auto\">Try the (unstable) development version by cloning the Git repository. See the\n<a href=\"#how-to-contribute\">\"How to Contribute\"</a> instructions.</p>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h2>\n<p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d903f184388654fa7f564bffb9e79451768085d5278a56f75cbb64063fc065bf/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d706c61796572332e706e67\"><img src=\"https://camo.githubusercontent.com/d903f184388654fa7f564bffb9e79451768085d5278a56f75cbb64063fc065bf/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d706c61796572332e706e67\" alt=\"screenshot\" align=\"center\" data-canonical-src=\"https://webtorrent.io/img/screenshot-player3.png\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/73fcf363d3a4c882121f4b301dafe98d294f7ffa0b8834941e71b72656226dd0/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d6d61696e2e706e67\"><img src=\"https://camo.githubusercontent.com/73fcf363d3a4c882121f4b301dafe98d294f7ffa0b8834941e71b72656226dd0/68747470733a2f2f776562746f7272656e742e696f2f696d672f73637265656e73686f742d6d61696e2e706e67\" width=\"612\" height=\"749\" alt=\"screenshot\" align=\"center\" data-canonical-src=\"https://webtorrent.io/img/screenshot-main.png\" style=\"max-width: 100%;\"></a>\n</p>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"#how-to-contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How to Contribute</h2>\n<h3 dir=\"auto\"><a id=\"user-content-get-the-code\" class=\"anchor\" aria-hidden=\"true\" href=\"#get-the-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Get the code</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/webtorrent/webtorrent-desktop.git\n$ cd webtorrent-desktop\n$ npm install\"><pre class=\"notranslate\"><code class=\"notranslate\">$ git clone https://github.com/webtorrent/webtorrent-desktop.git\n$ cd webtorrent-desktop\n$ npm install\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run the app</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm start\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-watch-the-code\" class=\"anchor\" aria-hidden=\"true\" href=\"#watch-the-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Watch the code</h3>\n<p dir=\"auto\">Restart the app automatically every time code changes. Useful during development.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run watch\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run watch\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run-linters\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-linters\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run linters</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm test\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm test\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-run-integration-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"#run-integration-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Run integration tests</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run test-integration\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run test-integration\n</code></pre></div>\n<p dir=\"auto\">The integration tests use Spectron and Tape. They click through the app, taking screenshots and\ncomparing each one to a reference. Why screenshots?</p>\n<ul dir=\"auto\">\n<li>Ad-hoc checking makes the tests a lot more work to write</li>\n<li>Even diffing the whole HTML is not as thorough as screenshot diffing. For example, it wouldn't\ncatch an bug where hitting ESC from a video doesn't correctly restore window size.</li>\n<li>Chrome's own integration tests use screenshot diffing iirc</li>\n<li>Small UI changes will break a few tests, but the fix is as easy as deleting the offending\nscreenshots and running the tests, which will recreate them with the new look.</li>\n<li>The resulting Github PR will then show, pixel by pixel, the exact UI changes that were made! See\n<a href=\"https://github.com/blog/817-behold-image-view-modes\">https://github.com/blog/817-behold-image-view-modes</a></li>\n</ul>\n<p dir=\"auto\">For MacOS, you'll need a Retina screen for the integration tests to pass. Your screen should have\nthe same resolution as a 2018 MacBook Pro 13\".</p>\n<p dir=\"auto\">For Windows, you'll need Windows 10 with a 1366x768 screen.</p>\n<p dir=\"auto\">When running integration tests, keep the mouse on the edge of the screen and don't touch the mouse\nor keyboard while the tests are running.</p>\n<h3 dir=\"auto\"><a id=\"user-content-package-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#package-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Package the app</h3>\n<p dir=\"auto\">Builds app binaries for Mac, Linux, and Windows.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run package\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run package\n</code></pre></div>\n<p dir=\"auto\">To build for one platform:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm run package -- [platform] [options]\"><pre class=\"notranslate\"><code class=\"notranslate\">$ npm run package -- [platform] [options]\n</code></pre></div>\n<p dir=\"auto\">Where <code>[platform]</code> is <code>darwin</code>, <code>linux</code>, <code>win32</code>, or <code>all</code> (default).</p>\n<p dir=\"auto\">The following optional arguments are available:</p>\n<ul dir=\"auto\">\n<li><code>--sign</code> - Sign the application (Mac, Windows)</li>\n<li><code>--package=[type]</code> - Package single output type.\n<ul dir=\"auto\">\n<li><code>deb</code> - Debian package</li>\n<li><code>rpm</code> - RedHat package</li>\n<li><code>zip</code> - Linux zip file</li>\n<li><code>dmg</code> - Mac disk image</li>\n<li><code>exe</code> - Windows installer</li>\n<li><code>portable</code> - Windows portable app</li>\n<li><code>all</code> - All platforms (default)</li>\n</ul>\n</li>\n</ul>\n<p dir=\"auto\">Note: Even with the <code>--package</code> option, the auto-update files (.nupkg for Windows,\n-darwin.zip for Mac) will always be produced.</p>\n<h4 dir=\"auto\"><a id=\"user-content-windows-build-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows-build-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows build notes</h4>\n<p dir=\"auto\">The Windows app can be packaged from <strong>any</strong> platform.</p>\n<p dir=\"auto\">Note: Windows code signing only works from <strong>Windows</strong>, for now.</p>\n<p dir=\"auto\">Note: To package the Windows app from non-Windows platforms,\n<a href=\"https://www.winehq.org/\" rel=\"nofollow\">Wine</a> and <a href=\"https://www.mono-project.com/\" rel=\"nofollow\">Mono</a> need\nto be installed. For example on Mac, first install\n<a href=\"http://www.xquartz.org/\" rel=\"nofollow\">XQuartz</a>, then run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ brew install wine mono\"><pre class=\"notranslate\"><code class=\"notranslate\">$ brew install wine mono\n</code></pre></div>\n<p dir=\"auto\">(Requires the <a href=\"http://brew.sh/\" rel=\"nofollow\">Homebrew</a> package manager.)</p>\n<h4 dir=\"auto\"><a id=\"user-content-mac-build-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"#mac-build-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Mac build notes</h4>\n<p dir=\"auto\">The Mac app can only be packaged from <strong>macOS</strong>.</p>\n<h4 dir=\"auto\"><a id=\"user-content-linux-build-notes\" class=\"anchor\" aria-hidden=\"true\" href=\"#linux-build-notes\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux build notes</h4>\n<p dir=\"auto\">The Linux app can be packaged from <strong>any</strong> platform.</p>\n<p dir=\"auto\">If packaging from Mac, install system dependencies with Homebrew by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm run install-system-deps\"><pre class=\"notranslate\"><code class=\"notranslate\">npm run install-system-deps\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-recommended-readings-to-start-working-in-the-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#recommended-readings-to-start-working-in-the-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Recommended readings to start working in the app</h4>\n<p dir=\"auto\">Electron (Framework to make native apps for Windows, OSX and Linux in Javascript):\n<a href=\"https://electronjs.org/docs/tutorial/quick-start\" rel=\"nofollow\">https://electronjs.org/docs/tutorial/quick-start</a></p>\n<p dir=\"auto\">React.js (Framework to work with Frontend UI):\n<a href=\"https://reactjs.org/docs/getting-started.html\" rel=\"nofollow\">https://reactjs.org/docs/getting-started.html</a></p>\n<p dir=\"auto\">Material UI (React components that implement Google's Material Design.):\n<a href=\"https://material-ui.com/getting-started/installation\" rel=\"nofollow\">https://material-ui.com/getting-started/installation</a></p>\n<h3 dir=\"auto\"><a id=\"user-content-privacy\" class=\"anchor\" aria-hidden=\"true\" href=\"#privacy\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Privacy</h3>\n<p dir=\"auto\">WebTorrent Desktop collects some basic usage stats to help us make the app better.\nFor example, we track how well the play button works. How often does it succeed?\nTime out? Show a missing codec error?</p>\n<p dir=\"auto\">The app never sends any personally identifying information, nor does it track which\ntorrents you add.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">MIT. Copyright (c) <a href=\"https://webtorrent.io\" rel=\"nofollow\">WebTorrent, LLC</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.819Z" }, "weflow": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-项目迁移说明\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#项目迁移说明\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>项目迁移说明</h2>\n<p dir=\"auto\">由于业务调整,本项目不再更新,感谢大家一直以来的支持。<br>\n后续需求会合并到 <a href=\"https://github.com/Tencent/feflow\">Feflow</a> 项目进行开发迭代,请移步:</p>\n<ul dir=\"auto\">\n<li>Github: <a href=\"https://github.com/Tencent/feflow\">https://github.com/Tencent/feflow</a></li>\n<li>官网:<a href=\"https://feflowjs.com/\" rel=\"nofollow\">https://feflowjs.com/</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-weflow-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#weflow-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WeFlow <a href=\"https://github.com/Tencent/WeFlow/\" title=\"Version Number\"><img src=\"https://camo.githubusercontent.com/f01c8d33d8e9a61ddb6e63e46ce59202ab1ff3ad8af9ef0615254e5fe4f4b23a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f54656e63656e742f5765466c6f772e7376673f7374796c653d666c6174\" alt=\"Version Number\" data-canonical-src=\"https://img.shields.io/github/release/Tencent/WeFlow.svg?style=flat\" style=\"max-width: 100%;\"></a></h1>\n<blockquote>\n<p dir=\"auto\">一个基于 <a href=\"https://github.com/weixin/tmt-workflow\">tmt-workflow</a> 前端工作流的开发工具。 (已支持最新版 Node.js)<br>\n官网:<a href=\"http://weflow.io/\" rel=\"nofollow\">https://weflow.io/</a><br>\n目前已支持了:微信游戏、微信·朋友圈广告、微信·城市服务等项目的 <a href=\"http://ad.weixin.qq.com/learn/2-3-3--%E5%89%8D%E7%AB%AF%E5%B7%A5%E4%BD%9C%E6%B5%81\" rel=\"nofollow\">第三方合作团队</a> 的前端构建工作,如果你更习惯<code>命令行</code>操作,可以直接使用 WeFlow 的核心:基于 Gulp 开发的 <a href=\"https://github.com/weixin/tmt-workflow\">tmt-workflow</a> :)</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-下载安装\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#下载安装\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>下载&安装</h2>\n<p dir=\"auto\"><a href=\"https://github.com/weixin/WeFlow/releases\">Github Release 下载</a> 或 <a href=\"https://weflow.io/#download\" rel=\"nofollow\">官网高速下载分流</a><br>\n(支持 macOS / Windows / Linux 操作系统)</p>\n<h2 dir=\"auto\"><a id=\"user-content-界面预览\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#界面预览\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>界面预览</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d61da1a4b070ec4bfe44539ac6645e3823367c27fcaea6965c568f53a34aa02d/687474703a2f2f7777322e73696e61696d672e636e2f6c617267652f36343465616330306a7731663468656463707176736a32316530316665646e712e6a7067\"><img src=\"https://camo.githubusercontent.com/d61da1a4b070ec4bfe44539ac6645e3823367c27fcaea6965c568f53a34aa02d/687474703a2f2f7777322e73696e61696d672e636e2f6c617267652f36343465616330306a7731663468656463707176736a32316530316665646e712e6a7067\" alt=\"Screenshot\" data-canonical-src=\"http://ww2.sinaimg.cn/large/644eac00jw1f4hedcpqvsj21e01fednq.jpg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-开发环境\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#开发环境\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>开发环境</h2>\n<ul dir=\"auto\">\n<li>Electron 版本:v0.37.8</li>\n<li>Node 版本 :v5.10.0</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-更新日志\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#更新日志\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>更新日志</h2>\n<p dir=\"auto\"><a href=\"https://github.com/Tencent/WeFlow/releases\">本期更新 v1.3.3</a></p>\n<ul dir=\"auto\">\n<li>增加 ES6 编译支持</li>\n<li>增加 SVG 支持</li>\n<li>修复合并JS Bug <a href=\"https://github.com/Tencent/WeFlow/issues/104\" data-hovercard-type=\"issue\" data-hovercard-url=\"/Tencent/WeFlow/issues/104/hovercard\">#104</a></li>\n<li>服务器配置增加端口配置</li>\n<li>优化编译成功时的提示,通过 Notifications 向用户发送通知</li>\n<li>优化开发者工具弹出方式</li>\n</ul>\n<p dir=\"auto\"><a href=\"https://github.com/Tencent/WeFlow/releases\">近期更新 v.1.3.2</a></p>\n<ul dir=\"auto\">\n<li>更新 example</li>\n<li>支持 windows 32 位系统</li>\n<li>支持 .svg 格式</li>\n<li>增加 调试模式(菜单->窗口->调试模式)</li>\n<li>增加自动编译</li>\n<li>修复一些 bug(不写项目名时无限弹窗、欢迎页时就拖放项目报错等)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-参与贡献\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#参与贡献\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>参与贡献</h2>\n<p dir=\"auto\">如果你有 <code>Bug反馈</code> 或 <code>功能建议</code>,请创建 <a href=\"https://github.com/weixin/WeFlow/issues\">Issue</a> 或发送 <a href=\"https://github.com/weixin/WeFlow/pulls\">Pull Request</a>,非常感谢。</p>\n<p dir=\"auto\"><a href=\"https://opensource.tencent.com/contribution\" rel=\"nofollow\">腾讯开源激励计划</a> 鼓励开发者的参与和贡献,期待你的加入。</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/weixin/WeFlow/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">所有代码采用 <a href=\"http://opensource.org/licenses/MIT\" rel=\"nofollow\">MIT License</a> 开源,可根据自身团队和项目特点 <code>fork</code> 进行定制。<br>\nSketch 设计稿源文件可在 <a href=\"https://dribbble.com/hzlzh/projects/380016-WeFlow\" rel=\"nofollow\">Dribbble</a> 获取</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-项目迁移说明\" class=\"anchor\" aria-hidden=\"true\" href=\"#项目迁移说明\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>项目迁移说明</h2>\n<p dir=\"auto\">由于业务调整,本项目不再更新,感谢大家一直以来的支持。<br>\n后续需求会合并到 <a href=\"https://github.com/Tencent/feflow\">Feflow</a> 项目进行开发迭代,请移步:</p>\n<ul dir=\"auto\">\n<li>Github: <a href=\"https://github.com/Tencent/feflow\">https://github.com/Tencent/feflow</a></li>\n<li>官网:<a href=\"https://feflowjs.com/\" rel=\"nofollow\">https://feflowjs.com/</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-weflow-\" class=\"anchor\" aria-hidden=\"true\" href=\"#weflow-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WeFlow <a href=\"https://github.com/Tencent/WeFlow/\" title=\"Version Number\"><img src=\"https://camo.githubusercontent.com/f01c8d33d8e9a61ddb6e63e46ce59202ab1ff3ad8af9ef0615254e5fe4f4b23a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f54656e63656e742f5765466c6f772e7376673f7374796c653d666c6174\" alt=\"Version Number\" data-canonical-src=\"https://img.shields.io/github/release/Tencent/WeFlow.svg?style=flat\" style=\"max-width: 100%;\"></a></h1>\n<blockquote>\n<p dir=\"auto\">一个基于 <a href=\"https://github.com/weixin/tmt-workflow\">tmt-workflow</a> 前端工作流的开发工具。 (已支持最新版 Node.js)<br>\n官网:<a href=\"http://weflow.io/\" rel=\"nofollow\">https://weflow.io/</a><br>\n目前已支持了:微信游戏、微信·朋友圈广告、微信·城市服务等项目的 <a href=\"http://ad.weixin.qq.com/learn/2-3-3--%E5%89%8D%E7%AB%AF%E5%B7%A5%E4%BD%9C%E6%B5%81\" rel=\"nofollow\">第三方合作团队</a> 的前端构建工作,如果你更习惯<code>命令行</code>操作,可以直接使用 WeFlow 的核心:基于 Gulp 开发的 <a href=\"https://github.com/weixin/tmt-workflow\">tmt-workflow</a> :)</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-下载安装\" class=\"anchor\" aria-hidden=\"true\" href=\"#下载安装\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>下载&安装</h2>\n<p dir=\"auto\"><a href=\"https://github.com/weixin/WeFlow/releases\">Github Release 下载</a> 或 <a href=\"https://weflow.io/#download\" rel=\"nofollow\">官网高速下载分流</a><br>\n(支持 macOS / Windows / Linux 操作系统)</p>\n<h2 dir=\"auto\"><a id=\"user-content-界面预览\" class=\"anchor\" aria-hidden=\"true\" href=\"#界面预览\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>界面预览</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d61da1a4b070ec4bfe44539ac6645e3823367c27fcaea6965c568f53a34aa02d/687474703a2f2f7777322e73696e61696d672e636e2f6c617267652f36343465616330306a7731663468656463707176736a32316530316665646e712e6a7067\"><img src=\"https://camo.githubusercontent.com/d61da1a4b070ec4bfe44539ac6645e3823367c27fcaea6965c568f53a34aa02d/687474703a2f2f7777322e73696e61696d672e636e2f6c617267652f36343465616330306a7731663468656463707176736a32316530316665646e712e6a7067\" alt=\"Screenshot\" data-canonical-src=\"http://ww2.sinaimg.cn/large/644eac00jw1f4hedcpqvsj21e01fednq.jpg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-开发环境\" class=\"anchor\" aria-hidden=\"true\" href=\"#开发环境\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>开发环境</h2>\n<ul dir=\"auto\">\n<li>Electron 版本:v0.37.8</li>\n<li>Node 版本 :v5.10.0</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-更新日志\" class=\"anchor\" aria-hidden=\"true\" href=\"#更新日志\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>更新日志</h2>\n<p dir=\"auto\"><a href=\"https://github.com/Tencent/WeFlow/releases\">本期更新 v1.3.3</a></p>\n<ul dir=\"auto\">\n<li>增加 ES6 编译支持</li>\n<li>增加 SVG 支持</li>\n<li>修复合并JS Bug <a href=\"https://github.com/Tencent/WeFlow/issues/104\" data-hovercard-type=\"issue\" data-hovercard-url=\"/Tencent/WeFlow/issues/104/hovercard\">#104</a></li>\n<li>服务器配置增加端口配置</li>\n<li>优化编译成功时的提示,通过 Notifications 向用户发送通知</li>\n<li>优化开发者工具弹出方式</li>\n</ul>\n<p dir=\"auto\"><a href=\"https://github.com/Tencent/WeFlow/releases\">近期更新 v.1.3.2</a></p>\n<ul dir=\"auto\">\n<li>更新 example</li>\n<li>支持 windows 32 位系统</li>\n<li>支持 .svg 格式</li>\n<li>增加 调试模式(菜单->窗口->调试模式)</li>\n<li>增加自动编译</li>\n<li>修复一些 bug(不写项目名时无限弹窗、欢迎页时就拖放项目报错等)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-参与贡献\" class=\"anchor\" aria-hidden=\"true\" href=\"#参与贡献\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>参与贡献</h2>\n<p dir=\"auto\">如果你有 <code>Bug反馈</code> 或 <code>功能建议</code>,请创建 <a href=\"https://github.com/weixin/WeFlow/issues\">Issue</a> 或发送 <a href=\"https://github.com/weixin/WeFlow/pulls\">Pull Request</a>,非常感谢。</p>\n<p dir=\"auto\"><a href=\"https://opensource.tencent.com/contribution\" rel=\"nofollow\">腾讯开源激励计划</a> 鼓励开发者的参与和贡献,期待你的加入。</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">所有代码采用 <a href=\"http://opensource.org/licenses/MIT\" rel=\"nofollow\">MIT License</a> 开源,可根据自身团队和项目特点 <code>fork</code> 进行定制。<br>\nSketch 设计稿源文件可在 <a href=\"https://dribbble.com/hzlzh/projects/380016-WeFlow\" rel=\"nofollow\">Dribbble</a> 获取</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:14.977Z" }, "wnr": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/59b788320697740846511e9058595865870e37b8ae3db872f139b5431bdde7a2/68747470733a2f2f692e6c6f6c692e6e65742f323032302f30312f32372f624f764c6c596d5437645146526a722e706e67\"><img src=\"https://camo.githubusercontent.com/59b788320697740846511e9058595865870e37b8ae3db872f139b5431bdde7a2/68747470733a2f2f692e6c6f6c692e6e65742f323032302f30312f32372f624f764c6c596d5437645146526a722e706e67\" width=\"64px\" data-canonical-src=\"https://i.loli.net/2020/01/27/bOvLlYmT7dQFRjr.png\" style=\"max-width: 100%;\"></a></p>\n<h2 align=\"center\" dir=\"auto\"><a id=\"user-content-wnr\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#wnr\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>wnr</h2>\n<p align=\"center\" dir=\"auto\">\n <b>A timer app with strong expansibility for computers</b> | <a href=\"https://getwnr.com/\" rel=\"nofollow\">Website</a> | <a href=\"https://getwnr.com/zh/\" rel=\"nofollow\">网站中文页面</a>\n</p>\n<p align=\"center\" dir=\"auto\">\n Download <i>(Windows & macOS)</i>: <a href=\"https://github.com/RoderickQiu/wnr/releases\">GitHub Release</a> | <a href=\"https://www.softpedia.com/get/Desktop-Enhancements/Clocks-Time-Management/wnr.shtml\" rel=\"nofollow\">Softpedia\n (Windows)</a> | <a href=\"https://pan.baidu.com/s/1PDpnEkf-zKQKQIhUTO0ubQ\" rel=\"nofollow\">百度网盘</a>(swh3) | <a href=\"https://scris.lanzoui.com/b01n0tb4j\" rel=\"nofollow\">蓝奏云高速下载</a>\n</p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/RoderickQiu/wnr/blob/master/README.md\">English README</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/README.zh-CN.md\">简体中文简介</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/README.zh-TW.md\">正體中文簡介</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/DEVELOPMENT_GUIDE.md\">Development Guide</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/mailto:scrisqiu@hotmail.com\">Contact Me</a>\n</p>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">I appreciate it if you can help contribute.</p>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">If you have any feature requests / bugs to report, feel free\nto <a href=\"https://github.com/RoderickQiu/wnr/issues/new\">have a issue</a>.</p>\n</li>\n<li>\n<p dir=\"auto\">If you have done something brilliant, then <a href=\"https://github.com/RoderickQiu/wnr/pulls\">go for a pull request</a>.</p>\n</li>\n<li>\n<p dir=\"auto\">If you want to add a new language to\nwnr, <a href=\"https://github.com/RoderickQiu/wnr/blob/master/locales/README.md\">see this guide first</a>.</p>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-build\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#how-to-build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How to Build</h2>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn # install deps\n\nyarn start # launch the app\n\nyarn dir # build executable only\n\nyarn nsis # windows nsis installer\n\nyarn nsis-ia32 # windows nsis installer (x86/ia32)\n\nyarn 7zip # windows 7zip protable version\n\nyarn 7zip-ia32 # windows 7zip portable version (x86/ia32)\n\nyarn mac # macos\n\nyarn linux # linux\n\nyarn appimage # linux AppImage\"><pre>yarn <span class=\"pl-c\"><span class=\"pl-c\">#</span> install deps</span>\n\nyarn start <span class=\"pl-c\"><span class=\"pl-c\">#</span> launch the app</span>\n\nyarn dir <span class=\"pl-c\"><span class=\"pl-c\">#</span> build executable only</span>\n\nyarn nsis <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows nsis installer</span>\n\nyarn nsis-ia32 <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows nsis installer (x86/ia32)</span>\n\nyarn 7zip <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows 7zip protable version</span>\n\nyarn 7zip-ia32 <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows 7zip portable version (x86/ia32)</span>\n\nyarn mac <span class=\"pl-c\"><span class=\"pl-c\">#</span> macos</span>\n\nyarn linux <span class=\"pl-c\"><span class=\"pl-c\">#</span> linux</span>\n\nyarn appimage <span class=\"pl-c\"><span class=\"pl-c\">#</span> linux AppImage</span></pre></div>\n<p dir=\"auto\">For more info about development, go\nto <strong><a href=\"https://github.com/RoderickQiu/wnr/blob/master/DEVELOPMENT_GUIDE.md\">DEVELOPMENT_GUIDE</a></strong>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-copyright--credit\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#copyright--credit\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Copyright & Credit</h2>\n<p dir=\"auto\">Copyright (c) 2019-2022 <strong><a href=\"https://r-q.name\" rel=\"nofollow\">Roderick Qiu</a></strong> and other contributors. All rights reserved.</p>\n<p dir=\"auto\">Licensed under the <strong><a href=\"https://github.com/RoderickQiu/wnr/blob/master/LICENSE\">MPL 2.0 License</a></strong>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-packages-using\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#packages-using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packages Using</h3>\n<h4 dir=\"auto\"><a id=\"user-content-main-program\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#main-program\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Main Program</h4>\n<p dir=\"auto\">For the full text of licenses, go and see <a href=\"https://github.com/RoderickQiu/wnr/blob/master/NOTICE.md\">this file</a>, which\nis also included in every copy of wnr.</p>\n<ul dir=\"auto\">\n<li>node-shi, <a href=\"https://www.npmjs.com/package/node-shi\" rel=\"nofollow\"><strong>my own project</strong></a> following MIT License.</li>\n<li>cmd-or-ctrl, <a href=\"https://www.npmjs.com/package/cmd-or-ctrl\" rel=\"nofollow\"><strong>another project of mine</strong></a> following MIT License.</li>\n<li>node-auto-launch, Teamwork, MIT License.</li>\n<li>compare-version, kevva, MIT License.</li>\n<li>electron-store, sindresorhus, MIT License.</li>\n<li>i18n-node, mashpie, MIT License.</li>\n<li>crypto-js, brix, MIT License.</li>\n<li>copy-to-clipboard, sudodoki, MIT License.</li>\n<li>request, request, Apache-2.0 License.</li>\n<li>winreg, fresc81, BSD 2-Clause License.</li>\n<li><strong>electron, electron, MIT License</strong>.</li>\n<li>electron-builder, electron-userland, MIT License.</li>\n<li>jquery, jquery, MIT License.</li>\n<li>bootstrap, twbs, MIT License.</li>\n<li>iconfont, ALIMAMA MUX, for license go to <a href=\"https://www.iconfont.cn/\" rel=\"nofollow\">the site</a>.</li>\n<li>dotenv, motdotla, BSD-2-Clause License.</li>\n<li>electron-debug, sindresorhus, MIT License.</li>\n<li>node-fetch, node-fetch, MIT License.</li>\n<li>node-notifier, mikaelbr, MIT License.</li>\n<li>popper.js, popperjs, MIT License.</li>\n<li>schart.js, lin-xin, MIT License.</li>\n<li>cross-env, kentcdodds, MIT License.</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-environment-using\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/RoderickQiu/wnr/blob/master/#environment-using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Environment Using</h3>\n<ul dir=\"auto\">\n<li><strong>node, nodejs, <a href=\"https://github.com/nodejs/node/blob/master/LICENSE\">License</a></strong>.</li>\n<li>NSIS, Nullsoft, zlib/libpng License.</li>\n<li>WebStorm, JetBrains, <a href=\"https://www.jetbrains.com/legal/#licensing\" rel=\"nofollow\">License</a>.</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/59b788320697740846511e9058595865870e37b8ae3db872f139b5431bdde7a2/68747470733a2f2f692e6c6f6c692e6e65742f323032302f30312f32372f624f764c6c596d5437645146526a722e706e67\"><img src=\"https://camo.githubusercontent.com/59b788320697740846511e9058595865870e37b8ae3db872f139b5431bdde7a2/68747470733a2f2f692e6c6f6c692e6e65742f323032302f30312f32372f624f764c6c596d5437645146526a722e706e67\" width=\"64px\" data-canonical-src=\"https://i.loli.net/2020/01/27/bOvLlYmT7dQFRjr.png\" style=\"max-width: 100%;\"></a></p>\n<h2 align=\"center\" dir=\"auto\"><a id=\"user-content-wnr\" class=\"anchor\" aria-hidden=\"true\" href=\"#wnr\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>wnr</h2>\n<p align=\"center\" dir=\"auto\">\n <b>A timer app with strong expansibility for computers</b> | <a href=\"https://getwnr.com/\" rel=\"nofollow\">Website</a> | <a href=\"https://getwnr.com/zh/\" rel=\"nofollow\">网站中文页面</a>\n</p>\n<p align=\"center\" dir=\"auto\">\n Download <i>(Windows & macOS)</i>: <a href=\"https://github.com/RoderickQiu/wnr/releases\">GitHub Release</a> | <a href=\"https://www.softpedia.com/get/Desktop-Enhancements/Clocks-Time-Management/wnr.shtml\" rel=\"nofollow\">Softpedia\n (Windows)</a> | <a href=\"https://pan.baidu.com/s/1PDpnEkf-zKQKQIhUTO0ubQ\" rel=\"nofollow\">百度网盘</a>(swh3) | <a href=\"https://scris.lanzoui.com/b01n0tb4j\" rel=\"nofollow\">蓝奏云高速下载</a>\n</p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://github.com/RoderickQiu/wnr/blob/master/README.md\">English README</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/README.zh-CN.md\">简体中文简介</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/README.zh-TW.md\">正體中文簡介</a> | <a href=\"https://github.com/RoderickQiu/wnr/blob/master/DEVELOPMENT_GUIDE.md\">Development Guide</a> | <a href=\"mailto:scrisqiu@hotmail.com\">Contact Me</a>\n</p>\n<hr>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">I appreciate it if you can help contribute.</p>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">If you have any feature requests / bugs to report, feel free\nto <a href=\"https://github.com/RoderickQiu/wnr/issues/new\">have a issue</a>.</p>\n</li>\n<li>\n<p dir=\"auto\">If you have done something brilliant, then <a href=\"https://github.com/RoderickQiu/wnr/pulls\">go for a pull request</a>.</p>\n</li>\n<li>\n<p dir=\"auto\">If you want to add a new language to\nwnr, <a href=\"https://github.com/RoderickQiu/wnr/blob/master/locales/README.md\">see this guide first</a>.</p>\n</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-how-to-build\" class=\"anchor\" aria-hidden=\"true\" href=\"#how-to-build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>How to Build</h2>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn # install deps\n\nyarn start # launch the app\n\nyarn dir # build executable only\n\nyarn nsis # windows nsis installer\n\nyarn nsis-ia32 # windows nsis installer (x86/ia32)\n\nyarn 7zip # windows 7zip protable version\n\nyarn 7zip-ia32 # windows 7zip portable version (x86/ia32)\n\nyarn mac # macos\n\nyarn linux # linux\n\nyarn appimage # linux AppImage\"><pre>yarn <span class=\"pl-c\"><span class=\"pl-c\">#</span> install deps</span>\n\nyarn start <span class=\"pl-c\"><span class=\"pl-c\">#</span> launch the app</span>\n\nyarn dir <span class=\"pl-c\"><span class=\"pl-c\">#</span> build executable only</span>\n\nyarn nsis <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows nsis installer</span>\n\nyarn nsis-ia32 <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows nsis installer (x86/ia32)</span>\n\nyarn 7zip <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows 7zip protable version</span>\n\nyarn 7zip-ia32 <span class=\"pl-c\"><span class=\"pl-c\">#</span> windows 7zip portable version (x86/ia32)</span>\n\nyarn mac <span class=\"pl-c\"><span class=\"pl-c\">#</span> macos</span>\n\nyarn linux <span class=\"pl-c\"><span class=\"pl-c\">#</span> linux</span>\n\nyarn appimage <span class=\"pl-c\"><span class=\"pl-c\">#</span> linux AppImage</span></pre></div>\n<p dir=\"auto\">For more info about development, go\nto <strong><a href=\"https://github.com/RoderickQiu/wnr/blob/master/DEVELOPMENT_GUIDE.md\">DEVELOPMENT_GUIDE</a></strong>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-copyright--credit\" class=\"anchor\" aria-hidden=\"true\" href=\"#copyright--credit\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Copyright & Credit</h2>\n<p dir=\"auto\">Copyright (c) 2019-2022 <strong><a href=\"https://r-q.name\" rel=\"nofollow\">Roderick Qiu</a></strong> and other contributors. All rights reserved.</p>\n<p dir=\"auto\">Licensed under the <strong><a href=\"https://github.com/RoderickQiu/wnr/blob/master/LICENSE\">MPL 2.0 License</a></strong>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-packages-using\" class=\"anchor\" aria-hidden=\"true\" href=\"#packages-using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Packages Using</h3>\n<h4 dir=\"auto\"><a id=\"user-content-main-program\" class=\"anchor\" aria-hidden=\"true\" href=\"#main-program\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Main Program</h4>\n<p dir=\"auto\">For the full text of licenses, go and see <a href=\"https://github.com/RoderickQiu/wnr/blob/master/NOTICE.md\">this file</a>, which\nis also included in every copy of wnr.</p>\n<ul dir=\"auto\">\n<li>node-shi, <a href=\"https://www.npmjs.com/package/node-shi\" rel=\"nofollow\"><strong>my own project</strong></a> following MIT License.</li>\n<li>cmd-or-ctrl, <a href=\"https://www.npmjs.com/package/cmd-or-ctrl\" rel=\"nofollow\"><strong>another project of mine</strong></a> following MIT License.</li>\n<li>node-auto-launch, Teamwork, MIT License.</li>\n<li>compare-version, kevva, MIT License.</li>\n<li>electron-store, sindresorhus, MIT License.</li>\n<li>i18n-node, mashpie, MIT License.</li>\n<li>crypto-js, brix, MIT License.</li>\n<li>copy-to-clipboard, sudodoki, MIT License.</li>\n<li>request, request, Apache-2.0 License.</li>\n<li>winreg, fresc81, BSD 2-Clause License.</li>\n<li><strong>electron, electron, MIT License</strong>.</li>\n<li>electron-builder, electron-userland, MIT License.</li>\n<li>jquery, jquery, MIT License.</li>\n<li>bootstrap, twbs, MIT License.</li>\n<li>iconfont, ALIMAMA MUX, for license go to <a href=\"https://www.iconfont.cn/\" rel=\"nofollow\">the site</a>.</li>\n<li>dotenv, motdotla, BSD-2-Clause License.</li>\n<li>electron-debug, sindresorhus, MIT License.</li>\n<li>node-fetch, node-fetch, MIT License.</li>\n<li>node-notifier, mikaelbr, MIT License.</li>\n<li>popper.js, popperjs, MIT License.</li>\n<li>schart.js, lin-xin, MIT License.</li>\n<li>cross-env, kentcdodds, MIT License.</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-environment-using\" class=\"anchor\" aria-hidden=\"true\" href=\"#environment-using\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Environment Using</h3>\n<ul dir=\"auto\">\n<li><strong>node, nodejs, <a href=\"https://github.com/nodejs/node/blob/master/LICENSE\">License</a></strong>.</li>\n<li>NSIS, Nullsoft, zlib/libpng License.</li>\n<li>WebStorm, JetBrains, <a href=\"https://www.jetbrains.com/legal/#licensing\" rel=\"nofollow\">License</a>.</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.062Z" }, "winds": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><blockquote>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"stop_sign\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f6d1.png\">🛑</g-emoji> <strong>Notice</strong>: This repository is no longer maintained; No further Issues or Pull Requests will be considered or approved.</p>\n</blockquote>\n<h1 dir=\"auto\"><a id=\"user-content-winds---a-beautiful-open-source-rss--podcast-app-powered-by-getstreamio\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#winds---a-beautiful-open-source-rss--podcast-app-powered-by-getstreamio\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Winds - A Beautiful Open Source RSS & Podcast App Powered by GetStream.io</h1>\n<p dir=\"auto\"><a href=\"https://communityinviter.com/apps/winds-community-hq/winds-2-0\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/d5e2eada7067778ef67863e11c75059d7882d3781dddb21d6b582ae1c59c2ecf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536c61636b253230436f6d6d756e6974792d476574253230496e766974652d677265656e2e737667\" alt=\"Slack Community\" data-canonical-src=\"https://img.shields.io/badge/Slack%20Community-Get%20Invite-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://travis-ci.org/GetStream/Winds\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/313d5ab35916f48d8aff203833a82a443da05829b78374a8cdba3a06515aa245/68747470733a2f2f7472617669732d63692e6f72672f47657453747265616d2f57696e64732e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/GetStream/Winds.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a href=\"https://codecov.io/gh/GetStream/Winds\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/8b9f4d2e141f19c50266ca3a96aa90d81d58dfbf0a15f8caf4b73b52bf8b021e/68747470733a2f2f636f6465636f762e696f2f67682f47657453747265616d2f57696e64732f6272616e63682f6d61737465722f67726170682f62616467652e737667\" alt=\"codecov\" data-canonical-src=\"https://codecov.io/gh/GetStream/Winds/branch/master/graph/badge.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://shields.io/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/c5f7cc4da35f914763f151277d6fc7cab84bf5ef93e04bedb198f0297db2bd17/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e253230536f757263652d3130302532352d677265656e2e737667\" alt=\"Open Source\" data-canonical-src=\"https://img.shields.io/badge/Open%20Source-100%25-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/GetStream/winds/graphs/commit-activity\"><img src=\"https://camo.githubusercontent.com/446836984737be69aeee88ba4218b2038b3a685141d6da41e09c06eb05412ece/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61696e7461696e65642533462d5965732d677265656e2e737667\" alt=\"Maintenance\" data-canonical-src=\"https://img.shields.io/badge/Maintained%3F-Yes-green.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0042fa6f9759c266923d79b45a1f13cdc33d234e13c7aba4ad260abb3b6f3a6b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275696c74253230576974682d254532253944254134254546254238253846253230696e253230426f756c6465722c253230434f2d677265656e2e737667\"><img src=\"https://camo.githubusercontent.com/0042fa6f9759c266923d79b45a1f13cdc33d234e13c7aba4ad260abb3b6f3a6b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275696c74253230576974682d254532253944254134254546254238253846253230696e253230426f756c6465722c253230434f2d677265656e2e737667\" alt=\"Built With\" data-canonical-src=\"https://img.shields.io/badge/Built%20With-%E2%9D%A4%EF%B8%8F%20in%20Boulder,%20CO-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://stackshare.io/stream/winds\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9864d0915728a748c33963528d5c801cf183b206fcaa31c050e5d37b10d446a4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f546563682d537461636b2d3036393066612e7376673f7374796c653d666c6174\" alt=\"StackShare\" data-canonical-src=\"https://img.shields.io/badge/Tech-Stack-0690fa.svg?style=flat\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-description\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Description</h2>\n<p dir=\"auto\">Winds is a beautiful open-source RSS and Podcast app created using React & Redux on the frontend and Express.js on the backend. Use the free hosted version or run it on your own server and customize it as you see fit. Contributions in form of pull requests are always appreciated. Activity Feeds & Discovery in Winds are powered by <a href=\"https://getstream.io/get_started/\" rel=\"nofollow\">Stream</a>, the app leverages <a href=\"https://algolia.com?ref=stream\" rel=\"nofollow\">Algolia</a> for search, <a href=\"https://aws.amazon.com/\" rel=\"nofollow\">AWS</a> for hosting, <a href=\"http://mbsy.co/mongodb/228644\" rel=\"nofollow\">MongoDB Atlas</a> for a hosted database (DBaaS), and <a href=\"https://sendgrid.com/\" rel=\"nofollow\">SendGrid</a> for email. All of these services have a free tier.</p>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">To get started with Winds, please download <a href=\"https://s3.amazonaws.com/winds-2.0-releases/latest.html\" rel=\"nofollow\">the latest release</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-featured-rss--podcasts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#featured-rss--podcasts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Featured RSS & Podcasts</h2>\n<p dir=\"auto\">Have a popular RSS or Podcast and want to be featured? Reach out to <a href=\"https://github.com/getstream/winds/blob/master/mailto:winds@getstream.io\">winds@getstream.io</a>. We reply to every message.</p>\n<h1 dir=\"auto\"><a id=\"user-content-features-at-a-glance\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#features-at-a-glance\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features at a Glance</h1>\n<p dir=\"auto\">Winds is packed full of awesome features behind a beautiful user interface and user experience. Here's a quick look at what the project has to offer:</p>\n<h2 dir=\"auto\"><a id=\"user-content-beautiful-ui\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#beautiful-ui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Beautiful UI</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/a632526f284f114b74e16c393ce5ccac4ddefa48e168d7f81f5b3fa0be6abe5e/68747470733a2f2f692e696d6775722e636f6d2f573166706f77562e706e67\"><img src=\"https://camo.githubusercontent.com/a632526f284f114b74e16c393ce5ccac4ddefa48e168d7f81f5b3fa0be6abe5e/68747470733a2f2f692e696d6775722e636f6d2f573166706f77562e706e67\" alt=\"Winds UI\" data-canonical-src=\"https://i.imgur.com/W1fpowV.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-rss--podcast-recommendations\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#rss--podcast-recommendations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>RSS & Podcast Recommendations</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/6041b4f4b94786f08926fb72b1a99c4f72031d104c3100bf1a360ff9dc90276d/68747470733a2f2f692e696d6775722e636f6d2f416c56674454672e706e67\"><img src=\"https://camo.githubusercontent.com/6041b4f4b94786f08926fb72b1a99c4f72031d104c3100bf1a360ff9dc90276d/68747470733a2f2f692e696d6775722e636f6d2f416c56674454672e706e67\" alt=\"Winds RSS & Podcast Recommendations\" data-canonical-src=\"https://i.imgur.com/AlVgDTg.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-integrated-search\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#integrated-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Integrated Search</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2c483da82086b0b3b34ca830bef20c369bc2dad69cf821160139c6bc16cf62fb/68747470733a2f2f692e696d6775722e636f6d2f7a6157744e66562e706e67\"><img src=\"https://camo.githubusercontent.com/2c483da82086b0b3b34ca830bef20c369bc2dad69cf821160139c6bc16cf62fb/68747470733a2f2f692e696d6775722e636f6d2f7a6157744e66562e706e67\" alt=\"Winds Search\" data-canonical-src=\"https://i.imgur.com/zaWtNfV.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-podcast-player\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#podcast-player\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Podcast Player</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/22169746bd679f718abc946763175a2d7d9ee37dcab67289748a7cfb6f8aaae1/68747470733a2f2f692e696d6775722e636f6d2f746832343772412e706e67\"><img src=\"https://camo.githubusercontent.com/22169746bd679f718abc946763175a2d7d9ee37dcab67289748a7cfb6f8aaae1/68747470733a2f2f692e696d6775722e636f6d2f746832343772412e706e67\" alt=\"Winds Podcast Player\" data-canonical-src=\"https://i.imgur.com/th247rA.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-rss-reader\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#rss-reader\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>RSS Reader</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/cda2850aa41cf19f52977012b205864b713b8acd71e2de27fbce37bb37e36ecc/68747470733a2f2f692e696d6775722e636f6d2f443377743757332e706e67\"><img src=\"https://camo.githubusercontent.com/cda2850aa41cf19f52977012b205864b713b8acd71e2de27fbce37bb37e36ecc/68747470733a2f2f692e696d6775722e636f6d2f443377743757332e706e67\" alt=\"Winds RSS Reader\" data-canonical-src=\"https://i.imgur.com/D3wt7W3.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-tocd\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#tocd\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TOCd</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/getstream/winds/blob/master/#roadmap\">Roadmap</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#powered-by\">Powered By</a>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/getstream/winds/blob/master/#stream\">Stream</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#algolia\">Algolia</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#mongodb\">MongoDB</a></li>\n<li><a href=\"https://sendgrid.com\" rel=\"nofollow\">SendGrid</a></li>\n<li><a href=\"https://aws.amazon.com/\" rel=\"nofollow\">AWS</a></li>\n</ul>\n</li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#tutorials\">Tutorials</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#download\">Download</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#contributing-to-winds\">Contributing to Winds</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#support\">Support</a></li>\n<li><a href=\"https://github.com/getstream/winds/blob/master/#maintenance-and-contributions\">Maintenance & Contributions</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-roadmap\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#roadmap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roadmap</h2>\n<p dir=\"auto\">Help us improve Winds and/or vote on the <a href=\"https://github.com/GetStream/Winds/issues/191\" data-hovercard-type=\"issue\" data-hovercard-url=\"/GetStream/Winds/issues/191/hovercard\">Roadmap for 2.1</a></p>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Search detail screen</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Playlist support (partially implemented)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Team support (share an activity feed with colleagues or friends to discover and collaborate)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Mobile application powered by React Native</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-powered-by\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#powered-by\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Powered By</h2>\n<ol dir=\"auto\">\n<li><a href=\"https://expressjs.com?ref=winds\" rel=\"nofollow\">Express</a></li>\n<li><a href=\"https://reactjs.org?ref=winds\" rel=\"nofollow\">React</a> & <a href=\"https://redux.js.org?ref=winds\" rel=\"nofollow\">Redux</a></li>\n<li><a href=\"https://www.algolia.com?ref=winds\" rel=\"nofollow\">Algolia</a></li>\n<li><a href=\"http://mbsy.co/mongodb/228644\" rel=\"nofollow\">MongoDB Atlas</a></li>\n<li><a href=\"https://sendgrid.com?ref=winds\" rel=\"nofollow\">SendGrid</a></li>\n<li><a href=\"https://github.com/OptimalBits/bull?ref=winds\">Bull</a></li>\n<li><a href=\"https://mercury.postlight.com?ref=winds\" rel=\"nofollow\">Mercury</a></li>\n<li><a href=\"https://getstream.io?ref=winds\" rel=\"nofollow\">Stream</a></li>\n<li><a href=\"https://sentry.io/?ref=winds\" rel=\"nofollow\">Sentry</a></li>\n<li><a href=\"https://aws.amazon.com/?ref=winds\" rel=\"nofollow\">AWS</a></li>\n</ol>\n<p dir=\"auto\"><strong>The full stack can be found on <a href=\"https://stackshare.io/stream/winds\" rel=\"nofollow\">StackShare.io</a>.</strong></p>\n<h3 dir=\"auto\"><a id=\"user-content-stream\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#stream\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stream</h3>\n<p dir=\"auto\"><a href=\"https://getstream.io/?ref=winds\" rel=\"nofollow\">Stream</a> is an API for building activity feeds. For Winds the follow suggestions and the list of articles from the feeds you follow is powered by Stream. Stream accounts are free for up to 3 million feed updates and handle personalization (machine learning) for up to 100 users.</p>\n<h3 dir=\"auto\"><a id=\"user-content-algolia\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#algolia\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Algolia</h3>\n<p dir=\"auto\"><a href=\"https://algolia.com?ref=winds\" rel=\"nofollow\">Algolia</a> is used for lightning fast and relevant search. We use their <a href=\"https://www.npmjs.com/package/algoliasearch?ref=winds\" rel=\"nofollow\">JavaScript search client</a> to easily setup the Winds search implementation. Algolia, accounts are free up to 10k records and 100k operations.</p>\n<h3 dir=\"auto\"><a id=\"user-content-mongodb\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#mongodb\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>MongoDB</h3>\n<p dir=\"auto\"><a href=\"http://mbsy.co/mongodb/228644\" rel=\"nofollow\">MongoDB Atlas</a> provides a Database as a Service, and serves as the backend datastore for Winds.</p>\n<h2 dir=\"auto\"><a id=\"user-content-tutorials--blog-posts\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#tutorials--blog-posts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tutorials & Blog Posts</h2>\n<p dir=\"auto\">The following tutorials will not only help you start contributing to Winds, but also provide inspiration for your next app.</p>\n<p dir=\"auto\"><strong>Note:</strong> We're actively working on this portion of the README. To stay up to date with the latest information, please signup for the hosted version at <a href=\"https://getstream.io/winds\" rel=\"nofollow\">https://getstream.io/winds</a>.</p>\n<ol dir=\"auto\">\n<li><a href=\"https://hackernoon.com/integrating-algolia-search-in-winds-a-beautiful-rss-podcast-application-f231e49cdab5\" rel=\"nofollow\">Implementing search with Algolia</a></li>\n<li><a href=\"https://getstream.io/blog/the-engine-that-powers-winds/\" rel=\"nofollow\">Stream and Winds</a></li>\n<li><a href=\"https://hackernoon.com/running-pm2-node-js-in-production-environments-13e703fc108a\" rel=\"nofollow\">Running PM2 & Node.js in Production Environments</a></li>\n<li><a href=\"https://hackernoon.com/building-a-node-js-powered-api-with-express-mongoose-mongodb-19b14fd4b51e\" rel=\"nofollow\">Creating a RESTful API design with Express.js</a></li>\n<li><a href=\"https://medium.com/@nparsons08/publishing-a-react-based-app-with-electron-and-nodejs-f5ec44169366\" rel=\"nofollow\">Takeaways on Building a React Based App with Electron</a></li>\n<li><a href=\"https://stackshare.io/stream/how-stream-built-a-modern-rss-reader-with-javascript\" rel=\"nofollow\">The Winds Stack</a></li>\n<li><a href=\"https://hackernoon.com/winds-2-1-building-touch-bar-support-for-macos-in-electron-with-react-e10adb811c91\" rel=\"nofollow\">Building Touch Bar Support for macOS in Electron with React</a></li>\n<li><a href=\"https://hackernoon.com/testing-node-js-in-2018-10a04dd77391\" rel=\"nofollow\">Testing Node.js in 2018</a></li>\n<li><a href=\"https://hackernoon.com/simple-steps-to-optimize-your-app-performance-5700d8b58f58\" rel=\"nofollow\">Simple Steps to Optimize Your App Performance with MongoDB, Redis, and Node.js</a></li>\n<li><a href=\"https://hackernoon.com/winds-an-in-depth-tutorial-on-making-your-first-contribution-to-open-source-software-ebf259f21db2\" rel=\"nofollow\">Getting Started with Winds & Open Source</a></li>\n<li><a href=\"https://getstream.io/blog/deploying-the-winds-app-to-amazon-s3-and-cloudfront/\" rel=\"nofollow\">Deploying the Winds App to Amazon S3 and CloudFront</a></li>\n<li><a href=\"https://getstream.io/blog/deploying-the-winds-api-to-aws-ecs-with-docker-compose/\" rel=\"nofollow\">Deploying the Winds API to AWS ECS with Docker Compose</a></li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">To download Winds, visit <a href=\"https://getstream.io/winds/\" rel=\"nofollow\">https://getstream.io/winds/</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing-to-winds\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#contributing-to-winds\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing to Winds</h2>\n<h3 dir=\"auto\"><a id=\"user-content-tldr\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#tldr\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TL;DR</h3>\n<p dir=\"auto\">Commands:</p>\n<ul dir=\"auto\">\n<li><code>brew install redis mongodb</code></li>\n<li><code>brew services start mongodb</code></li>\n<li><code>brew services start redis</code></li>\n<li><code>cd Winds</code></li>\n<li><code>cd api && yarn</code></li>\n<li><code>cd ../app && yarn</code></li>\n</ul>\n<p dir=\"auto\">Sign up for both Stream and Algolia, and create the following <code>.env</code> file in the <code>app</code> directory, replacing the keys where indicated:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"DATABASE_URI=mongodb://localhost/WINDS_DEV\nCACHE_URI=redis://localhost:6379\nJWT_SECRET=YOUR_JWT_SECRET\n\nAPI_PORT=8080\nREACT_APP_API_ENDPOINT=http://localhost:8080\nSTREAM_API_BASE_URL=https://windspersonalization.getstream.io/personalization/v1.0\n\nSTREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_API_KEY=YOUR_STREAM_API_KEY\nREACT_APP_STREAM_ANALYTICS=YOUR_STREAM_ANALYTICS_TOKEN\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\n\nREACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\"><pre class=\"notranslate\"><code class=\"notranslate\">DATABASE_URI=mongodb://localhost/WINDS_DEV\nCACHE_URI=redis://localhost:6379\nJWT_SECRET=YOUR_JWT_SECRET\n\nAPI_PORT=8080\nREACT_APP_API_ENDPOINT=http://localhost:8080\nSTREAM_API_BASE_URL=https://windspersonalization.getstream.io/personalization/v1.0\n\nSTREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_API_KEY=YOUR_STREAM_API_KEY\nREACT_APP_STREAM_ANALYTICS=YOUR_STREAM_ANALYTICS_TOKEN\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\n\nREACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\n</code></pre></div>\n<blockquote>\n<p dir=\"auto\">Note: If you are running the test suite, you will need to have a test version of the <code>.env</code> file inside of the <code>api/test</code> directory.</p>\n</blockquote>\n<p dir=\"auto\">Then run:</p>\n<ul dir=\"auto\">\n<li><code>pm2 start process_dev.json</code></li>\n<li><code>cd app && yarn start</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-clone-the-repo\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#clone-the-repo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone the Repo</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone git@github.com:GetStream/Winds.git\"><pre>git clone git@github.com:GetStream/Winds.git</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-install-dependencies\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#install-dependencies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install dependencies</h3>\n<p dir=\"auto\">The following instructions are geared towards Mac users who can use <code>brew</code> (<a href=\"https://brew.sh/\" rel=\"nofollow\">Homebrew</a>) to install most dependencies. Ubuntu users can use <code>apt</code>, and Windows users will have to install directly from the dependency's site. Non-debian-based Linux users will probably be able to figure it out on their own :)</p>\n<ul dir=\"auto\">\n<li><code>cd Winds/app</code></li>\n<li><code>yarn</code></li>\n<li><code>cd ../api</code></li>\n<li><code>yarn</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-start-mongodb-locally\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#start-mongodb-locally\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start MongoDB Locally</h3>\n<p dir=\"auto\">Winds uses MongoDB as the main datastore - it contains all users, rss feeds, podcasts, episodes, articles, and shares.</p>\n<p dir=\"auto\">If you're on a Mac, you can install MongoDB through <a href=\"https://brew.sh/\" rel=\"nofollow\">Homebrew</a> by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install mongodb\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install mongodb\n</code></pre></div>\n<p dir=\"auto\"><em>(You can also install MongoDB from the <a href=\"https://www.mongodb.com/download-center\" rel=\"nofollow\">official MongoDB site</a>.)</em></p>\n<p dir=\"auto\">You can also run MongoDB in the background by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew services start mongodb\"><pre class=\"notranslate\"><code class=\"notranslate\">brew services start mongodb\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-redis-locally\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#start-redis-locally\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start Redis Locally</h3>\n<p dir=\"auto\">At Stream, we use Redis as an in-memory storage for the Winds podcast processing and RSS processing workers. It contains a list of podcasts and RSS feeds, which the workers pick up and process using the <code>bull</code> messaging system.</p>\n<p dir=\"auto\">If you're on a Mac, you can install Redis through <a href=\"https://brew.sh/\" rel=\"nofollow\">Homebrew</a> by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install redis\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install redis\n</code></pre></div>\n<p dir=\"auto\"><em>(You can also install Redis from the <a href=\"https://redis.io/download\" rel=\"nofollow\">official Redis site</a>.)</em></p>\n<p dir=\"auto\">Then, start Redis by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"redis-server\"><pre class=\"notranslate\"><code class=\"notranslate\">redis-server\n</code></pre></div>\n<p dir=\"auto\">...which creates (by default) a <code>dump.rdb</code> file in your current directory and stores a cached version of the database in that location.</p>\n<p dir=\"auto\">You can also run Redis in the background by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew services start redis\"><pre class=\"notranslate\"><code class=\"notranslate\">brew services start redis\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-loading-test-data\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#loading-test-data\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Loading Test Data</h3>\n<p dir=\"auto\">For testing purposes, you will want to use the test data located <a href=\"https://s3.amazonaws.com/winds-hosted/static/export/WINDS.zip\" rel=\"nofollow\">here</a>.</p>\n<p dir=\"auto\">Use <a href=\"https://docs.mongodb.com/manual/reference/program/mongoimport/\" rel=\"nofollow\"><code>mongoimport</code></a> or <a href=\"https://docs.mongodb.com/manual/reference/program/mongorestore/\" rel=\"nofollow\"><code>mongorestore</code></a> to import the data. There are two username and password combinations for testing:</p>\n<p dir=\"auto\"><strong>Username</strong>: <code>admin@admin.com</code><br>\n<strong>Password</strong>: <code>admin</code>\n<br><br>\n<strong>Username</strong>: <code>test@test.com</code><br>\n<strong>Password</strong>: <code>test</code></p>\n<p dir=\"auto\">You will need to run the <code>FLUSHALL</code> command in Redis to ensure that the new content is picked up.</p>\n<blockquote>\n<p dir=\"auto\">Note: This will override any local data that you may have. Please be cautious! Also, this will not create Stream follows – please follow feeds manually to generate them.</p>\n</blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-stream-1\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#stream-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stream</h3>\n<h4 dir=\"auto\"><a id=\"user-content-sign-up-and-create-a-stream-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#sign-up-and-create-a-stream-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Sign up and Create a Stream App</h4>\n<p dir=\"auto\">To contribute to Winds, sign up for <a href=\"https://getstream.io/get_started?ref=winds\" rel=\"nofollow\">Stream</a> to utilize the activity and timeline feeds.</p>\n<p dir=\"auto\"><em>(Reminder: Stream is free for applications with less than 3,000,000 updates per month.)</em></p>\n<ul dir=\"auto\">\n<li><a href=\"https://getstream.io/get_started?ref=winds\" rel=\"nofollow\">Sign up for Stream here</a></li>\n<li>Create a new Stream app</li>\n<li>Find the App ID, API Key, and API Secret for your new Stream app</li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-add-your-stream-app-id-api-key-and-api-secret-to-your-env\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#add-your-stream-app-id-api-key-and-api-secret-to-your-env\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Add your Stream App ID, API Key, and API Secret to your <code>.env</code></h4>\n<p dir=\"auto\">Append the Stream App ID, API Key, and API secret to your <code>.env</code> file:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"STREAM_APP_ID=YOUR_STREAM_APP_ID\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\"><pre class=\"notranslate\"><code class=\"notranslate\">STREAM_APP_ID=YOUR_STREAM_APP_ID\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-create-your-stream-feed-groups\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#create-your-stream-feed-groups\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Create Your Stream Feed Groups</h4>\n<p dir=\"auto\">Once you've signed in, create \"feed groups\" for your Stream app.</p>\n<p dir=\"auto\">A \"feed group\" defines a certain type of feed within your application. Use the \"Add Feed Group\" button to create the following feeds:</p>\n<table>\n<thead>\n<tr>\n<th>Feed Group Name</th>\n<th>Feed Group Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>podcast</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>rss</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>user</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>timeline</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>folder</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>user_episode</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>user_article</code></td>\n<td>flat</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">It's fine to enable \"Realtime Notifications\" for each of these feed groups, though we won't be using those yet.</p>\n<h3 dir=\"auto\"><a id=\"user-content-algolia-1\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#algolia-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Algolia</h3>\n<h4 dir=\"auto\"><a id=\"user-content-sign-up-for-algolia-and-create-an-algolia-app-and-index\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#sign-up-for-algolia-and-create-an-algolia-app-and-index\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Sign up for Algolia and Create an Algolia App and Index</h4>\n<p dir=\"auto\">In addition to Stream, you also need to sign up for <a href=\"https://www.algolia.com/users/sign_up?ref=winds\" rel=\"nofollow\">Algolia</a>, to contribute to Winds, for the search functionality.</p>\n<p dir=\"auto\"><em>(Algolia is free for applications with up to 10k records.)</em></p>\n<ul dir=\"auto\">\n<li><a href=\"https://www.algolia.com/users/sign_up?ref=winds\" rel=\"nofollow\">Sign up for Algolia here</a></li>\n<li>From the <a href=\"https://www.algolia.com/manage/applications\" rel=\"nofollow\">Applications page</a>, click \"New Application\" and create a new Algolia application. (We recommend something similar to <code>my-winds-app</code>)\n<ul dir=\"auto\">\n<li>(Select the datacenter that's closest to you.)</li>\n</ul>\n</li>\n<li>From the application page, select \"Indices\" and click \"Add New Index\". (We recommend something similar to <code>winds-main-index</code>)</li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-add-your-algolia-application-id-search-only-api-key-and-admin-api-key-to-your-env-file\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#add-your-algolia-application-id-search-only-api-key-and-admin-api-key-to-your-env-file\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Add Your Algolia Application Id, Search-Only Api Key and Admin Api Key to Your <code>.env</code> File</h4>\n<p dir=\"auto\">From your app, click the \"API Keys\" button on the left to find your app ID and API keys.</p>\n<p dir=\"auto\">Append your Algolia application ID, search-only API Key and Admin API Key to your <code>.env</code> file to look like this:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"REACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\"><pre class=\"notranslate\"><code class=\"notranslate\">REACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-backend-services\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#start-backend-services\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start Backend Services</h3>\n<p dir=\"auto\">From the root directory, run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pm2 start process_dev.json\"><pre class=\"notranslate\"><code class=\"notranslate\">pm2 start process_dev.json\n</code></pre></div>\n<p dir=\"auto\">To see logging information for all processes, run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pm2 logs\"><pre class=\"notranslate\"><code class=\"notranslate\">pm2 logs\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-frontend-electron--web-app-server\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#start-frontend-electron--web-app-server\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start Frontend Electron / Web App Server</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd app && yarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">cd app && yarn start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-running-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#running-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running tests</h3>\n<p dir=\"auto\">Winds API server uses:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://mochajs.org\" rel=\"nofollow\">Mocha</a> as testing framework</li>\n<li><a href=\"https://chaijs.org\" rel=\"nofollow\">Chai</a> as assertion library</li>\n<li><a href=\"https://sinonjs.org\" rel=\"nofollow\">Sinon</a> as mocking library</li>\n<li><a href=\"https://github.com/node-nock/nock\">nock</a> as HTTP mocking library</li>\n<li><a href=\"https://github.com/boblauer/mock-require\">mock-require</a> as module mocking library</li>\n</ul>\n<p dir=\"auto\">Tests are located in <a href=\"https://github.com/GetStream/Winds/tree/master/api/test\"><code>api/test</code> folder</a>.</p>\n<p dir=\"auto\">File structure is intentionally mirroring files in <code>api/src</code> to simplify matching tests to tested code.</p>\n<p dir=\"auto\">To run tests:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd api && yarn run test\"><pre class=\"notranslate\"><code class=\"notranslate\">cd api && yarn run test\n</code></pre></div>\n<p dir=\"auto\">To run tests with extended stack traces (useful when debugging async issues):</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd api && yarn run test_deep\"><pre class=\"notranslate\"><code class=\"notranslate\">cd api && yarn run test_deep\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-adding-new-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#adding-new-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Adding new tests</h4>\n<p dir=\"auto\">Add your code to a file in <code>api/test</code> folder (preferably mirroring existing file from <code>api/src</code> folder).</p>\n<p dir=\"auto\">Refer to <a href=\"https://mochajs.org/#getting-started\" rel=\"nofollow\">Mocha documentation</a> for examples of using BDD-like DSL for writing tests.</p>\n<p dir=\"auto\">Modules are mocked in <a href=\"https://github.com/GetStream/Winds/blob/master/api/test-entry.js#L21L27\"><code>api/test-entry.js</code></a> as mocks have to be installed before any modules are loaded.</p>\n<p dir=\"auto\">Fixtures are loaded via <a href=\"https://github.com/GetStream/Winds/blob/master/api/test/utils.js#L59L101\"><code>loadFixture</code></a> function from <a href=\"https://github.com/GetStream/Winds/tree/master/api/test/fixtures\"><code>api/test/fixtures</code> folder</a></p>\n<p dir=\"auto\">Various utility functions are provided in <a href=\"https://github.com/GetStream/Winds/blob/master/api/test/utils.js\"><code>api/test/util.js</code></a> (See other tests for examples of usage).</p>\n<h3 dir=\"auto\"><a id=\"user-content-building-a-production-version\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#building-a-production-version\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building a Production Version</h3>\n<p dir=\"auto\">Build a production version of Winds by running from root directory:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"./api/build.sh\"><pre class=\"notranslate\"><code class=\"notranslate\">./api/build.sh\n</code></pre></div>\n<p dir=\"auto\">This creates production-ready JS files in api/dist.</p>\n<p dir=\"auto\">To run the production JS files:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pm2 start process_prod.json\"><pre class=\"notranslate\"><code class=\"notranslate\">pm2 start process_prod.json\n</code></pre></div>\n<p dir=\"auto\">OR</p>\n<p dir=\"auto\"><strong>Prepare the build for Docker</strong>:</p>\n<p dir=\"auto\"><code>cd api && cd scripts && ./make-build.sh</code></p>\n<p dir=\"auto\"><strong>Build the Docker container (API & all workers)</strong>:</p>\n<p dir=\"auto\"><code>cd ../ && docker-compose up</code></p>\n<p dir=\"auto\">The commands above will prepare and start the API (and all workers). The frontend will still need to be started manually.</p>\n<h2 dir=\"auto\"><a id=\"user-content-debugging-rss--podcast-issues\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#debugging-rss--podcast-issues\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Debugging RSS & Podcast Issues</h2>\n<p dir=\"auto\">Unfortunately there is no unified standard for RSS.\nGo to the <code>api</code> directory and run <code>yarn link</code> to make these commands available:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds rss https://techcrunch.com/feed/\"><pre class=\"notranslate\"><code class=\"notranslate\">winds rss https://techcrunch.com/feed/\n</code></pre></div>\n<p dir=\"auto\"><strong>Podcasts</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds podcast https://www.npr.org/rss/podcast.php\\?id\\=510289\"><pre class=\"notranslate\"><code class=\"notranslate\">winds podcast https://www.npr.org/rss/podcast.php\\?id\\=510289\n</code></pre></div>\n<p dir=\"auto\"><strong>Open Graph scraping</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds og http://www.planetary.org/multimedia/planetary-radio/show/2018/0509-amy-mainzer-neowise.html\"><pre class=\"notranslate\"><code class=\"notranslate\">winds og http://www.planetary.org/multimedia/planetary-radio/show/2018/0509-amy-mainzer-neowise.html\n</code></pre></div>\n<p dir=\"auto\"><strong>RSS Discovery</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds discover mashable.com\"><pre class=\"notranslate\"><code class=\"notranslate\">winds discover mashable.com\n</code></pre></div>\n<p dir=\"auto\"><strong>Article parsing (w/ Mercury)</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds article https://alexiskold.net/2018/04/12/meet-12-startups-from-techstars-nyc-winter-2018-program/\"><pre class=\"notranslate\"><code class=\"notranslate\">winds article https://alexiskold.net/2018/04/12/meet-12-startups-from-techstars-nyc-winter-2018-program/\n</code></pre></div>\n<p dir=\"auto\">Pull requests for improved RSS compatibility are much appreciated.\nMost of the parsing codebase is located in <code>api/src/parsers/</code>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-support\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#support\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Support</h2>\n<p dir=\"auto\">All support is handled via <a href=\"https://github.com/getstream/winds/issues\">GitHub Issues</a>. If you're unfamiliar with creating an Issue on GitHub, please follow <a href=\"https://help.github.com/articles/creating-an-issue/\">these instructions</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-maintenance-and-contributions\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#maintenance-and-contributions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Maintenance and Contributions</h2>\n<p dir=\"auto\">Thank you to all of the maintainers and contributors who've helped Winds become what it is today and help it stay up and running every day. We couldn't do it without you!</p>\n<h3 dir=\"auto\"><a id=\"user-content-special-shoutouts-to\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#special-shoutouts-to\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Special Shoutouts To:</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://hackernoon.com/\" rel=\"nofollow\">Hackernoon</a></li>\n<li><a href=\"https://www.producthunt.com/\" rel=\"nofollow\">Product Hunt</a></li>\n<li><a href=\"https://stackshare.io/stream/how-stream-built-a-modern-rss-reader-with-javascript\" rel=\"nofollow\">StackShare</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-primary-maintainers\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#primary-maintainers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Primary Maintainers</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/nparsons08\">Nick Parsons</a></li>\n<li><a href=\"https://github.com/mahboubii\">Amin Mahboubi</a></li>\n<li><a href=\"https://github.com/tschellenbach\">Thierry Schellenbach</a></li>\n<li><a href=\"https://github.com/tilton\">Josh Tilton</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/tbarbugli\">Tommaso Barbugli</a></li>\n<li><a href=\"https://github.com/kenhoff\">Ken Hoff</a></li>\n<li><a href=\"https://github.com/dwightgunning\">Dwight Gunning</a></li>\n<li><a href=\"https://github.com/mathias\">Matt Gauger</a></li>\n<li><a href=\"https://github.com/nekuromento\">Max Klyga</a></li>\n<li><a href=\"https://github.com/Zhomart\">Zhomart Mukhamejanov</a></li>\n<li><a href=\"https://github.com/julianxhokaxhiu\">Julian Xhokaxhiu</a></li>\n<li><a href=\"https://github.com/thundergolfer\">Jonathon Belotti</a></li>\n<li><a href=\"https://github.com/gitter-badger\">The Gitter Badger</a></li>\n<li><a href=\"https://github.com/meriadec\">Meriadec Pillet</a></li>\n<li><a href=\"https://github.com/sifex\">Alex Sinnott</a></li>\n<li><a href=\"https://github.com/sauban\">Lawal Sauban</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-revive-rss\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#revive-rss\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Revive RSS</h2>\n<p dir=\"auto\">RSS is an amazing open standard. It is probably the most pleasant way to stay up to date with the sites and podcasts you care about. Our reasons for contributing to Winds are explained in the blogpost <a href=\"https://getstream.io/blog/winds-2-0-its-time-to-revive-rss/\" rel=\"nofollow\">Winds 2.0 It's time to Revive RSS</a>. In this section we will list other open source and commercial projects that are having an impact on Reviving RSS:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/miniflux/miniflux\">Miniflux</a></li>\n<li><a href=\"https://twitrss.me/\" rel=\"nofollow\">TwitRSSMe</a></li>\n<li><a href=\"https://feedly.com/\" rel=\"nofollow\">Feedly</a></li>\n<li><a href=\"https://newsblur.com/\" rel=\"nofollow\">NewsBlur</a></li>\n<li><a href=\"https://feedity.com/\" rel=\"nofollow\">Feedity</a></li>\n<li><a href=\"https://mg.guelker.eu/saverss/\" rel=\"nofollow\">SaveRSS</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-we-are-hiring\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/getstream/winds/blob/master/#we-are-hiring\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>We are hiring!</h2>\n<p dir=\"auto\">We've recently closed a <a href=\"https://techcrunch.com/2021/03/04/stream-raises-38m-as-its-chat-and-activity-feed-apis-power-communications-for-1b-users/\" rel=\"nofollow\">$38 million Series B funding round</a> and we keep actively growing.\nOur APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world.</p>\n<p dir=\"auto\">Check out our current openings and apply via <a href=\"https://getstream.io/team/#jobs\" rel=\"nofollow\">Stream's website</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><blockquote>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"stop_sign\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f6d1.png\">🛑</g-emoji> <strong>Notice</strong>: This repository is no longer maintained; No further Issues or Pull Requests will be considered or approved.</p>\n</blockquote>\n<h1 dir=\"auto\"><a id=\"user-content-winds---a-beautiful-open-source-rss--podcast-app-powered-by-getstreamio\" class=\"anchor\" aria-hidden=\"true\" href=\"#winds---a-beautiful-open-source-rss--podcast-app-powered-by-getstreamio\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Winds - A Beautiful Open Source RSS & Podcast App Powered by GetStream.io</h1>\n<p dir=\"auto\"><a href=\"https://communityinviter.com/apps/winds-community-hq/winds-2-0\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/d5e2eada7067778ef67863e11c75059d7882d3781dddb21d6b582ae1c59c2ecf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536c61636b253230436f6d6d756e6974792d476574253230496e766974652d677265656e2e737667\" alt=\"Slack Community\" data-canonical-src=\"https://img.shields.io/badge/Slack%20Community-Get%20Invite-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://travis-ci.org/GetStream/Winds\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/313d5ab35916f48d8aff203833a82a443da05829b78374a8cdba3a06515aa245/68747470733a2f2f7472617669732d63692e6f72672f47657453747265616d2f57696e64732e7376673f6272616e63683d6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/GetStream/Winds.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a href=\"https://codecov.io/gh/GetStream/Winds\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/8b9f4d2e141f19c50266ca3a96aa90d81d58dfbf0a15f8caf4b73b52bf8b021e/68747470733a2f2f636f6465636f762e696f2f67682f47657453747265616d2f57696e64732f6272616e63682f6d61737465722f67726170682f62616467652e737667\" alt=\"codecov\" data-canonical-src=\"https://codecov.io/gh/GetStream/Winds/branch/master/graph/badge.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://shields.io/\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/c5f7cc4da35f914763f151277d6fc7cab84bf5ef93e04bedb198f0297db2bd17/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e253230536f757263652d3130302532352d677265656e2e737667\" alt=\"Open Source\" data-canonical-src=\"https://img.shields.io/badge/Open%20Source-100%25-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/GetStream/winds/graphs/commit-activity\"><img src=\"https://camo.githubusercontent.com/446836984737be69aeee88ba4218b2038b3a685141d6da41e09c06eb05412ece/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61696e7461696e65642533462d5965732d677265656e2e737667\" alt=\"Maintenance\" data-canonical-src=\"https://img.shields.io/badge/Maintained%3F-Yes-green.svg\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0042fa6f9759c266923d79b45a1f13cdc33d234e13c7aba4ad260abb3b6f3a6b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275696c74253230576974682d254532253944254134254546254238253846253230696e253230426f756c6465722c253230434f2d677265656e2e737667\"><img src=\"https://camo.githubusercontent.com/0042fa6f9759c266923d79b45a1f13cdc33d234e13c7aba4ad260abb3b6f3a6b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275696c74253230576974682d254532253944254134254546254238253846253230696e253230426f756c6465722c253230434f2d677265656e2e737667\" alt=\"Built With\" data-canonical-src=\"https://img.shields.io/badge/Built%20With-%E2%9D%A4%EF%B8%8F%20in%20Boulder,%20CO-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://stackshare.io/stream/winds\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9864d0915728a748c33963528d5c801cf183b206fcaa31c050e5d37b10d446a4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f546563682d537461636b2d3036393066612e7376673f7374796c653d666c6174\" alt=\"StackShare\" data-canonical-src=\"https://img.shields.io/badge/Tech-Stack-0690fa.svg?style=flat\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-description\" class=\"anchor\" aria-hidden=\"true\" href=\"#description\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Description</h2>\n<p dir=\"auto\">Winds is a beautiful open-source RSS and Podcast app created using React & Redux on the frontend and Express.js on the backend. Use the free hosted version or run it on your own server and customize it as you see fit. Contributions in form of pull requests are always appreciated. Activity Feeds & Discovery in Winds are powered by <a href=\"https://getstream.io/get_started/\" rel=\"nofollow\">Stream</a>, the app leverages <a href=\"https://algolia.com?ref=stream\" rel=\"nofollow\">Algolia</a> for search, <a href=\"https://aws.amazon.com/\" rel=\"nofollow\">AWS</a> for hosting, <a href=\"http://mbsy.co/mongodb/228644\" rel=\"nofollow\">MongoDB Atlas</a> for a hosted database (DBaaS), and <a href=\"https://sendgrid.com/\" rel=\"nofollow\">SendGrid</a> for email. All of these services have a free tier.</p>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">To get started with Winds, please download <a href=\"https://s3.amazonaws.com/winds-2.0-releases/latest.html\" rel=\"nofollow\">the latest release</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-featured-rss--podcasts\" class=\"anchor\" aria-hidden=\"true\" href=\"#featured-rss--podcasts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Featured RSS & Podcasts</h2>\n<p dir=\"auto\">Have a popular RSS or Podcast and want to be featured? Reach out to <a href=\"mailto:winds@getstream.io\">winds@getstream.io</a>. We reply to every message.</p>\n<h1 dir=\"auto\"><a id=\"user-content-features-at-a-glance\" class=\"anchor\" aria-hidden=\"true\" href=\"#features-at-a-glance\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features at a Glance</h1>\n<p dir=\"auto\">Winds is packed full of awesome features behind a beautiful user interface and user experience. Here's a quick look at what the project has to offer:</p>\n<h2 dir=\"auto\"><a id=\"user-content-beautiful-ui\" class=\"anchor\" aria-hidden=\"true\" href=\"#beautiful-ui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Beautiful UI</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/a632526f284f114b74e16c393ce5ccac4ddefa48e168d7f81f5b3fa0be6abe5e/68747470733a2f2f692e696d6775722e636f6d2f573166706f77562e706e67\"><img src=\"https://camo.githubusercontent.com/a632526f284f114b74e16c393ce5ccac4ddefa48e168d7f81f5b3fa0be6abe5e/68747470733a2f2f692e696d6775722e636f6d2f573166706f77562e706e67\" alt=\"Winds UI\" data-canonical-src=\"https://i.imgur.com/W1fpowV.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-rss--podcast-recommendations\" class=\"anchor\" aria-hidden=\"true\" href=\"#rss--podcast-recommendations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>RSS & Podcast Recommendations</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/6041b4f4b94786f08926fb72b1a99c4f72031d104c3100bf1a360ff9dc90276d/68747470733a2f2f692e696d6775722e636f6d2f416c56674454672e706e67\"><img src=\"https://camo.githubusercontent.com/6041b4f4b94786f08926fb72b1a99c4f72031d104c3100bf1a360ff9dc90276d/68747470733a2f2f692e696d6775722e636f6d2f416c56674454672e706e67\" alt=\"Winds RSS & Podcast Recommendations\" data-canonical-src=\"https://i.imgur.com/AlVgDTg.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-integrated-search\" class=\"anchor\" aria-hidden=\"true\" href=\"#integrated-search\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Integrated Search</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2c483da82086b0b3b34ca830bef20c369bc2dad69cf821160139c6bc16cf62fb/68747470733a2f2f692e696d6775722e636f6d2f7a6157744e66562e706e67\"><img src=\"https://camo.githubusercontent.com/2c483da82086b0b3b34ca830bef20c369bc2dad69cf821160139c6bc16cf62fb/68747470733a2f2f692e696d6775722e636f6d2f7a6157744e66562e706e67\" alt=\"Winds Search\" data-canonical-src=\"https://i.imgur.com/zaWtNfV.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-podcast-player\" class=\"anchor\" aria-hidden=\"true\" href=\"#podcast-player\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Podcast Player</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/22169746bd679f718abc946763175a2d7d9ee37dcab67289748a7cfb6f8aaae1/68747470733a2f2f692e696d6775722e636f6d2f746832343772412e706e67\"><img src=\"https://camo.githubusercontent.com/22169746bd679f718abc946763175a2d7d9ee37dcab67289748a7cfb6f8aaae1/68747470733a2f2f692e696d6775722e636f6d2f746832343772412e706e67\" alt=\"Winds Podcast Player\" data-canonical-src=\"https://i.imgur.com/th247rA.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-rss-reader\" class=\"anchor\" aria-hidden=\"true\" href=\"#rss-reader\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>RSS Reader</h2>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/cda2850aa41cf19f52977012b205864b713b8acd71e2de27fbce37bb37e36ecc/68747470733a2f2f692e696d6775722e636f6d2f443377743757332e706e67\"><img src=\"https://camo.githubusercontent.com/cda2850aa41cf19f52977012b205864b713b8acd71e2de27fbce37bb37e36ecc/68747470733a2f2f692e696d6775722e636f6d2f443377743757332e706e67\" alt=\"Winds RSS Reader\" data-canonical-src=\"https://i.imgur.com/D3wt7W3.png\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-tocd\" class=\"anchor\" aria-hidden=\"true\" href=\"#tocd\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TOCd</h2>\n<ul dir=\"auto\">\n<li><a href=\"#roadmap\">Roadmap</a></li>\n<li><a href=\"#powered-by\">Powered By</a>\n<ul dir=\"auto\">\n<li><a href=\"#stream\">Stream</a></li>\n<li><a href=\"#algolia\">Algolia</a></li>\n<li><a href=\"#mongodb\">MongoDB</a></li>\n<li><a href=\"https://sendgrid.com\" rel=\"nofollow\">SendGrid</a></li>\n<li><a href=\"https://aws.amazon.com/\" rel=\"nofollow\">AWS</a></li>\n</ul>\n</li>\n<li><a href=\"#tutorials\">Tutorials</a></li>\n<li><a href=\"#download\">Download</a></li>\n<li><a href=\"#contributing-to-winds\">Contributing to Winds</a></li>\n<li><a href=\"#support\">Support</a></li>\n<li><a href=\"#maintenance-and-contributions\">Maintenance & Contributions</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-roadmap\" class=\"anchor\" aria-hidden=\"true\" href=\"#roadmap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Roadmap</h2>\n<p dir=\"auto\">Help us improve Winds and/or vote on the <a href=\"https://github.com/GetStream/Winds/issues/191\" data-hovercard-type=\"issue\" data-hovercard-url=\"/GetStream/Winds/issues/191/hovercard\">Roadmap for 2.1</a></p>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Search detail screen</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Playlist support (partially implemented)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Team support (share an activity feed with colleagues or friends to discover and collaborate)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Mobile application powered by React Native</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-powered-by\" class=\"anchor\" aria-hidden=\"true\" href=\"#powered-by\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Powered By</h2>\n<ol dir=\"auto\">\n<li><a href=\"https://expressjs.com?ref=winds\" rel=\"nofollow\">Express</a></li>\n<li><a href=\"https://reactjs.org?ref=winds\" rel=\"nofollow\">React</a> & <a href=\"https://redux.js.org?ref=winds\" rel=\"nofollow\">Redux</a></li>\n<li><a href=\"https://www.algolia.com?ref=winds\" rel=\"nofollow\">Algolia</a></li>\n<li><a href=\"http://mbsy.co/mongodb/228644\" rel=\"nofollow\">MongoDB Atlas</a></li>\n<li><a href=\"https://sendgrid.com?ref=winds\" rel=\"nofollow\">SendGrid</a></li>\n<li><a href=\"https://github.com/OptimalBits/bull?ref=winds\">Bull</a></li>\n<li><a href=\"https://mercury.postlight.com?ref=winds\" rel=\"nofollow\">Mercury</a></li>\n<li><a href=\"https://getstream.io?ref=winds\" rel=\"nofollow\">Stream</a></li>\n<li><a href=\"https://sentry.io/?ref=winds\" rel=\"nofollow\">Sentry</a></li>\n<li><a href=\"https://aws.amazon.com/?ref=winds\" rel=\"nofollow\">AWS</a></li>\n</ol>\n<p dir=\"auto\"><strong>The full stack can be found on <a href=\"https://stackshare.io/stream/winds\" rel=\"nofollow\">StackShare.io</a>.</strong></p>\n<h3 dir=\"auto\"><a id=\"user-content-stream\" class=\"anchor\" aria-hidden=\"true\" href=\"#stream\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stream</h3>\n<p dir=\"auto\"><a href=\"https://getstream.io/?ref=winds\" rel=\"nofollow\">Stream</a> is an API for building activity feeds. For Winds the follow suggestions and the list of articles from the feeds you follow is powered by Stream. Stream accounts are free for up to 3 million feed updates and handle personalization (machine learning) for up to 100 users.</p>\n<h3 dir=\"auto\"><a id=\"user-content-algolia\" class=\"anchor\" aria-hidden=\"true\" href=\"#algolia\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Algolia</h3>\n<p dir=\"auto\"><a href=\"https://algolia.com?ref=winds\" rel=\"nofollow\">Algolia</a> is used for lightning fast and relevant search. We use their <a href=\"https://www.npmjs.com/package/algoliasearch?ref=winds\" rel=\"nofollow\">JavaScript search client</a> to easily setup the Winds search implementation. Algolia, accounts are free up to 10k records and 100k operations.</p>\n<h3 dir=\"auto\"><a id=\"user-content-mongodb\" class=\"anchor\" aria-hidden=\"true\" href=\"#mongodb\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>MongoDB</h3>\n<p dir=\"auto\"><a href=\"http://mbsy.co/mongodb/228644\" rel=\"nofollow\">MongoDB Atlas</a> provides a Database as a Service, and serves as the backend datastore for Winds.</p>\n<h2 dir=\"auto\"><a id=\"user-content-tutorials--blog-posts\" class=\"anchor\" aria-hidden=\"true\" href=\"#tutorials--blog-posts\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tutorials & Blog Posts</h2>\n<p dir=\"auto\">The following tutorials will not only help you start contributing to Winds, but also provide inspiration for your next app.</p>\n<p dir=\"auto\"><strong>Note:</strong> We're actively working on this portion of the README. To stay up to date with the latest information, please signup for the hosted version at <a href=\"https://getstream.io/winds\" rel=\"nofollow\">https://getstream.io/winds</a>.</p>\n<ol dir=\"auto\">\n<li><a href=\"https://hackernoon.com/integrating-algolia-search-in-winds-a-beautiful-rss-podcast-application-f231e49cdab5\" rel=\"nofollow\">Implementing search with Algolia</a></li>\n<li><a href=\"https://getstream.io/blog/the-engine-that-powers-winds/\" rel=\"nofollow\">Stream and Winds</a></li>\n<li><a href=\"https://hackernoon.com/running-pm2-node-js-in-production-environments-13e703fc108a\" rel=\"nofollow\">Running PM2 & Node.js in Production Environments</a></li>\n<li><a href=\"https://hackernoon.com/building-a-node-js-powered-api-with-express-mongoose-mongodb-19b14fd4b51e\" rel=\"nofollow\">Creating a RESTful API design with Express.js</a></li>\n<li><a href=\"https://medium.com/@nparsons08/publishing-a-react-based-app-with-electron-and-nodejs-f5ec44169366\" rel=\"nofollow\">Takeaways on Building a React Based App with Electron</a></li>\n<li><a href=\"https://stackshare.io/stream/how-stream-built-a-modern-rss-reader-with-javascript\" rel=\"nofollow\">The Winds Stack</a></li>\n<li><a href=\"https://hackernoon.com/winds-2-1-building-touch-bar-support-for-macos-in-electron-with-react-e10adb811c91\" rel=\"nofollow\">Building Touch Bar Support for macOS in Electron with React</a></li>\n<li><a href=\"https://hackernoon.com/testing-node-js-in-2018-10a04dd77391\" rel=\"nofollow\">Testing Node.js in 2018</a></li>\n<li><a href=\"https://hackernoon.com/simple-steps-to-optimize-your-app-performance-5700d8b58f58\" rel=\"nofollow\">Simple Steps to Optimize Your App Performance with MongoDB, Redis, and Node.js</a></li>\n<li><a href=\"https://hackernoon.com/winds-an-in-depth-tutorial-on-making-your-first-contribution-to-open-source-software-ebf259f21db2\" rel=\"nofollow\">Getting Started with Winds & Open Source</a></li>\n<li><a href=\"https://getstream.io/blog/deploying-the-winds-app-to-amazon-s3-and-cloudfront/\" rel=\"nofollow\">Deploying the Winds App to Amazon S3 and CloudFront</a></li>\n<li><a href=\"https://getstream.io/blog/deploying-the-winds-api-to-aws-ecs-with-docker-compose/\" rel=\"nofollow\">Deploying the Winds API to AWS ECS with Docker Compose</a></li>\n</ol>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">To download Winds, visit <a href=\"https://getstream.io/winds/\" rel=\"nofollow\">https://getstream.io/winds/</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing-to-winds\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing-to-winds\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing to Winds</h2>\n<h3 dir=\"auto\"><a id=\"user-content-tldr\" class=\"anchor\" aria-hidden=\"true\" href=\"#tldr\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TL;DR</h3>\n<p dir=\"auto\">Commands:</p>\n<ul dir=\"auto\">\n<li><code>brew install redis mongodb</code></li>\n<li><code>brew services start mongodb</code></li>\n<li><code>brew services start redis</code></li>\n<li><code>cd Winds</code></li>\n<li><code>cd api && yarn</code></li>\n<li><code>cd ../app && yarn</code></li>\n</ul>\n<p dir=\"auto\">Sign up for both Stream and Algolia, and create the following <code>.env</code> file in the <code>app</code> directory, replacing the keys where indicated:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"DATABASE_URI=mongodb://localhost/WINDS_DEV\nCACHE_URI=redis://localhost:6379\nJWT_SECRET=YOUR_JWT_SECRET\n\nAPI_PORT=8080\nREACT_APP_API_ENDPOINT=http://localhost:8080\nSTREAM_API_BASE_URL=https://windspersonalization.getstream.io/personalization/v1.0\n\nSTREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_API_KEY=YOUR_STREAM_API_KEY\nREACT_APP_STREAM_ANALYTICS=YOUR_STREAM_ANALYTICS_TOKEN\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\n\nREACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\"><pre class=\"notranslate\"><code class=\"notranslate\">DATABASE_URI=mongodb://localhost/WINDS_DEV\nCACHE_URI=redis://localhost:6379\nJWT_SECRET=YOUR_JWT_SECRET\n\nAPI_PORT=8080\nREACT_APP_API_ENDPOINT=http://localhost:8080\nSTREAM_API_BASE_URL=https://windspersonalization.getstream.io/personalization/v1.0\n\nSTREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_APP_ID=YOUR_STREAM_APP_ID\nREACT_APP_STREAM_API_KEY=YOUR_STREAM_API_KEY\nREACT_APP_STREAM_ANALYTICS=YOUR_STREAM_ANALYTICS_TOKEN\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\n\nREACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\n</code></pre></div>\n<blockquote>\n<p dir=\"auto\">Note: If you are running the test suite, you will need to have a test version of the <code>.env</code> file inside of the <code>api/test</code> directory.</p>\n</blockquote>\n<p dir=\"auto\">Then run:</p>\n<ul dir=\"auto\">\n<li><code>pm2 start process_dev.json</code></li>\n<li><code>cd app && yarn start</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-clone-the-repo\" class=\"anchor\" aria-hidden=\"true\" href=\"#clone-the-repo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Clone the Repo</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone git@github.com:GetStream/Winds.git\"><pre>git clone git@github.com:GetStream/Winds.git</pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-install-dependencies\" class=\"anchor\" aria-hidden=\"true\" href=\"#install-dependencies\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install dependencies</h3>\n<p dir=\"auto\">The following instructions are geared towards Mac users who can use <code>brew</code> (<a href=\"https://brew.sh/\" rel=\"nofollow\">Homebrew</a>) to install most dependencies. Ubuntu users can use <code>apt</code>, and Windows users will have to install directly from the dependency's site. Non-debian-based Linux users will probably be able to figure it out on their own :)</p>\n<ul dir=\"auto\">\n<li><code>cd Winds/app</code></li>\n<li><code>yarn</code></li>\n<li><code>cd ../api</code></li>\n<li><code>yarn</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-start-mongodb-locally\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-mongodb-locally\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start MongoDB Locally</h3>\n<p dir=\"auto\">Winds uses MongoDB as the main datastore - it contains all users, rss feeds, podcasts, episodes, articles, and shares.</p>\n<p dir=\"auto\">If you're on a Mac, you can install MongoDB through <a href=\"https://brew.sh/\" rel=\"nofollow\">Homebrew</a> by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install mongodb\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install mongodb\n</code></pre></div>\n<p dir=\"auto\"><em>(You can also install MongoDB from the <a href=\"https://www.mongodb.com/download-center\" rel=\"nofollow\">official MongoDB site</a>.)</em></p>\n<p dir=\"auto\">You can also run MongoDB in the background by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew services start mongodb\"><pre class=\"notranslate\"><code class=\"notranslate\">brew services start mongodb\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-redis-locally\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-redis-locally\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start Redis Locally</h3>\n<p dir=\"auto\">At Stream, we use Redis as an in-memory storage for the Winds podcast processing and RSS processing workers. It contains a list of podcasts and RSS feeds, which the workers pick up and process using the <code>bull</code> messaging system.</p>\n<p dir=\"auto\">If you're on a Mac, you can install Redis through <a href=\"https://brew.sh/\" rel=\"nofollow\">Homebrew</a> by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew install redis\"><pre class=\"notranslate\"><code class=\"notranslate\">brew install redis\n</code></pre></div>\n<p dir=\"auto\"><em>(You can also install Redis from the <a href=\"https://redis.io/download\" rel=\"nofollow\">official Redis site</a>.)</em></p>\n<p dir=\"auto\">Then, start Redis by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"redis-server\"><pre class=\"notranslate\"><code class=\"notranslate\">redis-server\n</code></pre></div>\n<p dir=\"auto\">...which creates (by default) a <code>dump.rdb</code> file in your current directory and stores a cached version of the database in that location.</p>\n<p dir=\"auto\">You can also run Redis in the background by running:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew services start redis\"><pre class=\"notranslate\"><code class=\"notranslate\">brew services start redis\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-loading-test-data\" class=\"anchor\" aria-hidden=\"true\" href=\"#loading-test-data\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Loading Test Data</h3>\n<p dir=\"auto\">For testing purposes, you will want to use the test data located <a href=\"https://s3.amazonaws.com/winds-hosted/static/export/WINDS.zip\" rel=\"nofollow\">here</a>.</p>\n<p dir=\"auto\">Use <a href=\"https://docs.mongodb.com/manual/reference/program/mongoimport/\" rel=\"nofollow\"><code>mongoimport</code></a> or <a href=\"https://docs.mongodb.com/manual/reference/program/mongorestore/\" rel=\"nofollow\"><code>mongorestore</code></a> to import the data. There are two username and password combinations for testing:</p>\n<p dir=\"auto\"><strong>Username</strong>: <code>admin@admin.com</code><br>\n<strong>Password</strong>: <code>admin</code>\n<br><br>\n<strong>Username</strong>: <code>test@test.com</code><br>\n<strong>Password</strong>: <code>test</code></p>\n<p dir=\"auto\">You will need to run the <code>FLUSHALL</code> command in Redis to ensure that the new content is picked up.</p>\n<blockquote>\n<p dir=\"auto\">Note: This will override any local data that you may have. Please be cautious! Also, this will not create Stream follows – please follow feeds manually to generate them.</p>\n</blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-stream-1\" class=\"anchor\" aria-hidden=\"true\" href=\"#stream-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stream</h3>\n<h4 dir=\"auto\"><a id=\"user-content-sign-up-and-create-a-stream-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#sign-up-and-create-a-stream-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Sign up and Create a Stream App</h4>\n<p dir=\"auto\">To contribute to Winds, sign up for <a href=\"https://getstream.io/get_started?ref=winds\" rel=\"nofollow\">Stream</a> to utilize the activity and timeline feeds.</p>\n<p dir=\"auto\"><em>(Reminder: Stream is free for applications with less than 3,000,000 updates per month.)</em></p>\n<ul dir=\"auto\">\n<li><a href=\"https://getstream.io/get_started?ref=winds\" rel=\"nofollow\">Sign up for Stream here</a></li>\n<li>Create a new Stream app</li>\n<li>Find the App ID, API Key, and API Secret for your new Stream app</li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-add-your-stream-app-id-api-key-and-api-secret-to-your-env\" class=\"anchor\" aria-hidden=\"true\" href=\"#add-your-stream-app-id-api-key-and-api-secret-to-your-env\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Add your Stream App ID, API Key, and API Secret to your <code>.env</code></h4>\n<p dir=\"auto\">Append the Stream App ID, API Key, and API secret to your <code>.env</code> file:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"STREAM_APP_ID=YOUR_STREAM_APP_ID\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\"><pre class=\"notranslate\"><code class=\"notranslate\">STREAM_APP_ID=YOUR_STREAM_APP_ID\nSTREAM_API_KEY=YOUR_STREAM_API_KEY\nSTREAM_API_SECRET=YOUR_STREAM_API_SECRET\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-create-your-stream-feed-groups\" class=\"anchor\" aria-hidden=\"true\" href=\"#create-your-stream-feed-groups\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Create Your Stream Feed Groups</h4>\n<p dir=\"auto\">Once you've signed in, create \"feed groups\" for your Stream app.</p>\n<p dir=\"auto\">A \"feed group\" defines a certain type of feed within your application. Use the \"Add Feed Group\" button to create the following feeds:</p>\n<table>\n<thead>\n<tr>\n<th>Feed Group Name</th>\n<th>Feed Group Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>podcast</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>rss</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>user</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>timeline</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>folder</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>user_episode</code></td>\n<td>flat</td>\n</tr>\n<tr>\n<td><code>user_article</code></td>\n<td>flat</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\">It's fine to enable \"Realtime Notifications\" for each of these feed groups, though we won't be using those yet.</p>\n<h3 dir=\"auto\"><a id=\"user-content-algolia-1\" class=\"anchor\" aria-hidden=\"true\" href=\"#algolia-1\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Algolia</h3>\n<h4 dir=\"auto\"><a id=\"user-content-sign-up-for-algolia-and-create-an-algolia-app-and-index\" class=\"anchor\" aria-hidden=\"true\" href=\"#sign-up-for-algolia-and-create-an-algolia-app-and-index\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Sign up for Algolia and Create an Algolia App and Index</h4>\n<p dir=\"auto\">In addition to Stream, you also need to sign up for <a href=\"https://www.algolia.com/users/sign_up?ref=winds\" rel=\"nofollow\">Algolia</a>, to contribute to Winds, for the search functionality.</p>\n<p dir=\"auto\"><em>(Algolia is free for applications with up to 10k records.)</em></p>\n<ul dir=\"auto\">\n<li><a href=\"https://www.algolia.com/users/sign_up?ref=winds\" rel=\"nofollow\">Sign up for Algolia here</a></li>\n<li>From the <a href=\"https://www.algolia.com/manage/applications\" rel=\"nofollow\">Applications page</a>, click \"New Application\" and create a new Algolia application. (We recommend something similar to <code>my-winds-app</code>)\n<ul dir=\"auto\">\n<li>(Select the datacenter that's closest to you.)</li>\n</ul>\n</li>\n<li>From the application page, select \"Indices\" and click \"Add New Index\". (We recommend something similar to <code>winds-main-index</code>)</li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-add-your-algolia-application-id-search-only-api-key-and-admin-api-key-to-your-env-file\" class=\"anchor\" aria-hidden=\"true\" href=\"#add-your-algolia-application-id-search-only-api-key-and-admin-api-key-to-your-env-file\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Add Your Algolia Application Id, Search-Only Api Key and Admin Api Key to Your <code>.env</code> File</h4>\n<p dir=\"auto\">From your app, click the \"API Keys\" button on the left to find your app ID and API keys.</p>\n<p dir=\"auto\">Append your Algolia application ID, search-only API Key and Admin API Key to your <code>.env</code> file to look like this:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"REACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\"><pre class=\"notranslate\"><code class=\"notranslate\">REACT_APP_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID\nREACT_APP_ALGOLIA_SEARCH_KEY=YOUR_ALGOLIA_SEARCH_ONLY_API_KEY\nALGOLIA_WRITE_KEY=YOUR_ALGOLIA_ADMIN_API_KEY\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-backend-services\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-backend-services\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start Backend Services</h3>\n<p dir=\"auto\">From the root directory, run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pm2 start process_dev.json\"><pre class=\"notranslate\"><code class=\"notranslate\">pm2 start process_dev.json\n</code></pre></div>\n<p dir=\"auto\">To see logging information for all processes, run:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pm2 logs\"><pre class=\"notranslate\"><code class=\"notranslate\">pm2 logs\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-start-frontend-electron--web-app-server\" class=\"anchor\" aria-hidden=\"true\" href=\"#start-frontend-electron--web-app-server\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Start Frontend Electron / Web App Server</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd app && yarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">cd app && yarn start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-running-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"#running-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running tests</h3>\n<p dir=\"auto\">Winds API server uses:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://mochajs.org\" rel=\"nofollow\">Mocha</a> as testing framework</li>\n<li><a href=\"https://chaijs.org\" rel=\"nofollow\">Chai</a> as assertion library</li>\n<li><a href=\"https://sinonjs.org\" rel=\"nofollow\">Sinon</a> as mocking library</li>\n<li><a href=\"https://github.com/node-nock/nock\">nock</a> as HTTP mocking library</li>\n<li><a href=\"https://github.com/boblauer/mock-require\">mock-require</a> as module mocking library</li>\n</ul>\n<p dir=\"auto\">Tests are located in <a href=\"https://github.com/GetStream/Winds/tree/master/api/test\"><code>api/test</code> folder</a>.</p>\n<p dir=\"auto\">File structure is intentionally mirroring files in <code>api/src</code> to simplify matching tests to tested code.</p>\n<p dir=\"auto\">To run tests:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd api && yarn run test\"><pre class=\"notranslate\"><code class=\"notranslate\">cd api && yarn run test\n</code></pre></div>\n<p dir=\"auto\">To run tests with extended stack traces (useful when debugging async issues):</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cd api && yarn run test_deep\"><pre class=\"notranslate\"><code class=\"notranslate\">cd api && yarn run test_deep\n</code></pre></div>\n<h4 dir=\"auto\"><a id=\"user-content-adding-new-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"#adding-new-tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Adding new tests</h4>\n<p dir=\"auto\">Add your code to a file in <code>api/test</code> folder (preferably mirroring existing file from <code>api/src</code> folder).</p>\n<p dir=\"auto\">Refer to <a href=\"https://mochajs.org/#getting-started\" rel=\"nofollow\">Mocha documentation</a> for examples of using BDD-like DSL for writing tests.</p>\n<p dir=\"auto\">Modules are mocked in <a href=\"https://github.com/GetStream/Winds/blob/master/api/test-entry.js#L21L27\"><code>api/test-entry.js</code></a> as mocks have to be installed before any modules are loaded.</p>\n<p dir=\"auto\">Fixtures are loaded via <a href=\"https://github.com/GetStream/Winds/blob/master/api/test/utils.js#L59L101\"><code>loadFixture</code></a> function from <a href=\"https://github.com/GetStream/Winds/tree/master/api/test/fixtures\"><code>api/test/fixtures</code> folder</a></p>\n<p dir=\"auto\">Various utility functions are provided in <a href=\"https://github.com/GetStream/Winds/blob/master/api/test/utils.js\"><code>api/test/util.js</code></a> (See other tests for examples of usage).</p>\n<h3 dir=\"auto\"><a id=\"user-content-building-a-production-version\" class=\"anchor\" aria-hidden=\"true\" href=\"#building-a-production-version\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Building a Production Version</h3>\n<p dir=\"auto\">Build a production version of Winds by running from root directory:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"./api/build.sh\"><pre class=\"notranslate\"><code class=\"notranslate\">./api/build.sh\n</code></pre></div>\n<p dir=\"auto\">This creates production-ready JS files in api/dist.</p>\n<p dir=\"auto\">To run the production JS files:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"pm2 start process_prod.json\"><pre class=\"notranslate\"><code class=\"notranslate\">pm2 start process_prod.json\n</code></pre></div>\n<p dir=\"auto\">OR</p>\n<p dir=\"auto\"><strong>Prepare the build for Docker</strong>:</p>\n<p dir=\"auto\"><code>cd api && cd scripts && ./make-build.sh</code></p>\n<p dir=\"auto\"><strong>Build the Docker container (API & all workers)</strong>:</p>\n<p dir=\"auto\"><code>cd ../ && docker-compose up</code></p>\n<p dir=\"auto\">The commands above will prepare and start the API (and all workers). The frontend will still need to be started manually.</p>\n<h2 dir=\"auto\"><a id=\"user-content-debugging-rss--podcast-issues\" class=\"anchor\" aria-hidden=\"true\" href=\"#debugging-rss--podcast-issues\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Debugging RSS & Podcast Issues</h2>\n<p dir=\"auto\">Unfortunately there is no unified standard for RSS.\nGo to the <code>api</code> directory and run <code>yarn link</code> to make these commands available:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds rss https://techcrunch.com/feed/\"><pre class=\"notranslate\"><code class=\"notranslate\">winds rss https://techcrunch.com/feed/\n</code></pre></div>\n<p dir=\"auto\"><strong>Podcasts</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds podcast https://www.npr.org/rss/podcast.php\\?id\\=510289\"><pre class=\"notranslate\"><code class=\"notranslate\">winds podcast https://www.npr.org/rss/podcast.php\\?id\\=510289\n</code></pre></div>\n<p dir=\"auto\"><strong>Open Graph scraping</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds og http://www.planetary.org/multimedia/planetary-radio/show/2018/0509-amy-mainzer-neowise.html\"><pre class=\"notranslate\"><code class=\"notranslate\">winds og http://www.planetary.org/multimedia/planetary-radio/show/2018/0509-amy-mainzer-neowise.html\n</code></pre></div>\n<p dir=\"auto\"><strong>RSS Discovery</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds discover mashable.com\"><pre class=\"notranslate\"><code class=\"notranslate\">winds discover mashable.com\n</code></pre></div>\n<p dir=\"auto\"><strong>Article parsing (w/ Mercury)</strong>:</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"winds article https://alexiskold.net/2018/04/12/meet-12-startups-from-techstars-nyc-winter-2018-program/\"><pre class=\"notranslate\"><code class=\"notranslate\">winds article https://alexiskold.net/2018/04/12/meet-12-startups-from-techstars-nyc-winter-2018-program/\n</code></pre></div>\n<p dir=\"auto\">Pull requests for improved RSS compatibility are much appreciated.\nMost of the parsing codebase is located in <code>api/src/parsers/</code>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-support\" class=\"anchor\" aria-hidden=\"true\" href=\"#support\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Support</h2>\n<p dir=\"auto\">All support is handled via <a href=\"https://github.com/getstream/winds/issues\">GitHub Issues</a>. If you're unfamiliar with creating an Issue on GitHub, please follow <a href=\"https://help.github.com/articles/creating-an-issue/\">these instructions</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-maintenance-and-contributions\" class=\"anchor\" aria-hidden=\"true\" href=\"#maintenance-and-contributions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Maintenance and Contributions</h2>\n<p dir=\"auto\">Thank you to all of the maintainers and contributors who've helped Winds become what it is today and help it stay up and running every day. We couldn't do it without you!</p>\n<h3 dir=\"auto\"><a id=\"user-content-special-shoutouts-to\" class=\"anchor\" aria-hidden=\"true\" href=\"#special-shoutouts-to\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Special Shoutouts To:</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://hackernoon.com/\" rel=\"nofollow\">Hackernoon</a></li>\n<li><a href=\"https://www.producthunt.com/\" rel=\"nofollow\">Product Hunt</a></li>\n<li><a href=\"https://stackshare.io/stream/how-stream-built-a-modern-rss-reader-with-javascript\" rel=\"nofollow\">StackShare</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-primary-maintainers\" class=\"anchor\" aria-hidden=\"true\" href=\"#primary-maintainers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Primary Maintainers</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/nparsons08\">Nick Parsons</a></li>\n<li><a href=\"https://github.com/mahboubii\">Amin Mahboubi</a></li>\n<li><a href=\"https://github.com/tschellenbach\">Thierry Schellenbach</a></li>\n<li><a href=\"https://github.com/tilton\">Josh Tilton</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/tbarbugli\">Tommaso Barbugli</a></li>\n<li><a href=\"https://github.com/kenhoff\">Ken Hoff</a></li>\n<li><a href=\"https://github.com/dwightgunning\">Dwight Gunning</a></li>\n<li><a href=\"https://github.com/mathias\">Matt Gauger</a></li>\n<li><a href=\"https://github.com/nekuromento\">Max Klyga</a></li>\n<li><a href=\"https://github.com/Zhomart\">Zhomart Mukhamejanov</a></li>\n<li><a href=\"https://github.com/julianxhokaxhiu\">Julian Xhokaxhiu</a></li>\n<li><a href=\"https://github.com/thundergolfer\">Jonathon Belotti</a></li>\n<li><a href=\"https://github.com/gitter-badger\">The Gitter Badger</a></li>\n<li><a href=\"https://github.com/meriadec\">Meriadec Pillet</a></li>\n<li><a href=\"https://github.com/sifex\">Alex Sinnott</a></li>\n<li><a href=\"https://github.com/sauban\">Lawal Sauban</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-revive-rss\" class=\"anchor\" aria-hidden=\"true\" href=\"#revive-rss\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Revive RSS</h2>\n<p dir=\"auto\">RSS is an amazing open standard. It is probably the most pleasant way to stay up to date with the sites and podcasts you care about. Our reasons for contributing to Winds are explained in the blogpost <a href=\"https://getstream.io/blog/winds-2-0-its-time-to-revive-rss/\" rel=\"nofollow\">Winds 2.0 It's time to Revive RSS</a>. In this section we will list other open source and commercial projects that are having an impact on Reviving RSS:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/miniflux/miniflux\">Miniflux</a></li>\n<li><a href=\"https://twitrss.me/\" rel=\"nofollow\">TwitRSSMe</a></li>\n<li><a href=\"https://feedly.com/\" rel=\"nofollow\">Feedly</a></li>\n<li><a href=\"https://newsblur.com/\" rel=\"nofollow\">NewsBlur</a></li>\n<li><a href=\"https://feedity.com/\" rel=\"nofollow\">Feedity</a></li>\n<li><a href=\"https://mg.guelker.eu/saverss/\" rel=\"nofollow\">SaveRSS</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-we-are-hiring\" class=\"anchor\" aria-hidden=\"true\" href=\"#we-are-hiring\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>We are hiring!</h2>\n<p dir=\"auto\">We've recently closed a <a href=\"https://techcrunch.com/2021/03/04/stream-raises-38m-as-its-chat-and-activity-feed-apis-power-communications-for-1b-users/\" rel=\"nofollow\">$38 million Series B funding round</a> and we keep actively growing.\nOur APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world.</p>\n<p dir=\"auto\">Check out our current openings and apply via <a href=\"https://getstream.io/team/#jobs\" rel=\"nofollow\">Stream's website</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.147Z" }, "wizard-mirror": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-wizard-mirror\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#wizard-mirror\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Wizard Mirror</h1>\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/logo.png\"><img src=\"https://www.raw.githubusercontent.com/Sanjit1/WizardMirror/master/logo.png\" width=\"250\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/09d5a36d70f661bb3ccfbf50cf5c5ea5add0d42b0a3b59cfaa4a188752d31fa5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73757065722532306475706572253230617765736f6d652d6865636b25323079612d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/09d5a36d70f661bb3ccfbf50cf5c5ea5add0d42b0a3b59cfaa4a188752d31fa5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73757065722532306475706572253230617765736f6d652d6865636b25323079612d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/super%20duper%20awesome-heck%20ya-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/7adef1a61f2a9178873bf60af7a0909e18e90cc4a1e98c67f15fe22fc0e38151/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616465253230666f722d526173706265727279253230506925323055736572732d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/7adef1a61f2a9178873bf60af7a0909e18e90cc4a1e98c67f15fe22fc0e38151/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616465253230666f722d526173706265727279253230506925323055736572732d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/made%20for-Raspberry%20Pi%20Users-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/5805b726471000642ebb2c3b6cd3abb36269ce56cc09dd4c60be8f8bf5c66328/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f757365732d456c656374726f6e6a732d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/5805b726471000642ebb2c3b6cd3abb36269ce56cc09dd4c60be8f8bf5c66328/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f757365732d456c656374726f6e6a732d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/uses-Electronjs-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2d414119b93582a9d3ec4f94d14436f63ad0166129851695a8a6563ebc7802b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6f64756c65722d7975702d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/2d414119b93582a9d3ec4f94d14436f63ad0166129851695a8a6563ebc7802b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6f64756c65722d7975702d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/moduler-yup-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/f0592ac46edbde4f3819b6939165e7823284394a877a57e07135628967f9fe57/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/f0592ac46edbde4f3819b6939165e7823284394a877a57e07135628967f9fe57/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/issues/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/b08e375e5c978a01fd4454bcfc5bcc4c997257c1c593a40623c8481d21874790/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/b08e375e5c978a01fd4454bcfc5bcc4c997257c1c593a40623c8481d21874790/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/forks/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d7263607ac0cc1aaf710951387e1b0bc086914829362bc6602af6a12629a62b1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/d7263607ac0cc1aaf710951387e1b0bc086914829362bc6602af6a12629a62b1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/stars/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/04961da039c53bf6d73327afcff3ba4f844440ff956d677d1d7d18644c4cffce/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/04961da039c53bf6d73327afcff3ba4f844440ff956d677d1d7d18644c4cffce/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/license/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/94d15b409765f28a67558a10f13d371eaef33941d15480d9dd65e506345fee5e/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c3f75726c3d68747470732533412532462532466769746875622e636f6d25324653616e6a69743125324657697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/94d15b409765f28a67558a10f13d371eaef33941d15480d9dd65e506345fee5e/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c3f75726c3d68747470732533412532462532466769746875622e636f6d25324653616e6a69743125324657697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/twitter/url?url=https%3A%2F%2Fgithub.com%2FSanjit1%2FWizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/077e5c9d8706aced19eb06210bb8ab1e835cba1e342efb67803509ab0d42d251/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f756e742f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/077e5c9d8706aced19eb06210bb8ab1e835cba1e342efb67803509ab0d42d251/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f756e742f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/languages/count/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0b19640cc3f915d5d0c7bbd60233c53a7a969d05e5ab147c72168fa41c738507/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/0b19640cc3f915d5d0c7bbd60233c53a7a969d05e5ab147c72168fa41c738507/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/languages/top/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Wizard Mirror is an open-source <a href=\"https://electronjs.org\" rel=\"nofollow\">Electronjs</a> app, that can give a regular mirror mysterious powers with the help of a Raspberry Pi!</p>\n<h1 dir=\"auto\"><a id=\"user-content-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contents</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#installation\">Installation</a></li>\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#getting-started\">Getting Started</a>\n<ul dir=\"auto\">\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#time\">Time</a></li>\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#current-weather\">Current Weather</a></li>\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#weather-forecast\">Weather Forecast</a></li>\n</ul>\n</li>\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#hardware\">Hardware</a></li>\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#positions\">Positions</a></li>\n<li><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#feature-request\">Feature Request</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<p dir=\"auto\">To install WizardMirror: run this on your <a href=\"https://www.raspberrypi.org/\" rel=\"nofollow\">Raspberry PI's</a> terminal</p>\n<p dir=\"auto\"><code>bash -c \"$(curl -sL https://raw.githubusercontent.com/Sanjit1/WizardMirror/master/scripts/install.sh)\"</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">To start your WizardMirror, run <code>npm start</code> from the <code>WizardMirror</code> directory. Your WizardMirror can run apps under it, for example, a time app or a weather app. App settings can be set in <code>apps.json</code> (which is duplicated from <a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/appsSample.json\">appsSample.json</a> by the installation script).\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps.json.png\"><img src=\"https://www.raw.githubusercontent.com/Sanjit1/WizardMirror/master/apps.json.png\" alt=\"apps.json\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\nHere are some preinstalled applications:</p>\n<h3 dir=\"auto\"><a id=\"user-content-time\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#time\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Time:</h3>\n<p dir=\"auto\"><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps/time\">Time</a> shows the current time on your WizardMirror.</p>\n<p dir=\"auto\">Configuration:</p>\n<p dir=\"auto\">There are configurations for the time app, which can be changed from <a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/appsSample.json#L30\"><code>apps.json.apps[\"time\"].config</code></a>:</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Setting</th>\n<th align=\"center\">Possible Values</th>\n<th align=\"center\">Default</th>\n<th align=\"right\">Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"left\">div</td>\n<td align=\"center\"><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#positions\">List of positions</a></td>\n<td align=\"center\">pos-topLeft</td>\n<td align=\"right\">The div where time will be displayed</td>\n</tr>\n<tr>\n<td align=\"left\">showSeconds</td>\n<td align=\"center\">true/false</td>\n<td align=\"center\">false</td>\n<td align=\"right\">To show seconds or not</td>\n</tr>\n<tr>\n<td align=\"left\">twentyfourhourclock</td>\n<td align=\"center\">true/false</td>\n<td align=\"center\">false</td>\n<td align=\"right\">24 Hour clock or not</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps/time/timeScreenshot.png\"><img src=\"https://www.raw.githubusercontent.com/Sanjit1/WizardMirror/master/apps/time/timeScreenshot.png\" alt=\"Time Screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-current-weather\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#current-weather\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Current Weather:</h3>\n<p dir=\"auto\"><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps/weather\">Current Weather</a> shows the weather of a certain location. It updates every 20 minutes.</p>\n<p dir=\"auto\">Configuration:</p>\n<p dir=\"auto\">There are configurations for the time app, which can be changed from <a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/appsSample.json#L7\"><code>apps.json.apps[\"Current Weather\"].config</code></a>:</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Setting</th>\n<th align=\"center\">Possible Values</th>\n<th align=\"center\">Default</th>\n<th align=\"right\">Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"left\">div</td>\n<td align=\"center\"><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#positions\">List of positions</a></td>\n<td align=\"center\">pos-topRight</td>\n<td align=\"right\">The div where time will be displayed</td>\n</tr>\n<tr>\n<td align=\"left\">tempunit</td>\n<td align=\"center\">C/F</td>\n<td align=\"center\">C</td>\n<td align=\"right\">The unit of temperature to use</td>\n</tr>\n<tr>\n<td align=\"left\">speedunit</td>\n<td align=\"center\">km/h or m/h</td>\n<td align=\"center\">km/h</td>\n<td align=\"right\">The unit of speed to use</td>\n</tr>\n<tr>\n<td align=\"left\">apikey</td>\n<td align=\"center\">Free API key from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n<td align=\"center\">None</td>\n<td align=\"right\">The API key to get weather information from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n<tr>\n<td align=\"left\">city</td>\n<td align=\"center\"><a href=\"http://bulk.openweathermap.org/sample/city.list.json.gz\" rel=\"nofollow\">City List</a></td>\n<td align=\"center\">5391832</td>\n<td align=\"right\">List of city ID's by <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps/weather/currentScreenshot.png\"><img src=\"https://www.raw.githubusercontent.com/Sanjit1/WizardMirror/master/apps/weather/currentScreenshot.png\" alt=\"Current Weather Screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-weather-forecast\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#weather-forecast\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Weather Forecast:</h3>\n<p dir=\"auto\"><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps/weather\">Weather Forecast</a> shows the weather of a certain location. It updates every 3 hours.</p>\n<p dir=\"auto\">Configuration:</p>\n<p dir=\"auto\">There are configurations for the time app, which can be changed from <a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/appsSample.json#L19\"><code>apps.json.apps[\"Weather Forecast\"].config</code></a>:</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Setting</th>\n<th align=\"center\">Possible Values</th>\n<th align=\"center\">Default</th>\n<th align=\"right\">Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"left\">div</td>\n<td align=\"center\"><a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#positions\">List of positions</a></td>\n<td align=\"center\">pos-topRight</td>\n<td align=\"right\">The div where time will be displayed</td>\n</tr>\n<tr>\n<td align=\"left\">unit</td>\n<td align=\"center\">C/F</td>\n<td align=\"center\">C</td>\n<td align=\"right\">The unit of temperature to use</td>\n</tr>\n<tr>\n<td align=\"left\">apikey</td>\n<td align=\"center\">Free API key from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n<td align=\"center\">None</td>\n<td align=\"right\">The API key to get weather information from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n<tr>\n<td align=\"left\">city</td>\n<td align=\"center\"><a href=\"http://bulk.openweathermap.org/sample/city.list.json.gz\" rel=\"nofollow\">City List</a></td>\n<td align=\"center\">5391832</td>\n<td align=\"right\">List of city ID's by <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/apps/weather/forecastScreenshot.png\"><img src=\"https://www.raw.githubusercontent.com/Sanjit1/WizardMirror/master/apps/weather/forecastScreenshot.png\" alt=\"Weather Forecast Screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-hardware\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#hardware\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Hardware</h1>\n<p dir=\"auto\">Once you have finished installing WizardMirror and configured all the software, you can move on to the hardware: the actual mirror design.\nYou will need</p>\n<ul dir=\"auto\">\n<li>LCD screen</li>\n<li>2-way mirror glass/film</li>\n<li>Wooden frame to frame the mirror.</li>\n<li>Cables to get your Raspberry Pi running and connect it to the Screen</li>\n<li>Other tools</li>\n</ul>\n<p dir=\"auto\">What you will need to do:\nOpen up your LCD Monitor, attach the mirror film on top of it, frame it, attach the Raspberry pi and attach it to the wall. School's starting, so I can't do much right now, but as soon as winter break starts I'll try to make a build video.</p>\n<p dir=\"auto\">Check out how to <a href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#contributing\">contribute</a> to WizardMirror.</p>\n<h1 dir=\"auto\"><a id=\"user-content-positions\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#positions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Positions</h1>\n<p dir=\"auto\">Here is a list of positions, where you can place your apps\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/positions.png\"><img src=\"https://www.raw.githubusercontent.com/Sanjit1/WizardMirror/master/positions.png\" alt=\"Positions\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-feature-request\" class=\"anchor\" aria-hidden=\"true\" href=\"https://www.github.com/Sanjit1/WizardMirror/blob/master/#feature-request\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Feature Request</h1>\n<p dir=\"auto\">You can request features for WizardMirror through its <a href=\"https://feathub.com/Sanjit1/WizardMirror\" rel=\"nofollow\">feathub link</a>.\nHere are requested features, you can vote for them, by clicking on the picture.</p>\n<p dir=\"auto\"><a href=\"https://feathub.com/Sanjit1/WizardMirror\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9b9007b588a03086599f5eeb48ed0f0f3909bc0550ca8861b4a9af036edbcfd3/687474703a2f2f666561746875622e636f6d2f53616e6a6974312f57697a6172644d6972726f723f666f726d61743d737667\" alt=\"Feature Requests\" data-canonical-src=\"http://feathub.com/Sanjit1/WizardMirror?format=svg\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-wizard-mirror\" class=\"anchor\" aria-hidden=\"true\" href=\"#wizard-mirror\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Wizard Mirror</h1>\n<div dir=\"auto\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"logo.png\"><img src=\"logo.png\" width=\"250\" style=\"max-width: 100%;\"></a>\n</div>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/09d5a36d70f661bb3ccfbf50cf5c5ea5add0d42b0a3b59cfaa4a188752d31fa5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73757065722532306475706572253230617765736f6d652d6865636b25323079612d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/09d5a36d70f661bb3ccfbf50cf5c5ea5add0d42b0a3b59cfaa4a188752d31fa5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73757065722532306475706572253230617765736f6d652d6865636b25323079612d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/super%20duper%20awesome-heck%20ya-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/7adef1a61f2a9178873bf60af7a0909e18e90cc4a1e98c67f15fe22fc0e38151/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616465253230666f722d526173706265727279253230506925323055736572732d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/7adef1a61f2a9178873bf60af7a0909e18e90cc4a1e98c67f15fe22fc0e38151/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616465253230666f722d526173706265727279253230506925323055736572732d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/made%20for-Raspberry%20Pi%20Users-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/5805b726471000642ebb2c3b6cd3abb36269ce56cc09dd4c60be8f8bf5c66328/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f757365732d456c656374726f6e6a732d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/5805b726471000642ebb2c3b6cd3abb36269ce56cc09dd4c60be8f8bf5c66328/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f757365732d456c656374726f6e6a732d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/uses-Electronjs-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2d414119b93582a9d3ec4f94d14436f63ad0166129851695a8a6563ebc7802b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6f64756c65722d7975702d627269676874677265656e3f7374796c653d666c6174\"><img src=\"https://camo.githubusercontent.com/2d414119b93582a9d3ec4f94d14436f63ad0166129851695a8a6563ebc7802b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6f64756c65722d7975702d627269676874677265656e3f7374796c653d666c6174\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/badge/moduler-yup-brightgreen?style=flat\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/f0592ac46edbde4f3819b6939165e7823284394a877a57e07135628967f9fe57/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/f0592ac46edbde4f3819b6939165e7823284394a877a57e07135628967f9fe57/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/issues/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/b08e375e5c978a01fd4454bcfc5bcc4c997257c1c593a40623c8481d21874790/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/b08e375e5c978a01fd4454bcfc5bcc4c997257c1c593a40623c8481d21874790/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/forks/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d7263607ac0cc1aaf710951387e1b0bc086914829362bc6602af6a12629a62b1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/d7263607ac0cc1aaf710951387e1b0bc086914829362bc6602af6a12629a62b1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/stars/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/04961da039c53bf6d73327afcff3ba4f844440ff956d677d1d7d18644c4cffce/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/04961da039c53bf6d73327afcff3ba4f844440ff956d677d1d7d18644c4cffce/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/license/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/94d15b409765f28a67558a10f13d371eaef33941d15480d9dd65e506345fee5e/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c3f75726c3d68747470732533412532462532466769746875622e636f6d25324653616e6a69743125324657697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/94d15b409765f28a67558a10f13d371eaef33941d15480d9dd65e506345fee5e/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c3f75726c3d68747470732533412532462532466769746875622e636f6d25324653616e6a69743125324657697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/twitter/url?url=https%3A%2F%2Fgithub.com%2FSanjit1%2FWizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/077e5c9d8706aced19eb06210bb8ab1e835cba1e342efb67803509ab0d42d251/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f756e742f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/077e5c9d8706aced19eb06210bb8ab1e835cba1e342efb67803509ab0d42d251/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f756e742f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/languages/count/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/0b19640cc3f915d5d0c7bbd60233c53a7a969d05e5ab147c72168fa41c738507/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f53616e6a6974312f57697a6172644d6972726f72\"><img src=\"https://camo.githubusercontent.com/0b19640cc3f915d5d0c7bbd60233c53a7a969d05e5ab147c72168fa41c738507/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f53616e6a6974312f57697a6172644d6972726f72\" alt=\"badge\" data-canonical-src=\"https://img.shields.io/github/languages/top/Sanjit1/WizardMirror\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Wizard Mirror is an open-source <a href=\"https://electronjs.org\" rel=\"nofollow\">Electronjs</a> app, that can give a regular mirror mysterious powers with the help of a Raspberry Pi!</p>\n<h1 dir=\"auto\"><a id=\"user-content-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"#contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contents</h1>\n<ul dir=\"auto\">\n<li><a href=\"#installation\">Installation</a></li>\n<li><a href=\"#getting-started\">Getting Started</a>\n<ul dir=\"auto\">\n<li><a href=\"#time\">Time</a></li>\n<li><a href=\"#current-weather\">Current Weather</a></li>\n<li><a href=\"#weather-forecast\">Weather Forecast</a></li>\n</ul>\n</li>\n<li><a href=\"#hardware\">Hardware</a></li>\n<li><a href=\"#positions\">Positions</a></li>\n<li><a href=\"#feature-request\">Feature Request</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<p dir=\"auto\">To install WizardMirror: run this on your <a href=\"https://www.raspberrypi.org/\" rel=\"nofollow\">Raspberry PI's</a> terminal</p>\n<p dir=\"auto\"><code>bash -c \"$(curl -sL https://raw.githubusercontent.com/Sanjit1/WizardMirror/master/scripts/install.sh)\"</code></p>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">To start your WizardMirror, run <code>npm start</code> from the <code>WizardMirror</code> directory. Your WizardMirror can run apps under it, for example, a time app or a weather app. App settings can be set in <code>apps.json</code> (which is duplicated from <a href=\"appsSample.json\">appsSample.json</a> by the installation script).\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"apps.json.png\"><img src=\"apps.json.png\" alt=\"apps.json\" style=\"max-width: 100%;\"></a>\nHere are some preinstalled applications:</p>\n<h3 dir=\"auto\"><a id=\"user-content-time\" class=\"anchor\" aria-hidden=\"true\" href=\"#time\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Time:</h3>\n<p dir=\"auto\"><a href=\"apps/time\">Time</a> shows the current time on your WizardMirror.</p>\n<p dir=\"auto\">Configuration:</p>\n<p dir=\"auto\">There are configurations for the time app, which can be changed from <a href=\"appsSample.json#L30\"><code>apps.json.apps[\"time\"].config</code></a>:</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Setting</th>\n<th align=\"center\">Possible Values</th>\n<th align=\"center\">Default</th>\n<th align=\"right\">Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"left\">div</td>\n<td align=\"center\"><a href=\"#positions\">List of positions</a></td>\n<td align=\"center\">pos-topLeft</td>\n<td align=\"right\">The div where time will be displayed</td>\n</tr>\n<tr>\n<td align=\"left\">showSeconds</td>\n<td align=\"center\">true/false</td>\n<td align=\"center\">false</td>\n<td align=\"right\">To show seconds or not</td>\n</tr>\n<tr>\n<td align=\"left\">twentyfourhourclock</td>\n<td align=\"center\">true/false</td>\n<td align=\"center\">false</td>\n<td align=\"right\">24 Hour clock or not</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"apps/time/timeScreenshot.png\"><img src=\"apps/time/timeScreenshot.png\" alt=\"Time Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-current-weather\" class=\"anchor\" aria-hidden=\"true\" href=\"#current-weather\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Current Weather:</h3>\n<p dir=\"auto\"><a href=\"apps/weather\">Current Weather</a> shows the weather of a certain location. It updates every 20 minutes.</p>\n<p dir=\"auto\">Configuration:</p>\n<p dir=\"auto\">There are configurations for the time app, which can be changed from <a href=\"appsSample.json#L7\"><code>apps.json.apps[\"Current Weather\"].config</code></a>:</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Setting</th>\n<th align=\"center\">Possible Values</th>\n<th align=\"center\">Default</th>\n<th align=\"right\">Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"left\">div</td>\n<td align=\"center\"><a href=\"#positions\">List of positions</a></td>\n<td align=\"center\">pos-topRight</td>\n<td align=\"right\">The div where time will be displayed</td>\n</tr>\n<tr>\n<td align=\"left\">tempunit</td>\n<td align=\"center\">C/F</td>\n<td align=\"center\">C</td>\n<td align=\"right\">The unit of temperature to use</td>\n</tr>\n<tr>\n<td align=\"left\">speedunit</td>\n<td align=\"center\">km/h or m/h</td>\n<td align=\"center\">km/h</td>\n<td align=\"right\">The unit of speed to use</td>\n</tr>\n<tr>\n<td align=\"left\">apikey</td>\n<td align=\"center\">Free API key from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n<td align=\"center\">None</td>\n<td align=\"right\">The API key to get weather information from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n<tr>\n<td align=\"left\">city</td>\n<td align=\"center\"><a href=\"http://bulk.openweathermap.org/sample/city.list.json.gz\" rel=\"nofollow\">City List</a></td>\n<td align=\"center\">5391832</td>\n<td align=\"right\">List of city ID's by <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"apps/weather/currentScreenshot.png\"><img src=\"apps/weather/currentScreenshot.png\" alt=\"Current Weather Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-weather-forecast\" class=\"anchor\" aria-hidden=\"true\" href=\"#weather-forecast\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Weather Forecast:</h3>\n<p dir=\"auto\"><a href=\"apps/weather\">Weather Forecast</a> shows the weather of a certain location. It updates every 3 hours.</p>\n<p dir=\"auto\">Configuration:</p>\n<p dir=\"auto\">There are configurations for the time app, which can be changed from <a href=\"appsSample.json#L19\"><code>apps.json.apps[\"Weather Forecast\"].config</code></a>:</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">Setting</th>\n<th align=\"center\">Possible Values</th>\n<th align=\"center\">Default</th>\n<th align=\"right\">Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"left\">div</td>\n<td align=\"center\"><a href=\"#positions\">List of positions</a></td>\n<td align=\"center\">pos-topRight</td>\n<td align=\"right\">The div where time will be displayed</td>\n</tr>\n<tr>\n<td align=\"left\">unit</td>\n<td align=\"center\">C/F</td>\n<td align=\"center\">C</td>\n<td align=\"right\">The unit of temperature to use</td>\n</tr>\n<tr>\n<td align=\"left\">apikey</td>\n<td align=\"center\">Free API key from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n<td align=\"center\">None</td>\n<td align=\"right\">The API key to get weather information from <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n<tr>\n<td align=\"left\">city</td>\n<td align=\"center\"><a href=\"http://bulk.openweathermap.org/sample/city.list.json.gz\" rel=\"nofollow\">City List</a></td>\n<td align=\"center\">5391832</td>\n<td align=\"right\">List of city ID's by <a href=\"https://openweathermap.org/api\" rel=\"nofollow\">OpenWeatherMap</a></td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"apps/weather/forecastScreenshot.png\"><img src=\"apps/weather/forecastScreenshot.png\" alt=\"Weather Forecast Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-hardware\" class=\"anchor\" aria-hidden=\"true\" href=\"#hardware\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Hardware</h1>\n<p dir=\"auto\">Once you have finished installing WizardMirror and configured all the software, you can move on to the hardware: the actual mirror design.\nYou will need</p>\n<ul dir=\"auto\">\n<li>LCD screen</li>\n<li>2-way mirror glass/film</li>\n<li>Wooden frame to frame the mirror.</li>\n<li>Cables to get your Raspberry Pi running and connect it to the Screen</li>\n<li>Other tools</li>\n</ul>\n<p dir=\"auto\">What you will need to do:\nOpen up your LCD Monitor, attach the mirror film on top of it, frame it, attach the Raspberry pi and attach it to the wall. School's starting, so I can't do much right now, but as soon as winter break starts I'll try to make a build video.</p>\n<p dir=\"auto\">Check out how to <a href=\"#contributing\">contribute</a> to WizardMirror.</p>\n<h1 dir=\"auto\"><a id=\"user-content-positions\" class=\"anchor\" aria-hidden=\"true\" href=\"#positions\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Positions</h1>\n<p dir=\"auto\">Here is a list of positions, where you can place your apps\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"positions.png\"><img src=\"positions.png\" alt=\"Positions\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-feature-request\" class=\"anchor\" aria-hidden=\"true\" href=\"#feature-request\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Feature Request</h1>\n<p dir=\"auto\">You can request features for WizardMirror through its <a href=\"https://feathub.com/Sanjit1/WizardMirror\" rel=\"nofollow\">feathub link</a>.\nHere are requested features, you can vote for them, by clicking on the picture.</p>\n<p dir=\"auto\"><a href=\"https://feathub.com/Sanjit1/WizardMirror\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9b9007b588a03086599f5eeb48ed0f0f3909bc0550ca8861b4a9af036edbcfd3/687474703a2f2f666561746875622e636f6d2f53616e6a6974312f57697a6172644d6972726f723f666f726d61743d737667\" alt=\"Feature Requests\" data-canonical-src=\"http://feathub.com/Sanjit1/WizardMirror?format=svg\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.240Z" }, "wexond": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a href=\"https://wexond.net\" rel=\"nofollow\"><img src=\"https://raw.githubusercontent.com/wexond/wexond/master/static/icons/icon.png\" width=\"256\" style=\"max-width: 100%;\" crossorigin=\"\"></a>\n</p>\n<div align=\"center\" dir=\"auto\">\n <h1 dir=\"auto\"><a id=\"user-content-wexond-browser-base\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#wexond-browser-base\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Wexond Browser Base</h1>\n<p dir=\"auto\"><a href=\"https://github.com/wexond/desktop/actions\"><img src=\"https://github.com/wexond/desktop/workflows/Build/badge.svg\" alt=\"Actions Status\" style=\"max-width: 100%;\"></a>\n<a href=\"https://wexond.net\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/515e1a90bd61178eb838dea4f08045ba8206730ee14547fa0c7e5489e201dcdd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f7765786f6e642f6465736b746f702f746f74616c2e7376673f7374796c653d666c61742d737175617265\" alt=\"Downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/wexond/desktop/total.svg?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a href=\"https://app.fossa.io/projects/git%2Bgithub.com%2Fwexond%2Fwexond?ref=badge_shield\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/55a245b7395644e0ce48000b3305a379d0d661f9eaf420dab9e515022fac5b5b/68747470733a2f2f6170702e666f7373612e696f2f6170692f70726f6a656374732f6769742532426769746875622e636f6d2532467765786f6e642532467765786f6e642e7376673f747970653d736869656c64\" alt=\"FOSSA Status\" data-canonical-src=\"https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwexond%2Fwexond.svg?type=shield\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VCPPFUAL4R6M6&source=url\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/eae99654842485cf5aa6eb45a33fa4da55fe7732971b16fb9f58e7468d41dc8a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50617950616c2d446f6e6174652d627269676874677265656e3f7374796c653d666c61742d737175617265\" alt=\"PayPal\" data-canonical-src=\"https://img.shields.io/badge/PayPal-Donate-brightgreen?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a href=\"https://discord.gg/P7Vn4VX\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4cd57139ae490bf006793348280313fc6d569e73b1a48fb51177bda14d9c7e26/68747470733a2f2f646973636f72646170702e636f6d2f6170692f6775696c64732f3330373630353739343638303230393430392f7769646765742e706e673f7374796c653d736869656c64\" alt=\"Discord\" data-canonical-src=\"https://discordapp.com/api/guilds/307605794680209409/widget.png?style=shield\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Wexond Base is a modern web browser, built on top of modern web technologies such as <code>Electron</code> and <code>React</code>, that can also be used as a framework to create a custom web browser (see the <a href=\"https://github.com/wexond/wexond/blob/master/#license\">License</a> section).</p>\n</div>\n<h1 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of Contents:</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#motivation\">Motivation</a></li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#features\">Features</a></li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#screenshots\">Screenshots</a></li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#downloads\">Downloads</a></li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#contributing\">Contributing</a></li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#development\">Development</a>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#running\">Running</a></li>\n</ul>\n</li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#documentation\">Documentation</a></li>\n<li><a href=\"https://github.com/wexond/wexond/blob/master/#license\">License</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-motivation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#motivation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Motivation</h1>\n<p dir=\"auto\">Compiling and editing Chromium directly may be challenging and time consuming, so we decided to build Wexond with modern web technologies. Hence, the development effort and time is greatly reduced. Either way Firefox is based on Web Components and Chrome implements new dialogs in WebUI (which essentially is hosted in WebContents).</p>\n<h1 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h1>\n<ul dir=\"auto\">\n<li><strong>Wexond Shield</strong> - Browse the web without any ads and don't let websites to track you. Thanks to the Wexond Shield powered by <a href=\"https://github.com/cliqz-oss/adblocker\">Cliqz</a>, websites can load even 8 times faster!</li>\n<li><strong>Chromium without Google services and low resources usage</strong> - Since Wexond uses Electron under the hood which is based on only several and the most important Chromium components, it's not bloated with redundant Google tracking services and others.</li>\n<li><strong>Fast and fluent UI</strong> - The animations are really smooth and their timings are perfectly balanced.</li>\n<li><strong>Highly customizable new tab page</strong> - Customize almost an every aspect of the new tab page!</li>\n<li><strong>Customizable browser UI</strong> - Choose whether Wexond should have compact or normal UI.</li>\n<li><strong>Tab groups</strong> - Easily group tabs, so it's hard to get lost.</li>\n<li><strong>Scrollable tabs</strong></li>\n<li><strong>Partial support for Chrome extensions</strong> - Install some extensions directly from Chrome Web Store* (see <a href=\"https://github.com/wexond/wexond/issues/110\" data-hovercard-type=\"issue\" data-hovercard-url=\"/wexond/browser-base/issues/110/hovercard\">#110</a>) (WIP)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-other-basic-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#other-basic-features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Other basic features</h2>\n<ul dir=\"auto\">\n<li>Downloads popup with currently downloaded items (download manager WebUI page is WIP)</li>\n<li>History manager</li>\n<li>Bookmarks bar & manager</li>\n<li>Settings</li>\n<li>Find in page</li>\n<li>Dark and light theme</li>\n<li>Omnibox with autocomplete algorithm similar to Chromium</li>\n<li>State of the art tab system</li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h1>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024159-d9388f80-8e72-11ea-85e7-6c30e3b66554.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024159-d9388f80-8e72-11ea-85e7-6c30e3b66554.png\" alt=\"image\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">UI normal variant:\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024186-f40b0400-8e72-11ea-976e-cd1ca1b43ad8.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024186-f40b0400-8e72-11ea-976e-cd1ca1b43ad8.png\" alt=\"image\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">UI compact variant:\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024222-13099600-8e73-11ea-9fc9-3c63a034403d.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024222-13099600-8e73-11ea-9fc9-3c63a034403d.png\" alt=\"image\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024252-2ddc0a80-8e73-11ea-9f2f-6c9a4a175c60.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024252-2ddc0a80-8e73-11ea-9f2f-6c9a4a175c60.png\" alt=\"image\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-downloads\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#downloads\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Downloads</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/wexond/desktop/releases\">Stable and beta versions</a></li>\n<li><a href=\"https://github.com/wexond/desktop-nightly/releases\">Nightlies</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-roadmap\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#roadmap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/wexond/wexond/projects\">Roadmap</a></h1>\n<h1 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h1>\n<p dir=\"auto\">If you have found any bugs or just want to see some new features in Wexond, feel free to open an issue. Every suggestion is very valuable for us, as they help us improve the browsing experience. Also, please don't hesitate to open a pull request. This is really important to us and for the further development of this project.</p>\n<p dir=\"auto\">By opening a pull request, you agree to the conditions of the <a href=\"https://github.com/wexond/wexond/blob/master/cla.md\">Contributor License Agreement</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h1>\n<h2 dir=\"auto\"><a id=\"user-content-running\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#running\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running</h2>\n<p dir=\"auto\">Before running Wexond, please ensure you have <strong>latest</strong> <a href=\"https://nodejs.org/en/\" rel=\"nofollow\"><code>Node.js</code></a> and <a href=\"https://classic.yarnpkg.com/en/docs/install/#windows-stable\" rel=\"nofollow\"><code>Yarn</code></a> installed on your machine.</p>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\">Make sure you have build tools installed. You can install them by running this command as <strong>administrator</strong>:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm i -g windows-build-tools\"><pre>$ npm i -g windows-build-tools</pre></div>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn # Install needed depedencies.\n$ yarn rebuild # Rebuild native modules using Electron headers.\n$ yarn dev # Run Wexond in development mode\"><pre>$ yarn <span class=\"pl-c\"><span class=\"pl-c\">#</span> Install needed depedencies.</span>\n$ yarn rebuild <span class=\"pl-c\"><span class=\"pl-c\">#</span> Rebuild native modules using Electron headers.</span>\n$ yarn dev <span class=\"pl-c\"><span class=\"pl-c\">#</span> Run Wexond in development mode</span></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-more-commands\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#more-commands\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>More commands</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn compile-win32 # Package Wexond for Windows\n$ yarn compile-linux # Package Wexond for Linux\n$ yarn compile-darwin # Package Wexond for macOS\n$ yarn lint # Runs linter\n$ yarn lint-fix # Runs linter and automatically applies fixes\"><pre>$ yarn compile-win32 <span class=\"pl-c\"><span class=\"pl-c\">#</span> Package Wexond for Windows</span>\n$ yarn compile-linux <span class=\"pl-c\"><span class=\"pl-c\">#</span> Package Wexond for Linux</span>\n$ yarn compile-darwin <span class=\"pl-c\"><span class=\"pl-c\">#</span> Package Wexond for macOS</span>\n$ yarn lint <span class=\"pl-c\"><span class=\"pl-c\">#</span> Runs linter</span>\n$ yarn lint-fix <span class=\"pl-c\"><span class=\"pl-c\">#</span> Runs linter and automatically applies fixes</span></pre></div>\n<p dir=\"auto\">More commands can be found in <a href=\"https://github.com/wexond/wexond/blob/master/package.json\"><code>package.json</code></a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h1>\n<p dir=\"auto\">Guides and the API reference are located in <a href=\"https://github.com/wexond/wexond/blob/master/docs\"><code>docs</code></a> directory.</p>\n<h1 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h1>\n<h4 dir=\"auto\"><a id=\"user-content-every-usage-of-this-project-resources-code-graphics-etc-must-be-consulted-with-its-author-sentialxgmailcom\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/wexond/wexond/blob/master/#every-usage-of-this-project-resources-code-graphics-etc-must-be-consulted-with-its-author-sentialxgmailcom\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Every usage of this project resources (code, graphics etc.) must be consulted with its author (<a href=\"https://github.com/wexond/wexond/blob/master/mailto:sentialx@gmail.com\">sentialx@gmail.com</a>).</h4>\n<p dir=\"auto\">By sending a Pull Request, you agree that your code may be relicensed or sublicensed.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n <a href=\"https://wexond.net\" rel=\"nofollow\"><img src=\"static/icons/icon.png\" width=\"256\" style=\"max-width: 100%;\"></a>\n</p>\n<div align=\"center\" dir=\"auto\">\n <h1 dir=\"auto\"><a id=\"user-content-wexond-browser-base\" class=\"anchor\" aria-hidden=\"true\" href=\"#wexond-browser-base\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Wexond Browser Base</h1>\n<p dir=\"auto\"><a href=\"https://github.com/wexond/desktop/actions\"><img src=\"https://github.com/wexond/desktop/workflows/Build/badge.svg\" alt=\"Actions Status\" style=\"max-width: 100%;\"></a>\n<a href=\"https://wexond.net\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/515e1a90bd61178eb838dea4f08045ba8206730ee14547fa0c7e5489e201dcdd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f7765786f6e642f6465736b746f702f746f74616c2e7376673f7374796c653d666c61742d737175617265\" alt=\"Downloads\" data-canonical-src=\"https://img.shields.io/github/downloads/wexond/desktop/total.svg?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a href=\"https://app.fossa.io/projects/git%2Bgithub.com%2Fwexond%2Fwexond?ref=badge_shield\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/55a245b7395644e0ce48000b3305a379d0d661f9eaf420dab9e515022fac5b5b/68747470733a2f2f6170702e666f7373612e696f2f6170692f70726f6a656374732f6769742532426769746875622e636f6d2532467765786f6e642532467765786f6e642e7376673f747970653d736869656c64\" alt=\"FOSSA Status\" data-canonical-src=\"https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwexond%2Fwexond.svg?type=shield\" style=\"max-width: 100%;\"></a>\n<a href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VCPPFUAL4R6M6&source=url\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/eae99654842485cf5aa6eb45a33fa4da55fe7732971b16fb9f58e7468d41dc8a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50617950616c2d446f6e6174652d627269676874677265656e3f7374796c653d666c61742d737175617265\" alt=\"PayPal\" data-canonical-src=\"https://img.shields.io/badge/PayPal-Donate-brightgreen?style=flat-square\" style=\"max-width: 100%;\"></a>\n<a href=\"https://discord.gg/P7Vn4VX\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4cd57139ae490bf006793348280313fc6d569e73b1a48fb51177bda14d9c7e26/68747470733a2f2f646973636f72646170702e636f6d2f6170692f6775696c64732f3330373630353739343638303230393430392f7769646765742e706e673f7374796c653d736869656c64\" alt=\"Discord\" data-canonical-src=\"https://discordapp.com/api/guilds/307605794680209409/widget.png?style=shield\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Wexond Base is a modern web browser, built on top of modern web technologies such as <code>Electron</code> and <code>React</code>, that can also be used as a framework to create a custom web browser (see the <a href=\"#license\">License</a> section).</p>\n</div>\n<h1 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of Contents:</h1>\n<ul dir=\"auto\">\n<li><a href=\"#motivation\">Motivation</a></li>\n<li><a href=\"#features\">Features</a></li>\n<li><a href=\"#screenshots\">Screenshots</a></li>\n<li><a href=\"#downloads\">Downloads</a></li>\n<li><a href=\"#contributing\">Contributing</a></li>\n<li><a href=\"#development\">Development</a>\n<ul dir=\"auto\">\n<li><a href=\"#running\">Running</a></li>\n</ul>\n</li>\n<li><a href=\"#documentation\">Documentation</a></li>\n<li><a href=\"#license\">License</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-motivation\" class=\"anchor\" aria-hidden=\"true\" href=\"#motivation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Motivation</h1>\n<p dir=\"auto\">Compiling and editing Chromium directly may be challenging and time consuming, so we decided to build Wexond with modern web technologies. Hence, the development effort and time is greatly reduced. Either way Firefox is based on Web Components and Chrome implements new dialogs in WebUI (which essentially is hosted in WebContents).</p>\n<h1 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h1>\n<ul dir=\"auto\">\n<li><strong>Wexond Shield</strong> - Browse the web without any ads and don't let websites to track you. Thanks to the Wexond Shield powered by <a href=\"https://github.com/cliqz-oss/adblocker\">Cliqz</a>, websites can load even 8 times faster!</li>\n<li><strong>Chromium without Google services and low resources usage</strong> - Since Wexond uses Electron under the hood which is based on only several and the most important Chromium components, it's not bloated with redundant Google tracking services and others.</li>\n<li><strong>Fast and fluent UI</strong> - The animations are really smooth and their timings are perfectly balanced.</li>\n<li><strong>Highly customizable new tab page</strong> - Customize almost an every aspect of the new tab page!</li>\n<li><strong>Customizable browser UI</strong> - Choose whether Wexond should have compact or normal UI.</li>\n<li><strong>Tab groups</strong> - Easily group tabs, so it's hard to get lost.</li>\n<li><strong>Scrollable tabs</strong></li>\n<li><strong>Partial support for Chrome extensions</strong> - Install some extensions directly from Chrome Web Store* (see <a href=\"https://github.com/wexond/wexond/issues/110\" data-hovercard-type=\"issue\" data-hovercard-url=\"/wexond/browser-base/issues/110/hovercard\">#110</a>) (WIP)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-other-basic-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#other-basic-features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Other basic features</h2>\n<ul dir=\"auto\">\n<li>Downloads popup with currently downloaded items (download manager WebUI page is WIP)</li>\n<li>History manager</li>\n<li>Bookmarks bar & manager</li>\n<li>Settings</li>\n<li>Find in page</li>\n<li>Dark and light theme</li>\n<li>Omnibox with autocomplete algorithm similar to Chromium</li>\n<li>State of the art tab system</li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-screenshots\" class=\"anchor\" aria-hidden=\"true\" href=\"#screenshots\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Screenshots</h1>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024159-d9388f80-8e72-11ea-85e7-6c30e3b66554.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024159-d9388f80-8e72-11ea-85e7-6c30e3b66554.png\" alt=\"image\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">UI normal variant:\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024186-f40b0400-8e72-11ea-976e-cd1ca1b43ad8.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024186-f40b0400-8e72-11ea-976e-cd1ca1b43ad8.png\" alt=\"image\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">UI compact variant:\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024222-13099600-8e73-11ea-9fc9-3c63a034403d.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024222-13099600-8e73-11ea-9fc9-3c63a034403d.png\" alt=\"image\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/11065386/81024252-2ddc0a80-8e73-11ea-9f2f-6c9a4a175c60.png\"><img src=\"https://user-images.githubusercontent.com/11065386/81024252-2ddc0a80-8e73-11ea-9f2f-6c9a4a175c60.png\" alt=\"image\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-downloads\" class=\"anchor\" aria-hidden=\"true\" href=\"#downloads\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Downloads</h1>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/wexond/desktop/releases\">Stable and beta versions</a></li>\n<li><a href=\"https://github.com/wexond/desktop-nightly/releases\">Nightlies</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-roadmap\" class=\"anchor\" aria-hidden=\"true\" href=\"#roadmap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><a href=\"https://github.com/wexond/wexond/projects\">Roadmap</a></h1>\n<h1 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h1>\n<p dir=\"auto\">If you have found any bugs or just want to see some new features in Wexond, feel free to open an issue. Every suggestion is very valuable for us, as they help us improve the browsing experience. Also, please don't hesitate to open a pull request. This is really important to us and for the further development of this project.</p>\n<p dir=\"auto\">By opening a pull request, you agree to the conditions of the <a href=\"cla.md\">Contributor License Agreement</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h1>\n<h2 dir=\"auto\"><a id=\"user-content-running\" class=\"anchor\" aria-hidden=\"true\" href=\"#running\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Running</h2>\n<p dir=\"auto\">Before running Wexond, please ensure you have <strong>latest</strong> <a href=\"https://nodejs.org/en/\" rel=\"nofollow\"><code>Node.js</code></a> and <a href=\"https://classic.yarnpkg.com/en/docs/install/#windows-stable\" rel=\"nofollow\"><code>Yarn</code></a> installed on your machine.</p>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\">Make sure you have build tools installed. You can install them by running this command as <strong>administrator</strong>:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ npm i -g windows-build-tools\"><pre>$ npm i -g windows-build-tools</pre></div>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn # Install needed depedencies.\n$ yarn rebuild # Rebuild native modules using Electron headers.\n$ yarn dev # Run Wexond in development mode\"><pre>$ yarn <span class=\"pl-c\"><span class=\"pl-c\">#</span> Install needed depedencies.</span>\n$ yarn rebuild <span class=\"pl-c\"><span class=\"pl-c\">#</span> Rebuild native modules using Electron headers.</span>\n$ yarn dev <span class=\"pl-c\"><span class=\"pl-c\">#</span> Run Wexond in development mode</span></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-more-commands\" class=\"anchor\" aria-hidden=\"true\" href=\"#more-commands\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>More commands</h3>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ yarn compile-win32 # Package Wexond for Windows\n$ yarn compile-linux # Package Wexond for Linux\n$ yarn compile-darwin # Package Wexond for macOS\n$ yarn lint # Runs linter\n$ yarn lint-fix # Runs linter and automatically applies fixes\"><pre>$ yarn compile-win32 <span class=\"pl-c\"><span class=\"pl-c\">#</span> Package Wexond for Windows</span>\n$ yarn compile-linux <span class=\"pl-c\"><span class=\"pl-c\">#</span> Package Wexond for Linux</span>\n$ yarn compile-darwin <span class=\"pl-c\"><span class=\"pl-c\">#</span> Package Wexond for macOS</span>\n$ yarn lint <span class=\"pl-c\"><span class=\"pl-c\">#</span> Runs linter</span>\n$ yarn lint-fix <span class=\"pl-c\"><span class=\"pl-c\">#</span> Runs linter and automatically applies fixes</span></pre></div>\n<p dir=\"auto\">More commands can be found in <a href=\"package.json\"><code>package.json</code></a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h1>\n<p dir=\"auto\">Guides and the API reference are located in <a href=\"docs\"><code>docs</code></a> directory.</p>\n<h1 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h1>\n<h4 dir=\"auto\"><a id=\"user-content-every-usage-of-this-project-resources-code-graphics-etc-must-be-consulted-with-its-author-sentialxgmailcom\" class=\"anchor\" aria-hidden=\"true\" href=\"#every-usage-of-this-project-resources-code-graphics-etc-must-be-consulted-with-its-author-sentialxgmailcom\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Every usage of this project resources (code, graphics etc.) must be consulted with its author (<a href=\"mailto:sentialx@gmail.com\">sentialx@gmail.com</a>).</h4>\n<p dir=\"auto\">By sending a Pull Request, you agree that your code may be relicensed or sublicensed.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.249Z" }, "writebar": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\"><a href=\"https://github.com/alexander-shvets/writebar/blob/master///writebar.js.org\" title=\"writebar.js.org\" rel=\"nofollow\"><img src=\"https://raw.githubusercontent.com/alexander-shvets/writebar/master/assets/logo.svg\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h1 align=\"center\" dir=\"auto\"><a id=\"user-content-writebar\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alexander-shvets/writebar/blob/master/#writebar\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WriteBar</h1>\n<p align=\"center\" dir=\"auto\">\n Experimental distraction-free text editor,<br>\n that displays focus text line right over the keyboard (on the Macbook Pro TouchBar).\n</p>\n<h2 align=\"center\" dir=\"auto\"><a id=\"user-content---releases-----021-alphadmg\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alexander-shvets/writebar/blob/master/#--releases-----021-alphadmg\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a title=\"Change Log at GitHub\" href=\"https://github.com/alexander-shvets/writebar/blob/master///github.com/alexander-shvets/writebar/releases\">Releases</a>\n : \n <a title=\"Download from GitHub\" href=\"https://github.com/alexander-shvets/writebar/blob/master///github.com/alexander-shvets/writebar/releases/download/0.2.1/WriteBar.dmg\">0.2.1-alpha.dmg</a>\n</h2>\n<p align=\"center\" dir=\"auto\"><a href=\"https://github.com/alexander-shvets/writebar/blob/master///facebook.com/groups/uxclubs/permalink/973396292808999/\" rel=\"nofollow\"><img width=\"600\" src=\"https://raw.githubusercontent.com/alexander-shvets/writebar/master/assets/screenshot.jpg\" alt=\"screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alexander-shvets/writebar/blob/master/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h3>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\" checked=\"\"> Line edit on TouchBar</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\" checked=\"\"> Context formatting menu</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Smart Spellchecker</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Markdown Import/Export</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Visual Markdown editing</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-discuss\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alexander-shvets/writebar/blob/master/#discuss\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Discuss</h3>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/alexander-shvets/writebar/blob/master///facebook.com/groups/uxclubs/permalink/973396292808999/\" rel=\"nofollow\">Intro Video post @ Facebook UX Club</a></li>\n<li><a href=\"https://github.com/alexander-shvets/writebar/blob/master///github.com/alexander-shvets/writebar/issues\">Feature Requests and Issues @ GitHub</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alexander-shvets/writebar/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<blockquote>\n<p dir=\"auto\">Install (or update) macOS package manager (<a href=\"https://github.com/alexander-shvets/writebar/blob/master///brew.sh\" rel=\"nofollow\">Homebrew</a>):</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew update || /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"\"><pre>brew update <span class=\"pl-k\">||</span> /usr/bin/ruby -e <span class=\"pl-s\"><span class=\"pl-pds\">\"</span><span class=\"pl-s\"><span class=\"pl-pds\">$(</span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install<span class=\"pl-pds\">)</span></span><span class=\"pl-pds\">\"</span></span></pre></div>\n</blockquote>\n<blockquote>\n<p dir=\"auto\">Install <a href=\"https://github.com/alexander-shvets/writebar/blob/master///yarnpkg.com\" rel=\"nofollow\">Yarn</a> (modern <a href=\"https://github.com/alexander-shvets/writebar/blob/master///nodejs.org\" rel=\"nofollow\">NodeJS</a> package manager):</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"which yarn || brew install yarn\"><pre>which yarn <span class=\"pl-k\">||</span> brew install yarn</pre></div>\n</blockquote>\n<p dir=\"auto\">Download source code:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone git@github.com:alexander-shvets/writebar.git\ncd writebar\"><pre>git clone git@github.com:alexander-shvets/writebar.git\n<span class=\"pl-c1\">cd</span> writebar</pre></div>\n<p dir=\"auto\">Install application dependencies:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn || npm install\"><pre>yarn <span class=\"pl-k\">||</span> npm install</pre></div>\n<p dir=\"auto\">Install (global or local) dev-dependencies*:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn global add electron || npm install electron -g\nyarn global add electron-packager || npm install electron-packager -g\nyarn global add electron-installer-dmg || npm install electron-installer-dmg -g\"><pre>yarn global add electron <span class=\"pl-k\">||</span> npm install electron -g\nyarn global add electron-packager <span class=\"pl-k\">||</span> npm install electron-packager -g\nyarn global add electron-installer-dmg <span class=\"pl-k\">||</span> npm install electron-installer-dmg -g</pre></div>\n<p dir=\"auto\"><em>* doesn't listed in <a href=\"https://github.com/alexander-shvets/writebar/blob/master///github.com/alexander-shvets/writebar/blob/master/package.json\"><code>package.json</code></a> becouse I doesn't use js builder yet (which will exclude unused dependencies from application installation package)</em></p>\n<p dir=\"auto\">Run app in dev mode:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn start || npm start\"><pre>yarn start <span class=\"pl-k\">||</span> npm start</pre></div>\n<p dir=\"auto\">Build App and Installation Package (dmg):</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn packdist || npm run pack && npm run dist\"><pre>yarn packdist <span class=\"pl-k\">||</span> npm run pack <span class=\"pl-k\">&&</span> npm run dist</pre></div>\n<p dir=\"auto\">Release files should be generated in <code>dist</code> directory.</p>\n<h3 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alexander-shvets/writebar/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h3>\n<p dir=\"auto\"><a href=\"https://app.fossa.io/projects/git%2Bgithub.com%2Falexander-shvets%2Fwritebar?ref=badge_large\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6770a50916177ef5b2bb21821a25277f9fb9546ce2c71d04de7319548a1a8dd8/68747470733a2f2f6170702e666f7373612e696f2f6170692f70726f6a656374732f6769742532426769746875622e636f6d253246616c6578616e6465722d73687665747325324677726974656261722e7376673f747970653d6c61726765\" alt=\"FOSSA Status\" data-canonical-src=\"https://app.fossa.io/api/projects/git%2Bgithub.com%2Falexander-shvets%2Fwritebar.svg?type=large\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\"><a href=\"//writebar.js.org\" title=\"writebar.js.org\" rel=\"nofollow\"><img src=\"assets/logo.svg\" style=\"max-width: 100%;\"></a></p>\n<h1 align=\"center\" dir=\"auto\"><a id=\"user-content-writebar\" class=\"anchor\" aria-hidden=\"true\" href=\"#writebar\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WriteBar</h1>\n<p align=\"center\" dir=\"auto\">\n Experimental distraction-free text editor,<br>\n that displays focus text line right over the keyboard (on the Macbook Pro TouchBar).\n</p>\n<h2 align=\"center\" dir=\"auto\"><a id=\"user-content---releases-----021-alphadmg\" class=\"anchor\" aria-hidden=\"true\" href=\"#--releases-----021-alphadmg\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a title=\"Change Log at GitHub\" href=\"//github.com/alexander-shvets/writebar/releases\">Releases</a>\n : \n <a title=\"Download from GitHub\" href=\"//github.com/alexander-shvets/writebar/releases/download/0.2.1/WriteBar.dmg\">0.2.1-alpha.dmg</a>\n</h2>\n<p align=\"center\" dir=\"auto\"><a href=\"//facebook.com/groups/uxclubs/permalink/973396292808999/\" rel=\"nofollow\"><img width=\"600\" src=\"assets/screenshot.jpg\" alt=\"screenshot\" style=\"max-width: 100%;\"></a></p>\n<h3 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h3>\n<ul class=\"contains-task-list\">\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\" checked=\"\"> Line edit on TouchBar</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\" checked=\"\"> Context formatting menu</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Smart Spellchecker</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Markdown Import/Export</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" id=\"\" disabled=\"\" class=\"task-list-item-checkbox\"> Visual Markdown editing</li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-discuss\" class=\"anchor\" aria-hidden=\"true\" href=\"#discuss\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Discuss</h3>\n<ul dir=\"auto\">\n<li><a href=\"//facebook.com/groups/uxclubs/permalink/973396292808999/\" rel=\"nofollow\">Intro Video post @ Facebook UX Club</a></li>\n<li><a href=\"//github.com/alexander-shvets/writebar/issues\">Feature Requests and Issues @ GitHub</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<blockquote>\n<p dir=\"auto\">Install (or update) macOS package manager (<a href=\"//brew.sh\" rel=\"nofollow\">Homebrew</a>):</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"brew update || /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"\"><pre>brew update <span class=\"pl-k\">||</span> /usr/bin/ruby -e <span class=\"pl-s\"><span class=\"pl-pds\">\"</span><span class=\"pl-s\"><span class=\"pl-pds\">$(</span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install<span class=\"pl-pds\">)</span></span><span class=\"pl-pds\">\"</span></span></pre></div>\n</blockquote>\n<blockquote>\n<p dir=\"auto\">Install <a href=\"//yarnpkg.com\" rel=\"nofollow\">Yarn</a> (modern <a href=\"//nodejs.org\" rel=\"nofollow\">NodeJS</a> package manager):</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"which yarn || brew install yarn\"><pre>which yarn <span class=\"pl-k\">||</span> brew install yarn</pre></div>\n</blockquote>\n<p dir=\"auto\">Download source code:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone git@github.com:alexander-shvets/writebar.git\ncd writebar\"><pre>git clone git@github.com:alexander-shvets/writebar.git\n<span class=\"pl-c1\">cd</span> writebar</pre></div>\n<p dir=\"auto\">Install application dependencies:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn || npm install\"><pre>yarn <span class=\"pl-k\">||</span> npm install</pre></div>\n<p dir=\"auto\">Install (global or local) dev-dependencies*:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn global add electron || npm install electron -g\nyarn global add electron-packager || npm install electron-packager -g\nyarn global add electron-installer-dmg || npm install electron-installer-dmg -g\"><pre>yarn global add electron <span class=\"pl-k\">||</span> npm install electron -g\nyarn global add electron-packager <span class=\"pl-k\">||</span> npm install electron-packager -g\nyarn global add electron-installer-dmg <span class=\"pl-k\">||</span> npm install electron-installer-dmg -g</pre></div>\n<p dir=\"auto\"><em>* doesn't listed in <a href=\"//github.com/alexander-shvets/writebar/blob/master/package.json\"><code>package.json</code></a> becouse I doesn't use js builder yet (which will exclude unused dependencies from application installation package)</em></p>\n<p dir=\"auto\">Run app in dev mode:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn start || npm start\"><pre>yarn start <span class=\"pl-k\">||</span> npm start</pre></div>\n<p dir=\"auto\">Build App and Installation Package (dmg):</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn packdist || npm run pack && npm run dist\"><pre>yarn packdist <span class=\"pl-k\">||</span> npm run pack <span class=\"pl-k\">&&</span> npm run dist</pre></div>\n<p dir=\"auto\">Release files should be generated in <code>dist</code> directory.</p>\n<h3 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h3>\n<p dir=\"auto\"><a href=\"https://app.fossa.io/projects/git%2Bgithub.com%2Falexander-shvets%2Fwritebar?ref=badge_large\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6770a50916177ef5b2bb21821a25277f9fb9546ce2c71d04de7319548a1a8dd8/68747470733a2f2f6170702e666f7373612e696f2f6170692f70726f6a656374732f6769742532426769746875622e636f6d253246616c6578616e6465722d73687665747325324677726974656261722e7376673f747970653d6c61726765\" alt=\"FOSSA Status\" data-canonical-src=\"https://app.fossa.io/api/projects/git%2Bgithub.com%2Falexander-shvets%2Fwritebar.svg?type=large\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.336Z" }, "y2mp3": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a href=\"https://travis-ci.com/moshfeu/y2mp3\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/329d21d6859f74c90f6e3012a8e5d2bdb277a8cff26110804a5dfd9de86516c0/68747470733a2f2f7472617669732d63692e636f6d2f6d6f73686665752f79326d70332e7376673f6272616e63683d6d6173746572\" alt=\"Travis-ci build Status\" data-canonical-src=\"https://travis-ci.com/moshfeu/y2mp3.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a href=\"https://wallabyjs.com\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4b1699eae0e0a4e518d532a8ac2cc3cbe20657a73b2ab85c41c0394bd69b0b0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f77616c6c6162792e6a732d636f6e666967757265642d677265656e2e737667\" alt=\"Wallaby.js\" data-canonical-src=\"https://img.shields.io/badge/wallaby.js-configured-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/moshfeu/y2mp3/releases/latest\"><img src=\"https://camo.githubusercontent.com/8c1b66207d85bf80b03b5490f3e0c9a8666959e75ec04b7eb4b68589c013fc00/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6d6f73686665752f79326d70332e737667\" alt=\"Release version\" data-canonical-src=\"https://img.shields.io/github/release/moshfeu/y2mp3.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/moshfeu/y2mp3/releases\"><img src=\"https://camo.githubusercontent.com/275fea2bcb42738eb17d379d8b8908c2e3f8b94cfe39e60dd926cc89ee513a6f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d6f73686665752f79326d70332f746f74616c2e737667\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/moshfeu/y2mp3/total.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://twitter.com/y2mp3\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9ea4d96731b110d9a40cf941171765252cb15e00ca8afc5b4fe0cf73395c32f9/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f79326d70332e7376673f7374796c653d736f6369616c\" alt=\"Follow me on Twitter\" data-canonical-src=\"https://img.shields.io/twitter/follow/y2mp3.svg?style=social\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/moshfeu/y2mp3/blob/master/app-resources/logo-128.png\"><img src=\"https://raw.githubusercontent.com/moshfeu/y2mp3/master/app-resources/logo-128.png\" alt=\"logo\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-what-is-y2mp3-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#what-is-y2mp3-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What is \"Y2Mp3\" app?</h2>\n<p dir=\"auto\">A simple desktop application to download Youtube videos to video (mp4, mpg, wmv) and audio (wav, flac, m4a, wma, mp3, ogg, acc) formats, one by one or all of them.</p>\n<p dir=\"auto\">A note: Since this app relays on youtube site and apis, it sometimes breaks without any change.\nIn this case, please create an issue or tweet <a href=\"https://twitter.com/y2mp3\" rel=\"nofollow\">@y2mp3</a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/moshfeu/y2mp3/blob/master/app-resources/video.gif\"><img src=\"https://raw.githubusercontent.com/moshfeu/y2mp3/master/app-resources/video.gif\" alt=\"video demo\" width=\"320\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h4 dir=\"auto\"><a id=\"user-content-find-us-on-slack\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#find-us-on-slack\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find us on Slack</h4>\n<p dir=\"auto\"><a href=\"https://join.slack.com/t/y2mp3/shared_invite/enQtNTk0OTE0Njc4ODY4LTYzYmY1M2MwMWFmZmQ1NTA2MDMxNWIzZTFkYzcyOTdkMjE3ZmNmMzk4NmM4YWY5OThkYTJjNzFhZTA0NGI3OTk\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/7401780b3404972f150b513133b7ec65fb5430bcf0f1b2f23aeaa4c89761a055/68747470733a2f2f63646e2e6272616e64666f6c6465722e696f2f35483434324f33572f61732f706c3534366a2d376c65387a6b2d6578387736352f536c61636b5f5247422e706e673f77696474683d313230\" alt=\"link to Slack channel\" data-canonical-src=\"https://cdn.brandfolder.io/5H442O3W/as/pl546j-7le8zk-ex8w65/Slack_RGB.png?width=120\" style=\"max-width: 100%;\"></a></p>\n<h4 dir=\"auto\"><a id=\"user-content-limitations\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#limitations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Limitations</h4>\n<ul dir=\"auto\">\n<li>Fetch only first 100 clips in a playlist</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-disclaimer\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#disclaimer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Disclaimer</h2>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"loudspeaker\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png\">📢</g-emoji><g-emoji class=\"g-emoji\" alias=\"loudspeaker\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png\">📢</g-emoji></p>\n<ol dir=\"auto\">\n<li>The app doesn't track you down in ANY way. Not Google Analytics, or any other service. We know nothing jon snow! So, if you have an idea about how to make this app even greater, we will not know unless you will tell us. Please fill a <a href=\"https://github.com/moshfeu/y2mp3/issues/new?assignees=moshfeu&labels=enhancement&template=feature_request.md\">Feature Request</a> or <a href=\"https://github.com/moshfeu/y2mp3/issues/new?assignees=moshfeu&labels=bug&template=bug_report.md\">Open a bug</a> and let we know what do you think.</li>\n<li>The app doesn't store ANY media files ANYWHERE except on the device who use this app.</li>\n<li>Please use this app for downloading only public resources (You shouldn't be able to download private media). If you doesn't see all of the videos in the playlist, probably, they private (even it's yours private)</li>\n</ol>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"balance_scale\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2696.png\">⚖</g-emoji> <g-emoji class=\"g-emoji\" alias=\"detective\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f575.png\">🕵</g-emoji></p>\n<h2 dir=\"auto\"><a id=\"user-content-supported-operating-systems\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#supported-operating-systems\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Supported operating systems</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/moshfeu/y2mp3/blob/master/app-resources/readme/windows.svg?sanitize=true\"><img width=\"30\" alt=\"windows\" src=\"https://raw.githubusercontent.com/moshfeu/y2mp3/master/app-resources/readme/windows.svg?sanitize=true\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/moshfeu/y2mp3/blob/master/app-resources/readme/mac.svg?sanitize=true\"><img width=\"30\" alt=\"mac\" src=\"https://raw.githubusercontent.com/moshfeu/y2mp3/master/app-resources/readme/mac.svg?sanitize=true\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/moshfeu/y2mp3/blob/master/app-resources/readme/linux.svg?sanitize=true\"><img width=\"30\" alt=\"linux\" src=\"https://raw.githubusercontent.com/moshfeu/y2mp3/master/app-resources/readme/linux.svg?sanitize=true\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<ul dir=\"auto\">\n<li>Free <g-emoji class=\"g-emoji\" alias=\"moneybag\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4b0.png\">💰</g-emoji></li>\n<li>No ads <g-emoji class=\"g-emoji\" alias=\"mega\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e3.png\">📣</g-emoji></li>\n</ul>\n<p dir=\"auto\">Find your download: <a href=\"https://github.com/moshfeu/y2mp3/releases/latest\">https://github.com/moshfeu/y2mp3/releases/latest</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-change-log\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#change-log\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Change log</h2>\n<h5 dir=\"auto\"><a id=\"user-content-250\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#250\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.5.0</h5>\n<p dir=\"auto\">Fix - The app didn't work at all because of changes in Youtube.</p>\n<h5 dir=\"auto\"><a id=\"user-content-241\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#241\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.4.1</h5>\n<p dir=\"auto\">Fix - some downloads failed (\"The video is unavailable\")</p>\n<h5 dir=\"auto\"><a id=\"user-content-240\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#240\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.4.0</h5>\n<ul dir=\"auto\">\n<li>Allow to stop active video download</li>\n<li>Scroll the screen to a download when it starts</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-230\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#230\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.3.0</h5>\n<ul dir=\"auto\">\n<li>Allow to remove videos from the list</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66964159-7a4e2d00-f07e-11e9-8a78-1fc971b92183.png\"><img width=\"82\" alt=\"Remove from the list (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66964159-7a4e2d00-f07e-11e9-8a78-1fc971b92183.png\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Icon in the tray that shows the progress</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66964583-bdf56680-f07f-11e9-8a9e-1fd7e6394175.jpg\"><img width=\"267\" alt=\"progress (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66964583-bdf56680-f07f-11e9-8a9e-1fd7e6394175.jpg\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Show notification when video downloaded</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66964794-50960580-f080-11e9-97bd-9d7382ea2470.png\"><img width=\"357\" alt=\"notification (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66964794-50960580-f080-11e9-97bd-9d7382ea2470.png\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Bug fixes</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-220\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#220\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.2.0</h5>\n<ul dir=\"auto\">\n<li>Attach the video's thumbnail as album art</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66707744-4ad1b480-ed4e-11e9-927f-a92c940ee574.png\"><img width=\"265\" alt=\"Album art (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66707744-4ad1b480-ed4e-11e9-927f-a92c940ee574.png\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Add menu for better accesibility to useful options</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66707712-dc8cf200-ed4d-11e9-889d-8b36cca17772.png\"><img width=\"296\" alt=\"New Menu (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66707712-dc8cf200-ed4d-11e9-889d-8b36cca17772.png\" style=\"max-width: 100%;\"></a></p>\n<h5 dir=\"auto\"><a id=\"user-content-210\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#210\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.1.0</h5>\n<ul dir=\"auto\">\n<li>Check for updates automatically (Thanks (again) to <a href=\"https://github.com/iahmedhendi\">@iahmedhendi</a>)</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66351800-f356d180-e966-11e9-8ede-a3bbfad9a2b0.png\"><img width=\"288\" alt=\"Screen Shot\" src=\"https://user-images.githubusercontent.com/3723951/66351800-f356d180-e966-11e9-8ede-a3bbfad9a2b0.png\" style=\"max-width: 100%;\"></a></p>\n<h5 dir=\"auto\"><a id=\"user-content-200\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#200\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.0.0</h5>\n<ul dir=\"auto\">\n<li>Allow to download videos! (supported formats: mp4, wmv, mpg)</li>\n<li>Bug fixes and UI improvements</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-170\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#170\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.7.0</h5>\n<ul dir=\"auto\">\n<li>Don't open multiple folder picker dialogs (Thanks to <a href=\"https://github.com/iahmedhendi\">@iahmedhendi</a> for the issue)</li>\n<li>Don't ask to install ffmpeg if it already installed (Thanks to <a href=\"https://github.com/antwake\">@antwake</a> for the issue)</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-160-thanks-to-softpedia-for-the-ideas\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#160-thanks-to-softpedia-for-the-ideas\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.6.0 (Thanks to <a href=\"https://www.softpedia.com/get/Internet/Download-Managers/y2mp3.shtml\" rel=\"nofollow\">softpedia</a> for the ideas)</h5>\n<ul dir=\"auto\">\n<li>Allow to choose different audio formats (mp3, wav, flac, m4a, wma, ogg, aac)</li>\n<li>Copied URLs will be automatically be loaded into the app.</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-150\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#150\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.5.0</h5>\n<p dir=\"auto\">Add the option to save each playlist to a dedicated folder - thanks to <a href=\"https://github.com/saydax\">@saydax</a> for the request</p>\n<h5 dir=\"auto\"><a id=\"user-content-140\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#140\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.4.0</h5>\n<p dir=\"auto\">Make song title a link - thanks to <a href=\"https://github.com/shayanypn\">@shayanypn</a></p>\n<h5 dir=\"auto\"><a id=\"user-content-130\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#130\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.3.0</h5>\n<ul dir=\"auto\">\n<li>Allow to change the audio quality</li>\n<li>display a proper message when the url is not supported or invalid</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-120\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#120\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.2.0</h5>\n<p dir=\"auto\">Allow to change the downloads folder</p>\n<h5 dir=\"auto\"><a id=\"user-content-110\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#110\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.1.0</h5>\n<p dir=\"auto\">Allow fetch and download a single video</p>\n<h5 dir=\"auto\"><a id=\"user-content-100\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#100\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.0.0</h5>\n<p dir=\"auto\">Fetch videos from youtube playlist and download them one by one or all.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/shayanypn\">@shayanypn</a></li>\n</ul>\n<div dir=\"auto\">\n Os Icons made by <a href=\"https://www.flaticon.com/authors/pixel-perfect\" title=\"Pixel perfect\" rel=\"nofollow\">Pixel perfect</a> from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\" rel=\"nofollow\">www.flaticon.com</a> is licensed by <a href=\"http://creativecommons.org/licenses/by/3.0/\" title=\"Creative Commons BY 3.0\" rel=\"nofollow\">CC 3.0 BY</a>\n</div>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nnpm start\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nnpm start\n</code></pre></div>\n<p dir=\"auto\">Or</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn\nyarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">yarn\nyarn start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-stack\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#stack\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stack</h3>\n<table>\n <tbody><tr>\n <td><a href=\"http://electronjs.org/\" rel=\"nofollow\"><img width=\"25\" alt=\"electron\" src=\"https://camo.githubusercontent.com/dbd4147617c86278b63ab8ae9c50af9a4e4d3cc3dde75199c7971d77e4bcf591/68747470733a2f2f6769746875622e6769746875626173736574732e636f6d2f696d616765732f69636f6e732f656d6f6a692f656c656374726f6e2e706e67\" data-canonical-src=\"https://github.githubassets.com/images/icons/emoji/electron.png\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://reactjs.org/\" rel=\"nofollow\"><img width=\"45\" alt=\"reactjs\" src=\"https://camo.githubusercontent.com/dbe670ecea36b59366b09cb0f6530898d02409129b1663be0ff31e753a527e07/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f612f61372f52656163742d69636f6e2e737667\" data-canonical-src=\"https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://mobx.js.org/\" rel=\"nofollow\"><img width=\"25\" alt=\"mobx\" src=\"https://camo.githubusercontent.com/8420e016d16f5d6e92bef0b5002f9c67dd43be4e7df17914890ae7c50c8afb65/68747470733a2f2f6d6f62782e6a732e6f72672f696d672f6d6f62782e706e67\" data-canonical-src=\"https://mobx.js.org/img/mobx.png\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://www.typescriptlang.org/\" rel=\"nofollow\"><img width=\"25\" alt=\"typescript\" src=\"https://github.com/remojansen/logo.ts/raw/master/ts.jpg?raw=true\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://webpack.js.org/\" rel=\"nofollow\"><img width=\"30\" src=\"https://github.com/webpack/media/raw/master/logo/icon-square-small.jpg?raw=true\" style=\"max-width: 100%;\"></a></td>\n </tr><tr>\n <td><a href=\"http://electronjs.org/\" rel=\"nofollow\">electron</a></td>\n <td><a href=\"https://reactjs.org/\" rel=\"nofollow\">reactjs</a></td>\n <td><a href=\"https://mobx.js.org/\" rel=\"nofollow\">mobx</a></td>\n <td><a href=\"https://www.typescriptlang.org/\" rel=\"nofollow\">typescript</a></td>\n <td><a href=\"https://webpack.js.org/\" rel=\"nofollow\">webpack</a></td>\n </tr>\n</tbody></table>\n<p dir=\"auto\"><strong>Logos licenes</strong></p>\n<ul dir=\"auto\">\n<li>Facebook [Public domain or CC BY-SA 1.0 (<a href=\"https://creativecommons.org/licenses/by-sa/1.0\" rel=\"nofollow\">https://creativecommons.org/licenses/by-sa/1.0</a>)]</li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tests</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://jestjs.io/\" rel=\"nofollow\">jest</a></li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-libraries\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#libraries\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Libraries</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/ytb2mp3/youtube-mp3-downloader\">youtube-mp3-downloader</a></li>\n<li><a href=\"https://github.com/CodeDotJS/youtube-playlist\">youtube-playlist</a></li>\n<li><a href=\"https://github.com/vot/ffbinaries-node\">ffbinaries</a></li>\n<li><a href=\"https://react.semantic-ui.com/\" rel=\"nofollow\">Semantic UI React</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-todo\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#todo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TODO</h3>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"vulcan_salute\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f596.png\">🖖</g-emoji><g-emoji class=\"g-emoji\" alias=\"medal_military\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f396.png\">🎖</g-emoji> Thanks you for your willing to contribute! You can find the list in the <a href=\"https://github.com/moshfeu/y2mp3/projects/1#column-3954836\">project</a> page.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/moshfeu/y2mp3/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">MIT</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a href=\"https://travis-ci.com/moshfeu/y2mp3\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/329d21d6859f74c90f6e3012a8e5d2bdb277a8cff26110804a5dfd9de86516c0/68747470733a2f2f7472617669732d63692e636f6d2f6d6f73686665752f79326d70332e7376673f6272616e63683d6d6173746572\" alt=\"Travis-ci build Status\" data-canonical-src=\"https://travis-ci.com/moshfeu/y2mp3.svg?branch=master\" style=\"max-width: 100%;\"></a>\n<a href=\"https://wallabyjs.com\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4b1699eae0e0a4e518d532a8ac2cc3cbe20657a73b2ab85c41c0394bd69b0b0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f77616c6c6162792e6a732d636f6e666967757265642d677265656e2e737667\" alt=\"Wallaby.js\" data-canonical-src=\"https://img.shields.io/badge/wallaby.js-configured-green.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/moshfeu/y2mp3/releases/latest\"><img src=\"https://camo.githubusercontent.com/8c1b66207d85bf80b03b5490f3e0c9a8666959e75ec04b7eb4b68589c013fc00/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6d6f73686665752f79326d70332e737667\" alt=\"Release version\" data-canonical-src=\"https://img.shields.io/github/release/moshfeu/y2mp3.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/moshfeu/y2mp3/releases\"><img src=\"https://camo.githubusercontent.com/275fea2bcb42738eb17d379d8b8908c2e3f8b94cfe39e60dd926cc89ee513a6f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d6f73686665752f79326d70332f746f74616c2e737667\" alt=\"Github All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/moshfeu/y2mp3/total.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://twitter.com/y2mp3\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/9ea4d96731b110d9a40cf941171765252cb15e00ca8afc5b4fe0cf73395c32f9/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f79326d70332e7376673f7374796c653d736f6369616c\" alt=\"Follow me on Twitter\" data-canonical-src=\"https://img.shields.io/twitter/follow/y2mp3.svg?style=social\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"app-resources/logo-128.png\"><img src=\"app-resources/logo-128.png\" alt=\"logo\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-what-is-y2mp3-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#what-is-y2mp3-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What is \"Y2Mp3\" app?</h2>\n<p dir=\"auto\">A simple desktop application to download Youtube videos to video (mp4, mpg, wmv) and audio (wav, flac, m4a, wma, mp3, ogg, acc) formats, one by one or all of them.</p>\n<p dir=\"auto\">A note: Since this app relays on youtube site and apis, it sometimes breaks without any change.\nIn this case, please create an issue or tweet <a href=\"https://twitter.com/y2mp3\" rel=\"nofollow\">@y2mp3</a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"app-resources/video.gif\"><img src=\"app-resources/video.gif\" alt=\"video demo\" width=\"320\" style=\"max-width: 100%;\"></a></p>\n<h4 dir=\"auto\"><a id=\"user-content-find-us-on-slack\" class=\"anchor\" aria-hidden=\"true\" href=\"#find-us-on-slack\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Find us on Slack</h4>\n<p dir=\"auto\"><a href=\"https://join.slack.com/t/y2mp3/shared_invite/enQtNTk0OTE0Njc4ODY4LTYzYmY1M2MwMWFmZmQ1NTA2MDMxNWIzZTFkYzcyOTdkMjE3ZmNmMzk4NmM4YWY5OThkYTJjNzFhZTA0NGI3OTk\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/7401780b3404972f150b513133b7ec65fb5430bcf0f1b2f23aeaa4c89761a055/68747470733a2f2f63646e2e6272616e64666f6c6465722e696f2f35483434324f33572f61732f706c3534366a2d376c65387a6b2d6578387736352f536c61636b5f5247422e706e673f77696474683d313230\" alt=\"link to Slack channel\" data-canonical-src=\"https://cdn.brandfolder.io/5H442O3W/as/pl546j-7le8zk-ex8w65/Slack_RGB.png?width=120\" style=\"max-width: 100%;\"></a></p>\n<h4 dir=\"auto\"><a id=\"user-content-limitations\" class=\"anchor\" aria-hidden=\"true\" href=\"#limitations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Limitations</h4>\n<ul dir=\"auto\">\n<li>Fetch only first 100 clips in a playlist</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-disclaimer\" class=\"anchor\" aria-hidden=\"true\" href=\"#disclaimer\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Disclaimer</h2>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"loudspeaker\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png\">📢</g-emoji><g-emoji class=\"g-emoji\" alias=\"loudspeaker\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e2.png\">📢</g-emoji></p>\n<ol dir=\"auto\">\n<li>The app doesn't track you down in ANY way. Not Google Analytics, or any other service. We know nothing jon snow! So, if you have an idea about how to make this app even greater, we will not know unless you will tell us. Please fill a <a href=\"https://github.com/moshfeu/y2mp3/issues/new?assignees=moshfeu&labels=enhancement&template=feature_request.md\">Feature Request</a> or <a href=\"https://github.com/moshfeu/y2mp3/issues/new?assignees=moshfeu&labels=bug&template=bug_report.md\">Open a bug</a> and let we know what do you think.</li>\n<li>The app doesn't store ANY media files ANYWHERE except on the device who use this app.</li>\n<li>Please use this app for downloading only public resources (You shouldn't be able to download private media). If you doesn't see all of the videos in the playlist, probably, they private (even it's yours private)</li>\n</ol>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"balance_scale\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2696.png\">⚖</g-emoji> <g-emoji class=\"g-emoji\" alias=\"detective\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f575.png\">🕵</g-emoji></p>\n<h2 dir=\"auto\"><a id=\"user-content-supported-operating-systems\" class=\"anchor\" aria-hidden=\"true\" href=\"#supported-operating-systems\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Supported operating systems</h2>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"app-resources/readme/windows.svg?sanitize=true\"><img width=\"30\" alt=\"windows\" src=\"app-resources/readme/windows.svg?sanitize=true\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"app-resources/readme/mac.svg?sanitize=true\"><img width=\"30\" alt=\"mac\" src=\"app-resources/readme/mac.svg?sanitize=true\" style=\"max-width: 100%;\"></a></p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"app-resources/readme/linux.svg?sanitize=true\"><img width=\"30\" alt=\"linux\" src=\"app-resources/readme/linux.svg?sanitize=true\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<ul dir=\"auto\">\n<li>Free <g-emoji class=\"g-emoji\" alias=\"moneybag\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4b0.png\">💰</g-emoji></li>\n<li>No ads <g-emoji class=\"g-emoji\" alias=\"mega\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f4e3.png\">📣</g-emoji></li>\n</ul>\n<p dir=\"auto\">Find your download: <a href=\"https://github.com/moshfeu/y2mp3/releases/latest\">https://github.com/moshfeu/y2mp3/releases/latest</a></p>\n<h2 dir=\"auto\"><a id=\"user-content-change-log\" class=\"anchor\" aria-hidden=\"true\" href=\"#change-log\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Change log</h2>\n<h5 dir=\"auto\"><a id=\"user-content-250\" class=\"anchor\" aria-hidden=\"true\" href=\"#250\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.5.0</h5>\n<p dir=\"auto\">Fix - The app didn't work at all because of changes in Youtube.</p>\n<h5 dir=\"auto\"><a id=\"user-content-241\" class=\"anchor\" aria-hidden=\"true\" href=\"#241\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.4.1</h5>\n<p dir=\"auto\">Fix - some downloads failed (\"The video is unavailable\")</p>\n<h5 dir=\"auto\"><a id=\"user-content-240\" class=\"anchor\" aria-hidden=\"true\" href=\"#240\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.4.0</h5>\n<ul dir=\"auto\">\n<li>Allow to stop active video download</li>\n<li>Scroll the screen to a download when it starts</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-230\" class=\"anchor\" aria-hidden=\"true\" href=\"#230\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.3.0</h5>\n<ul dir=\"auto\">\n<li>Allow to remove videos from the list</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66964159-7a4e2d00-f07e-11e9-8a78-1fc971b92183.png\"><img width=\"82\" alt=\"Remove from the list (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66964159-7a4e2d00-f07e-11e9-8a78-1fc971b92183.png\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Icon in the tray that shows the progress</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66964583-bdf56680-f07f-11e9-8a9e-1fd7e6394175.jpg\"><img width=\"267\" alt=\"progress (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66964583-bdf56680-f07f-11e9-8a9e-1fd7e6394175.jpg\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Show notification when video downloaded</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66964794-50960580-f080-11e9-97bd-9d7382ea2470.png\"><img width=\"357\" alt=\"notification (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66964794-50960580-f080-11e9-97bd-9d7382ea2470.png\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Bug fixes</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-220\" class=\"anchor\" aria-hidden=\"true\" href=\"#220\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.2.0</h5>\n<ul dir=\"auto\">\n<li>Attach the video's thumbnail as album art</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66707744-4ad1b480-ed4e-11e9-927f-a92c940ee574.png\"><img width=\"265\" alt=\"Album art (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66707744-4ad1b480-ed4e-11e9-927f-a92c940ee574.png\" style=\"max-width: 100%;\"></a></p>\n<ul dir=\"auto\">\n<li>Add menu for better accesibility to useful options</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66707712-dc8cf200-ed4d-11e9-889d-8b36cca17772.png\"><img width=\"296\" alt=\"New Menu (feature screenshot)\" src=\"https://user-images.githubusercontent.com/3723951/66707712-dc8cf200-ed4d-11e9-889d-8b36cca17772.png\" style=\"max-width: 100%;\"></a></p>\n<h5 dir=\"auto\"><a id=\"user-content-210\" class=\"anchor\" aria-hidden=\"true\" href=\"#210\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.1.0</h5>\n<ul dir=\"auto\">\n<li>Check for updates automatically (Thanks (again) to <a href=\"https://github.com/iahmedhendi\">@iahmedhendi</a>)</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3723951/66351800-f356d180-e966-11e9-8ede-a3bbfad9a2b0.png\"><img width=\"288\" alt=\"Screen Shot\" src=\"https://user-images.githubusercontent.com/3723951/66351800-f356d180-e966-11e9-8ede-a3bbfad9a2b0.png\" style=\"max-width: 100%;\"></a></p>\n<h5 dir=\"auto\"><a id=\"user-content-200\" class=\"anchor\" aria-hidden=\"true\" href=\"#200\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>2.0.0</h5>\n<ul dir=\"auto\">\n<li>Allow to download videos! (supported formats: mp4, wmv, mpg)</li>\n<li>Bug fixes and UI improvements</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-170\" class=\"anchor\" aria-hidden=\"true\" href=\"#170\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.7.0</h5>\n<ul dir=\"auto\">\n<li>Don't open multiple folder picker dialogs (Thanks to <a href=\"https://github.com/iahmedhendi\">@iahmedhendi</a> for the issue)</li>\n<li>Don't ask to install ffmpeg if it already installed (Thanks to <a href=\"https://github.com/antwake\">@antwake</a> for the issue)</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-160-thanks-to-softpedia-for-the-ideas\" class=\"anchor\" aria-hidden=\"true\" href=\"#160-thanks-to-softpedia-for-the-ideas\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.6.0 (Thanks to <a href=\"https://www.softpedia.com/get/Internet/Download-Managers/y2mp3.shtml\" rel=\"nofollow\">softpedia</a> for the ideas)</h5>\n<ul dir=\"auto\">\n<li>Allow to choose different audio formats (mp3, wav, flac, m4a, wma, ogg, aac)</li>\n<li>Copied URLs will be automatically be loaded into the app.</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-150\" class=\"anchor\" aria-hidden=\"true\" href=\"#150\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.5.0</h5>\n<p dir=\"auto\">Add the option to save each playlist to a dedicated folder - thanks to <a href=\"https://github.com/saydax\">@saydax</a> for the request</p>\n<h5 dir=\"auto\"><a id=\"user-content-140\" class=\"anchor\" aria-hidden=\"true\" href=\"#140\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.4.0</h5>\n<p dir=\"auto\">Make song title a link - thanks to <a href=\"https://github.com/shayanypn\">@shayanypn</a></p>\n<h5 dir=\"auto\"><a id=\"user-content-130\" class=\"anchor\" aria-hidden=\"true\" href=\"#130\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.3.0</h5>\n<ul dir=\"auto\">\n<li>Allow to change the audio quality</li>\n<li>display a proper message when the url is not supported or invalid</li>\n</ul>\n<h5 dir=\"auto\"><a id=\"user-content-120\" class=\"anchor\" aria-hidden=\"true\" href=\"#120\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.2.0</h5>\n<p dir=\"auto\">Allow to change the downloads folder</p>\n<h5 dir=\"auto\"><a id=\"user-content-110\" class=\"anchor\" aria-hidden=\"true\" href=\"#110\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.1.0</h5>\n<p dir=\"auto\">Allow fetch and download a single video</p>\n<h5 dir=\"auto\"><a id=\"user-content-100\" class=\"anchor\" aria-hidden=\"true\" href=\"#100\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>1.0.0</h5>\n<p dir=\"auto\">Fetch videos from youtube playlist and download them one by one or all.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/shayanypn\">@shayanypn</a></li>\n</ul>\n<div dir=\"auto\">\n Os Icons made by <a href=\"https://www.flaticon.com/authors/pixel-perfect\" title=\"Pixel perfect\" rel=\"nofollow\">Pixel perfect</a> from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\" rel=\"nofollow\">www.flaticon.com</a> is licensed by <a href=\"http://creativecommons.org/licenses/by/3.0/\" title=\"Creative Commons BY 3.0\" rel=\"nofollow\">CC 3.0 BY</a>\n</div>\n<h2 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"npm install\nnpm start\"><pre class=\"notranslate\"><code class=\"notranslate\">npm install\nnpm start\n</code></pre></div>\n<p dir=\"auto\">Or</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"yarn\nyarn start\"><pre class=\"notranslate\"><code class=\"notranslate\">yarn\nyarn start\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-stack\" class=\"anchor\" aria-hidden=\"true\" href=\"#stack\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Stack</h3>\n<table>\n <tbody><tr>\n <td><a href=\"http://electronjs.org/\" rel=\"nofollow\"><img width=\"25\" alt=\"electron\" src=\"https://camo.githubusercontent.com/dbd4147617c86278b63ab8ae9c50af9a4e4d3cc3dde75199c7971d77e4bcf591/68747470733a2f2f6769746875622e6769746875626173736574732e636f6d2f696d616765732f69636f6e732f656d6f6a692f656c656374726f6e2e706e67\" data-canonical-src=\"https://github.githubassets.com/images/icons/emoji/electron.png\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://reactjs.org/\" rel=\"nofollow\"><img width=\"45\" alt=\"reactjs\" src=\"https://camo.githubusercontent.com/dbe670ecea36b59366b09cb0f6530898d02409129b1663be0ff31e753a527e07/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f612f61372f52656163742d69636f6e2e737667\" data-canonical-src=\"https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://mobx.js.org/\" rel=\"nofollow\"><img width=\"25\" alt=\"mobx\" src=\"https://camo.githubusercontent.com/8420e016d16f5d6e92bef0b5002f9c67dd43be4e7df17914890ae7c50c8afb65/68747470733a2f2f6d6f62782e6a732e6f72672f696d672f6d6f62782e706e67\" data-canonical-src=\"https://mobx.js.org/img/mobx.png\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://www.typescriptlang.org/\" rel=\"nofollow\"><img width=\"25\" alt=\"typescript\" src=\"https://github.com/remojansen/logo.ts/raw/master/ts.jpg?raw=true\" style=\"max-width: 100%;\"></a></td>\n <td><a href=\"https://webpack.js.org/\" rel=\"nofollow\"><img width=\"30\" src=\"https://github.com/webpack/media/raw/master/logo/icon-square-small.jpg?raw=true\" style=\"max-width: 100%;\"></a></td>\n </tr><tr>\n <td><a href=\"http://electronjs.org/\" rel=\"nofollow\">electron</a></td>\n <td><a href=\"https://reactjs.org/\" rel=\"nofollow\">reactjs</a></td>\n <td><a href=\"https://mobx.js.org/\" rel=\"nofollow\">mobx</a></td>\n <td><a href=\"https://www.typescriptlang.org/\" rel=\"nofollow\">typescript</a></td>\n <td><a href=\"https://webpack.js.org/\" rel=\"nofollow\">webpack</a></td>\n </tr>\n</tbody></table>\n<p dir=\"auto\"><strong>Logos licenes</strong></p>\n<ul dir=\"auto\">\n<li>Facebook [Public domain or CC BY-SA 1.0 (<a href=\"https://creativecommons.org/licenses/by-sa/1.0\" rel=\"nofollow\">https://creativecommons.org/licenses/by-sa/1.0</a>)]</li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-tests\" class=\"anchor\" aria-hidden=\"true\" href=\"#tests\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Tests</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://jestjs.io/\" rel=\"nofollow\">jest</a></li>\n</ul>\n<h4 dir=\"auto\"><a id=\"user-content-libraries\" class=\"anchor\" aria-hidden=\"true\" href=\"#libraries\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Libraries</h4>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/ytb2mp3/youtube-mp3-downloader\">youtube-mp3-downloader</a></li>\n<li><a href=\"https://github.com/CodeDotJS/youtube-playlist\">youtube-playlist</a></li>\n<li><a href=\"https://github.com/vot/ffbinaries-node\">ffbinaries</a></li>\n<li><a href=\"https://react.semantic-ui.com/\" rel=\"nofollow\">Semantic UI React</a></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-todo\" class=\"anchor\" aria-hidden=\"true\" href=\"#todo\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>TODO</h3>\n<p dir=\"auto\"><g-emoji class=\"g-emoji\" alias=\"vulcan_salute\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f596.png\">🖖</g-emoji><g-emoji class=\"g-emoji\" alias=\"medal_military\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f396.png\">🎖</g-emoji> Thanks you for your willing to contribute! You can find the list in the <a href=\"https://github.com/moshfeu/y2mp3/projects/1#column-3954836\">project</a> page.</p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">MIT</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.408Z" }, "yana": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-yana-\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/lukasbach/yana/blob/master/#yana-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Yana <a href=\"https://twitter.com/intent/tweet?text=Checkout%20Yana,%20a%20free%20and%20powerful%20notebook%20app&url=https://yana.js.org&hashtags=notetaking,organizing,yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/90bc908826728c0e4261acfff5619fd732c7be2b2a00624fce6363c9a3623c90/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c\" alt=\"Tweet\" data-canonical-src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" style=\"max-width: 100%;\"></a></h1>\n<blockquote>\n<p dir=\"auto\">Yet another notebook app</p>\n</blockquote>\n<p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/lukasbach/yana/blob/master/./demo.gif\"><img src=\"https://raw.githubusercontent.com/lukasbach/yana/master/./demo.gif\" alt=\"Yana Demo\" style=\"max-width: 100%;\" crossorigin=\"\"></a><br>\n <a href=\"https://yana.js.org\" rel=\"nofollow\">yana.js.org</a>\n</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/b0d7acbb86b24771eda4bd3cd54e2003ff12ef843b30d1ade47c982c4c22c442/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f746f74616c\"><img src=\"https://camo.githubusercontent.com/b0d7acbb86b24771eda4bd3cd54e2003ff12ef843b30d1ade47c982c4c22c442/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f746f74616c\" alt=\"GitHub all releases\" data-canonical-src=\"https://img.shields.io/github/downloads/lukasbach/yana/total\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/4fbae3523d1766c8a194549562ce2e80be43c83c2c280dc9425adbaf673455db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f6c61746573742f746f74616c\"><img src=\"https://camo.githubusercontent.com/4fbae3523d1766c8a194549562ce2e80be43c83c2c280dc9425adbaf673455db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f6c61746573742f746f74616c\" alt=\"GitHub release (latest by date)\" data-canonical-src=\"https://img.shields.io/github/downloads/lukasbach/yana/latest/total\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/082546e4464ed06f472fb13ba9933fa21b3daa1f81f0a9523482b204d025e2e2/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d6e636c6f63\" alt=\"Lines of Code\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=ncloc\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6aa2c8b79a281b5b6a6271aa8602924cc9f2ac46e0d86ca0ecd340e04cfb3dc4/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d72656c696162696c6974795f726174696e67\" alt=\"Reliability Rating\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=reliability_rating\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6a6f857d42e2ce6359f765465caa03520cad92bfb39306590c5fec5794b77e8f/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d73656375726974795f726174696e67\" alt=\"Security Rating\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=security_rating\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/145c79ab8f2e2a86cd0a7c0e02148eb5a9fceceb31c91b94e24d70cb6983899d/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d7371616c655f726174696e67\" alt=\"Maintainability Rating\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=sqale_rating\" style=\"max-width: 100%;\"></a></p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://www.producthunt.com/posts/yana-3?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-yana-3\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b10a8e11fb639f73c05018e7497c24f3a7ef6f329089a29d2d08e4176815340b/68747470733a2f2f6170692e70726f6475637468756e742e636f6d2f776964676574732f656d6265642d696d6167652f76312f66656174757265642e7376673f706f73745f69643d323736343733267468656d653d6c69676874\" alt=\"Yana - Powerful & organizable note-taking app with lots of features | Product Hunt\" style=\"width: 250px; height: 54px; max-width: 100%;\" width=\"250\" height=\"54\" data-canonical-src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=276473&theme=light\"></a>\n</p>\n<p dir=\"auto\">Yana is a powerful notebook app which allows\nyou to manage local workspaces of hierarchically structured taggable\nand searchable notes. It supports multiple kinds of notes, currently\nrich-text notes (including embedded media and complex tables) and code\nsnippets (based on the VSCode editor frontend) are supported. Other\nfeatures include</p>\n<ul dir=\"auto\">\n<li>Manage note structure via drag-and-drop</li>\n<li>Rich notes editor powered by the Atlassian editor core</li>\n<li>Multiple local workspaces</li>\n<li>Multiple notes can be opened at once in tabs</li>\n<li>Starring of notes</li>\n<li>Trashcan functionality</li>\n<li>Scalability, working fluently even on notebooks with ten thousands of notes</li>\n</ul>\n<p dir=\"auto\">Download <a href=\"https://github.com/lukasbach/yana/releases\">the latest release</a>.\nCurrently available for Windows, Linux and Mac.\nFind out more about Yana on <a href=\"https://yana.js.org\" rel=\"nofollow\">yana.js.org</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/lukasbach/yana/blob/master/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Feel free to contribute with Issue Reports, Feedback or Pull Requests.</p>\n<p dir=\"auto\">If you want to start developing Yana locally, you need Node 14+ and yarn install. Clone the repo,\ninstall dependencies with <code>yarn</code> and start the app locally with <code>yarn start</code>.</p>\n<p dir=\"auto\">Note that, after the electron window has opened, it might not automatically refresh when the web\npackage has finished building. Refresh the container with <code>CTRL+R</code> to see the app. You can\nopen up Devtools with <code>CTRL+SHIFT+i</code>.</p>\n<p dir=\"auto\">More details are available in <a href=\"https://github.com/lukasbach/yana/blob/master/./contributing.md\">contributing.md</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"readme.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-yana-\" class=\"anchor\" aria-hidden=\"true\" href=\"#yana-\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Yana <a href=\"https://twitter.com/intent/tweet?text=Checkout%20Yana,%20a%20free%20and%20powerful%20notebook%20app&url=https://yana.js.org&hashtags=notetaking,organizing,yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/90bc908826728c0e4261acfff5619fd732c7be2b2a00624fce6363c9a3623c90/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c\" alt=\"Tweet\" data-canonical-src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" style=\"max-width: 100%;\"></a></h1>\n<blockquote>\n<p dir=\"auto\">Yet another notebook app</p>\n</blockquote>\n<p align=\"center\" dir=\"auto\">\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"./demo.gif\"><img src=\"./demo.gif\" alt=\"Yana Demo\" style=\"max-width: 100%;\"></a><br>\n <a href=\"https://yana.js.org\" rel=\"nofollow\">yana.js.org</a>\n</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/b0d7acbb86b24771eda4bd3cd54e2003ff12ef843b30d1ade47c982c4c22c442/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f746f74616c\"><img src=\"https://camo.githubusercontent.com/b0d7acbb86b24771eda4bd3cd54e2003ff12ef843b30d1ade47c982c4c22c442/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f746f74616c\" alt=\"GitHub all releases\" data-canonical-src=\"https://img.shields.io/github/downloads/lukasbach/yana/total\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/4fbae3523d1766c8a194549562ce2e80be43c83c2c280dc9425adbaf673455db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f6c61746573742f746f74616c\"><img src=\"https://camo.githubusercontent.com/4fbae3523d1766c8a194549562ce2e80be43c83c2c280dc9425adbaf673455db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6c756b6173626163682f79616e612f6c61746573742f746f74616c\" alt=\"GitHub release (latest by date)\" data-canonical-src=\"https://img.shields.io/github/downloads/lukasbach/yana/latest/total\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/082546e4464ed06f472fb13ba9933fa21b3daa1f81f0a9523482b204d025e2e2/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d6e636c6f63\" alt=\"Lines of Code\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=ncloc\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6aa2c8b79a281b5b6a6271aa8602924cc9f2ac46e0d86ca0ecd340e04cfb3dc4/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d72656c696162696c6974795f726174696e67\" alt=\"Reliability Rating\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=reliability_rating\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6a6f857d42e2ce6359f765465caa03520cad92bfb39306590c5fec5794b77e8f/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d73656375726974795f726174696e67\" alt=\"Security Rating\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=security_rating\" style=\"max-width: 100%;\"></a>\n<a href=\"https://sonarcloud.io/dashboard?id=lukasbach_yana\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/145c79ab8f2e2a86cd0a7c0e02148eb5a9fceceb31c91b94e24d70cb6983899d/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c756b6173626163685f79616e61266d65747269633d7371616c655f726174696e67\" alt=\"Maintainability Rating\" data-canonical-src=\"https://sonarcloud.io/api/project_badges/measure?project=lukasbach_yana&metric=sqale_rating\" style=\"max-width: 100%;\"></a></p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://www.producthunt.com/posts/yana-3?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-yana-3\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/b10a8e11fb639f73c05018e7497c24f3a7ef6f329089a29d2d08e4176815340b/68747470733a2f2f6170692e70726f6475637468756e742e636f6d2f776964676574732f656d6265642d696d6167652f76312f66656174757265642e7376673f706f73745f69643d323736343733267468656d653d6c69676874\" alt=\"Yana - Powerful & organizable note-taking app with lots of features | Product Hunt\" style=\"width: 250px; height: 54px; max-width: 100%;\" width=\"250\" height=\"54\" data-canonical-src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=276473&theme=light\"></a>\n</p>\n<p dir=\"auto\">Yana is a powerful notebook app which allows\nyou to manage local workspaces of hierarchically structured taggable\nand searchable notes. It supports multiple kinds of notes, currently\nrich-text notes (including embedded media and complex tables) and code\nsnippets (based on the VSCode editor frontend) are supported. Other\nfeatures include</p>\n<ul dir=\"auto\">\n<li>Manage note structure via drag-and-drop</li>\n<li>Rich notes editor powered by the Atlassian editor core</li>\n<li>Multiple local workspaces</li>\n<li>Multiple notes can be opened at once in tabs</li>\n<li>Starring of notes</li>\n<li>Trashcan functionality</li>\n<li>Scalability, working fluently even on notebooks with ten thousands of notes</li>\n</ul>\n<p dir=\"auto\">Download <a href=\"https://github.com/lukasbach/yana/releases\">the latest release</a>.\nCurrently available for Windows, Linux and Mac.\nFind out more about Yana on <a href=\"https://yana.js.org\" rel=\"nofollow\">yana.js.org</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Feel free to contribute with Issue Reports, Feedback or Pull Requests.</p>\n<p dir=\"auto\">If you want to start developing Yana locally, you need Node 14+ and yarn install. Clone the repo,\ninstall dependencies with <code>yarn</code> and start the app locally with <code>yarn start</code>.</p>\n<p dir=\"auto\">Note that, after the electron window has opened, it might not automatically refresh when the web\npackage has finished building. Refresh the container with <code>CTRL+R</code> to see the app. You can\nopen up Devtools with <code>CTRL+SHIFT+i</code>.</p>\n<p dir=\"auto\">More details are available in <a href=\"./contributing.md\">contributing.md</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.453Z" }, "yeoman": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-yeoman-app--\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yeoman/yeoman-app/blob/main/#yeoman-app--\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Yeoman App <a href=\"https://travis-ci.org/yeoman/yeoman-app\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/62cf225670fb237dd7e5c8f9921eed8e973792a097d1c1bdbf265478a68e714b/68747470733a2f2f7472617669732d63692e6f72672f79656f6d616e2f79656f6d616e2d6170702e737667\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/yeoman/yeoman-app.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://gitter.im/yeoman/yeoman\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bf189b589630fd6b1f0a9f3f08d9f703c0fb914c891e82e7a1fec7cdd2c65965/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769747465722d4a6f696e5f7468655f59656f6d616e5f636861745f2545322538362539322d3030643036662e737667\" alt=\"Gitter\" data-canonical-src=\"https://img.shields.io/badge/Gitter-Join_the_Yeoman_chat_%E2%86%92-00d06f.svg\" style=\"max-width: 100%;\"></a></h1>\n<blockquote>\n<p dir=\"auto\">A desktop app that scaffolds projects using <a href=\"https://github.com/yeoman/yeoman\">Yeoman</a>.</p>\n</blockquote>\n<p dir=\"auto\">Yo, my friend. This is the first official Yeoman application with a fresh user interface from 2015. The app is unfortunately still in heavy development and <strong>we are looking for help!</strong> Let us know if something doesn't work like you expected by raising an issue or fix it straight away with a PR.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yeoman/yeoman-app/master/resources/screenshot.png\"><img src=\"https://raw.githubusercontent.com/yeoman/yeoman-app/master/resources/screenshot.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yeoman/yeoman-app/blob/main/#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h2>\n<p dir=\"auto\">The project is based mainly on <a href=\"https://electronjs.org/\" rel=\"nofollow\">electron</a> and <a href=\"http://material-ui.com/\" rel=\"nofollow\">Material UI</a>. For a Getting started guide, API docs etc. see the <a href=\"https://github.com/yeoman/yeoman-app/blob/main/./docs\">documentation page</a>. If something is missing, wrong or unclear, please open an issue. Thank you!</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yeoman/yeoman-app/blob/main/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">We love contributors! See our <a href=\"http://yeoman.io/contributing/\" rel=\"nofollow\">contribution guideline</a> to get started.</p>\n<h2 dir=\"auto\"><a id=\"user-content-google-analytics\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yeoman/yeoman-app/blob/main/#google-analytics\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Google analytics</h2>\n<p dir=\"auto\">To understand how the app is being used we will report usage information to <a href=\"http://www.google.com/analytics\" rel=\"nofollow\">Google Analytics</a>. If you do not want this information reported, you can disable it. Open the devtools with <kbd>CMD</kbd>+<kbd>OPT</kbd>+<kbd>I</kbd> (or <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>I</kbd> on Windows) and execute the following snippet in the console <code>localStorage.setItem('insight.disabled', true)</code>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-collected-data\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yeoman/yeoman-app/blob/main/#collected-data\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Collected Data</h3>\n<ul dir=\"auto\">\n<li><strong>Your IP address is anonymized</strong></li>\n<li>A unique identifier that is generated by computing the SHA-1 of the machine's MAC address.</li>\n<li>The screen width and height</li>\n<li>The version of Yeoman-App being used</li>\n<li>Your operating system and version</li>\n<li>App events (e.g. number of total installed generators, selected generator)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/yeoman/yeoman-app/blob/main/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"http://opensource.org/licenses/mit-license.php\" rel=\"nofollow\">MIT License</a> © Yeoman team</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-yeoman-app--\" class=\"anchor\" aria-hidden=\"true\" href=\"#yeoman-app--\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Yeoman App <a href=\"https://travis-ci.org/yeoman/yeoman-app\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/62cf225670fb237dd7e5c8f9921eed8e973792a097d1c1bdbf265478a68e714b/68747470733a2f2f7472617669732d63692e6f72672f79656f6d616e2f79656f6d616e2d6170702e737667\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.org/yeoman/yeoman-app.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://gitter.im/yeoman/yeoman\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bf189b589630fd6b1f0a9f3f08d9f703c0fb914c891e82e7a1fec7cdd2c65965/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769747465722d4a6f696e5f7468655f59656f6d616e5f636861745f2545322538362539322d3030643036662e737667\" alt=\"Gitter\" data-canonical-src=\"https://img.shields.io/badge/Gitter-Join_the_Yeoman_chat_%E2%86%92-00d06f.svg\" style=\"max-width: 100%;\"></a></h1>\n<blockquote>\n<p dir=\"auto\">A desktop app that scaffolds projects using <a href=\"https://github.com/yeoman/yeoman\">Yeoman</a>.</p>\n</blockquote>\n<p dir=\"auto\">Yo, my friend. This is the first official Yeoman application with a fresh user interface from 2015. The app is unfortunately still in heavy development and <strong>we are looking for help!</strong> Let us know if something doesn't work like you expected by raising an issue or fix it straight away with a PR.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/yeoman/yeoman-app/master/resources/screenshot.png\"><img src=\"https://raw.githubusercontent.com/yeoman/yeoman-app/master/resources/screenshot.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h2>\n<p dir=\"auto\">The project is based mainly on <a href=\"https://electronjs.org/\" rel=\"nofollow\">electron</a> and <a href=\"http://material-ui.com/\" rel=\"nofollow\">Material UI</a>. For a Getting started guide, API docs etc. see the <a href=\"./docs\">documentation page</a>. If something is missing, wrong or unclear, please open an issue. Thank you!</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">We love contributors! See our <a href=\"http://yeoman.io/contributing/\" rel=\"nofollow\">contribution guideline</a> to get started.</p>\n<h2 dir=\"auto\"><a id=\"user-content-google-analytics\" class=\"anchor\" aria-hidden=\"true\" href=\"#google-analytics\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Google analytics</h2>\n<p dir=\"auto\">To understand how the app is being used we will report usage information to <a href=\"http://www.google.com/analytics\" rel=\"nofollow\">Google Analytics</a>. If you do not want this information reported, you can disable it. Open the devtools with <kbd>CMD</kbd>+<kbd>OPT</kbd>+<kbd>I</kbd> (or <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>I</kbd> on Windows) and execute the following snippet in the console <code>localStorage.setItem('insight.disabled', true)</code>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-collected-data\" class=\"anchor\" aria-hidden=\"true\" href=\"#collected-data\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Collected Data</h3>\n<ul dir=\"auto\">\n<li><strong>Your IP address is anonymized</strong></li>\n<li>A unique identifier that is generated by computing the SHA-1 of the machine's MAC address.</li>\n<li>The screen width and height</li>\n<li>The version of Yeoman-App being used</li>\n<li>Your operating system and version</li>\n<li>App events (e.g. number of total installed generators, selected generator)</li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\"><a href=\"http://opensource.org/licenses/mit-license.php\" rel=\"nofollow\">MIT License</a> © Yeoman team</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.575Z" }, "wow-stat": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-wow-stat\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arzynik/wowstat/blob/master/#wow-stat\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WoW Stat</h1>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d23da223f3d588b01ddcc6c7d39e5a20dc9876c86cbb5b49783cbbb55d954625/687474703a2f2f776f7773742e61742f73637265656e73686f742e706e67\"><img align=\"right\" height=\"300px\" src=\"https://camo.githubusercontent.com/d23da223f3d588b01ddcc6c7d39e5a20dc9876c86cbb5b49783cbbb55d954625/687474703a2f2f776f7773742e61742f73637265656e73686f742e706e67\" data-canonical-src=\"http://wowst.at/screenshot.png\" style=\"max-width: 100%;\"></a></p>\n<br><br>\n![WoW Stat](<a href=\"http://wowst.at/logo.svg\" rel=\"nofollow\">http://wowst.at/logo.svg</a>)\n<br><br><br><br><br><br><br>\n<p dir=\"auto\">WoW Stat is a World of Warcraft server monitor utility. Set your server you wish to monitor, and your server goes down it will automatically notify you when it is back up, or even relaunch WoW for you if you wish.</p>\n<p dir=\"auto\">This is yet another rework, this time using the <a href=\"http://electron.atom.io/\" rel=\"nofollow\">Electron</a> framework.</p>\n<hr>\n<h3 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arzynik/wowstat/blob/master/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h3>\n<p dir=\"auto\">There are builds in the <a href=\"https://github.com/arzynik/wowstat/releases\">Release</a> section for macOS and Windows.</p>\n<h3 dir=\"auto\"><a id=\"user-content-develop\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arzynik/wowstat/blob/master/#develop\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Develop</h3>\n<ul dir=\"auto\">\n<li>Install the node dependencies <code>npm install</code></li>\n<li>Start the app <code>npm start</code></li>\n<li>For windows use <code>npm run startwin</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-build\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/arzynik/wowstat/blob/master/#build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build</h3>\n<ul dir=\"auto\">\n<li>Run the Electron Builder <code>npm run dist</code></li>\n<li>For windows use <code>npm run distwin</code></li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-wow-stat\" class=\"anchor\" aria-hidden=\"true\" href=\"#wow-stat\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>WoW Stat</h1>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/d23da223f3d588b01ddcc6c7d39e5a20dc9876c86cbb5b49783cbbb55d954625/687474703a2f2f776f7773742e61742f73637265656e73686f742e706e67\"><img align=\"right\" height=\"300px\" src=\"https://camo.githubusercontent.com/d23da223f3d588b01ddcc6c7d39e5a20dc9876c86cbb5b49783cbbb55d954625/687474703a2f2f776f7773742e61742f73637265656e73686f742e706e67\" data-canonical-src=\"http://wowst.at/screenshot.png\" style=\"max-width: 100%;\"></a></p>\n<br><br>\n![WoW Stat](<a href=\"http://wowst.at/logo.svg\" rel=\"nofollow\">http://wowst.at/logo.svg</a>)\n<br><br><br><br><br><br><br>\n<p dir=\"auto\">WoW Stat is a World of Warcraft server monitor utility. Set your server you wish to monitor, and your server goes down it will automatically notify you when it is back up, or even relaunch WoW for you if you wish.</p>\n<p dir=\"auto\">This is yet another rework, this time using the <a href=\"http://electron.atom.io/\" rel=\"nofollow\">Electron</a> framework.</p>\n<hr>\n<h3 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h3>\n<p dir=\"auto\">There are builds in the <a href=\"https://github.com/arzynik/wowstat/releases\">Release</a> section for macOS and Windows.</p>\n<h3 dir=\"auto\"><a id=\"user-content-develop\" class=\"anchor\" aria-hidden=\"true\" href=\"#develop\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Develop</h3>\n<ul dir=\"auto\">\n<li>Install the node dependencies <code>npm install</code></li>\n<li>Start the app <code>npm start</code></li>\n<li>For windows use <code>npm run startwin</code></li>\n</ul>\n<h3 dir=\"auto\"><a id=\"user-content-build\" class=\"anchor\" aria-hidden=\"true\" href=\"#build\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Build</h3>\n<ul dir=\"auto\">\n<li>Run the Electron Builder <code>npm run dist</code></li>\n<li>For windows use <code>npm run distwin</code></li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.642Z" }, "yet-another-gitbook-reader": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-yagr---yet-another-gitbook-reader\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/gnu4cn/gitbook-reader-app/blob/main/#yagr---yet-another-gitbook-reader\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>YAGR - Yet Another Gitbook Reader</h1>\n<p dir=\"auto\">There are a lot of books resource written in markdown language on the Internet, you can find from GitHub, GitLab, Gitee... platforms, and most of these books are high quality tech documents. This project is based upon Eletron, Angular, TypeORM, UnifiedJS, NodeGit and other project, the target is a stable, easy to use gitbook reader.</p>\n<p dir=\"auto\">You can Fork and contribute to this project.</p>\n<p dir=\"auto\">网上基于 Markdown 的书籍很多,通常在GitHub、GitLab、Gitee等代码托管与社会化编程网站上都能找到,其中大部分都是高质量的技术文档。本项目基于Electron、Angular、UnifiedJS等既有框架,目标是得到一个稳定、易于使用的Gitbook阅读器。</p>\n<p dir=\"auto\">本项目使用了 <code>nodegit</code>, <code>typeorm</code>, <code>electron</code>, <code>angular</code>, <code>@swimlane/docspa-core</code> 等项目/代码。</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/gnu4cn/gitbook-reader-app/blob/main/yagr-architecture-dia.png\"><img src=\"https://raw.githubusercontent.com/gnu4cn/gitbook-reader-app/main/yagr-architecture-dia.png\" alt=\"YAGR architecture - dia chart\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/gnu4cn/gitbook-reader-app/blob/main/yagr-screenshot.png\"><img src=\"https://raw.githubusercontent.com/gnu4cn/gitbook-reader-app/main/yagr-screenshot.png\" alt=\"屏幕截图\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-开发日志dev-logs\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/gnu4cn/gitbook-reader-app/blob/main/#开发日志dev-logs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>开发日志/Dev Logs</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">2021-1-14</p>\n<ul dir=\"auto\">\n<li>Optimized the <code>search.component</code>, refactored the UI and added search tips and empty messages.</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2021-1-12</p>\n<ul dir=\"auto\">\n<li>With <code>@ngx-translate/core</code> and <code>@ngx-translate/http-loader</code>, now this project supports multilingual UI</li>\n</ul>\n<ul dir=\"auto\">\n<li>Todos:\n<ul dir=\"auto\">\n<li>Optimize I18n</li>\n<li>List books under categories</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2021-1-8</p>\n<ul dir=\"auto\">\n<li>完善了搜索界面、阅读器界面</li>\n<li>重写了Electron 后端,实现 CRUD 实例的重用,从而改善了性能,并将数据库文件调整到 <code>appDir</code> 目录</li>\n<li>尚未完成:按类别、作者、平台过滤书籍,后期建立账号系统</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2021-1-2</p>\n<ul dir=\"auto\">\n<li>完成从GitHub,GitLab,Gitee三大平台获取书籍元数据特性</li>\n<li>优化作者 avatar 获取</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-31</p>\n<ul dir=\"auto\">\n<li>2020的最后一天</li>\n<li>准备从 GitHub, Gitee, Gitlab获取书籍信息</li>\n<li>已经准备好 <code>fetch.service.ts</code>, 其中涉及 <code>Restful API</code>,<code>HttpHeaders</code>等内容</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-29</p>\n<ul dir=\"auto\">\n<li>重写了<code>loadSummary</code>,增加了<code>remark</code> 的 <code>correctHeadings</code> 插件</li>\n<li>实现了阅读记录删除,现在可以彻底删除书籍了(之前因为阅读记录关联了书籍id,而不能彻底删除书籍)</li>\n<li>尚待实现:从 Github 等处获取书籍、查看作者/类别/代码仓库下的书籍</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-26</p>\n<ul dir=\"auto\">\n<li>增加“阅读记录”功能</li>\n<li>修改 <code>src/app/read/read.page.ts</code> 等多处,以适配“阅读记录”</li>\n<li>尚需实现“阅读”进入上次阅读地点,<code>loadSummary</code> 方法还没有重写</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-24</p>\n<ul dir=\"auto\">\n<li>改写前端,实现“正在看的书”、“书架上的书”和“暂存在回收站的书”的分离,并加入视觉反馈</li>\n<li>从<code>src/app/home/home.page.ts</code>、<code>src/app/home/components/book-list.component.ts</code>中分离出<code>book</code>、<code>writer</code>、<code>website</code>、<code>category</code>等数据模型的业务逻辑,<code>home.page.ts</code>与<code>book-list.component.ts</code>只负责视图控制,他们的行数变得更少,实现了较大重构,代码更清晰,后期功能增加就变得容易可行了</li>\n<li>尝试从 github.com 的 <code>search API</code> 获取书籍,搜索参数为 <code>search?q=\"gitbook\"+\"python\"+filename:SUMMARY.md&type=Repositories</code></li>\n<li>尝试修改 <code>loadSummary</code> 方法,重新实现从 <code>SUMMARY.md</code> 加载目录,而不是从后台扫描的 <code>md list</code> 加载目录</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-21</p>\n<ul dir=\"auto\">\n<li>调整UI,加入打开 README.md</li>\n<li>修改 <code>src/app/book/markdown/markdown.service.ts</code>,<code>src/app/book/markdown-elements/embed-file.ts</code>与<code>src/app/book/shared/links.ts</code>,将<code>home.page</code>中打开的README.md中的内部链接去除</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-20</p>\n<ul dir=\"auto\">\n<li>已经完善了书籍类别修改</li>\n</ul>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">再次尝试Windows下的编译,得到以下认知:</p>\n<ul dir=\"auto\">\n<li><code>node-gyp</code>, gyp, generate your projects, 藉由Python对原生Node模块进行跨平台编译,在不同平台调用不同的构建工具(Linux GCC、Windows MSVS Build, macOS Xcode)</li>\n<li>往编译器传递参数,是通过模块根目录下的<code>binding.gyp</code>构建配置文件完成的,可编辑此文件,修改编译参数</li>\n<li>之前遇到的<code>nodegit</code>原生模块编译问题,找不到<code>openssh</code>的诸多头文件,就可以通过修改<code>binding.gyp</code>配置文件加以解决</li>\n<li><code>nodegit</code>模块本身就带有获取<code>openssh</code>库和头文件的实用工具(<code>node_modules/nodegit/utils/acquireOPENSSL.js</code>, 运行命令<code> node ./node_modules/nodegit/utils/acquireOpenSSL.js</code>既可获取到OpenSSL, 在<code>vendor</code>目录下),无需额外安装或编译<code>openssh</code>!!!</li>\n<li>现在遇到了在编译完成生成动态链接库时,<code>libssh2</code>报错的问题,预计可再次修改<code>binding.gyp</code>加以解决</li>\n<li><code>libssh2.lib(channel.obj) : error LNK2019: unresolved external symbol RAND_bytes</code>, <code>libssh2.lib(channel.obj) : error LNK2001: 无法解析的外部符号 RAND_bytes</code>等<code> fatal error LNK1120: 140 个无法解析的外部命令</code>......, 上述修改<code>binding.gyp</code> 仍无法解决,现参考 <a href=\"https://github.com/libssh2/libssh2/issues/191\" data-hovercard-type=\"issue\" data-hovercard-url=\"/libssh2/libssh2/issues/191/hovercard\">Libssh2 LINKER errors</a>,加以解决</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-17</p>\n<ul dir=\"auto\">\n<li>在实现书籍删除时,遇到新下载书籍无法删除的问题,<code>mat-dialog</code>模板数据未能绑定</li>\n<li>考虑进一步优化<code>home.page</code>界面</li>\n<li><code>remark-gfm</code> 提示要升级 <code>remark</code> 到 <code>13</code></li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-16</p>\n<ul dir=\"auto\">\n<li>重写Electron后端,将书籍管理放入 <code>book.backend.ts</code>的类中</li>\n<li>将Electron的<code>index.ts</code>修改为类的形式</li>\n<li>给图片重新加上了<code>findup</code>方法,将<code>images</code>插件修改为异步方式,实现图片自动查找</li>\n<li>发现<code>router.service.ts</code>中的判断 <code>homepage</code> 方法有问题,加以修改</li>\n<li>修正了 <code>src/app/book/markdown-elements/toc-pagination.component.ts</code>中的几个问题,分页正常工作</li>\n<li>修改 <code>src/app/book/services/search.service.ts</code> 与 <code>src/app/book/directives/content-search.directive.ts</code>,为 <code>search.service.ts</code>加上<code>init</code>方法,并在 <code>content-search.directive.ts</code>中调用,以解决首次搜索没有结果的问题</li>\n<li>继续实现书籍删除、类别编辑</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-12</p>\n<ul dir=\"auto\">\n<li>因为打包后无法再在 <code>src/assets</code> 中添加Git repo, 因此考虑使用Electron的<code>app.getPath('appDir')</code>文件夹来存放书籍Git repo,为了能在Angular中获取到Markdown、图片文件,故在Electron中<code>child_process.fork</code>出一个Mini web服务器</li>\n<li>修改Anuglar的<code>book</code>模块的<code>location.service.ts</code>服务,使得<code>book/markdown-elements/embed.ts</code>从本地服务器获取文件</li>\n<li>利用Electron的<code>session</code>模块,解决<code>CORS</code>报错问题</li>\n<li>后面尝试对 <code>electron/src/bookOps.ts</code>进行<code>fork</code></li>\n<li>尚待完成书籍编辑、分类过滤、删除</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-11</p>\n<ul dir=\"auto\">\n<li>重写了 <code>router.service.ts</code>,解决了多处同名文件的bug。</li>\n<li>尚需实现 <code>home.page</code> 的书籍类别管理、删除书籍。</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-10</p>\n<ul dir=\"auto\">\n<li>重写 <code>loadSummary</code> 方法,由后端提供书籍的全部 <code>.md</code> 文件,提升加载速度。后期将 <code>summary-toc</code> 与 <code>search-index</code>在数据库中持久化,以进一步提升加载速度</li>\n<li>正在解决 <code>toc-pagination.component.ts</code> 不能正常显示的问题</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-08(2)</p>\n<ul dir=\"auto\">\n<li>解决了在Electron中打开新窗口,加载Angular的路由问题!!!</li>\n<li>Electron 应用的协议 <code>electron://-/</code>(<code>capacitor-electron://-/</code>) 表示根路径,其他路径都是 <code>capacitor-electron://-/#/home</code>这样的</li>\n<li>要在 <code>app.module.ts</code>中使用<code>HashLocationStrategy</code></li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-08</p>\n<ul dir=\"auto\">\n<li>为了能在Electron的新窗口中打开Angular的路由,修改 <code>app-routing.module.ts</code>与<code>app.module.ts</code>,将<code>LocationStrategy</code>从<code>PathLocationStrategy</code>修改为<code>HashLocationStratedy</code>,以及一些其他修改</li>\n<li>修正了<code>book/services/location.service.ts</code>中判断是否为<code>shared</code> MD文件的方法,以及<code>shared</code>MD文件<code>vfile.data.gbr.url</code>生成的方式</li>\n<li>在修改了<code>LocationStrategy</code>后,由于路径中已经有了<code>#</code>符号,导致<code>toc</code>无法展开,现修改代码,解决<code>toc</code>展开的问题</li>\n</ul>\n<ul dir=\"auto\">\n<li><code>toc</code>展开机制:\n<ul dir=\"auto\">\n<li><code>sectionScrollSpy</code> 指令获取到当前<code>article</code>在屏幕中的那些小节,发射输出到<code>read.page.ts</code>中</li>\n<li>两个<code>aside</code> 的 <code>listCollapse</code> 指令,从<code>read.page.ts</code>中获取到<code>sectionScrollSpy</code>生成的<code>active sections</code> 集合(<code>set</code>),对两个<code>aside</code>元素中的清单进行操作</li>\n<li>在变更了 <code>LocationStrategy</code> 后,原来的 <code>book/directives/list-collapse.directive.ts</code> 已经失效,需要进行修改</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-07</p>\n<ul dir=\"auto\">\n<li>前端界面已经优化的很不错了,阅读页面稳定,Home 页面简化成熟</li>\n<li>加入了NodeGit和Sqlite3两个原生模块,其中NodeGit用于克隆Markdown书籍,Sqlite3用于维护本地书籍数据</li>\n<li>两个原生模块都需要为当前Electron版本进行重新构建,为此要使用命令<code>npm i electron-rebuild --save-dev</code>安装<code>electron-rebuild</code></li>\n<li>重新构建就是为当前特定版本的Electron重新编译模块的二进制版本,而不是使用该模块的预先构建版本</li>\n<li>模块的二进制发布,是一个二进制文件,包含了所有该模块的API接口,可供JavaScript, Python等语言进行调用,可以看着是一个<code>dll</code>文件</li>\n<li><code>node_module/.bin/</code>目录下,有很多到<code>node_module/xxx</code>模块命令的软连接(其中就有<code>electron</code>),这个目录没有加入到系统的<code>$PATH</code>环境变量,只在本地<code>npm</code>环境下有效</li>\n<li><code>electron-rebuild</code>命令默认将重新编译所有的原生(native)模块,可使用其命令参数<code>-w --which</code>编译指定的模块</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-30</p>\n<ul dir=\"auto\">\n<li>已经支持多本书</li>\n<li>解决 github.io 部署时,<code>assets</code>下的 <code>.md</code> 文件 <code>404</code> 错误问题</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-21</p>\n<ul dir=\"auto\">\n<li>解决了打印问题、搜索问题,阅读器完全可用</li>\n<li>下一步着重开发Electron部分</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-21</p>\n<ul dir=\"auto\">\n<li>解决打印问题</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-20</p>\n<ul dir=\"auto\">\n<li>点击页面连接,页面没有更新,<code>RouterService</code>没有传入正确的 <code>changes</code></li>\n<li>目录清单没有正确展开,<code>list-collapse.directive</code>没有正确工作</li>\n<li><code>section-spy.directive</code>有正确传出,但<code>list-collapse.directive</code>没有正确处理</li>\n</ul>\n</li>\n</ul>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-yagr---yet-another-gitbook-reader\" class=\"anchor\" aria-hidden=\"true\" href=\"#yagr---yet-another-gitbook-reader\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>YAGR - Yet Another Gitbook Reader</h1>\n<p dir=\"auto\">There are a lot of books resource written in markdown language on the Internet, you can find from GitHub, GitLab, Gitee... platforms, and most of these books are high quality tech documents. This project is based upon Eletron, Angular, TypeORM, UnifiedJS, NodeGit and other project, the target is a stable, easy to use gitbook reader.</p>\n<p dir=\"auto\">You can Fork and contribute to this project.</p>\n<p dir=\"auto\">网上基于 Markdown 的书籍很多,通常在GitHub、GitLab、Gitee等代码托管与社会化编程网站上都能找到,其中大部分都是高质量的技术文档。本项目基于Electron、Angular、UnifiedJS等既有框架,目标是得到一个稳定、易于使用的Gitbook阅读器。</p>\n<p dir=\"auto\">本项目使用了 <code>nodegit</code>, <code>typeorm</code>, <code>electron</code>, <code>angular</code>, <code>@swimlane/docspa-core</code> 等项目/代码。</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"yagr-architecture-dia.png\"><img src=\"yagr-architecture-dia.png\" alt=\"YAGR architecture - dia chart\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"yagr-screenshot.png\"><img src=\"yagr-screenshot.png\" alt=\"屏幕截图\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-开发日志dev-logs\" class=\"anchor\" aria-hidden=\"true\" href=\"#开发日志dev-logs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>开发日志/Dev Logs</h2>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">2021-1-14</p>\n<ul dir=\"auto\">\n<li>Optimized the <code>search.component</code>, refactored the UI and added search tips and empty messages.</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2021-1-12</p>\n<ul dir=\"auto\">\n<li>With <code>@ngx-translate/core</code> and <code>@ngx-translate/http-loader</code>, now this project supports multilingual UI</li>\n</ul>\n<ul dir=\"auto\">\n<li>Todos:\n<ul dir=\"auto\">\n<li>Optimize I18n</li>\n<li>List books under categories</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2021-1-8</p>\n<ul dir=\"auto\">\n<li>完善了搜索界面、阅读器界面</li>\n<li>重写了Electron 后端,实现 CRUD 实例的重用,从而改善了性能,并将数据库文件调整到 <code>appDir</code> 目录</li>\n<li>尚未完成:按类别、作者、平台过滤书籍,后期建立账号系统</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2021-1-2</p>\n<ul dir=\"auto\">\n<li>完成从GitHub,GitLab,Gitee三大平台获取书籍元数据特性</li>\n<li>优化作者 avatar 获取</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-31</p>\n<ul dir=\"auto\">\n<li>2020的最后一天</li>\n<li>准备从 GitHub, Gitee, Gitlab获取书籍信息</li>\n<li>已经准备好 <code>fetch.service.ts</code>, 其中涉及 <code>Restful API</code>,<code>HttpHeaders</code>等内容</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-29</p>\n<ul dir=\"auto\">\n<li>重写了<code>loadSummary</code>,增加了<code>remark</code> 的 <code>correctHeadings</code> 插件</li>\n<li>实现了阅读记录删除,现在可以彻底删除书籍了(之前因为阅读记录关联了书籍id,而不能彻底删除书籍)</li>\n<li>尚待实现:从 Github 等处获取书籍、查看作者/类别/代码仓库下的书籍</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-26</p>\n<ul dir=\"auto\">\n<li>增加“阅读记录”功能</li>\n<li>修改 <code>src/app/read/read.page.ts</code> 等多处,以适配“阅读记录”</li>\n<li>尚需实现“阅读”进入上次阅读地点,<code>loadSummary</code> 方法还没有重写</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-24</p>\n<ul dir=\"auto\">\n<li>改写前端,实现“正在看的书”、“书架上的书”和“暂存在回收站的书”的分离,并加入视觉反馈</li>\n<li>从<code>src/app/home/home.page.ts</code>、<code>src/app/home/components/book-list.component.ts</code>中分离出<code>book</code>、<code>writer</code>、<code>website</code>、<code>category</code>等数据模型的业务逻辑,<code>home.page.ts</code>与<code>book-list.component.ts</code>只负责视图控制,他们的行数变得更少,实现了较大重构,代码更清晰,后期功能增加就变得容易可行了</li>\n<li>尝试从 github.com 的 <code>search API</code> 获取书籍,搜索参数为 <code>search?q=\"gitbook\"+\"python\"+filename:SUMMARY.md&type=Repositories</code></li>\n<li>尝试修改 <code>loadSummary</code> 方法,重新实现从 <code>SUMMARY.md</code> 加载目录,而不是从后台扫描的 <code>md list</code> 加载目录</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-21</p>\n<ul dir=\"auto\">\n<li>调整UI,加入打开 README.md</li>\n<li>修改 <code>src/app/book/markdown/markdown.service.ts</code>,<code>src/app/book/markdown-elements/embed-file.ts</code>与<code>src/app/book/shared/links.ts</code>,将<code>home.page</code>中打开的README.md中的内部链接去除</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-20</p>\n<ul dir=\"auto\">\n<li>已经完善了书籍类别修改</li>\n</ul>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">再次尝试Windows下的编译,得到以下认知:</p>\n<ul dir=\"auto\">\n<li><code>node-gyp</code>, gyp, generate your projects, 藉由Python对原生Node模块进行跨平台编译,在不同平台调用不同的构建工具(Linux GCC、Windows MSVS Build, macOS Xcode)</li>\n<li>往编译器传递参数,是通过模块根目录下的<code>binding.gyp</code>构建配置文件完成的,可编辑此文件,修改编译参数</li>\n<li>之前遇到的<code>nodegit</code>原生模块编译问题,找不到<code>openssh</code>的诸多头文件,就可以通过修改<code>binding.gyp</code>配置文件加以解决</li>\n<li><code>nodegit</code>模块本身就带有获取<code>openssh</code>库和头文件的实用工具(<code>node_modules/nodegit/utils/acquireOPENSSL.js</code>, 运行命令<code> node ./node_modules/nodegit/utils/acquireOpenSSL.js</code>既可获取到OpenSSL, 在<code>vendor</code>目录下),无需额外安装或编译<code>openssh</code>!!!</li>\n<li>现在遇到了在编译完成生成动态链接库时,<code>libssh2</code>报错的问题,预计可再次修改<code>binding.gyp</code>加以解决</li>\n<li><code>libssh2.lib(channel.obj) : error LNK2019: unresolved external symbol RAND_bytes</code>, <code>libssh2.lib(channel.obj) : error LNK2001: 无法解析的外部符号 RAND_bytes</code>等<code> fatal error LNK1120: 140 个无法解析的外部命令</code>......, 上述修改<code>binding.gyp</code> 仍无法解决,现参考 <a href=\"https://github.com/libssh2/libssh2/issues/191\" data-hovercard-type=\"issue\" data-hovercard-url=\"/libssh2/libssh2/issues/191/hovercard\">Libssh2 LINKER errors</a>,加以解决</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-17</p>\n<ul dir=\"auto\">\n<li>在实现书籍删除时,遇到新下载书籍无法删除的问题,<code>mat-dialog</code>模板数据未能绑定</li>\n<li>考虑进一步优化<code>home.page</code>界面</li>\n<li><code>remark-gfm</code> 提示要升级 <code>remark</code> 到 <code>13</code></li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-16</p>\n<ul dir=\"auto\">\n<li>重写Electron后端,将书籍管理放入 <code>book.backend.ts</code>的类中</li>\n<li>将Electron的<code>index.ts</code>修改为类的形式</li>\n<li>给图片重新加上了<code>findup</code>方法,将<code>images</code>插件修改为异步方式,实现图片自动查找</li>\n<li>发现<code>router.service.ts</code>中的判断 <code>homepage</code> 方法有问题,加以修改</li>\n<li>修正了 <code>src/app/book/markdown-elements/toc-pagination.component.ts</code>中的几个问题,分页正常工作</li>\n<li>修改 <code>src/app/book/services/search.service.ts</code> 与 <code>src/app/book/directives/content-search.directive.ts</code>,为 <code>search.service.ts</code>加上<code>init</code>方法,并在 <code>content-search.directive.ts</code>中调用,以解决首次搜索没有结果的问题</li>\n<li>继续实现书籍删除、类别编辑</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-12</p>\n<ul dir=\"auto\">\n<li>因为打包后无法再在 <code>src/assets</code> 中添加Git repo, 因此考虑使用Electron的<code>app.getPath('appDir')</code>文件夹来存放书籍Git repo,为了能在Angular中获取到Markdown、图片文件,故在Electron中<code>child_process.fork</code>出一个Mini web服务器</li>\n<li>修改Anuglar的<code>book</code>模块的<code>location.service.ts</code>服务,使得<code>book/markdown-elements/embed.ts</code>从本地服务器获取文件</li>\n<li>利用Electron的<code>session</code>模块,解决<code>CORS</code>报错问题</li>\n<li>后面尝试对 <code>electron/src/bookOps.ts</code>进行<code>fork</code></li>\n<li>尚待完成书籍编辑、分类过滤、删除</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-11</p>\n<ul dir=\"auto\">\n<li>重写了 <code>router.service.ts</code>,解决了多处同名文件的bug。</li>\n<li>尚需实现 <code>home.page</code> 的书籍类别管理、删除书籍。</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-10</p>\n<ul dir=\"auto\">\n<li>重写 <code>loadSummary</code> 方法,由后端提供书籍的全部 <code>.md</code> 文件,提升加载速度。后期将 <code>summary-toc</code> 与 <code>search-index</code>在数据库中持久化,以进一步提升加载速度</li>\n<li>正在解决 <code>toc-pagination.component.ts</code> 不能正常显示的问题</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-08(2)</p>\n<ul dir=\"auto\">\n<li>解决了在Electron中打开新窗口,加载Angular的路由问题!!!</li>\n<li>Electron 应用的协议 <code>electron://-/</code>(<code>capacitor-electron://-/</code>) 表示根路径,其他路径都是 <code>capacitor-electron://-/#/home</code>这样的</li>\n<li>要在 <code>app.module.ts</code>中使用<code>HashLocationStrategy</code></li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-08</p>\n<ul dir=\"auto\">\n<li>为了能在Electron的新窗口中打开Angular的路由,修改 <code>app-routing.module.ts</code>与<code>app.module.ts</code>,将<code>LocationStrategy</code>从<code>PathLocationStrategy</code>修改为<code>HashLocationStratedy</code>,以及一些其他修改</li>\n<li>修正了<code>book/services/location.service.ts</code>中判断是否为<code>shared</code> MD文件的方法,以及<code>shared</code>MD文件<code>vfile.data.gbr.url</code>生成的方式</li>\n<li>在修改了<code>LocationStrategy</code>后,由于路径中已经有了<code>#</code>符号,导致<code>toc</code>无法展开,现修改代码,解决<code>toc</code>展开的问题</li>\n</ul>\n<ul dir=\"auto\">\n<li><code>toc</code>展开机制:\n<ul dir=\"auto\">\n<li><code>sectionScrollSpy</code> 指令获取到当前<code>article</code>在屏幕中的那些小节,发射输出到<code>read.page.ts</code>中</li>\n<li>两个<code>aside</code> 的 <code>listCollapse</code> 指令,从<code>read.page.ts</code>中获取到<code>sectionScrollSpy</code>生成的<code>active sections</code> 集合(<code>set</code>),对两个<code>aside</code>元素中的清单进行操作</li>\n<li>在变更了 <code>LocationStrategy</code> 后,原来的 <code>book/directives/list-collapse.directive.ts</code> 已经失效,需要进行修改</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-12-07</p>\n<ul dir=\"auto\">\n<li>前端界面已经优化的很不错了,阅读页面稳定,Home 页面简化成熟</li>\n<li>加入了NodeGit和Sqlite3两个原生模块,其中NodeGit用于克隆Markdown书籍,Sqlite3用于维护本地书籍数据</li>\n<li>两个原生模块都需要为当前Electron版本进行重新构建,为此要使用命令<code>npm i electron-rebuild --save-dev</code>安装<code>electron-rebuild</code></li>\n<li>重新构建就是为当前特定版本的Electron重新编译模块的二进制版本,而不是使用该模块的预先构建版本</li>\n<li>模块的二进制发布,是一个二进制文件,包含了所有该模块的API接口,可供JavaScript, Python等语言进行调用,可以看着是一个<code>dll</code>文件</li>\n<li><code>node_module/.bin/</code>目录下,有很多到<code>node_module/xxx</code>模块命令的软连接(其中就有<code>electron</code>),这个目录没有加入到系统的<code>$PATH</code>环境变量,只在本地<code>npm</code>环境下有效</li>\n<li><code>electron-rebuild</code>命令默认将重新编译所有的原生(native)模块,可使用其命令参数<code>-w --which</code>编译指定的模块</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-30</p>\n<ul dir=\"auto\">\n<li>已经支持多本书</li>\n<li>解决 github.io 部署时,<code>assets</code>下的 <code>.md</code> 文件 <code>404</code> 错误问题</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-21</p>\n<ul dir=\"auto\">\n<li>解决了打印问题、搜索问题,阅读器完全可用</li>\n<li>下一步着重开发Electron部分</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-21</p>\n<ul dir=\"auto\">\n<li>解决打印问题</li>\n</ul>\n</li>\n<li>\n<p dir=\"auto\">2020-11-20</p>\n<ul dir=\"auto\">\n<li>点击页面连接,页面没有更新,<code>RouterService</code>没有传入正确的 <code>changes</code></li>\n<li>目录清单没有正确展开,<code>list-collapse.directive</code>没有正确工作</li>\n<li><code>section-spy.directive</code>有正确传出,但<code>list-collapse.directive</code>没有正确处理</li>\n</ul>\n</li>\n</ul>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.745Z" }, "zap": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-zap\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#zap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Zap</h1>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://zap.jackmallers.com\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/a680149c2ce690f1e411d205273580a5a8bf918b63be8e4acc310adb5a372455/68747470733a2f2f692e696d6775722e636f6d2f5a4458363471772e706e67\" alt=\"screenshot\" data-canonical-src=\"https://i.imgur.com/ZDX64qw.png\" style=\"max-width: 100%;\">\n </a>\n</p>\n<blockquote>\n<p dir=\"auto\">Lightning wallet focused on user experience and ease of use <g-emoji class=\"g-emoji\" alias=\"zap\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a1.png\">⚡️</g-emoji></p>\n</blockquote>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/1f13b5124178ce7bf5223d0fd0b0035f6a938ea436eefe9c5b3ebd412c0f320c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f4c4e2d5a61702f7a61702d6465736b746f702f746f74616c\"><img src=\"https://camo.githubusercontent.com/1f13b5124178ce7bf5223d0fd0b0035f6a938ea436eefe9c5b3ebd412c0f320c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f4c4e2d5a61702f7a61702d6465736b746f702f746f74616c\" alt=\"GitHub All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/LN-Zap/zap-desktop/total\" style=\"max-width: 100%;\"></a> <a href=\"https://crowdin.com/project/zap-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a6e4054723e0d2508f251df5e71ab0aeee1c59119bf4b6b54db4748b175af7b5/68747470733a2f2f64333232637174353834626f346f2e636c6f756466726f6e742e6e65742f7a61702d6465736b746f702f6c6f63616c697a65642e737667\" alt=\"Crowdin\" data-canonical-src=\"https://d322cqt584bo4o.cloudfront.net/zap-desktop/localized.svg\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/b97e21eba22ef60e491ab194bb08b8cbef0b597ea49e53116183070a16574766/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4c4e2d5a61702f7a61702d6465736b746f702e7376673f7374796c653d666c61742d677265656e\" alt=\"GitHub license\" data-canonical-src=\"https://img.shields.io/github/license/LN-Zap/zap-desktop.svg?style=flat-green\" style=\"max-width: 100%;\"></a>\n<a href=\"https://david-dm.org/LN-Zap/zap-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/581ed05a865e1ff18ea8c149ae1ce5e77aa27a2139781b8db612999dce818b16/68747470733a2f2f64617669642d646d2e6f72672f4c4e2d5a61702f7a61702d6465736b746f702f7374617475732e737667\" alt=\"dependencies Status\" data-canonical-src=\"https://david-dm.org/LN-Zap/zap-desktop/status.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://travis-ci.org/LN-Zap/zap-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f5531eea1f154921273c0385956a86de95043467de09b06295236eee4f973ad8/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f4c4e2d5a61702f7a61702d6465736b746f702f6d61737465722e7376673f7374796c653d666c61742d677265656e266c6162656c3d6d61632532302f2532306c696e7578266c6f676f3d747261766973\" alt=\"Build Status\" data-canonical-src=\"https://img.shields.io/travis/LN-Zap/zap-desktop/master.svg?style=flat-green&label=mac%20/%20linux&logo=travis\" style=\"max-width: 100%;\"></a> <a href=\"https://ci.appveyor.com/project/LN-Zap/zap-desktop/branch/master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/97427f0d4c55c490e71b3063feb7542bd07e7a1a19994a907ea912ac99026134/68747470733a2f2f696d672e736869656c64732e696f2f6170707665796f722f63692f4c4e2d5a61702f7a61702d6465736b746f702f6d61737465722e7376673f7374796c653d666c61742d677265656e266c6162656c3d77696e646f7773266c6f676f3d6170707665796f72\" alt=\"Build status\" data-canonical-src=\"https://img.shields.io/appveyor/ci/LN-Zap/zap-desktop/master.svg?style=flat-green&label=windows&logo=appveyor\" style=\"max-width: 100%;\"></a> <a href=\"https://coveralls.io/github/LN-Zap/zap-desktop?branch=master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/627607ee861273e515cccb9660a98e460a552e471e4449051e54daf5776be1f3/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f4c4e2d5a61702f7a61702d6465736b746f702f62616467652e7376673f6272616e63683d6d6173746572\" alt=\"Coverage Status\" data-canonical-src=\"https://coveralls.io/repos/github/LN-Zap/zap-desktop/badge.svg?branch=master\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/LN-Zap/zap-desktop/releases/latest\"><img src=\"https://camo.githubusercontent.com/41f7dc668557478aa11db5ce508b88a3af238a52a66e5f835562eb7916508db1/68747470733a2f2f62616467656e2e6e65742f6769746875622f72656c656173652f4c4e2d5a61702f7a61702d6465736b746f702f\" alt=\"GitHub Release\" data-canonical-src=\"https://badgen.net/github/release/LN-Zap/zap-desktop/\" style=\"max-width: 100%;\"></a> <a href=\"https://keybase.io/ln_zap\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4957b866b3152d00311c3a9d09fbab9b28754eed41c44a349f17a06a391762d6/68747470733a2f2f62616467656e2e6e65742f6b6579626173652f7067702f6c6e5f7a6170\" alt=\"Keybase Verify\" data-canonical-src=\"https://badgen.net/keybase/pgp/ln_zap\" style=\"max-width: 100%;\"></a> <a href=\"https://twitter.com/ln_zap\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6b6550b7071131c48c71941ef6acaefc07850cd07bdb85ab2c608d84aaa80994/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6c6e5f7a61703f7374796c653d736f6369616c\" alt=\"Twitter Follow\" data-canonical-src=\"https://img.shields.io/twitter/follow/ln_zap?style=social\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Zap is a free Lightning Network wallet focused on user experience and ease of use, with the overall goal of helping the cryptocurrency community scale Bitcoin.</p>\n<p dir=\"auto\">The UI for Zap is created using\n<a href=\"https://electron.atom.io/\" rel=\"nofollow\">Electron</a> + <a href=\"https://facebook.github.io/react/\" rel=\"nofollow\">React</a> + <a href=\"https://github.com/reactjs/redux/tree/master/docs\">Redux</a>.</p>\n<p dir=\"auto\">We have an active <a href=\"https://join.slack.com/t/zaphq/shared_invite/zt-roz0lalj-6fVdYQlLnpuM2c2QTvFgxA\" rel=\"nofollow\">slack</a> channel where you can join the discussion on development, design and product.</p>\n<h2 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of Contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#security\">Security</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#install\">Install</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#usage\">Usage</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#documentation\">Documentation</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#get-help\">Get Help</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#maintainers\">Maintainers</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#contribute\">Contribute</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#license\">License</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-security\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#security\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Security</h2>\n<p dir=\"auto\">If you discover or learn about a potential error, weakness, or threat that can compromise the security of Zap, we ask you to keep it confidential and <a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/mailto:jimmymowschess@gmail.com?subject=%5BGitHub%5D%20Zap%20Security\">submit your concern directly to the Zap security team</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<p dir=\"auto\">Download the <a href=\"https://github.com/LN-Zap/zap-desktop/releases\">latest release</a> for your appropriate OS and follow the instructions below.</p>\n<h3 dir=\"auto\"><a id=\"user-content-macos\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#macos\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>macOS</h3>\n<p dir=\"auto\">Once you have the .tar.gz file downloaded, simply <strong>double click</strong> on the file to unzip.</p>\n<p dir=\"auto\">Navigate to the newly extracted folder, then drag-and-drop the <code>Zap.app</code> file to the <code>Applications</code> folder.</p>\n<p dir=\"auto\">Unmount the image and navigate to <code>Applications</code> folder.</p>\n<p dir=\"auto\">Finally, <strong>double click</strong> on the <code>Zap.app</code> file.</p>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\">Once you have the .exe file downloaded, simply <strong>double click</strong> on the file.</p>\n<h3 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h3>\n<p dir=\"auto\">Once you have the .AppImage file downloaded you must <a href=\"https://docs.appimage.org/user-guide/run-appimages.html\" rel=\"nofollow\">make the file executable</a>.</p>\n<p dir=\"auto\">Once executible you can run either <strong>double click</strong> the file or run via the cli:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"./file.AppImage\"><pre>./file.AppImage</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h2>\n<p dir=\"auto\">If you would like to install from source, run a full bitcoin node, connect to a custom lnd instance or get involved with development please refer to our documentation:</p>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/ADVANCED.md\">Advanced usage</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/CONFIG.md\">Configuration</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/CONTRIBUTING.md\">Contributing</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/DEBUGGING.md\">Debugging</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/TROUBLESHOOTING.md\">Troubleshooting</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/RELEASING.md\">Releasing</a></li>\n<li><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/SIGNATURES.md\">Signatures</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-get-help\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#get-help\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Get Help</h2>\n<p dir=\"auto\">If you are having problems with Zap, please report the issue in <a href=\"https://github.com/LN-Zap/zap-desktop/issues\">GitHub</a> or on <a href=\"https://join.slack.com/t/zaphq/shared_invite/zt-roz0lalj-6fVdYQlLnpuM2c2QTvFgxA\" rel=\"nofollow\">slack</a> with screenshots and/or how to reproduce the bug/error.</p>\n<p dir=\"auto\">A good product not only has good software tests but also checks the quality of the UX/UI. Putting ourselves in the shoes of a user is a very important design principle of Zap.</p>\n<h2 dir=\"auto\"><a id=\"user-content-maintainers\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#maintainers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Maintainers</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/JimmyMow\">Jack Mallers (@JimmyMow)</a></li>\n<li><a href=\"https://github.com/mrfelton\">Tom Kirkpatrick (@mrfelton)</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contribute</h2>\n<p dir=\"auto\">Hey! Do you like Zap? Awesome! We could actually really use your help!</p>\n<p dir=\"auto\">Open source isn't just writing code. Zap could use your help with any of the following:</p>\n<ul dir=\"auto\">\n<li>Finding (and reporting!) bugs</li>\n<li>New feature suggestions</li>\n<li>Answering questions on issues</li>\n<li>Documentation improvements</li>\n<li>Reviewing pull requests</li>\n<li>Helping to manage issue priorities</li>\n<li>Fixing bugs/new features</li>\n</ul>\n<p dir=\"auto\">If any of that sounds cool to you, feel free to dive in! <a href=\"https://github.com/LN-Zap/zap-desktop/issues\">Open an issue</a> or submit a pull request.</p>\n<p dir=\"auto\">If you would like to help contribute to the project, please see the <a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/docs/CONTRIBUTING.md\">Contributing Guide</a></p>\n<p dir=\"auto\">This project exists thanks to all the people who contribute.</p>\n<p dir=\"auto\"><a href=\"https://github.com/mrfelton\"><img alt=\"mrfelton\" src=\"https://avatars0.githubusercontent.com/u/200251?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/JimmyMow\"><img alt=\"JimmyMow\" src=\"https://avatars2.githubusercontent.com/u/4040039?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/korhaliv\"><img alt=\"korhaliv\" src=\"https://avatars0.githubusercontent.com/u/14069193?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/Empact\"><img alt=\"Empact\" src=\"https://avatars2.githubusercontent.com/u/5470?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/bolatovumar\"><img alt=\"bolatovumar\" src=\"https://avatars1.githubusercontent.com/u/1934678?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jackmallers\"><img alt=\"jackmallers\" src=\"https://avatars3.githubusercontent.com/u/30220954?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/odb366\"><img alt=\"odb366\" src=\"https://avatars3.githubusercontent.com/u/14116101?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/zobroj\"><img alt=\"zobroj\" src=\"https://avatars2.githubusercontent.com/u/61939?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/joaodealmeida\"><img alt=\"joaodealmeida\" src=\"https://avatars3.githubusercontent.com/u/5623455?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/helgabutters\"><img alt=\"helgabutters\" src=\"https://avatars2.githubusercontent.com/u/8001978?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/pajasevi\"><img alt=\"pajasevi\" src=\"https://avatars3.githubusercontent.com/u/2407408?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/DataCourier\"><img alt=\"DataCourier\" src=\"https://avatars1.githubusercontent.com/u/35670446?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/thedon-chris\"><img alt=\"thedon-chris\" src=\"https://avatars2.githubusercontent.com/u/30728737?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jimpo\"><img alt=\"jimpo\" src=\"https://avatars3.githubusercontent.com/u/881253?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/dfattlar\"><img alt=\"dfattlar\" src=\"https://avatars3.githubusercontent.com/u/4843270?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/NahomAgidew\"><img alt=\"NahomAgidew\" src=\"https://avatars2.githubusercontent.com/u/11695305?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/asoltys\"><img alt=\"asoltys\" src=\"https://avatars0.githubusercontent.com/u/7641?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/leon-do\"><img alt=\"leon-do\" src=\"https://avatars3.githubusercontent.com/u/19412160?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/seanyesmunt\"><img alt=\"seanyesmunt\" src=\"https://avatars0.githubusercontent.com/u/16882830?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/tbloncar\"><img alt=\"tbloncar\" src=\"https://avatars1.githubusercontent.com/u/2092395?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/waseem999\"><img alt=\"waseem999\" src=\"https://avatars3.githubusercontent.com/u/17360809?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/apps/dependabot\"><img alt=\"dependabot[bot]\" src=\"https://avatars0.githubusercontent.com/in/29110?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jamaljsr\"><img alt=\"jamaljsr\" src=\"https://avatars2.githubusercontent.com/u/1356600?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jtarre\"><img alt=\"jtarre\" src=\"https://avatars1.githubusercontent.com/u/1143894?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/RandyMcMillan\"><img alt=\"RandyMcMillan\" src=\"https://avatars1.githubusercontent.com/u/152159?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/musdom\"><img alt=\"musdom\" src=\"https://avatars0.githubusercontent.com/u/9629456?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/alvistar\"><img alt=\"alvistar\" src=\"https://avatars1.githubusercontent.com/u/1459284?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/BrianSipple\"><img alt=\"BrianSipple\" src=\"https://avatars0.githubusercontent.com/u/5483853?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/karliatto\"><img alt=\"karliatto\" src=\"https://avatars0.githubusercontent.com/u/5362163?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/dimitris-t\"><img alt=\"dimitris-t\" src=\"https://avatars1.githubusercontent.com/u/8949706?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/kaloudis\"><img alt=\"kaloudis\" src=\"https://avatars2.githubusercontent.com/u/1878621?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/thinkjanis\"><img alt=\"thinkjanis\" src=\"https://avatars1.githubusercontent.com/u/31632325?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jorian\"><img alt=\"jorian\" src=\"https://avatars0.githubusercontent.com/u/10341677?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/lukechilds\"><img alt=\"lukechilds\" src=\"https://avatars0.githubusercontent.com/u/2123375?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/wraithm\"><img alt=\"wraithm\" src=\"https://avatars3.githubusercontent.com/u/1512913?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/QcMrHyde\"><img alt=\"QcMrHyde\" src=\"https://avatars0.githubusercontent.com/u/6273472?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/CallMeSlinky\"><img alt=\"CallMeSlinky\" src=\"https://avatars1.githubusercontent.com/u/35815379?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/michaelWuensch\"><img alt=\"michaelWuensch\" src=\"https://avatars2.githubusercontent.com/u/15313630?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/foxikk\"><img alt=\"foxikk\" src=\"https://avatars0.githubusercontent.com/u/3337752?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/fresheneesz\"><img alt=\"fresheneesz\" src=\"https://avatars3.githubusercontent.com/u/149531?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/funyug\"><img alt=\"funyug\" src=\"https://avatars2.githubusercontent.com/u/8094201?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/losh11\"><img alt=\"losh11\" src=\"https://avatars3.githubusercontent.com/u/2608570?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/terencechow\"><img alt=\"terencechow\" src=\"https://avatars0.githubusercontent.com/u/1937276?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/gtonic\"><img alt=\"gtonic\" src=\"https://avatars3.githubusercontent.com/u/3163718?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/LN-Zap/zap-desktop/blob/master/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. See <a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/LICENSE\">LICENSE</a> for more information.</p>\n<p dir=\"auto\"><a href=\"https://github.com/LN-Zap/zap-desktop/blob/master/LICENSE\">MIT</a> © Jack Mallers</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-zap\" class=\"anchor\" aria-hidden=\"true\" href=\"#zap\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Zap</h1>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://zap.jackmallers.com\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/a680149c2ce690f1e411d205273580a5a8bf918b63be8e4acc310adb5a372455/68747470733a2f2f692e696d6775722e636f6d2f5a4458363471772e706e67\" alt=\"screenshot\" data-canonical-src=\"https://i.imgur.com/ZDX64qw.png\" style=\"max-width: 100%;\">\n </a>\n</p>\n<blockquote>\n<p dir=\"auto\">Lightning wallet focused on user experience and ease of use <g-emoji class=\"g-emoji\" alias=\"zap\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a1.png\">⚡️</g-emoji></p>\n</blockquote>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/1f13b5124178ce7bf5223d0fd0b0035f6a938ea436eefe9c5b3ebd412c0f320c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f4c4e2d5a61702f7a61702d6465736b746f702f746f74616c\"><img src=\"https://camo.githubusercontent.com/1f13b5124178ce7bf5223d0fd0b0035f6a938ea436eefe9c5b3ebd412c0f320c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f4c4e2d5a61702f7a61702d6465736b746f702f746f74616c\" alt=\"GitHub All Releases\" data-canonical-src=\"https://img.shields.io/github/downloads/LN-Zap/zap-desktop/total\" style=\"max-width: 100%;\"></a> <a href=\"https://crowdin.com/project/zap-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a6e4054723e0d2508f251df5e71ab0aeee1c59119bf4b6b54db4748b175af7b5/68747470733a2f2f64333232637174353834626f346f2e636c6f756466726f6e742e6e65742f7a61702d6465736b746f702f6c6f63616c697a65642e737667\" alt=\"Crowdin\" data-canonical-src=\"https://d322cqt584bo4o.cloudfront.net/zap-desktop/localized.svg\" style=\"max-width: 100%;\"></a> <a href=\"LICENSE\"><img src=\"https://camo.githubusercontent.com/b97e21eba22ef60e491ab194bb08b8cbef0b597ea49e53116183070a16574766/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4c4e2d5a61702f7a61702d6465736b746f702e7376673f7374796c653d666c61742d677265656e\" alt=\"GitHub license\" data-canonical-src=\"https://img.shields.io/github/license/LN-Zap/zap-desktop.svg?style=flat-green\" style=\"max-width: 100%;\"></a>\n<a href=\"https://david-dm.org/LN-Zap/zap-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/581ed05a865e1ff18ea8c149ae1ce5e77aa27a2139781b8db612999dce818b16/68747470733a2f2f64617669642d646d2e6f72672f4c4e2d5a61702f7a61702d6465736b746f702f7374617475732e737667\" alt=\"dependencies Status\" data-canonical-src=\"https://david-dm.org/LN-Zap/zap-desktop/status.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://travis-ci.org/LN-Zap/zap-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/f5531eea1f154921273c0385956a86de95043467de09b06295236eee4f973ad8/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f4c4e2d5a61702f7a61702d6465736b746f702f6d61737465722e7376673f7374796c653d666c61742d677265656e266c6162656c3d6d61632532302f2532306c696e7578266c6f676f3d747261766973\" alt=\"Build Status\" data-canonical-src=\"https://img.shields.io/travis/LN-Zap/zap-desktop/master.svg?style=flat-green&label=mac%20/%20linux&logo=travis\" style=\"max-width: 100%;\"></a> <a href=\"https://ci.appveyor.com/project/LN-Zap/zap-desktop/branch/master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/97427f0d4c55c490e71b3063feb7542bd07e7a1a19994a907ea912ac99026134/68747470733a2f2f696d672e736869656c64732e696f2f6170707665796f722f63692f4c4e2d5a61702f7a61702d6465736b746f702f6d61737465722e7376673f7374796c653d666c61742d677265656e266c6162656c3d77696e646f7773266c6f676f3d6170707665796f72\" alt=\"Build status\" data-canonical-src=\"https://img.shields.io/appveyor/ci/LN-Zap/zap-desktop/master.svg?style=flat-green&label=windows&logo=appveyor\" style=\"max-width: 100%;\"></a> <a href=\"https://coveralls.io/github/LN-Zap/zap-desktop?branch=master\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/627607ee861273e515cccb9660a98e460a552e471e4449051e54daf5776be1f3/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f4c4e2d5a61702f7a61702d6465736b746f702f62616467652e7376673f6272616e63683d6d6173746572\" alt=\"Coverage Status\" data-canonical-src=\"https://coveralls.io/repos/github/LN-Zap/zap-desktop/badge.svg?branch=master\" style=\"max-width: 100%;\"></a> <a href=\"https://github.com/LN-Zap/zap-desktop/releases/latest\"><img src=\"https://camo.githubusercontent.com/41f7dc668557478aa11db5ce508b88a3af238a52a66e5f835562eb7916508db1/68747470733a2f2f62616467656e2e6e65742f6769746875622f72656c656173652f4c4e2d5a61702f7a61702d6465736b746f702f\" alt=\"GitHub Release\" data-canonical-src=\"https://badgen.net/github/release/LN-Zap/zap-desktop/\" style=\"max-width: 100%;\"></a> <a href=\"https://keybase.io/ln_zap\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/4957b866b3152d00311c3a9d09fbab9b28754eed41c44a349f17a06a391762d6/68747470733a2f2f62616467656e2e6e65742f6b6579626173652f7067702f6c6e5f7a6170\" alt=\"Keybase Verify\" data-canonical-src=\"https://badgen.net/keybase/pgp/ln_zap\" style=\"max-width: 100%;\"></a> <a href=\"https://twitter.com/ln_zap\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/6b6550b7071131c48c71941ef6acaefc07850cd07bdb85ab2c608d84aaa80994/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6c6e5f7a61703f7374796c653d736f6369616c\" alt=\"Twitter Follow\" data-canonical-src=\"https://img.shields.io/twitter/follow/ln_zap?style=social\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Zap is a free Lightning Network wallet focused on user experience and ease of use, with the overall goal of helping the cryptocurrency community scale Bitcoin.</p>\n<p dir=\"auto\">The UI for Zap is created using\n<a href=\"https://electron.atom.io/\" rel=\"nofollow\">Electron</a> + <a href=\"https://facebook.github.io/react/\" rel=\"nofollow\">React</a> + <a href=\"https://github.com/reactjs/redux/tree/master/docs\">Redux</a>.</p>\n<p dir=\"auto\">We have an active <a href=\"https://join.slack.com/t/zaphq/shared_invite/zt-roz0lalj-6fVdYQlLnpuM2c2QTvFgxA\" rel=\"nofollow\">slack</a> channel where you can join the discussion on development, design and product.</p>\n<h2 dir=\"auto\"><a id=\"user-content-table-of-contents\" class=\"anchor\" aria-hidden=\"true\" href=\"#table-of-contents\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Table of Contents</h2>\n<ul dir=\"auto\">\n<li><a href=\"#security\">Security</a></li>\n<li><a href=\"#install\">Install</a></li>\n<li><a href=\"#usage\">Usage</a></li>\n<li><a href=\"#documentation\">Documentation</a></li>\n<li><a href=\"#get-help\">Get Help</a></li>\n<li><a href=\"#maintainers\">Maintainers</a></li>\n<li><a href=\"#contribute\">Contribute</a></li>\n<li><a href=\"#license\">License</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-security\" class=\"anchor\" aria-hidden=\"true\" href=\"#security\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Security</h2>\n<p dir=\"auto\">If you discover or learn about a potential error, weakness, or threat that can compromise the security of Zap, we ask you to keep it confidential and <a href=\"mailto:jimmymowschess@gmail.com?subject=%5BGitHub%5D%20Zap%20Security\">submit your concern directly to the Zap security team</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-install\" class=\"anchor\" aria-hidden=\"true\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Install</h2>\n<p dir=\"auto\">Download the <a href=\"https://github.com/LN-Zap/zap-desktop/releases\">latest release</a> for your appropriate OS and follow the instructions below.</p>\n<h3 dir=\"auto\"><a id=\"user-content-macos\" class=\"anchor\" aria-hidden=\"true\" href=\"#macos\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>macOS</h3>\n<p dir=\"auto\">Once you have the .tar.gz file downloaded, simply <strong>double click</strong> on the file to unzip.</p>\n<p dir=\"auto\">Navigate to the newly extracted folder, then drag-and-drop the <code>Zap.app</code> file to the <code>Applications</code> folder.</p>\n<p dir=\"auto\">Unmount the image and navigate to <code>Applications</code> folder.</p>\n<p dir=\"auto\">Finally, <strong>double click</strong> on the <code>Zap.app</code> file.</p>\n<h3 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h3>\n<p dir=\"auto\">Once you have the .exe file downloaded, simply <strong>double click</strong> on the file.</p>\n<h3 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h3>\n<p dir=\"auto\">Once you have the .AppImage file downloaded you must <a href=\"https://docs.appimage.org/user-guide/run-appimages.html\" rel=\"nofollow\">make the file executable</a>.</p>\n<p dir=\"auto\">Once executible you can run either <strong>double click</strong> the file or run via the cli:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"./file.AppImage\"><pre>./file.AppImage</pre></div>\n<h2 dir=\"auto\"><a id=\"user-content-documentation\" class=\"anchor\" aria-hidden=\"true\" href=\"#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Documentation</h2>\n<p dir=\"auto\">If you would like to install from source, run a full bitcoin node, connect to a custom lnd instance or get involved with development please refer to our documentation:</p>\n<ul dir=\"auto\">\n<li><a href=\"docs/ADVANCED.md\">Advanced usage</a></li>\n<li><a href=\"docs/CONFIG.md\">Configuration</a></li>\n<li><a href=\"docs/CONTRIBUTING.md\">Contributing</a></li>\n<li><a href=\"docs/DEBUGGING.md\">Debugging</a></li>\n<li><a href=\"docs/TROUBLESHOOTING.md\">Troubleshooting</a></li>\n<li><a href=\"docs/RELEASING.md\">Releasing</a></li>\n<li><a href=\"docs/SIGNATURES.md\">Signatures</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-get-help\" class=\"anchor\" aria-hidden=\"true\" href=\"#get-help\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Get Help</h2>\n<p dir=\"auto\">If you are having problems with Zap, please report the issue in <a href=\"https://github.com/LN-Zap/zap-desktop/issues\">GitHub</a> or on <a href=\"https://join.slack.com/t/zaphq/shared_invite/zt-roz0lalj-6fVdYQlLnpuM2c2QTvFgxA\" rel=\"nofollow\">slack</a> with screenshots and/or how to reproduce the bug/error.</p>\n<p dir=\"auto\">A good product not only has good software tests but also checks the quality of the UX/UI. Putting ourselves in the shoes of a user is a very important design principle of Zap.</p>\n<h2 dir=\"auto\"><a id=\"user-content-maintainers\" class=\"anchor\" aria-hidden=\"true\" href=\"#maintainers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Maintainers</h2>\n<ul dir=\"auto\">\n<li><a href=\"https://github.com/JimmyMow\">Jack Mallers (@JimmyMow)</a></li>\n<li><a href=\"https://github.com/mrfelton\">Tom Kirkpatrick (@mrfelton)</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"#contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contribute</h2>\n<p dir=\"auto\">Hey! Do you like Zap? Awesome! We could actually really use your help!</p>\n<p dir=\"auto\">Open source isn't just writing code. Zap could use your help with any of the following:</p>\n<ul dir=\"auto\">\n<li>Finding (and reporting!) bugs</li>\n<li>New feature suggestions</li>\n<li>Answering questions on issues</li>\n<li>Documentation improvements</li>\n<li>Reviewing pull requests</li>\n<li>Helping to manage issue priorities</li>\n<li>Fixing bugs/new features</li>\n</ul>\n<p dir=\"auto\">If any of that sounds cool to you, feel free to dive in! <a href=\"https://github.com/LN-Zap/zap-desktop/issues\">Open an issue</a> or submit a pull request.</p>\n<p dir=\"auto\">If you would like to help contribute to the project, please see the <a href=\"docs/CONTRIBUTING.md\">Contributing Guide</a></p>\n<p dir=\"auto\">This project exists thanks to all the people who contribute.</p>\n<p dir=\"auto\"><a href=\"https://github.com/mrfelton\"><img alt=\"mrfelton\" src=\"https://avatars0.githubusercontent.com/u/200251?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/JimmyMow\"><img alt=\"JimmyMow\" src=\"https://avatars2.githubusercontent.com/u/4040039?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/korhaliv\"><img alt=\"korhaliv\" src=\"https://avatars0.githubusercontent.com/u/14069193?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/Empact\"><img alt=\"Empact\" src=\"https://avatars2.githubusercontent.com/u/5470?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/bolatovumar\"><img alt=\"bolatovumar\" src=\"https://avatars1.githubusercontent.com/u/1934678?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jackmallers\"><img alt=\"jackmallers\" src=\"https://avatars3.githubusercontent.com/u/30220954?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/odb366\"><img alt=\"odb366\" src=\"https://avatars3.githubusercontent.com/u/14116101?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/zobroj\"><img alt=\"zobroj\" src=\"https://avatars2.githubusercontent.com/u/61939?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/joaodealmeida\"><img alt=\"joaodealmeida\" src=\"https://avatars3.githubusercontent.com/u/5623455?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/helgabutters\"><img alt=\"helgabutters\" src=\"https://avatars2.githubusercontent.com/u/8001978?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/pajasevi\"><img alt=\"pajasevi\" src=\"https://avatars3.githubusercontent.com/u/2407408?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/DataCourier\"><img alt=\"DataCourier\" src=\"https://avatars1.githubusercontent.com/u/35670446?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/thedon-chris\"><img alt=\"thedon-chris\" src=\"https://avatars2.githubusercontent.com/u/30728737?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jimpo\"><img alt=\"jimpo\" src=\"https://avatars3.githubusercontent.com/u/881253?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/dfattlar\"><img alt=\"dfattlar\" src=\"https://avatars3.githubusercontent.com/u/4843270?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/NahomAgidew\"><img alt=\"NahomAgidew\" src=\"https://avatars2.githubusercontent.com/u/11695305?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/asoltys\"><img alt=\"asoltys\" src=\"https://avatars0.githubusercontent.com/u/7641?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/leon-do\"><img alt=\"leon-do\" src=\"https://avatars3.githubusercontent.com/u/19412160?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/seanyesmunt\"><img alt=\"seanyesmunt\" src=\"https://avatars0.githubusercontent.com/u/16882830?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/tbloncar\"><img alt=\"tbloncar\" src=\"https://avatars1.githubusercontent.com/u/2092395?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/waseem999\"><img alt=\"waseem999\" src=\"https://avatars3.githubusercontent.com/u/17360809?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/apps/dependabot\"><img alt=\"dependabot[bot]\" src=\"https://avatars0.githubusercontent.com/in/29110?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jamaljsr\"><img alt=\"jamaljsr\" src=\"https://avatars2.githubusercontent.com/u/1356600?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jtarre\"><img alt=\"jtarre\" src=\"https://avatars1.githubusercontent.com/u/1143894?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/RandyMcMillan\"><img alt=\"RandyMcMillan\" src=\"https://avatars1.githubusercontent.com/u/152159?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/musdom\"><img alt=\"musdom\" src=\"https://avatars0.githubusercontent.com/u/9629456?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/alvistar\"><img alt=\"alvistar\" src=\"https://avatars1.githubusercontent.com/u/1459284?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/BrianSipple\"><img alt=\"BrianSipple\" src=\"https://avatars0.githubusercontent.com/u/5483853?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/karliatto\"><img alt=\"karliatto\" src=\"https://avatars0.githubusercontent.com/u/5362163?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/dimitris-t\"><img alt=\"dimitris-t\" src=\"https://avatars1.githubusercontent.com/u/8949706?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/kaloudis\"><img alt=\"kaloudis\" src=\"https://avatars2.githubusercontent.com/u/1878621?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/thinkjanis\"><img alt=\"thinkjanis\" src=\"https://avatars1.githubusercontent.com/u/31632325?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/jorian\"><img alt=\"jorian\" src=\"https://avatars0.githubusercontent.com/u/10341677?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/lukechilds\"><img alt=\"lukechilds\" src=\"https://avatars0.githubusercontent.com/u/2123375?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/wraithm\"><img alt=\"wraithm\" src=\"https://avatars3.githubusercontent.com/u/1512913?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/QcMrHyde\"><img alt=\"QcMrHyde\" src=\"https://avatars0.githubusercontent.com/u/6273472?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/CallMeSlinky\"><img alt=\"CallMeSlinky\" src=\"https://avatars1.githubusercontent.com/u/35815379?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/michaelWuensch\"><img alt=\"michaelWuensch\" src=\"https://avatars2.githubusercontent.com/u/15313630?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/foxikk\"><img alt=\"foxikk\" src=\"https://avatars0.githubusercontent.com/u/3337752?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/fresheneesz\"><img alt=\"fresheneesz\" src=\"https://avatars3.githubusercontent.com/u/149531?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/funyug\"><img alt=\"funyug\" src=\"https://avatars2.githubusercontent.com/u/8094201?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/losh11\"><img alt=\"losh11\" src=\"https://avatars3.githubusercontent.com/u/2608570?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/terencechow\"><img alt=\"terencechow\" src=\"https://avatars0.githubusercontent.com/u/1937276?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a><a href=\"https://github.com/gtonic\"><img alt=\"gtonic\" src=\"https://avatars3.githubusercontent.com/u/3163718?v=4&s=64\" width=\"64\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. See <a href=\"LICENSE\">LICENSE</a> for more information.</p>\n<p dir=\"auto\"><a href=\"LICENSE\">MIT</a> © Jack Mallers</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.762Z" }, "zefenify": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/Zefenify/Wolf-Cola/master/Wolf-Cola.png\"><img src=\"https://raw.githubusercontent.com/Zefenify/Wolf-Cola/master/Wolf-Cola.png\" alt=\"Wolf Cola\" title=\"Wolf Cola\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://raw.githubusercontent.com/Zefenify/Wolf-Cola/master/Wolf-Cola.png\"><img src=\"https://raw.githubusercontent.com/Zefenify/Wolf-Cola/master/Wolf-Cola.png\" alt=\"Wolf Cola\" title=\"Wolf Cola\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.857Z" }, "znote": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-what-is-znote\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alagrede/znote-app/blob/master/#what-is-znote\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What is Znote?</h2>\n<p dir=\"auto\"><strong>Znote</strong> is a Beautiful markdown editor inspired by Jupyter.</p>\n<p dir=\"auto\">Your best companion for <strong>prototyping</strong> and centralizing your <strong>scripts</strong>.</p>\n<p dir=\"auto\"><a href=\"https://znote.io\" rel=\"nofollow\">https://znote.io</a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/alagrede/znote-app/blob/master/screenshot-github1.png\"><img src=\"https://github.com/alagrede/znote-app/raw/master/screenshot-github1.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/alagrede/znote-app/blob/master/screenshot-github3.png\"><img src=\"https://github.com/alagrede/znote-app/raw/master/screenshot-github3.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alagrede/znote-app/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">App is available on Windows/Mac Store.</p>\n<p dir=\"auto\">You can also download Linux and alternative binaries from the <a href=\"https://github.com/alagrede/znote-app/releases\">Github releases</a> section.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contact\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alagrede/znote-app/blob/master/#contact\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contact</h2>\n<p dir=\"auto\">Email: lagrede.anthony[at]gmail.com</p>\n<p dir=\"auto\">This public website\nznote.io public website</p>\n<h2 dir=\"auto\"><a id=\"user-content-report-bugs\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alagrede/znote-app/blob/master/#report-bugs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Report bugs</h2>\n<p dir=\"auto\">Feel free to use the <a href=\"https://github.com/alagrede/znote-app/issues\">issues</a> section.</p>\n<h2 dir=\"auto\"><a id=\"user-content-credits\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/alagrede/znote-app/blob/master/#credits\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Credits</h2>\n<p dir=\"auto\">Build with <a href=\"https://github.com/alagrede/znote-app/blob/master/electronjs.org\">Electron</a> and <a href=\"https://fr.reactjs.org/\" rel=\"nofollow\">React</a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h2 dir=\"auto\"><a id=\"user-content-what-is-znote\" class=\"anchor\" aria-hidden=\"true\" href=\"#what-is-znote\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What is Znote?</h2>\n<p dir=\"auto\"><strong>Znote</strong> is a Beautiful markdown editor inspired by Jupyter.</p>\n<p dir=\"auto\">Your best companion for <strong>prototyping</strong> and centralizing your <strong>scripts</strong>.</p>\n<p dir=\"auto\"><a href=\"https://znote.io\" rel=\"nofollow\">https://znote.io</a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/alagrede/znote-app/blob/master/screenshot-github1.png\"><img src=\"https://github.com/alagrede/znote-app/raw/master/screenshot-github1.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/alagrede/znote-app/blob/master/screenshot-github3.png\"><img src=\"https://github.com/alagrede/znote-app/raw/master/screenshot-github3.png\" alt=\"Screenshot\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h2>\n<p dir=\"auto\">App is available on Windows/Mac Store.</p>\n<p dir=\"auto\">You can also download Linux and alternative binaries from the <a href=\"https://github.com/alagrede/znote-app/releases\">Github releases</a> section.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contact\" class=\"anchor\" aria-hidden=\"true\" href=\"#contact\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contact</h2>\n<p dir=\"auto\">Email: lagrede.anthony[at]gmail.com</p>\n<p dir=\"auto\">This public website\nznote.io public website</p>\n<h2 dir=\"auto\"><a id=\"user-content-report-bugs\" class=\"anchor\" aria-hidden=\"true\" href=\"#report-bugs\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Report bugs</h2>\n<p dir=\"auto\">Feel free to use the <a href=\"https://github.com/alagrede/znote-app/issues\">issues</a> section.</p>\n<h2 dir=\"auto\"><a id=\"user-content-credits\" class=\"anchor\" aria-hidden=\"true\" href=\"#credits\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Credits</h2>\n<p dir=\"auto\">Build with <a href=\"electronjs.org\">Electron</a> and <a href=\"https://fr.reactjs.org/\" rel=\"nofollow\">React</a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:15.969Z" }, "youtube-music-desktop-app": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a href=\"https://discord.gg/88P2n2a\" rel=\"nofollow\"><img alt=\"Discord\" src=\"https://camo.githubusercontent.com/9fae2b95ca3b801f0a992d60693cf3760298dd231a852c1812e6a3143358a445/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446973636f72642d4a4f494e2d475245454e2e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264\" data-canonical-src=\"https://img.shields.io/badge/Discord-JOIN-GREEN.svg?style=for-the-badge&logo=discord\" style=\"max-width: 100%;\"></a>\n<a href=\"https://gitmoji.carloscuesta.me\" rel=\"nofollow\"><img alt=\"Gitmoji\" src=\"https://camo.githubusercontent.com/a06ceb9a85805ec569166a5eb490c3f42c88ed17afa2325067b20a6a9a7f827c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769746d6f6a692d5354414e444152442d4646444436372e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646174613a696d6167652f7376672b786d6c3b6261736536342c50484e325a794268636d6c684c5768705a47526c626a306964484a315a5349675a47463059533177636d566d61586739496d5a68637949675a474630595331705932397550534a6e636d6c754c585276626d64315a533133615735724969426a6247467a637a306963335a6e4c576c7562476c755a5330745a6d45675a6d45745a334a70626931306232356e6457557464326c756179426d595331334c5445324969423462577875637a30696148523063446f764c336433647935334d793576636d63764d6a41774d43397a646d636949485a705a58644362336739496a41674d4341304f5459674e544579496a3438634746306143426d615778735053496a526b5a45524459334969426b50534a4e4d7a5130494445344e4745794e4341794e434177494445774d4341304f4341794e4341794e434177494445774d4330304f48704e4d6a5134494468684d6a5134494449304f434177494441774c546733494451344d474d744e6930784d6930354c5449324c546b744e4442324c545131597930794e5330784e7930304d79307a4f5330304f4330324e4330794c544579494445774c544979494449784c54453449444d77494445774944633149444531494445794d7941784e584d354d793031494445794d7930784e574d784d6930304944497a494459674d6a45674d5467744e4341794e5330794d7941304e7930304f4341324d3359304e6d4d77494445304c544d674d6a67744f5341304d4545794e4467674d6a5134494441674d4441794e4467674f4870744c545532494449794e5777744f533034597930784e5330784e4330304e7930784e4330324d534177624330784d43413459793034494463744d6a49674d4330794d4330784d5341304c54493149444d304c545179494459774c545179637a5532494445334944597749445179597a49674d5445744d5449674d5467744d6a41674d544636625445314d69417a4f5745324e4341324e434177494445784d4330784d6a67674e6a51674e6a51674d4341774d5441674d544934656d30744e5445674d54417a597930784e4330334c544d78494449744d7a51674d5464734c5449674f474d744d6941354c54453249446b744d5467674d4777744d533034597930304c5445314c5449784c5449304c544d314c544533624330784f534135646a597a597a41674d7a55674d6a67674e6a55674e6a4d674e6a55674d7a59674d4341324e5330794f5341324e5330324e4859744e6a52734c5445354c546c364969382b5043397a646d632b\" data-canonical-src=\"https://img.shields.io/badge/Gitmoji-STANDARD-FFDD67.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJncmluLXRvbmd1ZS13aW5rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtZ3Jpbi10b25ndWUtd2luayBmYS13LTE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTYgNTEyIj48cGF0aCBmaWxsPSIjRkZERDY3IiBkPSJNMzQ0IDE4NGEyNCAyNCAwIDEwMCA0OCAyNCAyNCAwIDEwMC00OHpNMjQ4IDhhMjQ4IDI0OCAwIDAwLTg3IDQ4MGMtNi0xMi05LTI2LTktNDB2LTQ1Yy0yNS0xNy00My0zOS00OC02NC0yLTEyIDEwLTIyIDIxLTE4IDMwIDEwIDc1IDE1IDEyMyAxNXM5My01IDEyMy0xNWMxMi00IDIzIDYgMjEgMTgtNCAyNS0yMyA0Ny00OCA2M3Y0NmMwIDE0LTMgMjgtOSA0MEEyNDggMjQ4IDAgMDAyNDggOHptLTU2IDIyNWwtOS04Yy0xNS0xNC00Ny0xNC02MSAwbC0xMCA4Yy04IDctMjIgMC0yMC0xMSA0LTI1IDM0LTQyIDYwLTQyczU2IDE3IDYwIDQyYzIgMTEtMTIgMTgtMjAgMTF6bTE1MiAzOWE2NCA2NCAwIDExMC0xMjggNjQgNjQgMCAwMTAgMTI4em0tNTEgMTAzYy0xNC03LTMxIDItMzQgMTdsLTIgOGMtMiA5LTE2IDktMTggMGwtMS04Yy00LTE1LTIxLTI0LTM1LTE3bC0xOSA5djYzYzAgMzUgMjggNjUgNjMgNjUgMzYgMCA2NS0yOSA2NS02NHYtNjRsLTE5LTl6Ii8+PC9zdmc+\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/c871307bda00a7dc8c256e42c0b0b215f14d2bd7db204f0193317e1b6293f57a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f79746d6465736b746f702f79746d6465736b746f702e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d6c6962726172797468696e67\" alt=\"GitHub license\" data-canonical-src=\"https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything\" style=\"max-width: 100%;\"></a>\n<a href=\"https://GitHub.com/ytmdesktop/ytmdesktop/releases/\"><img src=\"https://camo.githubusercontent.com/b8888fe8cb7fce00b7772e0058373b88cae4c0cf0095319dce1b1d183315e49b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f79746d6465736b746f702f79746d6465736b746f702e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d666c61747472\" alt=\"GitHub release\" data-canonical-src=\"https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ytmdesktop/ytmdesktop/releases/\"><img src=\"https://camo.githubusercontent.com/1d2b8dfee6fcaf3d665f2374d2a07192d0e52c01ec66bd3411047249a43ee1bc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f79746d6465736b746f702f79746d6465736b746f702f746f74616c2e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646174613a696d6167652f7376672b786d6c3b6261736536342c50484e325a794268636d6c684c5768705a47526c626a306964484a315a5349675a47463059533177636d566d61586739496d5a68637949675a474630595331705932397550534a6a624739315a43316b62336475624739685a4331686248516949474e7359584e7a50534a7a646d6374615735736157356c4c53316d5953426d5953316a624739315a43316b62336475624739685a433168624851675a6d4574647930794d43496765473173626e4d39496d6830644841364c79393364336375647a4d7562334a6e4c7a49774d44417663335a6e4969423261575633516d393450534977494441674e6a5177494455784d69492b50484268644767675a6d6c736244306949305a47526949675a4430695454557a4f4341794d6a646a4e4330784d5341324c54497a494459744d7a56684f5459674f5459674d4341774d4330784e446b744f4441674d545977494445324d434177494441774c5449354f5341344f4341784e4451674d545130494441674d4441304f4341794f44426f4d7a5934595445794f4341784d6a67674d4341774d4449324c5449314d3370744c54457a4d7941344f4577794f546b674e44497859793032494459744d5459674e6930794d694177544445334d53417a4d54566a4c5445774c5445774c544d744d6a63674d5449744d6a646f4e6a56574d546332597a41744f5341334c544532494445324c54453261445134597a6b674d4341784e6941334944453249444532646a45784d6d67324e574d784e5341774944497949444533494445794944493365694976506a777663335a6e50673d3d\" alt=\"Github all releases\" data-canonical-src=\"https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg==\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-youtube-music-desktop-app\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#youtube-music-desktop-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>YouTube Music Desktop App</h1>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2215a17b75ac5e509b118878e419f9ad142d638a4ec713aa2b91e4d3843ffa9f/68747470733a2f2f79746d6465736b746f702e6170702f696d672f70726f647563742f6d61696e5f352e706e67\"><img alt=\"window\" src=\"https://camo.githubusercontent.com/2215a17b75ac5e509b118878e419f9ad142d638a4ec713aa2b91e4d3843ffa9f/68747470733a2f2f79746d6465736b746f702e6170702f696d672f70726f647563742f6d61696e5f352e706e67\" data-canonical-src=\"https://ytmdesktop.app/img/product/main_5.png\" style=\"max-width: 100%;\"></a></p>\n \n<h1 dir=\"auto\"><a id=\"user-content-available-for\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#available-for\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Available for</h1>\n<p dir=\"auto\"><a href=\"https://repology.org/project/ytmdesktop/versions\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/96264c283e270ea77408fc3edde3606e7292c76377d25452c27014e1937533c0/68747470733a2f2f7265706f6c6f67792e6f72672f62616467652f766572746963616c2d616c6c7265706f732f79746d6465736b746f702e737667\" alt=\"Packaging status\" align=\"right\" data-canonical-src=\"https://repology.org/badge/vertical-allrepos/ytmdesktop.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h2>\n<ul dir=\"auto\">\n<li>Winget: <code>winget install \"YouTube Music Desktop App\"</code> or <code>winget install Ytmdesktop.Ytmdesktop</code></li>\n<li>Chocolatey: <code>choco install ytmdesktop</code></li>\n<li>Binaries: <a href=\"https://github.com/ytmdesktop/ytmdesktop/releases\">https://github.com/ytmdesktop/ytmdesktop/releases</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h2>\n<ul dir=\"auto\">\n<li>Arch Linux (AUR): <a href=\"https://aur.archlinux.org/packages/ytmdesktop-git\" rel=\"nofollow\">https://aur.archlinux.org/packages/ytmdesktop-git</a></li>\n<li>Snap: <a href=\"https://snapcraft.io/youtube-music-desktop-app\" rel=\"nofollow\">https://snapcraft.io/youtube-music-desktop-app</a></li>\n<li>Binaries: <a href=\"https://github.com/ytmdesktop/ytmdesktop/releases\">https://github.com/ytmdesktop/ytmdesktop/releases</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-mac\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#mac\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Mac</h2>\n<ul dir=\"auto\">\n<li>Brew: <code>brew install --cask ytmdesktop-youtube-music</code></li>\n<li>Binaries: <a href=\"https://github.com/ytmdesktop/ytmdesktop/releases\">https://github.com/ytmdesktop/ytmdesktop/releases</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-to-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#to-contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To Contribute</h1>\n<p dir=\"auto\">To clone and run this repository you'll need <a href=\"https://git-scm.com\" rel=\"nofollow\">Git</a> and <a href=\"https://nodejs.org/en/download/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"http://npmjs.com\" rel=\"nofollow\">npm</a>) installed on your computer. From your command line:</p>\n<p dir=\"auto\">If you are running Windows, you will need <a href=\"https://visualstudio.microsoft.com/vs/older-downloads/\" rel=\"nofollow\">Visual Studio 2015 (Community)</a> installed for the NodeRT to be compiled successfully. The provided link requires you to create an Account (This is Microsoft official website) to be able to download the older version of Visual Studio which is really annoying.</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone this repository\ngit clone https://github.com/ytmdesktop/ytmdesktop\n# Go into the repository\ncd ytmdesktop\n# Install dependencies\nnpm install\n# Run the app\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone this repository</span>\ngit clone https://github.com/ytmdesktop/ytmdesktop\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> ytmdesktop\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the app</span>\nnpm start</pre></div>\n<p dir=\"auto\">Note: If you're using Linux Bash for Windows, <a href=\"https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/\" rel=\"nofollow\">see this guide</a> or use <code>node</code> from the command prompt.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/adlerluiz/ytmdesktop/blob/master/#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h2>\n<p dir=\"auto\"><a href=\"https://github.com/adlerluiz\"><img alt=\"adlerluiz\" src=\"https://github.com/adlerluiz.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/mingjun97\"><img alt=\"mingjun97\" src=\"https://github.com/mingjun97.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/kyjus25\"><img alt=\"kyjus25\" src=\"https://github.com/kyjus25.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/tbvjaos510\"><img alt=\"tbvjaos510\" src=\"https://github.com/tbvjaos510.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/rickinbsb\"><img alt=\"rickinbsb\" src=\"https://github.com/rickinbsb.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/KimVuu\"><img alt=\"KimVuu\" src=\"https://github.com/KimVuu.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/Venipa\"><img alt=\"Venipa\" src=\"https://github.com/Venipa.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/pinkiesky\"><img alt=\"pinkiesky\" src=\"https://github.com/pinkiesky.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/austonpramodh\"><img alt=\"austonpramodh\" src=\"https://github.com/austonpramodh.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/benjaminaudet\"><img alt=\"benjaminaudet\" src=\"https://github.com/benjaminaudet.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/garfunkel\"><img alt=\"garfunkel\" src=\"https://github.com/garfunkel.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ZeusAFK\"><img alt=\"ZeusAFK\" src=\"https://github.com/ZeusAFK.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/SN9NV\"><img alt=\"SN9NV\" src=\"https://github.com/SN9NV.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/AdityaTD\"><img alt=\"AdityaTD\" src=\"https://github.com/AdityaTD.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/vbackeberg\"><img alt=\"vbackeberg\" src=\"https://github.com/vbackeberg.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/vistaus\"><img alt=\"Vistaus\" src=\"https://github.com/Vistaus.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ddarkr\"><img alt=\"ddarkr\" src=\"https://github.com/ddarkr.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a href=\"https://discord.gg/88P2n2a\" rel=\"nofollow\"><img alt=\"Discord\" src=\"https://camo.githubusercontent.com/9fae2b95ca3b801f0a992d60693cf3760298dd231a852c1812e6a3143358a445/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446973636f72642d4a4f494e2d475245454e2e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264\" data-canonical-src=\"https://img.shields.io/badge/Discord-JOIN-GREEN.svg?style=for-the-badge&logo=discord\" style=\"max-width: 100%;\"></a>\n<a href=\"https://gitmoji.carloscuesta.me\" rel=\"nofollow\"><img alt=\"Gitmoji\" src=\"https://camo.githubusercontent.com/a06ceb9a85805ec569166a5eb490c3f42c88ed17afa2325067b20a6a9a7f827c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769746d6f6a692d5354414e444152442d4646444436372e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646174613a696d6167652f7376672b786d6c3b6261736536342c50484e325a794268636d6c684c5768705a47526c626a306964484a315a5349675a47463059533177636d566d61586739496d5a68637949675a474630595331705932397550534a6e636d6c754c585276626d64315a533133615735724969426a6247467a637a306963335a6e4c576c7562476c755a5330745a6d45675a6d45745a334a70626931306232356e6457557464326c756179426d595331334c5445324969423462577875637a30696148523063446f764c336433647935334d793576636d63764d6a41774d43397a646d636949485a705a58644362336739496a41674d4341304f5459674e544579496a3438634746306143426d615778735053496a526b5a45524459334969426b50534a4e4d7a5130494445344e4745794e4341794e434177494445774d4341304f4341794e4341794e434177494445774d4330304f48704e4d6a5134494468684d6a5134494449304f434177494441774c546733494451344d474d744e6930784d6930354c5449324c546b744e4442324c545131597930794e5330784e7930304d79307a4f5330304f4330324e4330794c544579494445774c544979494449784c54453449444d77494445774944633149444531494445794d7941784e584d354d793031494445794d7930784e574d784d6930304944497a494459674d6a45674d5467744e4341794e5330794d7941304e7930304f4341324d3359304e6d4d77494445304c544d674d6a67744f5341304d4545794e4467674d6a5134494441674d4441794e4467674f4870744c545532494449794e5777744f533034597930784e5330784e4330304e7930784e4330324d534177624330784d43413459793034494463744d6a49674d4330794d4330784d5341304c54493149444d304c545179494459774c545179637a5532494445334944597749445179597a49674d5445744d5449674d5467744d6a41674d544636625445314d69417a4f5745324e4341324e434177494445784d4330784d6a67674e6a51674e6a51674d4341774d5441674d544934656d30744e5445674d54417a597930784e4330334c544d78494449744d7a51674d5464734c5449674f474d744d6941354c54453249446b744d5467674d4777744d533034597930304c5445314c5449784c5449304c544d314c544533624330784f534135646a597a597a41674d7a55674d6a67674e6a55674e6a4d674e6a55674d7a59674d4341324e5330794f5341324e5330324e4859744e6a52734c5445354c546c364969382b5043397a646d632b\" data-canonical-src=\"https://img.shields.io/badge/Gitmoji-STANDARD-FFDD67.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJncmluLXRvbmd1ZS13aW5rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtZ3Jpbi10b25ndWUtd2luayBmYS13LTE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTYgNTEyIj48cGF0aCBmaWxsPSIjRkZERDY3IiBkPSJNMzQ0IDE4NGEyNCAyNCAwIDEwMCA0OCAyNCAyNCAwIDEwMC00OHpNMjQ4IDhhMjQ4IDI0OCAwIDAwLTg3IDQ4MGMtNi0xMi05LTI2LTktNDB2LTQ1Yy0yNS0xNy00My0zOS00OC02NC0yLTEyIDEwLTIyIDIxLTE4IDMwIDEwIDc1IDE1IDEyMyAxNXM5My01IDEyMy0xNWMxMi00IDIzIDYgMjEgMTgtNCAyNS0yMyA0Ny00OCA2M3Y0NmMwIDE0LTMgMjgtOSA0MEEyNDggMjQ4IDAgMDAyNDggOHptLTU2IDIyNWwtOS04Yy0xNS0xNC00Ny0xNC02MSAwbC0xMCA4Yy04IDctMjIgMC0yMC0xMSA0LTI1IDM0LTQyIDYwLTQyczU2IDE3IDYwIDQyYzIgMTEtMTIgMTgtMjAgMTF6bTE1MiAzOWE2NCA2NCAwIDExMC0xMjggNjQgNjQgMCAwMTAgMTI4em0tNTEgMTAzYy0xNC03LTMxIDItMzQgMTdsLTIgOGMtMiA5LTE2IDktMTggMGwtMS04Yy00LTE1LTIxLTI0LTM1LTE3bC0xOSA5djYzYzAgMzUgMjggNjUgNjMgNjUgMzYgMCA2NS0yOSA2NS02NHYtNjRsLTE5LTl6Ii8+PC9zdmc+\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE\"><img src=\"https://camo.githubusercontent.com/c871307bda00a7dc8c256e42c0b0b215f14d2bd7db204f0193317e1b6293f57a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f79746d6465736b746f702f79746d6465736b746f702e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d6c6962726172797468696e67\" alt=\"GitHub license\" data-canonical-src=\"https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything\" style=\"max-width: 100%;\"></a>\n<a href=\"https://GitHub.com/ytmdesktop/ytmdesktop/releases/\"><img src=\"https://camo.githubusercontent.com/b8888fe8cb7fce00b7772e0058373b88cae4c0cf0095319dce1b1d183315e49b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f79746d6465736b746f702f79746d6465736b746f702e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d666c61747472\" alt=\"GitHub release\" data-canonical-src=\"https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ytmdesktop/ytmdesktop/releases/\"><img src=\"https://camo.githubusercontent.com/1d2b8dfee6fcaf3d665f2374d2a07192d0e52c01ec66bd3411047249a43ee1bc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f79746d6465736b746f702f79746d6465736b746f702f746f74616c2e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646174613a696d6167652f7376672b786d6c3b6261736536342c50484e325a794268636d6c684c5768705a47526c626a306964484a315a5349675a47463059533177636d566d61586739496d5a68637949675a474630595331705932397550534a6a624739315a43316b62336475624739685a4331686248516949474e7359584e7a50534a7a646d6374615735736157356c4c53316d5953426d5953316a624739315a43316b62336475624739685a433168624851675a6d4574647930794d43496765473173626e4d39496d6830644841364c79393364336375647a4d7562334a6e4c7a49774d44417663335a6e4969423261575633516d393450534977494441674e6a5177494455784d69492b50484268644767675a6d6c736244306949305a47526949675a4430695454557a4f4341794d6a646a4e4330784d5341324c54497a494459744d7a56684f5459674f5459674d4341774d4330784e446b744f4441674d545977494445324d434177494441774c5449354f5341344f4341784e4451674d545130494441674d4441304f4341794f44426f4d7a5934595445794f4341784d6a67674d4341774d4449324c5449314d3370744c54457a4d7941344f4577794f546b674e44497859793032494459744d5459674e6930794d694177544445334d53417a4d54566a4c5445774c5445774c544d744d6a63674d5449744d6a646f4e6a56574d546332597a41744f5341334c544532494445324c54453261445134597a6b674d4341784e6941334944453249444532646a45784d6d67324e574d784e5341774944497949444533494445794944493365694976506a777663335a6e50673d3d\" alt=\"Github all releases\" data-canonical-src=\"https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg==\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-youtube-music-desktop-app\" class=\"anchor\" aria-hidden=\"true\" href=\"#youtube-music-desktop-app\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>YouTube Music Desktop App</h1>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/2215a17b75ac5e509b118878e419f9ad142d638a4ec713aa2b91e4d3843ffa9f/68747470733a2f2f79746d6465736b746f702e6170702f696d672f70726f647563742f6d61696e5f352e706e67\"><img alt=\"window\" src=\"https://camo.githubusercontent.com/2215a17b75ac5e509b118878e419f9ad142d638a4ec713aa2b91e4d3843ffa9f/68747470733a2f2f79746d6465736b746f702e6170702f696d672f70726f647563742f6d61696e5f352e706e67\" data-canonical-src=\"https://ytmdesktop.app/img/product/main_5.png\" style=\"max-width: 100%;\"></a></p>\n \n<h1 dir=\"auto\"><a id=\"user-content-available-for\" class=\"anchor\" aria-hidden=\"true\" href=\"#available-for\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Available for</h1>\n<p dir=\"auto\"><a href=\"https://repology.org/project/ytmdesktop/versions\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/96264c283e270ea77408fc3edde3606e7292c76377d25452c27014e1937533c0/68747470733a2f2f7265706f6c6f67792e6f72672f62616467652f766572746963616c2d616c6c7265706f732f79746d6465736b746f702e737667\" alt=\"Packaging status\" align=\"right\" data-canonical-src=\"https://repology.org/badge/vertical-allrepos/ytmdesktop.svg\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-windows\" class=\"anchor\" aria-hidden=\"true\" href=\"#windows\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Windows</h2>\n<ul dir=\"auto\">\n<li>Winget: <code>winget install \"YouTube Music Desktop App\"</code> or <code>winget install Ytmdesktop.Ytmdesktop</code></li>\n<li>Chocolatey: <code>choco install ytmdesktop</code></li>\n<li>Binaries: <a href=\"https://github.com/ytmdesktop/ytmdesktop/releases\">https://github.com/ytmdesktop/ytmdesktop/releases</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-linux\" class=\"anchor\" aria-hidden=\"true\" href=\"#linux\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Linux</h2>\n<ul dir=\"auto\">\n<li>Arch Linux (AUR): <a href=\"https://aur.archlinux.org/packages/ytmdesktop-git\" rel=\"nofollow\">https://aur.archlinux.org/packages/ytmdesktop-git</a></li>\n<li>Snap: <a href=\"https://snapcraft.io/youtube-music-desktop-app\" rel=\"nofollow\">https://snapcraft.io/youtube-music-desktop-app</a></li>\n<li>Binaries: <a href=\"https://github.com/ytmdesktop/ytmdesktop/releases\">https://github.com/ytmdesktop/ytmdesktop/releases</a></li>\n</ul>\n<h2 dir=\"auto\"><a id=\"user-content-mac\" class=\"anchor\" aria-hidden=\"true\" href=\"#mac\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Mac</h2>\n<ul dir=\"auto\">\n<li>Brew: <code>brew install --cask ytmdesktop-youtube-music</code></li>\n<li>Binaries: <a href=\"https://github.com/ytmdesktop/ytmdesktop/releases\">https://github.com/ytmdesktop/ytmdesktop/releases</a></li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-to-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"#to-contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>To Contribute</h1>\n<p dir=\"auto\">To clone and run this repository you'll need <a href=\"https://git-scm.com\" rel=\"nofollow\">Git</a> and <a href=\"https://nodejs.org/en/download/\" rel=\"nofollow\">Node.js</a> (which comes with <a href=\"http://npmjs.com\" rel=\"nofollow\">npm</a>) installed on your computer. From your command line:</p>\n<p dir=\"auto\">If you are running Windows, you will need <a href=\"https://visualstudio.microsoft.com/vs/older-downloads/\" rel=\"nofollow\">Visual Studio 2015 (Community)</a> installed for the NodeRT to be compiled successfully. The provided link requires you to create an Account (This is Microsoft official website) to be able to download the older version of Visual Studio which is really annoying.</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# Clone this repository\ngit clone https://github.com/ytmdesktop/ytmdesktop\n# Go into the repository\ncd ytmdesktop\n# Install dependencies\nnpm install\n# Run the app\nnpm start\"><pre><span class=\"pl-c\"><span class=\"pl-c\">#</span> Clone this repository</span>\ngit clone https://github.com/ytmdesktop/ytmdesktop\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Go into the repository</span>\n<span class=\"pl-c1\">cd</span> ytmdesktop\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Install dependencies</span>\nnpm install\n<span class=\"pl-c\"><span class=\"pl-c\">#</span> Run the app</span>\nnpm start</pre></div>\n<p dir=\"auto\">Note: If you're using Linux Bash for Windows, <a href=\"https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/\" rel=\"nofollow\">see this guide</a> or use <code>node</code> from the command prompt.</p>\n<h2 dir=\"auto\"><a id=\"user-content-contributors\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributors\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributors</h2>\n<p dir=\"auto\"><a href=\"https://github.com/adlerluiz\"><img alt=\"adlerluiz\" src=\"https://github.com/adlerluiz.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/mingjun97\"><img alt=\"mingjun97\" src=\"https://github.com/mingjun97.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/kyjus25\"><img alt=\"kyjus25\" src=\"https://github.com/kyjus25.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/tbvjaos510\"><img alt=\"tbvjaos510\" src=\"https://github.com/tbvjaos510.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/rickinbsb\"><img alt=\"rickinbsb\" src=\"https://github.com/rickinbsb.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/KimVuu\"><img alt=\"KimVuu\" src=\"https://github.com/KimVuu.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/Venipa\"><img alt=\"Venipa\" src=\"https://github.com/Venipa.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/pinkiesky\"><img alt=\"pinkiesky\" src=\"https://github.com/pinkiesky.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/austonpramodh\"><img alt=\"austonpramodh\" src=\"https://github.com/austonpramodh.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/benjaminaudet\"><img alt=\"benjaminaudet\" src=\"https://github.com/benjaminaudet.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/garfunkel\"><img alt=\"garfunkel\" src=\"https://github.com/garfunkel.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ZeusAFK\"><img alt=\"ZeusAFK\" src=\"https://github.com/ZeusAFK.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/SN9NV\"><img alt=\"SN9NV\" src=\"https://github.com/SN9NV.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/AdityaTD\"><img alt=\"AdityaTD\" src=\"https://github.com/AdityaTD.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/vbackeberg\"><img alt=\"vbackeberg\" src=\"https://github.com/vbackeberg.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/vistaus\"><img alt=\"Vistaus\" src=\"https://github.com/Vistaus.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/ddarkr\"><img alt=\"ddarkr\" src=\"https://github.com/ddarkr.png?size=120\" width=\"120px\" style=\"max-width: 100%;\"></a></p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:16.025Z" }, "zonote": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n Cross-platform desktop note-taking app\n <br>\n Sticky notes + Markdown + Tabs\n <br>\n All in one .txt file\n <br>\n <br>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/zonetti/zonote/raw/master/preview.gif\"><img src=\"https://github.com/zonetti/zonote/raw/master/preview.gif\" width=\"95%\" style=\"max-width: 100%;\"></a>\n</p>\n<h3 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zonetti/zonote/blob/master/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h3>\n<p dir=\"auto\">You can find the latest version to download on the <a href=\"https://github.com/zonetti/zonote/releases/latest\">release page</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zonetti/zonote/blob/master/#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone git@github.com:zonetti/zonote.git\ncd zonote\nnpm install && npm start\"><pre class=\"notranslate\"><code class=\"notranslate\">git clone git@github.com:zonetti/zonote.git\ncd zonote\nnpm install && npm start\n</code></pre></div>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p align=\"center\" dir=\"auto\">\n Cross-platform desktop note-taking app\n <br>\n Sticky notes + Markdown + Tabs\n <br>\n All in one .txt file\n <br>\n <br>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/zonetti/zonote/raw/master/preview.gif\"><img src=\"https://github.com/zonetti/zonote/raw/master/preview.gif\" width=\"95%\" style=\"max-width: 100%;\"></a>\n</p>\n<h3 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h3>\n<p dir=\"auto\">You can find the latest version to download on the <a href=\"https://github.com/zonetti/zonote/releases/latest\">release page</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-development\" class=\"anchor\" aria-hidden=\"true\" href=\"#development\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development</h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"git clone git@github.com:zonetti/zonote.git\ncd zonote\nnpm install && npm start\"><pre class=\"notranslate\"><code class=\"notranslate\">git clone git@github.com:zonetti/zonote.git\ncd zonote\nnpm install && npm start\n</code></pre></div>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:16.030Z" }, "zettlr": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content-------------zettlr-ˈsetlər\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#------------zettlr-ˈsetlər\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a href=\"https://github.com/Zettlr/Zettlr\">\n <img src=\"https://raw.githubusercontent.com/Zettlr/Zettlr/master/resources/icons/png/256x256.png\" alt=\"Zettlr\" style=\"max-width: 100%;\">\n </a>\n <br>\n Zettlr [<em>ˈset·lər</em>]\n</h1>\n<p align=\"center\" dir=\"auto\"><strong>A Markdown Editor for the 21<sup>st</sup> century</strong>.</p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://doi.org/10.5281/zenodo.2580173\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/20964c934d792bc92a63687b0b4af1d9c2d7ae7f0ea40e13ab8f2709467267c3/68747470733a2f2f7a656e6f646f2e6f72672f62616467652f444f492f31302e353238312f7a656e6f646f2e323538303137332e737667\" alt=\"DOI\" data-canonical-src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.2580173.svg\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://www.gnu.org/licenses/gpl-3.0\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/400c4e52df43f6a0ab8a89b74b1a78d1a64da56a7848b9110c9d2991bb7c3105/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c76332d626c75652e737667\" alt=\"License: GNU GPL v3\" data-canonical-src=\"https://img.shields.io/badge/License-GPLv3-blue.svg\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://www.zettlr.com/download\" rel=\"nofollow\">\n <img alt=\"GitHub tag (latest by date)\" src=\"https://camo.githubusercontent.com/bd739413e9bda8723541ca4b5ff4fbe805ddce2aac3c405742da1bb3a7d38514/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7461672d646174652f5a6574746c722f5a6574746c722e7376673f6c6162656c3d6c6174657374\" data-canonical-src=\"https://img.shields.io/github/tag-date/Zettlr/Zettlr.svg?label=latest\" style=\"max-width: 100%;\">\n </a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/50a4960094ae24a45df9957f40435787ac776a5daaf4904e87245abda01efb2f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5a6574746c722f5a6574746c722f746f74616c2e737667\"><img alt=\"GitHub All Releases\" src=\"https://camo.githubusercontent.com/50a4960094ae24a45df9957f40435787ac776a5daaf4904e87245abda01efb2f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5a6574746c722f5a6574746c722f746f74616c2e737667\" data-canonical-src=\"https://img.shields.io/github/downloads/Zettlr/Zettlr/total.svg\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Zettlr/Zettlr/workflows/Test/badge.svg?branch=master\"><img alt=\"Test\" src=\"https://github.com/Zettlr/Zettlr/workflows/Test/badge.svg?branch=master\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Zettlr/Zettlr/workflows/Build/badge.svg\"><img alt=\"Build\" src=\"https://github.com/Zettlr/Zettlr/workflows/Build/badge.svg\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://www.zettlr.com/\" rel=\"nofollow\">Homepage</a> |\n <a href=\"https://www.zettlr.com/download\" rel=\"nofollow\">Download</a> |\n <a href=\"https://docs.zettlr.com/\" rel=\"nofollow\">Documentation</a> |\n <a href=\"https://discord.gg/PcfS3DM9Xj\" rel=\"nofollow\">Discord</a> |\n <a href=\"https://github.com/zettlr/zettlr/blob/develop/#contributing\">Contributing</a> |\n <a href=\"https://www.patreon.com/zettlr\" rel=\"nofollow\">Support Us</a>\n</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/zettlr/zettlr/blob/develop//resources/screenshots/zettlr_view.png\"><img src=\"https://raw.githubusercontent.com/zettlr/zettlr/develop//resources/screenshots/zettlr_view.png\" alt=\"screenshot\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<p dir=\"auto\">With Zettlr, writing professional texts is easy and motivating: Whether you are a college student, a researcher, a journalist, or an author — Zettlr has the right tools for you. <a href=\"https://www.youtube.com/watch?v=BJ27r6YGpAs\" rel=\"nofollow\">Watch the video</a> or continue reading to see what they are!</p>\n<p dir=\"auto\"><a href=\"https://zettlr.com/\" rel=\"nofollow\">Visit our Website</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Available in over a dozen languages</li>\n<li>Tight and ever-growing <strong>integration with your favourite reference manager</strong> (such as Zotero or JabRef)</li>\n<li><strong>Cite with Zettlr</strong> using <code>citeproc</code> and your existing literature database</li>\n<li>Five <strong>themes and dark mode support</strong></li>\n<li>File-agnostic writing: Enjoy <strong>full control over your own files</strong></li>\n<li>Keep all your notes and texts <strong>in one place</strong> — searchable and accessible</li>\n<li><strong>Code highlighting</strong> for many languages</li>\n<li>Simple and beautiful <strong>exports</strong> with <a href=\"https://pandoc.org/\" rel=\"nofollow\">Pandoc</a>, <a href=\"https://www.latex-project.org/\" rel=\"nofollow\">LaTeX</a>, and <a href=\"http://textbundle.org/\" rel=\"nofollow\">Textbundle</a></li>\n<li>Support for state of the art knowledge management techniques (<strong>Zettelkasten</strong>)</li>\n<li>A revolutionary <strong>search algorithm</strong> with integrated heatmap</li>\n</ul>\n<p dir=\"auto\">… and the best is: <strong>Zettlr is <a href=\"https://en.wikipedia.org/wiki/Free_and_open-source_software\" rel=\"nofollow\">Open Source (FOSS)</a>!</strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<p dir=\"auto\">To install Zettlr, just <a href=\"https://www.zettlr.com/download/\" rel=\"nofollow\">download the latest release</a> for your operating system! Currently supported are macOS, Windows, and most Linux distributions (via Debian- and Fedora-packages as well as AppImages).</p>\n<p dir=\"auto\">All other <a href=\"https://www.electronjs.org/docs/tutorial/support#supported-platforms\" rel=\"nofollow\">platforms that Electron supports</a> are supported as well, but you will need to build the app yourself for this to work.</p>\n<p dir=\"auto\"><strong>Please also consider <a href=\"https://www.patreon.com/zettlr\" rel=\"nofollow\">becoming a patron</a> or making a <a href=\"https://paypal.me/hendrikerz\" rel=\"nofollow\">one-time donation</a>!</strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">After you have installed Zettlr, <a href=\"https://docs.zettlr.com/\" rel=\"nofollow\">head over to our documentation</a> to get to know Zettlr. Refer to the <a href=\"https://docs.zettlr.com/en/5-minutes/\" rel=\"nofollow\">Quick Start Guide</a>, if you prefer to use software heads-on.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/zettlr/zettlr/blob/develop//resources/screenshots/zettlr_view_dark.png\"><img src=\"https://raw.githubusercontent.com/zettlr/zettlr/develop//resources/screenshots/zettlr_view_dark.png\" alt=\"The central window of Zettlr using the Night Theme\" style=\"max-width: 100%;\" crossorigin=\"\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Zettlr is an <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>-based app, so to start developing, you'll need to have:</p>\n<ol dir=\"auto\">\n<li>A <a href=\"https://nodejs.org/\" rel=\"nofollow\">NodeJS</a>-stack installed on your computer. Make sure it's at least Node 14 (<code>lts/fermium</code>). To test what version you have, run <code>node -v</code>.</li>\n<li><a href=\"https://yarnpkg.com/en/\" rel=\"nofollow\">Yarn</a> installed. Yarn is the required package manager for the project, as we do not commit <code>package-lock.json</code>-files and many commands require yarn. You can install this globally using <code>npm install -g yarn</code> or Homebrew, if you are on macOS.</li>\n</ol>\n<p dir=\"auto\">Then, simply clone the repository and install the dependencies on your local computer:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/Zettlr/Zettlr.git\n$ cd Zettlr\n$ yarn install --frozen-lockfile\"><pre>$ git clone https://github.com/Zettlr/Zettlr.git\n$ <span class=\"pl-c1\">cd</span> Zettlr\n$ yarn install --frozen-lockfile</pre></div>\n<p dir=\"auto\">The <code>--frozen-lockfile</code> flag ensures that yarn will stick to the versions as listed in the <code>yarn.lock</code> and not attempt to update them.</p>\n<p dir=\"auto\">During development, hot module reloading is active so that you can edit the renderer's code easily and hit <code>F5</code> after the changes have been compiled by <code>electron-forge</code>. You can keep the developer tools open to see when HMR has finished loading your changes.</p>\n<h3 dir=\"auto\"><a id=\"user-content-what-should-i-know-to-contribute-code\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#what-should-i-know-to-contribute-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What Should I Know To Contribute Code?</h3>\n<p dir=\"auto\">In order to provide code, you should have basic familiarity with the following topics and/or manuals (ordered by importance descending):</p>\n<ul dir=\"auto\">\n<li><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript\" rel=\"nofollow\">JavaScript</a> (especially asynchronous code) and <a href=\"https://www.typescriptlang.org/docs/\" rel=\"nofollow\">TypeScript</a></li>\n<li><a href=\"https://nodejs.org/api/\" rel=\"nofollow\">Node.js</a></li>\n<li><a href=\"https://www.electronjs.org/docs\" rel=\"nofollow\">Electron</a></li>\n<li><a href=\"https://vuejs.org/v2/guide/\" rel=\"nofollow\">Vue.js</a> (2.x) and <a href=\"https://vuex.vuejs.org/\" rel=\"nofollow\">Vuex</a></li>\n<li><a href=\"https://codemirror.net/doc/manual.html\" rel=\"nofollow\">CodeMirror</a> (5.x)</li>\n<li><a href=\"https://eslint.org/\" rel=\"nofollow\">ESLint</a></li>\n<li><a href=\"https://lesscss.org/#\" rel=\"nofollow\">LESS</a></li>\n<li><a href=\"https://webpack.js.org/concepts/\" rel=\"nofollow\">Webpack 5.x</a></li>\n<li><a href=\"https://www.electronforge.io/\" rel=\"nofollow\">Electron forge</a></li>\n<li><a href=\"https://www.electron.build/\" rel=\"nofollow\">Electron builder</a></li>\n</ul>\n<blockquote>\n<p dir=\"auto\">Note: See the \"Directory Structure\" section below to get an idea of how Zettlr specifically works.</p>\n</blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-development-commands\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#development-commands\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development Commands</h3>\n<p dir=\"auto\">This section lists all available commands that you can use during application development. These are defined within the <code>package.json</code> and can be run from the command line by prefixing them with <code>yarn</code>. Run them from within the base directory of the repository.</p>\n<h4 dir=\"auto\"><a id=\"user-content-start\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#start\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>start</code></h4>\n<p dir=\"auto\">Starts <code>electron-forge</code>, which will build the application and launch it in development mode. This will use the normal settings, so if you use Zettlr on the same computer in production, it will use the same configuration files as the regular application. This means: be careful when breaking things. In that case, it's better to use <code>test-gui</code>.</p>\n<h4 dir=\"auto\"><a id=\"user-content-package\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#package\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>package</code></h4>\n<p dir=\"auto\">Packages the application, but not bundle it into an installer. Without any suffix, this command will package the application for your current platform and architecture. To create specific packages (may require running on the corresponding platform), the following suffixes are available:</p>\n<ul dir=\"auto\">\n<li><code>package:mac-x64</code> (Intel-based Macs)</li>\n<li><code>package:mac-arm</code> (Apple Silicon-based Macs)</li>\n<li><code>package:win-x64</code> (Intel-based Windows)</li>\n<li><code>package:win-arm</code> (ARM-based Windows)</li>\n<li><code>package:linux-x64</code> (Intel-based Linux)</li>\n<li><code>package:linux-arm</code> (ARM-based Linux)</li>\n</ul>\n<p dir=\"auto\">The resulting application packages are stored in <code>./out</code>.</p>\n<blockquote>\n<p dir=\"auto\">This command will skip typechecking to speed up builds, so be extra cautious.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-releaseplatform-arch\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#releaseplatform-arch\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>release:{platform-arch}</code></h4>\n<p dir=\"auto\">Packages the application and then bundles it into an installer for the corresponding platform and architecture. To create such a bundle (may require running on the corresponding platform), one of the following values for <code>{platform-arch}</code> is required:</p>\n<ul dir=\"auto\">\n<li><code>release:mac-x64</code> (Intel-based Macs)</li>\n<li><code>release:mac-arm</code> (Apple Silicon-based Macs)</li>\n<li><code>release:win-x64</code> (Intel-based Windows)</li>\n<li><code>release:win-arm</code> (ARM-based Windows)</li>\n<li><code>release:linux-x64</code> (Intel-based Linux)</li>\n<li><code>release:linux-arm</code> (ARM-based Linux)</li>\n</ul>\n<p dir=\"auto\">The resulting setup bundles are stored in <code>./release</code>.</p>\n<blockquote>\n<p dir=\"auto\">Please note that, while you can <code>package</code> directly for your platform without any suffix, for creating a release specifying the platform is required as electron-builder would otherwise include the development-dependencies in the <code>app.asar</code>, resulting in a bloated application.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-langrefresh\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#langrefresh\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>lang:refresh</code></h4>\n<p dir=\"auto\">This downloads the four default translations of the application from <a href=\"https://translate.zettlr.com/\" rel=\"nofollow\">Zettlr Translate</a>, with which it is shipped by default. It places the files in the <code>static/lang</code>-directory. Currently, the default languages are: German (Germany), English (USA), English (UK), and French (France).</p>\n<blockquote>\n<p dir=\"auto\">Please note, that this command is intended for an automated workflow that runs from time to time on the repository to perform this action. This means: Do <strong>not</strong> commit updated files to the repository. Instead, the updated files will be downloaded whenever you <code>git fetch</code>.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-cslrefresh\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#cslrefresh\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>csl:refresh</code></h4>\n<p dir=\"auto\">This downloads the <a href=\"https://citationstyles.org/\" rel=\"nofollow\">Citation Style Language</a> (CSL) files with which the application is shipped, and places them in the <code>static/csl-locales</code>- and <code>static/csl-styles</code>-directories respectively.</p>\n<blockquote>\n<p dir=\"auto\">Please note, that this command is intended for an automated workflow that runs from time to time on the repository to perform this action. This means: Do <strong>not</strong> commit updated files to the repository. Instead, the updated files will be downloaded whenever you <code>git fetch</code>.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-lint\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#lint\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>lint</code></h4>\n<p dir=\"auto\">This simply runs <a href=\"https://eslint.org/\" rel=\"nofollow\">ESLint</a>. Apps such as <a href=\"https://atom.io/\" rel=\"nofollow\">Atom</a> or <a href=\"https://code.visualstudio.com/\" rel=\"nofollow\">Visual Studio Code</a> will automatically run ESLint in the background, but if you want to be extra-safe, make sure to run this command prior to submitting a Pull Request.</p>\n<blockquote>\n<p dir=\"auto\">This command will run automatically on each Pull Request to check your code for inconsistencies.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-revealbuild\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#revealbuild\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>reveal:build</code></h4>\n<p dir=\"auto\">This re-compiles the source-files needed by the exporter for building <a href=\"https://revealjs.com/\" rel=\"nofollow\">reveal.js</a>-presentations. Due to the nature of how <a href=\"https://pandoc.org/\" rel=\"nofollow\">Pandoc</a> creates such presentations, Zettlr needs to modify the output by Pandoc, which is why these files need to be pre-compiled.</p>\n<blockquote>\n<p dir=\"auto\">Please note, that this command is intended for an automated workflow that runs from time to time on the repository to perform this action. This means: Do <strong>not</strong> commit updated files to the repository. Instead, the updated files will be downloaded whenever you <code>git fetch</code>.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-test\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#test\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>test</code></h4>\n<p dir=\"auto\">This runs the unit tests in the directory <code>./test</code>. Make sure to run this command prior to submitting a Pull Request, as this will be run every time you commit to the PR, and this way you can make sure that your changes don't break any tests, making the whole PR-process easier.</p>\n<h4 dir=\"auto\"><a id=\"user-content-test-gui\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#test-gui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>test-gui</code></h4>\n<p dir=\"auto\">Use this command to carefree test any changes you make to the application. This command will start the application as if you ran <code>yarn start</code>, but will provide a custom configuration and a custom directory.</p>\n<blockquote>\n<p dir=\"auto\">This command will skip typechecking to speed up builds, so be extra cautious.</p>\n</blockquote>\n<p dir=\"auto\"><strong>The first time you start this command</strong>, pass the <code>--clean</code>-flag to copy a bunch of test-files to your <code>./resources</code>-directory, create a <code>test-config.yml</code> in your project root, and start the application with this clean configuration. Then, you can adapt the <code>test-config.yml</code> to your liking (so that certain settings which you would otherwise <em>always</em> set will be pre-set without you having to open the preferences).</p>\n<p dir=\"auto\">Whenever you want to reset the test directory to its initial state (or you removed the directory, or cloned the whole project anew), pass the flag <code>--clean</code> to the command in order to create or reset the directory. <strong>This is also necessary if you changed something in <code>test-config.yml</code></strong>.</p>\n<p dir=\"auto\">You can pass additional command-line switches such as <code>--clear-cache</code> to this command as well. They will be passed to the child process.</p>\n<blockquote>\n<p dir=\"auto\">Attention: Before first running the command, you <strong>must</strong> run it with the <code>--clean</code>-flag to create the directory in the first place!</p>\n</blockquote>\n<p dir=\"auto\">Additionally, have a look at our <a href=\"https://docs.zettlr.com/en/get-involved\" rel=\"nofollow\">full development documentation</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-directory-structure\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#directory-structure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Directory Structure</h3>\n<p dir=\"auto\">Zettlr is a mature app that has amassed hundreds of directories over the course of its development. Since it is hard to contribute to an application without any guidance, we have compiled a short description of the directories with how they interrelate.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\".\n├── resources # Contains resource files\n│ ├── NSIS # Images for the Windows installer\n│ ├── icons # Icons used to build the application\n│ ├── screenshots # The screenshots used in this README file\n├── scripts # Scripts that are run by the CI and some YARN commands\n│ ├── assets # Asset files used by some scripts\n│ └── test-gui # Test files used by `yarn test-gui`\n├── source # Contains the actual source code for the app\n│ ├── app # Contains service providers and the boot/shutdown routines\n│ ├── common # Common files used by several or all renderer processes\n│ │ ├── fonts # Contains the font files (note: location will likely change)\n│ │ ├── img # Currently unused image files\n│ │ ├── less # Contains the themes (note: location will likely change)\n│ │ ├── modules # Contains renderer modules\n│ │ │ ├── markdown-editor # The central CodeMirror markdown editor\n│ │ │ ├── preload # Electron preload files\n│ │ │ └── window-register # Run by every renderer during setup\n│ │ ├── util # A collection of utility functions\n│ │ └── vue # Contains Vue components used by the graphical interface\n│ ├── main # Contains code for the main process\n│ │ ├── assets # Static files (note: location will likely change)\n│ │ ├── commands # Commands that perform user-actions, run from within zettlr.ts\n│ │ └── modules # Main process modules\n│ │ ├── document-manager # The document manager handles all open files\n│ │ ├── export # The exporter converts Markdown files into other formats\n│ │ ├── fsal # The File System Abstraction Layer provides the file tree\n│ │ ├── import # The importer converts other formats into Markdown files\n│ │ └── window-manager # The window manager manages all application windows\n│ ├── win-about # Code for the About window\n│ ├── win-custom-css # Code for the Custom CSS window\n│ ├── win-defaults # Code for the defaults file editor\n│ ├── win-error # The error modal window\n│ ├── win-log-viewer # Displays the running logs from the app\n│ ├── win-main # The main window\n│ ├── win-paste-image # The modal displayed when pasting an image\n│ ├── win-preferences # The preferences window\n│ ├── win-print # Code for the print and preview window\n│ ├── win-quicklook # Code for the Quicklook windows\n│ ├── win-stats # Code for the general statistics window\n│ ├── win-tag-manager # Code for the tag manager\n│ └── win-update # The dedicated update window\n├── static # Contains static files, cf. the README-file in there\n└── test # Unit tests\"><pre class=\"notranslate\"><code class=\"notranslate\">.\n├── resources # Contains resource files\n│ ├── NSIS # Images for the Windows installer\n│ ├── icons # Icons used to build the application\n│ ├── screenshots # The screenshots used in this README file\n├── scripts # Scripts that are run by the CI and some YARN commands\n│ ├── assets # Asset files used by some scripts\n│ └── test-gui # Test files used by `yarn test-gui`\n├── source # Contains the actual source code for the app\n│ ├── app # Contains service providers and the boot/shutdown routines\n│ ├── common # Common files used by several or all renderer processes\n│ │ ├── fonts # Contains the font files (note: location will likely change)\n│ │ ├── img # Currently unused image files\n│ │ ├── less # Contains the themes (note: location will likely change)\n│ │ ├── modules # Contains renderer modules\n│ │ │ ├── markdown-editor # The central CodeMirror markdown editor\n│ │ │ ├── preload # Electron preload files\n│ │ │ └── window-register # Run by every renderer during setup\n│ │ ├── util # A collection of utility functions\n│ │ └── vue # Contains Vue components used by the graphical interface\n│ ├── main # Contains code for the main process\n│ │ ├── assets # Static files (note: location will likely change)\n│ │ ├── commands # Commands that perform user-actions, run from within zettlr.ts\n│ │ └── modules # Main process modules\n│ │ ├── document-manager # The document manager handles all open files\n│ │ ├── export # The exporter converts Markdown files into other formats\n│ │ ├── fsal # The File System Abstraction Layer provides the file tree\n│ │ ├── import # The importer converts other formats into Markdown files\n│ │ └── window-manager # The window manager manages all application windows\n│ ├── win-about # Code for the About window\n│ ├── win-custom-css # Code for the Custom CSS window\n│ ├── win-defaults # Code for the defaults file editor\n│ ├── win-error # The error modal window\n│ ├── win-log-viewer # Displays the running logs from the app\n│ ├── win-main # The main window\n│ ├── win-paste-image # The modal displayed when pasting an image\n│ ├── win-preferences # The preferences window\n│ ├── win-print # Code for the print and preview window\n│ ├── win-quicklook # Code for the Quicklook windows\n│ ├── win-stats # Code for the general statistics window\n│ ├── win-tag-manager # Code for the tag manager\n│ └── win-update # The dedicated update window\n├── static # Contains static files, cf. the README-file in there\n└── test # Unit tests\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-on-the-distinction-between-modules-and-service-providers\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#on-the-distinction-between-modules-and-service-providers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>On the Distinction between Modules and Service Providers</h3>\n<p dir=\"auto\">You'll notice that Zettlr contains both \"modules\" and \"service providers\". The difference between the two is simple: Service providers run in the main process and are completely autonomous while providing functionality to the app as a whole. Modules, on the other hand, provide functionality that must be triggered by user actions (e.g. the exporter and the importer).</p>\n<h3 dir=\"auto\"><a id=\"user-content-the-application-lifecycle\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#the-application-lifecycle\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>The Application Lifecycle</h3>\n<p dir=\"auto\">Whenever you run Zettlr, the following steps will be executed:</p>\n<ol start=\"0\" dir=\"auto\">\n<li>Execute <code>source/main.ts</code></li>\n<li>Environment check (<code>source/app/lifecycle.ts::bootApplication</code>)</li>\n<li>Boot service providers (<code>source/app/lifecycle.ts::bootApplication</code>)</li>\n<li>Boot main application (<code>source/main/zettlr.ts</code>)</li>\n<li>Load the file tree and the documents</li>\n<li>Show the main window</li>\n</ol>\n<p dir=\"auto\">And when you shut down the app, the following steps will run:</p>\n<ol dir=\"auto\">\n<li>Close all windows except the main window</li>\n<li>Attempt to close the main window</li>\n<li>Shutdown the main application (<code>source/main/zettlr.ts::shutdown</code>)</li>\n<li>Shutdown the service providers (<code>source/app/lifecycle.ts::shutdownApplication</code>)</li>\n<li>Exit the application</li>\n</ol>\n<p dir=\"auto\">During development of the app (<code>yarn start</code> and <code>yarn test-gui</code>), the following steps will run:</p>\n<ol dir=\"auto\">\n<li>Electron forge will compile the code for the main process and each renderer process separately (since these are separate processes), using TypeScript and webpack to compile and transpile.</li>\n<li>Electron forge will put that code into the directory <code>.webpack</code>, replacing the constants you can find in the \"create\"-methods of the window manager with the appropriate entry points.</li>\n<li>Electron forge will start a few development servers to provide hot module reloading (HMR) and then actually start the application.</li>\n</ol>\n<p dir=\"auto\">Whenever the app is built, the following steps will run:</p>\n<ol dir=\"auto\">\n<li>Electron forge will perform steps 1 and 2 above, but instead of running the app, it will package the resulting code into a functional app package.</li>\n<li>Electron builder will then take these pre-built packages and wrap them in a platform-specific installer (DMG-files, Windows installer, or Linux packages).</li>\n</ol>\n<p dir=\"auto\">Electron forge will put the packaged applications into the directory <code>./out</code> while Electron builder will put the installers into the directory <code>./release</code>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-command-line-switches\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#command-line-switches\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Command-Line Switches</h2>\n<p dir=\"auto\">The Zettlr binary features a few command line switches that you can make use of for different purposes.</p>\n<h4 dir=\"auto\"><a id=\"user-content---launch-minimized\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#--launch-minimized\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--launch-minimized</code></h4>\n<p dir=\"auto\">This CLI flag will instruct Zettlr not to show the main window on start. This is useful to create autostart entries. In that case, launching Zettlr with this flag at system boot will make sure that you will only see its icon in the tray.</p>\n<p dir=\"auto\">Since this implies the need to have the app running in the tray bar or notification area when starting the app like this, it will automatically set the corresponding setting <code>system.leaveAppRunning</code> to true.</p>\n<blockquote>\n<p dir=\"auto\">Note: This flag will not have any effect on Linux systems which do not support displaying an icon in a tray bar or notification area.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content---clear-cache\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#--clear-cache\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--clear-cache</code></h4>\n<p dir=\"auto\">This will direct the File System Abstraction Layer to fully clear its cache on boot. This can be used to mitigate issues regarding changes in the code base. To ensure compatibility with any changes to the information stored in the cache, the cache is also automatically cleared when the version field in your <code>config.json</code> does not match the one in the <code>package.json</code>, which means that, as long as you do not explicitly set the <code>version</code>-field in your <code>test-config.yml</code>, the cache will always be cleared on each run when you type <code>yarn test-gui</code>.</p>\n<h4 dir=\"auto\"><a id=\"user-content---data-dirpath\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#--data-dirpath\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--data-dir=path</code></h4>\n<p dir=\"auto\">Use this switch to specify custom data directory, which holds your configuration files. Without this switch data directory defaults to <code>%AppData%/Zettlr</code> (on Windows 10), <code>~/.config/Zettlr</code> (on Linux), etc. The path can be absolute or relative. Basis for the relative path will be either the binary's directory (when running a packaged app) or the repository root directory (when running an app that is not packaged). If the path contains spaces, do not forget to escape it in quotes. <code>~</code> to denote home directory does not work. Due to the bug in Electron an empty <code>Dictionaries</code> subdirectory is created in the default data directory, but it does not impact functionality.</p>\n<h4 dir=\"auto\"><a id=\"user-content---disable-hardware-acceleration\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#--disable-hardware-acceleration\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--disable-hardware-acceleration</code></h4>\n<p dir=\"auto\">This switch causes Zettlr to disable hardware acceleration, which could be necessary in certain setups. For more information on why this flag was added, see issue <a href=\"https://github.com/Zettlr/Zettlr/issues/2127\" data-hovercard-type=\"issue\" data-hovercard-url=\"/Zettlr/Zettlr/issues/2127/hovercard\">#2127</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-vscode-extension-recommendations\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#vscode-extension-recommendations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>VSCode Extension Recommendations</h2>\n<p dir=\"auto\">This repository makes use of Visual Studio Code's <a href=\"https://go.microsoft.com/fwlink/?LinkId=827846\" rel=\"nofollow\">recommended extensions feature</a>. This means: If you use VS Code and open the repository for the first time, VS Code will tell you that the repository recommends to install a handful of extensions. These extensions are recommended if you work with Zettlr and will make contributing much easier. The recommendations are specified in the file <code>.vscode/extensions.json</code>.</p>\n<p dir=\"auto\">Since installing extensions is sometimes a matter of taste, we have added short descriptions for each recommended extension within that file to explain why we recommend it. This way you can make your own decision whether or not you want to install any of these extensions (for example, the SVG extension is not necessary if you do not work with the SVG files provided in the repository).</p>\n<p dir=\"auto\">If you choose not to install all of the recommended extensions at once (which we recommend), VS Code will show you the recommendations in the extensions sidebar so you can first decide which of the ones you'd like to install and then manually install those you'd like to have.</p>\n<blockquote>\n<p dir=\"auto\">Using the same extensions as the core developer team will make the code generally more consistent since you will have the same visual feedback.</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zettlr/zettlr/blob/develop/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This software is licensed via the <a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" rel=\"nofollow\">GNU GPL v3-License</a>.</p>\n<p dir=\"auto\">The brand (including name, icons and everything Zettlr can be identified with) is excluded and all rights reserved. If you want to fork Zettlr to develop another app, feel free but please change name and icons. <a href=\"https://www.zettlr.com/press#usage-rights\" rel=\"nofollow\">Read about the logo usage</a>.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 align=\"center\" dir=\"auto\"><a id=\"user-content-------------zettlr-ˈsetlər\" class=\"anchor\" aria-hidden=\"true\" href=\"#------------zettlr-ˈsetlər\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>\n <a href=\"https://github.com/Zettlr/Zettlr\">\n <img src=\"https://raw.githubusercontent.com/Zettlr/Zettlr/master/resources/icons/png/256x256.png\" alt=\"Zettlr\" style=\"max-width: 100%;\">\n </a>\n <br>\n Zettlr [<em>ˈset·lər</em>]\n</h1>\n<p align=\"center\" dir=\"auto\"><strong>A Markdown Editor for the 21<sup>st</sup> century</strong>.</p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://doi.org/10.5281/zenodo.2580173\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/20964c934d792bc92a63687b0b4af1d9c2d7ae7f0ea40e13ab8f2709467267c3/68747470733a2f2f7a656e6f646f2e6f72672f62616467652f444f492f31302e353238312f7a656e6f646f2e323538303137332e737667\" alt=\"DOI\" data-canonical-src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.2580173.svg\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://www.gnu.org/licenses/gpl-3.0\" rel=\"nofollow\">\n <img src=\"https://camo.githubusercontent.com/400c4e52df43f6a0ab8a89b74b1a78d1a64da56a7848b9110c9d2991bb7c3105/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c76332d626c75652e737667\" alt=\"License: GNU GPL v3\" data-canonical-src=\"https://img.shields.io/badge/License-GPLv3-blue.svg\" style=\"max-width: 100%;\">\n </a>\n <a href=\"https://www.zettlr.com/download\" rel=\"nofollow\">\n <img alt=\"GitHub tag (latest by date)\" src=\"https://camo.githubusercontent.com/bd739413e9bda8723541ca4b5ff4fbe805ddce2aac3c405742da1bb3a7d38514/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7461672d646174652f5a6574746c722f5a6574746c722e7376673f6c6162656c3d6c6174657374\" data-canonical-src=\"https://img.shields.io/github/tag-date/Zettlr/Zettlr.svg?label=latest\" style=\"max-width: 100%;\">\n </a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/50a4960094ae24a45df9957f40435787ac776a5daaf4904e87245abda01efb2f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5a6574746c722f5a6574746c722f746f74616c2e737667\"><img alt=\"GitHub All Releases\" src=\"https://camo.githubusercontent.com/50a4960094ae24a45df9957f40435787ac776a5daaf4904e87245abda01efb2f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f5a6574746c722f5a6574746c722f746f74616c2e737667\" data-canonical-src=\"https://img.shields.io/github/downloads/Zettlr/Zettlr/total.svg\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Zettlr/Zettlr/workflows/Test/badge.svg?branch=master\"><img alt=\"Test\" src=\"https://github.com/Zettlr/Zettlr/workflows/Test/badge.svg?branch=master\" style=\"max-width: 100%;\"></a>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/Zettlr/Zettlr/workflows/Build/badge.svg\"><img alt=\"Build\" src=\"https://github.com/Zettlr/Zettlr/workflows/Build/badge.svg\" style=\"max-width: 100%;\"></a>\n</p>\n<p align=\"center\" dir=\"auto\">\n <a href=\"https://www.zettlr.com/\" rel=\"nofollow\">Homepage</a> |\n <a href=\"https://www.zettlr.com/download\" rel=\"nofollow\">Download</a> |\n <a href=\"https://docs.zettlr.com/\" rel=\"nofollow\">Documentation</a> |\n <a href=\"https://discord.gg/PcfS3DM9Xj\" rel=\"nofollow\">Discord</a> |\n <a href=\"#contributing\">Contributing</a> |\n <a href=\"https://www.patreon.com/zettlr\" rel=\"nofollow\">Support Us</a>\n</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/resources/screenshots/zettlr_view.png\"><img src=\"/resources/screenshots/zettlr_view.png\" alt=\"screenshot\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">With Zettlr, writing professional texts is easy and motivating: Whether you are a college student, a researcher, a journalist, or an author — Zettlr has the right tools for you. <a href=\"https://www.youtube.com/watch?v=BJ27r6YGpAs\" rel=\"nofollow\">Watch the video</a> or continue reading to see what they are!</p>\n<p dir=\"auto\"><a href=\"https://zettlr.com/\" rel=\"nofollow\">Visit our Website</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h2>\n<ul dir=\"auto\">\n<li>Available in over a dozen languages</li>\n<li>Tight and ever-growing <strong>integration with your favourite reference manager</strong> (such as Zotero or JabRef)</li>\n<li><strong>Cite with Zettlr</strong> using <code>citeproc</code> and your existing literature database</li>\n<li>Five <strong>themes and dark mode support</strong></li>\n<li>File-agnostic writing: Enjoy <strong>full control over your own files</strong></li>\n<li>Keep all your notes and texts <strong>in one place</strong> — searchable and accessible</li>\n<li><strong>Code highlighting</strong> for many languages</li>\n<li>Simple and beautiful <strong>exports</strong> with <a href=\"https://pandoc.org/\" rel=\"nofollow\">Pandoc</a>, <a href=\"https://www.latex-project.org/\" rel=\"nofollow\">LaTeX</a>, and <a href=\"http://textbundle.org/\" rel=\"nofollow\">Textbundle</a></li>\n<li>Support for state of the art knowledge management techniques (<strong>Zettelkasten</strong>)</li>\n<li>A revolutionary <strong>search algorithm</strong> with integrated heatmap</li>\n</ul>\n<p dir=\"auto\">… and the best is: <strong>Zettlr is <a href=\"https://en.wikipedia.org/wiki/Free_and_open-source_software\" rel=\"nofollow\">Open Source (FOSS)</a>!</strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-installation\" class=\"anchor\" aria-hidden=\"true\" href=\"#installation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Installation</h2>\n<p dir=\"auto\">To install Zettlr, just <a href=\"https://www.zettlr.com/download/\" rel=\"nofollow\">download the latest release</a> for your operating system! Currently supported are macOS, Windows, and most Linux distributions (via Debian- and Fedora-packages as well as AppImages).</p>\n<p dir=\"auto\">All other <a href=\"https://www.electronjs.org/docs/tutorial/support#supported-platforms\" rel=\"nofollow\">platforms that Electron supports</a> are supported as well, but you will need to build the app yourself for this to work.</p>\n<p dir=\"auto\"><strong>Please also consider <a href=\"https://www.patreon.com/zettlr\" rel=\"nofollow\">becoming a patron</a> or making a <a href=\"https://paypal.me/hendrikerz\" rel=\"nofollow\">one-time donation</a>!</strong></p>\n<h2 dir=\"auto\"><a id=\"user-content-getting-started\" class=\"anchor\" aria-hidden=\"true\" href=\"#getting-started\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Getting Started</h2>\n<p dir=\"auto\">After you have installed Zettlr, <a href=\"https://docs.zettlr.com/\" rel=\"nofollow\">head over to our documentation</a> to get to know Zettlr. Refer to the <a href=\"https://docs.zettlr.com/en/5-minutes/\" rel=\"nofollow\">Quick Start Guide</a>, if you prefer to use software heads-on.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/resources/screenshots/zettlr_view_dark.png\"><img src=\"/resources/screenshots/zettlr_view_dark.png\" alt=\"The central window of Zettlr using the Night Theme\" style=\"max-width: 100%;\"></a></p>\n<h2 dir=\"auto\"><a id=\"user-content-contributing\" class=\"anchor\" aria-hidden=\"true\" href=\"#contributing\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contributing</h2>\n<p dir=\"auto\">Zettlr is an <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a>-based app, so to start developing, you'll need to have:</p>\n<ol dir=\"auto\">\n<li>A <a href=\"https://nodejs.org/\" rel=\"nofollow\">NodeJS</a>-stack installed on your computer. Make sure it's at least Node 14 (<code>lts/fermium</code>). To test what version you have, run <code>node -v</code>.</li>\n<li><a href=\"https://yarnpkg.com/en/\" rel=\"nofollow\">Yarn</a> installed. Yarn is the required package manager for the project, as we do not commit <code>package-lock.json</code>-files and many commands require yarn. You can install this globally using <code>npm install -g yarn</code> or Homebrew, if you are on macOS.</li>\n</ol>\n<p dir=\"auto\">Then, simply clone the repository and install the dependencies on your local computer:</p>\n<div class=\"highlight highlight-source-shell position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ git clone https://github.com/Zettlr/Zettlr.git\n$ cd Zettlr\n$ yarn install --frozen-lockfile\"><pre>$ git clone https://github.com/Zettlr/Zettlr.git\n$ <span class=\"pl-c1\">cd</span> Zettlr\n$ yarn install --frozen-lockfile</pre></div>\n<p dir=\"auto\">The <code>--frozen-lockfile</code> flag ensures that yarn will stick to the versions as listed in the <code>yarn.lock</code> and not attempt to update them.</p>\n<p dir=\"auto\">During development, hot module reloading is active so that you can edit the renderer's code easily and hit <code>F5</code> after the changes have been compiled by <code>electron-forge</code>. You can keep the developer tools open to see when HMR has finished loading your changes.</p>\n<h3 dir=\"auto\"><a id=\"user-content-what-should-i-know-to-contribute-code\" class=\"anchor\" aria-hidden=\"true\" href=\"#what-should-i-know-to-contribute-code\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>What Should I Know To Contribute Code?</h3>\n<p dir=\"auto\">In order to provide code, you should have basic familiarity with the following topics and/or manuals (ordered by importance descending):</p>\n<ul dir=\"auto\">\n<li><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript\" rel=\"nofollow\">JavaScript</a> (especially asynchronous code) and <a href=\"https://www.typescriptlang.org/docs/\" rel=\"nofollow\">TypeScript</a></li>\n<li><a href=\"https://nodejs.org/api/\" rel=\"nofollow\">Node.js</a></li>\n<li><a href=\"https://www.electronjs.org/docs\" rel=\"nofollow\">Electron</a></li>\n<li><a href=\"https://vuejs.org/v2/guide/\" rel=\"nofollow\">Vue.js</a> (2.x) and <a href=\"https://vuex.vuejs.org/\" rel=\"nofollow\">Vuex</a></li>\n<li><a href=\"https://codemirror.net/doc/manual.html\" rel=\"nofollow\">CodeMirror</a> (5.x)</li>\n<li><a href=\"https://eslint.org/\" rel=\"nofollow\">ESLint</a></li>\n<li><a href=\"https://lesscss.org/#\" rel=\"nofollow\">LESS</a></li>\n<li><a href=\"https://webpack.js.org/concepts/\" rel=\"nofollow\">Webpack 5.x</a></li>\n<li><a href=\"https://www.electronforge.io/\" rel=\"nofollow\">Electron forge</a></li>\n<li><a href=\"https://www.electron.build/\" rel=\"nofollow\">Electron builder</a></li>\n</ul>\n<blockquote>\n<p dir=\"auto\">Note: See the \"Directory Structure\" section below to get an idea of how Zettlr specifically works.</p>\n</blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-development-commands\" class=\"anchor\" aria-hidden=\"true\" href=\"#development-commands\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Development Commands</h3>\n<p dir=\"auto\">This section lists all available commands that you can use during application development. These are defined within the <code>package.json</code> and can be run from the command line by prefixing them with <code>yarn</code>. Run them from within the base directory of the repository.</p>\n<h4 dir=\"auto\"><a id=\"user-content-start\" class=\"anchor\" aria-hidden=\"true\" href=\"#start\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>start</code></h4>\n<p dir=\"auto\">Starts <code>electron-forge</code>, which will build the application and launch it in development mode. This will use the normal settings, so if you use Zettlr on the same computer in production, it will use the same configuration files as the regular application. This means: be careful when breaking things. In that case, it's better to use <code>test-gui</code>.</p>\n<h4 dir=\"auto\"><a id=\"user-content-package\" class=\"anchor\" aria-hidden=\"true\" href=\"#package\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>package</code></h4>\n<p dir=\"auto\">Packages the application, but not bundle it into an installer. Without any suffix, this command will package the application for your current platform and architecture. To create specific packages (may require running on the corresponding platform), the following suffixes are available:</p>\n<ul dir=\"auto\">\n<li><code>package:mac-x64</code> (Intel-based Macs)</li>\n<li><code>package:mac-arm</code> (Apple Silicon-based Macs)</li>\n<li><code>package:win-x64</code> (Intel-based Windows)</li>\n<li><code>package:win-arm</code> (ARM-based Windows)</li>\n<li><code>package:linux-x64</code> (Intel-based Linux)</li>\n<li><code>package:linux-arm</code> (ARM-based Linux)</li>\n</ul>\n<p dir=\"auto\">The resulting application packages are stored in <code>./out</code>.</p>\n<blockquote>\n<p dir=\"auto\">This command will skip typechecking to speed up builds, so be extra cautious.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-releaseplatform-arch\" class=\"anchor\" aria-hidden=\"true\" href=\"#releaseplatform-arch\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>release:{platform-arch}</code></h4>\n<p dir=\"auto\">Packages the application and then bundles it into an installer for the corresponding platform and architecture. To create such a bundle (may require running on the corresponding platform), one of the following values for <code>{platform-arch}</code> is required:</p>\n<ul dir=\"auto\">\n<li><code>release:mac-x64</code> (Intel-based Macs)</li>\n<li><code>release:mac-arm</code> (Apple Silicon-based Macs)</li>\n<li><code>release:win-x64</code> (Intel-based Windows)</li>\n<li><code>release:win-arm</code> (ARM-based Windows)</li>\n<li><code>release:linux-x64</code> (Intel-based Linux)</li>\n<li><code>release:linux-arm</code> (ARM-based Linux)</li>\n</ul>\n<p dir=\"auto\">The resulting setup bundles are stored in <code>./release</code>.</p>\n<blockquote>\n<p dir=\"auto\">Please note that, while you can <code>package</code> directly for your platform without any suffix, for creating a release specifying the platform is required as electron-builder would otherwise include the development-dependencies in the <code>app.asar</code>, resulting in a bloated application.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-langrefresh\" class=\"anchor\" aria-hidden=\"true\" href=\"#langrefresh\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>lang:refresh</code></h4>\n<p dir=\"auto\">This downloads the four default translations of the application from <a href=\"https://translate.zettlr.com/\" rel=\"nofollow\">Zettlr Translate</a>, with which it is shipped by default. It places the files in the <code>static/lang</code>-directory. Currently, the default languages are: German (Germany), English (USA), English (UK), and French (France).</p>\n<blockquote>\n<p dir=\"auto\">Please note, that this command is intended for an automated workflow that runs from time to time on the repository to perform this action. This means: Do <strong>not</strong> commit updated files to the repository. Instead, the updated files will be downloaded whenever you <code>git fetch</code>.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-cslrefresh\" class=\"anchor\" aria-hidden=\"true\" href=\"#cslrefresh\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>csl:refresh</code></h4>\n<p dir=\"auto\">This downloads the <a href=\"https://citationstyles.org/\" rel=\"nofollow\">Citation Style Language</a> (CSL) files with which the application is shipped, and places them in the <code>static/csl-locales</code>- and <code>static/csl-styles</code>-directories respectively.</p>\n<blockquote>\n<p dir=\"auto\">Please note, that this command is intended for an automated workflow that runs from time to time on the repository to perform this action. This means: Do <strong>not</strong> commit updated files to the repository. Instead, the updated files will be downloaded whenever you <code>git fetch</code>.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-lint\" class=\"anchor\" aria-hidden=\"true\" href=\"#lint\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>lint</code></h4>\n<p dir=\"auto\">This simply runs <a href=\"https://eslint.org/\" rel=\"nofollow\">ESLint</a>. Apps such as <a href=\"https://atom.io/\" rel=\"nofollow\">Atom</a> or <a href=\"https://code.visualstudio.com/\" rel=\"nofollow\">Visual Studio Code</a> will automatically run ESLint in the background, but if you want to be extra-safe, make sure to run this command prior to submitting a Pull Request.</p>\n<blockquote>\n<p dir=\"auto\">This command will run automatically on each Pull Request to check your code for inconsistencies.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-revealbuild\" class=\"anchor\" aria-hidden=\"true\" href=\"#revealbuild\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>reveal:build</code></h4>\n<p dir=\"auto\">This re-compiles the source-files needed by the exporter for building <a href=\"https://revealjs.com/\" rel=\"nofollow\">reveal.js</a>-presentations. Due to the nature of how <a href=\"https://pandoc.org/\" rel=\"nofollow\">Pandoc</a> creates such presentations, Zettlr needs to modify the output by Pandoc, which is why these files need to be pre-compiled.</p>\n<blockquote>\n<p dir=\"auto\">Please note, that this command is intended for an automated workflow that runs from time to time on the repository to perform this action. This means: Do <strong>not</strong> commit updated files to the repository. Instead, the updated files will be downloaded whenever you <code>git fetch</code>.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content-test\" class=\"anchor\" aria-hidden=\"true\" href=\"#test\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>test</code></h4>\n<p dir=\"auto\">This runs the unit tests in the directory <code>./test</code>. Make sure to run this command prior to submitting a Pull Request, as this will be run every time you commit to the PR, and this way you can make sure that your changes don't break any tests, making the whole PR-process easier.</p>\n<h4 dir=\"auto\"><a id=\"user-content-test-gui\" class=\"anchor\" aria-hidden=\"true\" href=\"#test-gui\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>test-gui</code></h4>\n<p dir=\"auto\">Use this command to carefree test any changes you make to the application. This command will start the application as if you ran <code>yarn start</code>, but will provide a custom configuration and a custom directory.</p>\n<blockquote>\n<p dir=\"auto\">This command will skip typechecking to speed up builds, so be extra cautious.</p>\n</blockquote>\n<p dir=\"auto\"><strong>The first time you start this command</strong>, pass the <code>--clean</code>-flag to copy a bunch of test-files to your <code>./resources</code>-directory, create a <code>test-config.yml</code> in your project root, and start the application with this clean configuration. Then, you can adapt the <code>test-config.yml</code> to your liking (so that certain settings which you would otherwise <em>always</em> set will be pre-set without you having to open the preferences).</p>\n<p dir=\"auto\">Whenever you want to reset the test directory to its initial state (or you removed the directory, or cloned the whole project anew), pass the flag <code>--clean</code> to the command in order to create or reset the directory. <strong>This is also necessary if you changed something in <code>test-config.yml</code></strong>.</p>\n<p dir=\"auto\">You can pass additional command-line switches such as <code>--clear-cache</code> to this command as well. They will be passed to the child process.</p>\n<blockquote>\n<p dir=\"auto\">Attention: Before first running the command, you <strong>must</strong> run it with the <code>--clean</code>-flag to create the directory in the first place!</p>\n</blockquote>\n<p dir=\"auto\">Additionally, have a look at our <a href=\"https://docs.zettlr.com/en/get-involved\" rel=\"nofollow\">full development documentation</a>.</p>\n<h3 dir=\"auto\"><a id=\"user-content-directory-structure\" class=\"anchor\" aria-hidden=\"true\" href=\"#directory-structure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Directory Structure</h3>\n<p dir=\"auto\">Zettlr is a mature app that has amassed hundreds of directories over the course of its development. Since it is hard to contribute to an application without any guidance, we have compiled a short description of the directories with how they interrelate.</p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\" data-snippet-clipboard-copy-content=\".\n├── resources # Contains resource files\n│ ├── NSIS # Images for the Windows installer\n│ ├── icons # Icons used to build the application\n│ ├── screenshots # The screenshots used in this README file\n├── scripts # Scripts that are run by the CI and some YARN commands\n│ ├── assets # Asset files used by some scripts\n│ └── test-gui # Test files used by `yarn test-gui`\n├── source # Contains the actual source code for the app\n│ ├── app # Contains service providers and the boot/shutdown routines\n│ ├── common # Common files used by several or all renderer processes\n│ │ ├── fonts # Contains the font files (note: location will likely change)\n│ │ ├── img # Currently unused image files\n│ │ ├── less # Contains the themes (note: location will likely change)\n│ │ ├── modules # Contains renderer modules\n│ │ │ ├── markdown-editor # The central CodeMirror markdown editor\n│ │ │ ├── preload # Electron preload files\n│ │ │ └── window-register # Run by every renderer during setup\n│ │ ├── util # A collection of utility functions\n│ │ └── vue # Contains Vue components used by the graphical interface\n│ ├── main # Contains code for the main process\n│ │ ├── assets # Static files (note: location will likely change)\n│ │ ├── commands # Commands that perform user-actions, run from within zettlr.ts\n│ │ └── modules # Main process modules\n│ │ ├── document-manager # The document manager handles all open files\n│ │ ├── export # The exporter converts Markdown files into other formats\n│ │ ├── fsal # The File System Abstraction Layer provides the file tree\n│ │ ├── import # The importer converts other formats into Markdown files\n│ │ └── window-manager # The window manager manages all application windows\n│ ├── win-about # Code for the About window\n│ ├── win-custom-css # Code for the Custom CSS window\n│ ├── win-defaults # Code for the defaults file editor\n│ ├── win-error # The error modal window\n│ ├── win-log-viewer # Displays the running logs from the app\n│ ├── win-main # The main window\n│ ├── win-paste-image # The modal displayed when pasting an image\n│ ├── win-preferences # The preferences window\n│ ├── win-print # Code for the print and preview window\n│ ├── win-quicklook # Code for the Quicklook windows\n│ ├── win-stats # Code for the general statistics window\n│ ├── win-tag-manager # Code for the tag manager\n│ └── win-update # The dedicated update window\n├── static # Contains static files, cf. the README-file in there\n└── test # Unit tests\"><pre class=\"notranslate\"><code class=\"notranslate\">.\n├── resources # Contains resource files\n│ ├── NSIS # Images for the Windows installer\n│ ├── icons # Icons used to build the application\n│ ├── screenshots # The screenshots used in this README file\n├── scripts # Scripts that are run by the CI and some YARN commands\n│ ├── assets # Asset files used by some scripts\n│ └── test-gui # Test files used by `yarn test-gui`\n├── source # Contains the actual source code for the app\n│ ├── app # Contains service providers and the boot/shutdown routines\n│ ├── common # Common files used by several or all renderer processes\n│ │ ├── fonts # Contains the font files (note: location will likely change)\n│ │ ├── img # Currently unused image files\n│ │ ├── less # Contains the themes (note: location will likely change)\n│ │ ├── modules # Contains renderer modules\n│ │ │ ├── markdown-editor # The central CodeMirror markdown editor\n│ │ │ ├── preload # Electron preload files\n│ │ │ └── window-register # Run by every renderer during setup\n│ │ ├── util # A collection of utility functions\n│ │ └── vue # Contains Vue components used by the graphical interface\n│ ├── main # Contains code for the main process\n│ │ ├── assets # Static files (note: location will likely change)\n│ │ ├── commands # Commands that perform user-actions, run from within zettlr.ts\n│ │ └── modules # Main process modules\n│ │ ├── document-manager # The document manager handles all open files\n│ │ ├── export # The exporter converts Markdown files into other formats\n│ │ ├── fsal # The File System Abstraction Layer provides the file tree\n│ │ ├── import # The importer converts other formats into Markdown files\n│ │ └── window-manager # The window manager manages all application windows\n│ ├── win-about # Code for the About window\n│ ├── win-custom-css # Code for the Custom CSS window\n│ ├── win-defaults # Code for the defaults file editor\n│ ├── win-error # The error modal window\n│ ├── win-log-viewer # Displays the running logs from the app\n│ ├── win-main # The main window\n│ ├── win-paste-image # The modal displayed when pasting an image\n│ ├── win-preferences # The preferences window\n│ ├── win-print # Code for the print and preview window\n│ ├── win-quicklook # Code for the Quicklook windows\n│ ├── win-stats # Code for the general statistics window\n│ ├── win-tag-manager # Code for the tag manager\n│ └── win-update # The dedicated update window\n├── static # Contains static files, cf. the README-file in there\n└── test # Unit tests\n</code></pre></div>\n<h3 dir=\"auto\"><a id=\"user-content-on-the-distinction-between-modules-and-service-providers\" class=\"anchor\" aria-hidden=\"true\" href=\"#on-the-distinction-between-modules-and-service-providers\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>On the Distinction between Modules and Service Providers</h3>\n<p dir=\"auto\">You'll notice that Zettlr contains both \"modules\" and \"service providers\". The difference between the two is simple: Service providers run in the main process and are completely autonomous while providing functionality to the app as a whole. Modules, on the other hand, provide functionality that must be triggered by user actions (e.g. the exporter and the importer).</p>\n<h3 dir=\"auto\"><a id=\"user-content-the-application-lifecycle\" class=\"anchor\" aria-hidden=\"true\" href=\"#the-application-lifecycle\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>The Application Lifecycle</h3>\n<p dir=\"auto\">Whenever you run Zettlr, the following steps will be executed:</p>\n<ol start=\"0\" dir=\"auto\">\n<li>Execute <code>source/main.ts</code></li>\n<li>Environment check (<code>source/app/lifecycle.ts::bootApplication</code>)</li>\n<li>Boot service providers (<code>source/app/lifecycle.ts::bootApplication</code>)</li>\n<li>Boot main application (<code>source/main/zettlr.ts</code>)</li>\n<li>Load the file tree and the documents</li>\n<li>Show the main window</li>\n</ol>\n<p dir=\"auto\">And when you shut down the app, the following steps will run:</p>\n<ol dir=\"auto\">\n<li>Close all windows except the main window</li>\n<li>Attempt to close the main window</li>\n<li>Shutdown the main application (<code>source/main/zettlr.ts::shutdown</code>)</li>\n<li>Shutdown the service providers (<code>source/app/lifecycle.ts::shutdownApplication</code>)</li>\n<li>Exit the application</li>\n</ol>\n<p dir=\"auto\">During development of the app (<code>yarn start</code> and <code>yarn test-gui</code>), the following steps will run:</p>\n<ol dir=\"auto\">\n<li>Electron forge will compile the code for the main process and each renderer process separately (since these are separate processes), using TypeScript and webpack to compile and transpile.</li>\n<li>Electron forge will put that code into the directory <code>.webpack</code>, replacing the constants you can find in the \"create\"-methods of the window manager with the appropriate entry points.</li>\n<li>Electron forge will start a few development servers to provide hot module reloading (HMR) and then actually start the application.</li>\n</ol>\n<p dir=\"auto\">Whenever the app is built, the following steps will run:</p>\n<ol dir=\"auto\">\n<li>Electron forge will perform steps 1 and 2 above, but instead of running the app, it will package the resulting code into a functional app package.</li>\n<li>Electron builder will then take these pre-built packages and wrap them in a platform-specific installer (DMG-files, Windows installer, or Linux packages).</li>\n</ol>\n<p dir=\"auto\">Electron forge will put the packaged applications into the directory <code>./out</code> while Electron builder will put the installers into the directory <code>./release</code>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-command-line-switches\" class=\"anchor\" aria-hidden=\"true\" href=\"#command-line-switches\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Command-Line Switches</h2>\n<p dir=\"auto\">The Zettlr binary features a few command line switches that you can make use of for different purposes.</p>\n<h4 dir=\"auto\"><a id=\"user-content---launch-minimized\" class=\"anchor\" aria-hidden=\"true\" href=\"#--launch-minimized\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--launch-minimized</code></h4>\n<p dir=\"auto\">This CLI flag will instruct Zettlr not to show the main window on start. This is useful to create autostart entries. In that case, launching Zettlr with this flag at system boot will make sure that you will only see its icon in the tray.</p>\n<p dir=\"auto\">Since this implies the need to have the app running in the tray bar or notification area when starting the app like this, it will automatically set the corresponding setting <code>system.leaveAppRunning</code> to true.</p>\n<blockquote>\n<p dir=\"auto\">Note: This flag will not have any effect on Linux systems which do not support displaying an icon in a tray bar or notification area.</p>\n</blockquote>\n<h4 dir=\"auto\"><a id=\"user-content---clear-cache\" class=\"anchor\" aria-hidden=\"true\" href=\"#--clear-cache\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--clear-cache</code></h4>\n<p dir=\"auto\">This will direct the File System Abstraction Layer to fully clear its cache on boot. This can be used to mitigate issues regarding changes in the code base. To ensure compatibility with any changes to the information stored in the cache, the cache is also automatically cleared when the version field in your <code>config.json</code> does not match the one in the <code>package.json</code>, which means that, as long as you do not explicitly set the <code>version</code>-field in your <code>test-config.yml</code>, the cache will always be cleared on each run when you type <code>yarn test-gui</code>.</p>\n<h4 dir=\"auto\"><a id=\"user-content---data-dirpath\" class=\"anchor\" aria-hidden=\"true\" href=\"#--data-dirpath\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--data-dir=path</code></h4>\n<p dir=\"auto\">Use this switch to specify custom data directory, which holds your configuration files. Without this switch data directory defaults to <code>%AppData%/Zettlr</code> (on Windows 10), <code>~/.config/Zettlr</code> (on Linux), etc. The path can be absolute or relative. Basis for the relative path will be either the binary's directory (when running a packaged app) or the repository root directory (when running an app that is not packaged). If the path contains spaces, do not forget to escape it in quotes. <code>~</code> to denote home directory does not work. Due to the bug in Electron an empty <code>Dictionaries</code> subdirectory is created in the default data directory, but it does not impact functionality.</p>\n<h4 dir=\"auto\"><a id=\"user-content---disable-hardware-acceleration\" class=\"anchor\" aria-hidden=\"true\" href=\"#--disable-hardware-acceleration\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a><code>--disable-hardware-acceleration</code></h4>\n<p dir=\"auto\">This switch causes Zettlr to disable hardware acceleration, which could be necessary in certain setups. For more information on why this flag was added, see issue <a href=\"https://github.com/Zettlr/Zettlr/issues/2127\" data-hovercard-type=\"issue\" data-hovercard-url=\"/Zettlr/Zettlr/issues/2127/hovercard\">#2127</a>.</p>\n<h2 dir=\"auto\"><a id=\"user-content-vscode-extension-recommendations\" class=\"anchor\" aria-hidden=\"true\" href=\"#vscode-extension-recommendations\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>VSCode Extension Recommendations</h2>\n<p dir=\"auto\">This repository makes use of Visual Studio Code's <a href=\"https://go.microsoft.com/fwlink/?LinkId=827846\" rel=\"nofollow\">recommended extensions feature</a>. This means: If you use VS Code and open the repository for the first time, VS Code will tell you that the repository recommends to install a handful of extensions. These extensions are recommended if you work with Zettlr and will make contributing much easier. The recommendations are specified in the file <code>.vscode/extensions.json</code>.</p>\n<p dir=\"auto\">Since installing extensions is sometimes a matter of taste, we have added short descriptions for each recommended extension within that file to explain why we recommend it. This way you can make your own decision whether or not you want to install any of these extensions (for example, the SVG extension is not necessary if you do not work with the SVG files provided in the repository).</p>\n<p dir=\"auto\">If you choose not to install all of the recommended extensions at once (which we recommend), VS Code will show you the recommendations in the extensions sidebar so you can first decide which of the ones you'd like to install and then manually install those you'd like to have.</p>\n<blockquote>\n<p dir=\"auto\">Using the same extensions as the core developer team will make the code generally more consistent since you will have the same visual feedback.</p>\n</blockquote>\n<h2 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h2>\n<p dir=\"auto\">This software is licensed via the <a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" rel=\"nofollow\">GNU GPL v3-License</a>.</p>\n<p dir=\"auto\">The brand (including name, icons and everything Zettlr can be identified with) is excluded and all rights reserved. If you want to fork Zettlr to develop another app, feel free but please change name and icons. <a href=\"https://www.zettlr.com/press#usage-rights\" rel=\"nofollow\">Read about the logo usage</a>.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:16.039Z" }, "zulip": { "readmeCleaned": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-zulip-desktop-client\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zulip/zulip-desktop/blob/main/#zulip-desktop-client\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Zulip Desktop Client</h1>\n<p dir=\"auto\"><a href=\"https://travis-ci.com/github/zulip/zulip-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e98091351cd0011c0cb64ff33549a9e174df499d732ef291a984d4e81393efbc/68747470733a2f2f7472617669732d63692e636f6d2f7a756c69702f7a756c69702d6465736b746f702e7376673f6272616e63683d6d61696e\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.com/zulip/zulip-desktop.svg?branch=main\" style=\"max-width: 100%;\"></a>\n<a href=\"https://ci.appveyor.com/project/zulip/zulip-desktop/branch/main\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bdd855c67c0800ab901154931e2acce56566bc08084237b9479a651c153f8cea/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f6769746875622f7a756c69702f7a756c69702d6465736b746f703f6272616e63683d6d61696e267376673d74727565\" alt=\"Windows Build Status\" data-canonical-src=\"https://ci.appveyor.com/api/projects/status/github/zulip/zulip-desktop?branch=main&svg=true\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/sindresorhus/xo\"><img src=\"https://camo.githubusercontent.com/5bb70780e963bd4f1abe6d7bbc75117790b4b291012dc80b1d1cd0606989bfaa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d584f2d3565643963372e737667\" alt=\"XO code style\" data-canonical-src=\"https://img.shields.io/badge/code_style-XO-5ed9c7.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://chat.zulip.org\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/11e6556bfe778e7cf7331cac9c44bd0616062722036cc0d9bb0b7909aaae8779/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7a756c69702d6a6f696e5f636861742d627269676874677265656e2e737667\" alt=\"project chat\" data-canonical-src=\"https://img.shields.io/badge/zulip-join_chat-brightgreen.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Desktop client for Zulip. Available for Mac, Linux, and Windows.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/72d743305308fe950fdcdae992a03724763b5887a69662ebb2ce37d56a54f5b4/68747470733a2f2f692e696d6775722e636f6d2f73316f365452412e706e67\"><img src=\"https://camo.githubusercontent.com/72d743305308fe950fdcdae992a03724763b5887a69662ebb2ce37d56a54f5b4/68747470733a2f2f692e696d6775722e636f6d2f73316f365452412e706e67\" alt=\"screenshot\" data-canonical-src=\"https://i.imgur.com/s1o6TRA.png\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/83ebc67b19b579d1a3cac4c07d3298c40ffd269457ac71e7e3a7e445002e8929/68747470733a2f2f692e696d6775722e636f6d2f76656b4b6e57342e706e67\"><img src=\"https://camo.githubusercontent.com/83ebc67b19b579d1a3cac4c07d3298c40ffd269457ac71e7e3a7e445002e8929/68747470733a2f2f692e696d6775722e636f6d2f76656b4b6e57342e706e67\" alt=\"screenshot\" data-canonical-src=\"https://i.imgur.com/vekKnW4.png\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zulip/zulip-desktop/blob/main/#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h1>\n<p dir=\"auto\">Please see the <a href=\"https://zulip.com/help/desktop-app-install-guide\" rel=\"nofollow\">installation guide</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zulip/zulip-desktop/blob/main/#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h1>\n<ul dir=\"auto\">\n<li>Sign in to multiple organizations</li>\n<li>Desktop notifications with inline reply</li>\n<li>Tray/dock integration</li>\n<li>Multi-language spell checker</li>\n<li>Automatic updates</li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-reporting-issues\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zulip/zulip-desktop/blob/main/#reporting-issues\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Reporting issues</h1>\n<p dir=\"auto\">This desktop client shares most of its code with the Zulip webapp.\nIssues in an individual organization's Zulip window should be reported\nin the <a href=\"https://github.com/zulip/zulip/issues/new\">Zulip server and webapp\nproject</a>. Other\nissues in the desktop app and its settings should be reported <a href=\"https://github.com/zulip/zulip-desktop/issues/new\">in this\nproject</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zulip/zulip-desktop/blob/main/#contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contribute</h1>\n<p dir=\"auto\">First, join us on the <a href=\"https://zulip.readthedocs.io/en/latest/contributing/chat-zulip-org.html\" rel=\"nofollow\">Zulip community server</a>!\nAlso see our <a href=\"https://github.com/zulip/zulip-desktop/blob/main/./CONTRIBUTING.md\">contribution guidelines</a> and our <a href=\"https://github.com/zulip/zulip-desktop/blob/main/./development.md\">development guide</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"https://github.com/zulip/zulip-desktop/blob/main/#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h1>\n<p dir=\"auto\">Released under the <a href=\"https://github.com/zulip/zulip-desktop/blob/main/./LICENSE\">Apache-2.0</a> license.</p>\n</article></div>", "readmeOriginal": "<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><h1 dir=\"auto\"><a id=\"user-content-zulip-desktop-client\" class=\"anchor\" aria-hidden=\"true\" href=\"#zulip-desktop-client\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Zulip Desktop Client</h1>\n<p dir=\"auto\"><a href=\"https://travis-ci.com/github/zulip/zulip-desktop\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/e98091351cd0011c0cb64ff33549a9e174df499d732ef291a984d4e81393efbc/68747470733a2f2f7472617669732d63692e636f6d2f7a756c69702f7a756c69702d6465736b746f702e7376673f6272616e63683d6d61696e\" alt=\"Build Status\" data-canonical-src=\"https://travis-ci.com/zulip/zulip-desktop.svg?branch=main\" style=\"max-width: 100%;\"></a>\n<a href=\"https://ci.appveyor.com/project/zulip/zulip-desktop/branch/main\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/bdd855c67c0800ab901154931e2acce56566bc08084237b9479a651c153f8cea/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f6769746875622f7a756c69702f7a756c69702d6465736b746f703f6272616e63683d6d61696e267376673d74727565\" alt=\"Windows Build Status\" data-canonical-src=\"https://ci.appveyor.com/api/projects/status/github/zulip/zulip-desktop?branch=main&svg=true\" style=\"max-width: 100%;\"></a>\n<a href=\"https://github.com/sindresorhus/xo\"><img src=\"https://camo.githubusercontent.com/5bb70780e963bd4f1abe6d7bbc75117790b4b291012dc80b1d1cd0606989bfaa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d584f2d3565643963372e737667\" alt=\"XO code style\" data-canonical-src=\"https://img.shields.io/badge/code_style-XO-5ed9c7.svg\" style=\"max-width: 100%;\"></a>\n<a href=\"https://chat.zulip.org\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/11e6556bfe778e7cf7331cac9c44bd0616062722036cc0d9bb0b7909aaae8779/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7a756c69702d6a6f696e5f636861742d627269676874677265656e2e737667\" alt=\"project chat\" data-canonical-src=\"https://img.shields.io/badge/zulip-join_chat-brightgreen.svg\" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">Desktop client for Zulip. Available for Mac, Linux, and Windows.</p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/72d743305308fe950fdcdae992a03724763b5887a69662ebb2ce37d56a54f5b4/68747470733a2f2f692e696d6775722e636f6d2f73316f365452412e706e67\"><img src=\"https://camo.githubusercontent.com/72d743305308fe950fdcdae992a03724763b5887a69662ebb2ce37d56a54f5b4/68747470733a2f2f692e696d6775722e636f6d2f73316f365452412e706e67\" alt=\"screenshot\" data-canonical-src=\"https://i.imgur.com/s1o6TRA.png\" style=\"max-width: 100%;\"></a>\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://camo.githubusercontent.com/83ebc67b19b579d1a3cac4c07d3298c40ffd269457ac71e7e3a7e445002e8929/68747470733a2f2f692e696d6775722e636f6d2f76656b4b6e57342e706e67\"><img src=\"https://camo.githubusercontent.com/83ebc67b19b579d1a3cac4c07d3298c40ffd269457ac71e7e3a7e445002e8929/68747470733a2f2f692e696d6775722e636f6d2f76656b4b6e57342e706e67\" alt=\"screenshot\" data-canonical-src=\"https://i.imgur.com/vekKnW4.png\" style=\"max-width: 100%;\"></a></p>\n<h1 dir=\"auto\"><a id=\"user-content-download\" class=\"anchor\" aria-hidden=\"true\" href=\"#download\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Download</h1>\n<p dir=\"auto\">Please see the <a href=\"https://zulip.com/help/desktop-app-install-guide\" rel=\"nofollow\">installation guide</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-features\" class=\"anchor\" aria-hidden=\"true\" href=\"#features\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Features</h1>\n<ul dir=\"auto\">\n<li>Sign in to multiple organizations</li>\n<li>Desktop notifications with inline reply</li>\n<li>Tray/dock integration</li>\n<li>Multi-language spell checker</li>\n<li>Automatic updates</li>\n</ul>\n<h1 dir=\"auto\"><a id=\"user-content-reporting-issues\" class=\"anchor\" aria-hidden=\"true\" href=\"#reporting-issues\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Reporting issues</h1>\n<p dir=\"auto\">This desktop client shares most of its code with the Zulip webapp.\nIssues in an individual organization's Zulip window should be reported\nin the <a href=\"https://github.com/zulip/zulip/issues/new\">Zulip server and webapp\nproject</a>. Other\nissues in the desktop app and its settings should be reported <a href=\"https://github.com/zulip/zulip-desktop/issues/new\">in this\nproject</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-contribute\" class=\"anchor\" aria-hidden=\"true\" href=\"#contribute\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>Contribute</h1>\n<p dir=\"auto\">First, join us on the <a href=\"https://zulip.readthedocs.io/en/latest/contributing/chat-zulip-org.html\" rel=\"nofollow\">Zulip community server</a>!\nAlso see our <a href=\"./CONTRIBUTING.md\">contribution guidelines</a> and our <a href=\"./development.md\">development guide</a>.</p>\n<h1 dir=\"auto\"><a id=\"user-content-license\" class=\"anchor\" aria-hidden=\"true\" href=\"#license\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg></a>License</h1>\n<p dir=\"auto\">Released under the <a href=\"./LICENSE\">Apache-2.0</a> license.</p>\n</article></div>", "readmeFetchedAt": "2022-05-10T00:08:16.189Z" } }