SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
mh-ssg | jellybean | |
---|---|---|
13 | 12 | |
1 | 1 | |
- | - | |
0.0 | 0.0 | |
over 2 years ago | over 2 years ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mh-ssg
Posts with mentions or reviews of mh-ssg.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-11-18.
-
Publishing my first package
This week, I've published my 1st package on npm - mh-ssg - a static site generator CLI.
-
Adding Continuous Integration to a Project
I also worked on another project, mh-ssg, and added tests to this project as well. I created unit tests for a function called processFolder(). This function accepts an input folder path, output folder path and stylesheet URL. I created two unit tests, one which tests when a valid input folder containing files is passed to the function and one which tests when a non-existent folder is passed to the function. The function logs a message to the console depending on how many files are saved in the output folder, so the tests I wrote tested for these console logs.
-
Add testing to SSG
For this lab, I picked Jest as the testing tool for mh-ssg. This is a popular Javascript testing framework thanks to its simplicity and ease of usage.
-
Adding Static Analysis Tools to SSG
To maintain the quality of source code, I added a formatter and a linter for my project.
-
Static Site Generator - Support static files
Throughout the previous week, I was exploring Docusaurus and found that they have a feature to support static files. I find this feature very useful for any static site generator since images, favicons, stylesheets, etc. are very common parts of a webpage. Therefore, I decided to add this feature in my tool.
-
Code Refactoring and Rebase
As new features are added to the tool, I realized that the logic is not clear anymore and some parts were duplicated, making it inefficient and hard to maintain. This time, I decided to focus on removing those duplications by moving the statements to the appropriate place and extracting function for reusability. All the refactoring was done through a single commit with the help of git rebase.
-
Working with git remote - approving new feature
Luke also implemented the same feature for my project. His code in general was good but I suggested some changes including separating modules and combining functions to remove code duplicates.
-
A different way of reviewing pull requests
After looking through my classmates' projects, I decided to work on Minh Hang's static site generator and filed an issue to her repo.
-
Merges and conflicts
In the last update, my friend - Dustin - helped to add Markdown as a valid input for my tool. Markdown syntaxes are different from HTML syntaxes and he has worked on converting some of them. This time I decided to add two more:
-
Collaboration and pull requests
I've been sending a lot of pull requests but this was actually my first time receiving one 😄 and Dustin was my first contributor. He also proposed to add Markdown support for my tool and to parse all the headings, bold, italics and link from markdown into the corresponding HTML tags. I scanned through the pull request and found some minor issues, including missing new feature in documentation and missing the handling of the output file name. We also had different opinions about the implementation of .txt file and .md file. However after discussion, we came to agreement and I approved his changes.
jellybean
Posts with mentions or reviews of jellybean.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-11-18.
-
Adding Continuous Integration to a Project
After writing a few unit and E2E Integration tests for my static site generator, Jellybean, last week, this week I added Continuous Integration to the repository. It was very easy to set up and is useful if you or other contributors forget to manually test while making changes. It ensures that changes or pull requests made to the main branch are automatically tested by running a workflow.
-
Adding Continuous Integration - GitHub Actions
For Leyang's project, I found that getHtlmlTitleBody() was not tested yet so I decided to contribute some tests to it. This function accepts the content of the file as a string and a boolean indicating whether it's a text file or not, it then returns an object with 2 properties: title and body.
-
Testing Using Jest
This week, I continued working on my static site generator Jellybean and focused on creating and running tests for the program. I decided to use Jest for testing, mostly because it was what was recommended and I have tried other tools such as Jasmine and Karma before, but not Jest, so I thought this would be a good opportunity to learn how it works.
-
Adding Markdown Support to a Static Site Generator
For my own static site generator, Jellybean, one feature of Docusaurus that I wanted to implement was full markdown support. This is because my static site generator previously only had partial markdown support, which is not very user-friendly. Thankfully, there are a some great open-source libraries which can provide full markdown support and I decided to use markdown-it for my project.
-
Refactor and Rebase
It was my first time learning about interactive rebases and I found this process to be so useful as it gives you so much freedom in customizing your commits. I used the interactive rebase command (git rebase main -i) to squash all my commits into a single commit. In addition, I used the git commit --amend command to modify my commit message and add more details. After this exercise, I feel so much more confident in using rebases to modify my commits and project history.
-
Supporting JSON config file
This week, I worked on Leyang Yu Static Site Generator project called jellybean. I added a new issue on her repo to let her know that I wanted to add a new --config option to support a JSON config file. Luckily she agreed, so I got started right away.
-
Working Remotely (in Git)
I also received an issue and pull request to my repo. I had a lot of great discussion with Francesco and he mentioned that he was "really seeing the benefit of code review now" after I tested his changes and made several suggestions. I was able to test his code by adding his repo as a remote to my local repo and creating a tracking branch. After going back and forth a few times and fixing all issues, I was successfully able to merge Francesco's branch with my main branch.
-
Adding Features - Branches and Merges
I've been working on a static site generator called Jellybean over the past few weeks and this week, I wanted to add a few more features:
-
My First Collaboration!
For this lab, I decided to contribute to Leyang Yu project, Jellybean SSG, . He is also using JavaScript so I decided that it would be a good idea to try adding to his project, so I filled and Issue Issue #6.
-
Working with Others Part 2: Pull Requests
Similarly, Gustavo created an issue, added markdown support, and created a pull request for my repo. I provided some comments.
What are some alternatives?
When comparing mh-ssg and jellybean you can also consider the following projects:
yargs - yargs the modern, pirate-themed successor to optimist.
Docusaurus - Easy to maintain open source documentation websites.
GMOT-SSG - My Static Site Generator!
mini-ssg - MINI - A minimalist static site generator written in JS.
ssgApplication
markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
purl - Pretty print the contents of a resource at a URL