TarantinoArchive / won

Licence: GPL-3.0 license
A new way to see HTML Web Pages

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to won

Awesome Ci
List of Continuous Integration services
Stars: ✭ 2,737 (+18146.67%)
Mutual labels:  development, comparison
ducky
Chrome extension to overlay a (super adorable) rubber duck, as a virtual companion during rubber duck debugging.
Stars: ✭ 80 (+433.33%)
Mutual labels:  development
flutter ume
UME is an in-app debug kits platform for Flutter. Produced by Flutter Infra team of ByteDance
Stars: ✭ 1,792 (+11846.67%)
Mutual labels:  development
react-native-text-area
Simple and easy to use TextArea for React Native.
Stars: ✭ 20 (+33.33%)
Mutual labels:  development
nvim-config
My neovim config
Stars: ✭ 63 (+320%)
Mutual labels:  development
Cheatsheets
Quick reference material for techies
Stars: ✭ 66 (+340%)
Mutual labels:  development
SemiCode-OS
The World First Linux Distribution for Programmers and Web Developers
Stars: ✭ 16 (+6.67%)
Mutual labels:  development
reactive-states
Reactive state implementations (brainstorming)
Stars: ✭ 51 (+240%)
Mutual labels:  comparison
awesome-shopify
👩‍🎓👨‍🎓 Must-read articles, videos and books for store owners, app and theme developers.
Stars: ✭ 86 (+473.33%)
Mutual labels:  development
easydock
Dockerize your PHP apps ;)
Stars: ✭ 52 (+246.67%)
Mutual labels:  development
frontend-tools
Links to front-end development tools
Stars: ✭ 143 (+853.33%)
Mutual labels:  development
CFE-Blank-Project
A blank Django Starter Project that includes Docker support.
Stars: ✭ 17 (+13.33%)
Mutual labels:  development
frameworks-code-comparison
🆚 🔥 Code comparison of modern web frameworks, based on React, Angular and Vue.js
Stars: ✭ 87 (+480%)
Mutual labels:  comparison
Brahma
Brahma - Privilege elevation exploit for Nintendo 3DS
Stars: ✭ 34 (+126.67%)
Mutual labels:  development
iOS-11-Swift-Programming-Cookbook
O'Reilly's iOS 11 Swift Programming Cookbook Sample Codes
Stars: ✭ 73 (+386.67%)
Mutual labels:  development
PowerShell-Watch
A PowerShell Watch-Command cmdlet for repeatedly running a command or block of code until a change in the output occurs.
Stars: ✭ 49 (+226.67%)
Mutual labels:  comparison
healthier
🧘‍♀️ Healthier is an opinionated style agnostic code linter – a friendly companion to Prettier
Stars: ✭ 78 (+420%)
Mutual labels:  development
remote-docker-aws
Remote Docker for local development hosted using AWS
Stars: ✭ 22 (+46.67%)
Mutual labels:  development
illogical
A micro conditional javascript engine used to parse the raw logical and comparison expressions, evaluate the expression in the given data context, and provide access to a text form of the given expressions.
Stars: ✭ 16 (+6.67%)
Mutual labels:  comparison
hacktoberfest-flutter
An app to find repositories on Github and to view the various contributors to said repos.
Stars: ✭ 25 (+66.67%)
Mutual labels:  development

WON

Web Object Notation

Introduction

Won is a multi purpose HTML/CSS to JSON (and vice-versa) converting tool. It is very useful for various applications in the field of web development, for example it helps a lot in web pages parsing and modification in some tedious languages like C, because all you have to do is use an easy JSON. I made WON because recently, while making a web scraping project with C++, I noticed that in languages like this is very difficult to get a code (and human) friendly representation of an HTML page. (It is also my very first Open Source Project!)

Table of Contents

  1. How is it made
  2. How does it works (CLI)
  3. How does it works (JS)
  4. Comparison
  5. Features
  6. How to install
  7. Support

How is it made?

It is currently made in Node.JS, using htmlparser2 (go check their repo, this is an awesome Node Package) because this was the fastest implementation for HTML parsing on the NPM scenario.

(For the CSS Parsing I was struggling a bit, then I found an answer on Stack Overflow with a pretty decent already made algorithm for CSS parsing, so I said "Why not?". I just increased the readability of the code, but the algorithm is took from that answer.)

How does CLI works

It is currently a CLI utility and a JS library. Alongside the JS version, other languages binding will be developed.

Using won -hj pathToFile.html you will get a JSON output file, structured like a valid WON Object. Using won -jh pathToFile.json you will get a HTML file. Same for CSS, but use a c instead of the h (example: won -cj pathToFile.css). Add -o outputName.o to determine a name for the output file.

How does JS binding works

Alongside the JS version, other languages binding will be developed.

Example code

const won = require("won");
let exampleHTML = `
<html>
    <head>
        <title>Test</title>
    <head>
</html>
`
let wonObject = won.HTMLtoJSON(exampleHTML);
console.log(wonObject.children[0].children[0].text); // Test

In the next paragraph, there is the correct WON Object Structure. For more documentation on functions, parameters and return types, check won.js.

Comparison

HTML JSON

JSON is quite longer than the HTML document, but it can be easily read by most languages

Features

() Done | () Work in Progress | (🔜) Will soon be WIP

  • HTML to JSON ()
  • JSON to HTML ()
  • Installing to PATH via NPM ()
  • Adding help in CLI ()
  • CSS to JSON ()
  • JSON to CSS ()
  • JavaScript binding ()
  • Other Languages binding (🔜)
  • Tools using WON (🔜)

How to install

Currently, is supported manual installation, and NPM installation.

NPM Installation:

  1. In terminal, write sudo npm install won-js -g
  2. Enjoy!

Manual Installation:

  1. In terminal, write git clone https://github.com/GianlucaTarantino/won.git (or just download the repo)
  2. Go to the repository directory
  3. In terminal, write sudo npm link
  4. Enjoy!

Now you can use WON as described before!

Support

For support, just create an issue or contact me at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].