Comments (5)
I like this suggestion. I managed to quickly write up some code for this and ported the first exercise HTML data over this way. Already it revealed that there were some typos etc. in the HTML. Porting the remaining 132 exercises will be a bit tedious but should be done before too long.
from qed.
Great! A few suggestions on this approach:
- Prefix the element id's with
exercise-
since id's should be globally unique within the document, and there could a priori be other types of objects. - Use
document.getElementById()
to locate elements by id. - Wrap the HTML to a shorter line length (e.g. 80-100 characters or so) to make it easier to read in the GitHub UI and text editors and so that diffs and merges, etc. will be easier.
You can also use JS selectors to more elegantly find the data within an HTML element (e.g. "find the first child with class attribute 'notes'," etc). So you would have code for each exercise attribute you want to set, instead of looping over every child with a switch statement on the class name. (This is more of a style judgement.)
from qed.
PS - If you’re not already doing this, it could also help to maintain in the JavaScript a dictionary of the exercises mapping the short name or ID to the corresponding Exercise object. This will be useful for e.g. storing the “unlocks” info as data. The unlocks info could then be stored as e.g. a space-delimited attribute value of the div for that exercise.
from qed.
OK, I'm done for now; I've prefixed the id's and formatted some of the HTML (not the proofs though, as this would be rather tedious and I would expect them to be rarely edited by hand).
I have an exerciseList array that could be used for mapping ids to exercises if need be, but at present there isn't a need for it, so I haven't bothered to code a lookup routine yet.
Using a selector would indeed be more elegant, but it ain't broken right now, so I'm not fixing it.
from qed.
FYI, I added initial support for also storing the "unlockedBy" info in the HTML, and did this for the first couple exercises as an example.
from qed.
Related Issues (20)
- Prevent the same formula/term/conclusion from being formed more than once HOT 1
- Add deduction `NOT FALSE` when dragging `FALSE` into an environment HOT 1
- Better ordering of available deductions: term-specific deductions before generic deductions HOT 2
- Add Prev/Next Exercise button and hotkeys HOT 1
- Matching not implemented for every proved law with THERE EXISTS and FOR ALL involved HOT 4
- Possibility to remove existing items? HOT 1
- Distinction between predicates and operators HOT 1
- Choose a better name for Notifications window, add new entries to the front HOT 1
- Add more variants of laws that are dependent of the order of `AND`/`OR` HOT 3
- Refactor Exercise creation HOT 3
- Reset single exercise HOT 3
- Start adding tests
- How to apply cancellation law?
- Bug or feature?: I could get the solution of every exercise without solving it. HOT 1
- Add setting of banning circular proof HOT 1
- The version displayed on the page is still 2.10.3 HOT 1
- Not showing no available deductions after press 'c' HOT 1
- bug: Ctrl click don't clear when restarting / switching exercises HOT 1
- Create iOS app?
- Solution to 7.1 is not fair, based on unlock from 6.2 HOT 2
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 qed.