samchou19815 / website Goto Github PK
View Code? Open in Web Editor NEWA fleet of Sam's websites and tools powered by dev-sam infra
Home Page: https://developersam.com
License: GNU Affero General Public License v3.0
A fleet of Sam's websites and tools powered by dev-sam infra
Home Page: https://developersam.com
License: GNU Affero General Public License v3.0
It will allow them to be mocked and make the terminal less coupled with commands it can handle.
Right now, I have a very messy knowledge management system. A lot of knowledges are scattered all over the place:
private-monorepo
: a monorepo of some docs and code not appropriate for open sourcesamlang
: public documentation for samlang projectSome of them are github repos, some are not. Some have build systems, some do not. For projects that have build systems, they are all very different from one another. Until this point, I mostly depend on my brain to figure out where to look for things.
Recently I introduced algolia search to samlang
docs. It has been working great so far. To introduce search to all other knowledge management systems require setup self-managed crawler for every single one, which is very time consuming and very unlikely to materialize and keep up-to-date given my time constraint. Therefore, it's time to unity everything into a single system: at least, keep the infra code in the same place.
Right now this repo has some basic codegen for github action yml and ignore files. It needs be more powerful than that to support the new vault project. It should be able to automatically pull in another repository in CI as if it is a usual dependency. It also needs to be able to setup different environments in CI for different projects. (e.g. only vault needs google cloud CLI tools)
private-monorepo
to create deployment triggers.As noted in my open source roadmap, the current Wiki setup is far from ideal. For documentation purpose, let me list the architecture and the build system as the time the issue was created:
docusaurus build
. The build time is also significantly slowed down, because a lot of markdown files are pulled in.When initially designing the system, I seem to limit myself to Docusaurus. To be fair, Docusaurus is quite nice, but we have to accept the fact that it's primary use cases is for static sites. To some extent, a static site does make sense for the documents currently used for a private build. However, limiting ourselves to static site solution unnecessary constrained the architecture choices.
Instead, we could accept the outcome that we lose some of Docusaurus benefits, including
, we can design a much more scalable solution. Initial exploration in #790 shows that we can use remarkable
to dynamically render markdown with the same feature support that will likely to be used by myself.
Therefore, the wiki project will go dynamic. However, it doesn't mean that we have to completely drop Docusaurus for this. The static public docs can still be served by Docusaurus, and the dynamic content could just be another Docusaurus page. What I will happily give up is the ability to throw a markdown and let Docusaurus handle the rest.
Static public docs will remain fully managed by Docusaurus.
Private docs will no longer be pulled from a repo and built by Docusaurus. Instead, they will be stored in a firebase database, and fetched to frontend on demand. I will use remarkable
to render markdown on the frontend.
On the backend, the private docs is protected by firebase security rules. Each document should have a permission tag attached to it, so that permission control can become more flexible in the future. (e.g. Currently it's all or nothing, but in the future I can grant a subset of document to some people, without exposing the rest)
Right now we are building and deploying everything even if some projects have no changes.
TODO:
The repo tools subproject starts a year ago after I realized some limitations of GitHub actions: namely, the inability to provide native dependency analysis. Therefore, the tools start with GitHub Actions workflows codegen support, which does dependency analysis on its own and output the workflows with computed workspace dependencies sticked into trigger condition path.
When the repo is converted into Yarn 2, I have to check in the minified Yarn binary. This change causes the .eslintignore and .prettierignore to be out of sync with .gitignore, which implies that previous symlink approach would no longer work. Therefore, .eslintignore and .prettierignore codegen support is added to the repo tools.
Some time in the past, the repo tools also handled some dependency building, but it's no longer the case. Recently, more features are added to the tool to support automating the private wiki project. At this point, it would be clear that I need to rethink the scope of the repo tool project, to avoid letting it be the heap of everything marginally related to automation.
monorail
The tool only works for monorepo, so its name should start with mono.
After this project, several things should be achieved:
website
repo can be hardcoded into the source code anymore.Reinstate lib-firebase
!
Monitor https://caniuse.com/usage-table, make the switch when safari 14 usage surpasses that of safari 13.
dot-dev
www
Describe the bug
In 1600x900 and 1920x1080 window sizes, scrolling down the homepage results in the example SAMLANG code clipping over the card information.
To Reproduce
๐ View the site in 1600x900 and up. Strange behavior also happens at small screen widths where the About card clips the example SAMLANG code on the LHS.
Environment
Notes
The redesign looks really clean, great job :devsam:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.