Comments (4)
High Level Design Overview:
In order to make the engineering of tag editing easier, we need to separate Planktos into multiple components: lib, service worker, tag editor, and CLI. The flexibility that Planktos offers users is currently abstracted away into the service worker component, which we provide opinionated implementations of e.g. resiliency for static websites and CDN for video. Since there are now multiple paths to intercepting requests for static resources, we need to introduce the onIntercept event handler, which users can customize in order to serve different use cases. This event handler will run upon rendering the page or in the service worker upon intercepting a network call, allowing the user to customize the behavior of Planktos without having to consider the way that the call was actually intercepted.
The tag editing component is going to require editing the user's HTML in the build phase, dynamic rendering of edited tags (can be disabled if WebTorrent isn't supported), and execution of the user defined onIntercept event handler. Additionally, we are going to utilize this build phase to include the code for dynamic rendering and the SW install script.
from planktos.
I'm going to start out with the parse5 HTML parser: https://github.com/inikulin/parse5
It is used in Angular and Polymer, so its probably pretty stable.
from planktos.
Tags that need to be edited: <audio>, <base>, <iframe>, <img>, <link>, <object>, <picture>, <source>, <track>, <video>
from planktos.
Resources:
- Example of how to render WebTorrent files/streams to the DOM (webtorrent/webtorrent#879 (comment))
from planktos.
Related Issues (20)
- Handle Base URL
- Set Content-Type in Response HOT 1
- Tag Editing
- Future Ideas HOT 2
- Integrate PermaTorrent HOT 1
- Discussion Thread HOT 8
- An in-range update of mocha is breaking the build 🚨 HOT 1
- Necessary Steps for Releasing an MVP
- Change public interface HOT 2
- An in-range update of mocha is breaking the build 🚨
- Usage of external torrent files
- An in-range update of create-torrent is breaking the build 🚨 HOT 4
- An in-range update of run-parallel-limit is breaking the build 🚨 HOT 1
- Version 10 of node.js has been released
- An in-range update of karma is breaking the build 🚨 HOT 2
- An in-range update of nodemon is breaking the build 🚨 HOT 8
- An in-range update of convict is breaking the build 🚨 HOT 1
- An in-range update of browserify is breaking the build 🚨 HOT 2
- An in-range update of karma-firefox-launcher is breaking the build 🚨 HOT 1
- Is there any update on this project?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from planktos.