To enhance the website and repository and provide more value to newcomers that might be unfamiliar with JS, programming, web development or simply some terminology, we will be launching a glossary of JS,programming and webdev terms on a separate page and file. Here's the list of things we need to do before we launch this feature, as well as an incomplete list of terms we should document:
librarian script (I'd love to call it that, but we can call it something more sensible), that adheres to our current style, build a README in /glossary. assigned: _@flxwu_keyword_database and its respective script for glossary terms to make search and term tagging more dynamic. assigned: _@flxwu_webber script to generate a glossary page, similar to any tag page.Before moving forward, the barebones guidelines for glossary terms are:
In general, I would like this to be a complete-ish guide to JS, programming and webdev. What goes in it?
this comes to mind).A very incomplete list of terms that should be documented:
this and bind__proto__ and prototypeThis list is definitely not complete and MDN has a ton more entries we could include, but I think it's a decent start.
Opinions, suggestions and more ideas for terms are appreciated, let's get started!
Btw, my list is extremely unorganized, use Ctrl+F to find and mark each item.
Hmm... I was gonna suggest why not point to MDN articles until I realized how AWFUL those can be for beginners... This might not be such a bad idea. Maybe call this 30 Seconds of Jargon? Organize it by language then bullet point?
Would like to add Element(JS) as a disambiguation so that people might learn about creating Elements programatically
So optional examples, and external links... how should we go about this?
Let's do JS for now and keep it simple, more like a cheatsheet for people not familiar with some terminology and jargon in the industry. Examples are not something I'd consider integral for now, but links to external resources such as MDN sound like s good substitute for people who would like to read some more on each topic.
TODO: fill necessary checkboxes in this issue once changes from my PR are merged.
Merged both PRs by @fejes713 and @skatcat31 and marked the necessary checkboxes. I'll probably contribute a term or two today, as well. We seem to be moving forward at a decent pace already, this should not take too long until we have a reasonable amount of glossary terms in our little glossary. Keep up the good work, guys!
TODO:
http and https should be under the same definitionMerged another one, checkboxes have been filled. Naming for both terms is a bit funky but we will figure it all out right before launching the glossary, as we will recheck everything and consider the issues we have.
I'm curious if we should go ahead with that merge request or do another glossary note about the automatic instancing of literals?
We will inevitably end up with a backlog of PRs that we have questions about, I'll mark then as on hold to merge them all in the end. As more questions arise and we discuss them further, we will reach some general guidelines for what to add where and how to phrase it. It's like the good old days of when the project was about a week old and guidelines were changing rapidly, only this time we know how to tackle it better.
projects are fun like that
@Chalarangelo what should the README look like? just a TOC and then a concatenation of all term explanations?
@flxwu Yep, a simpler version of the main README I suspect.
Then I'll take over that script 馃憤 @Chalarangelo
Do we want a script to generate the keyword_database? @Chalarangelo
@flxwu My opinion or how I envisioned it anyways:
library.js called librarian in package.json that creates a README.md in the /glossary folder similar to our main README only simplerkeyword.js called keymaker in package.json that creates a keyword_database in the /glossary folder similar to our tag database only simpler.I'm not set on the names, but they sound rather funny, so I kinda like them. If you got better ideas, feel free to comment below. Btw, I think it's important to have the /glossary folder set up with its own scripts instead of appending to existing ones, as this can make use of the stages system in Travis and save some time during builds.
yep, that's how I'd have done it too. 馃憤 then I'd like to take over writing the keyword script as well!
I'd have called them dewey for librarian and houdini for keymaker but that's just me being a dork.
Dynamic programming will not be initially implemented, it's an algorithmic technique, it needs a little bit of theory to make sense and is not that extremely important to a beginner. Marking it as complete for now.
this, bind, __proto__, prototype will not be documented right now. We could work on keywords later down the line as a Phase 2 of the Glossary or let MDN explain them like it always has. Terms like these might also need longer explanations, which is not exactly what I was aiming for originally, as I wanted the glossary to be a quick lookup guide for beginners and people who seem to not know a term or two.
Marking maps/dictionaries as complete, it's a bit too generic and more about data structures than I'd like. We could come back to this later.
Also checking MariaDB as we would have to add terms for MySQL, PostgreSQL and SQL Server, too. MongoDB can stay just because it comes up too often to ignore.
I did some reviews on them. Otherwise this is a great feature so far and great work!
As it currently stands, we have a sizeable list of terms ready for the glossary. The keymaker script could use a bit of work and we should make the glossary web script sooner or later. I'm planning to revamp the website, so I will work on the glossary web page and the tooltip idea. I'm also planning to write an article about the glossary and an intro to the JS ecosystem eventually, so we can officially launch the feature in about a month or so.
After merging #738, the glossary is live here: https://30secondsofcode.org/glossary
Fantastic! @Chalarangelo
Maybe we should add some kind of search here as well?
Search and menus are coming to the glossary eventually, I want to revamp the whole sidebar to include static pages and settings, so I'll probably open an issue for brainstorming soon.
Seems like a fantastic idea for static pages! 馃憤
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for any follow-up tasks.
Most helpful comment
After merging #738, the glossary is live here: https://30secondsofcode.org/glossary