Comments (2)
Need to rethink schema and approach — runes, zuse, stdlib all would have too much TOML since they have many many glossary entries on one page. As long as it's pairing content and metadata, it's a solution ...
from developers.urbit.org.
It turns out that we have operators glossary entries! So each site technically has metadata that could be exposed in a glossary.
My current approach:
Splitting up the glossary into metadata entries
- Creating a script to walk the glossary, strip it to a
.md
path, and access that file in the directory. - Access its
data, content
variables. - Append a TOML entry to the
data
variable that looks like:
[glossaryEntry]
[glossaryEntry.agents]
slug = "agents"
name = "Print out the status of Gall agents on a desk"
symbol = "+agents"
usage = "Dojo"
desc = "Dojo utility included in the %base desk."
Multiple entries per page would add additional entries under their slug.
- Rewrite the entire file, pairing the new data with the content it had.
- Write this as a sequential promise resolver via
.reduce()
.
I'd run this on each site and it would effectively spread the glossary out per page with per-slug entries in the TOML.
Writing the glossary on build
Next I'd write a script like buildPageTree.js
to take each page's glossaryEntry
sections and compile them into a .js file that gets cached.
I'd deploy this for each site's build process.
Rewriting search logic to pair glossaries and search results per website
At first I thought, why not have the developers website build its glossary from other sites' glossaries and serve as the source of truth? The trouble is that if another site's glossary updates, the source of truth won't update until that site rebuilds, causing unpredictable behaviour when changing docs.
Instead, I should change the APIs per site to search both their own glossaries and search results and return a pair. The search rendering logic on each site should then expect to split up the data accordingly and make them into one big glossary section and one big search result section. This seems like the best option for keeping results current while maintaining current performance.
from developers.urbit.org.
Related Issues (20)
- remove advanced types guide, replace with core variance guide
- improve accepts/produces structure of stdlib reference
- remove constants section in runes section
- combine limbs/wings guides
- revamp threads docs
- rework scries overview doc
- rework move trace doc
- nock: restructure definition
- nock: separate instruction reference into own doc
- nock: rewrite explanation
- nock: rework example
- nock: review implementations page
- vere: review/update/expand whole section
- additional cryptography ref needs review & possibly expansion
- move mips ref into hoon section HOT 1
- warn about scrying agents in +on-load
- change instances of term/knot being described as ASCII
- document eyre caching
- fix gall %x vane scry return type
- rework parser descriptions
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 developers.urbit.org.