formsMD (fMD)

formsMD (fMD)

21 devlogs
31h 41m
•  Ship certified
Created by luna

Ever wanted to easily create a form Without relying on big tech (like Google or Microsoft) or having absurdly low limits (like Limesurvey)? This is for you! Create your form for free and publish it on your favorite free hosting provider (like GitHub / GitLab / Cloudflare Pages). No limitations, no cost!
Additionally this is an extension to Markdown! Write all the form elements in easy-to-write, easy-to-read format and include Markdown for styling everything! And you can edit it offline in your favorite text editor!

This tool already includes many different question types to gather different kinds of insightful data:
🖹 Free Text (one or multi-line; optionally add auto-completion suggestions; different types: number, date, email, etc.)
🔘 Multiple Choice (Radio; optionally add an "other" answer to allow free text answers)
☑ Checkbox (optionally add an "other" answer to allow free text answers)
🌢 Dropdown (optionally add optgroups / non-selectable entries for categorization)

---

Note: When clicking submit in the demo survey, make sure to open with a mail application (such as Outlook, GMail, etc.) when prompted. To submit the survey you need to send that email, so you need to have an email account set up in that mail application.
(When doing your own forms you can choose alternative methods, which don't require this step)

Timeline

Ship 1

0 payouts of shell 0 shells

luna

4 days ago

luna Covers 21 devlogs and 31h 41m

I needed to fix a small bug. Thankfully I noticed it before shipping:

My /core_convert/filter.py was coded really weirdly (by me), so not every case was covered. I first didn't know what happened, but after I found the error it was a quite simple fix using some regex instead of the Python native str in str.

Additionally I created a new thumbnail to hopefully get more votes on this project!

Update attachment
luna
luna
5h 20m 5 days ago

I did some things from /todo.txt, to make the service a better product in general:
- complete CSS rework
- other text inputs only visible when other option is selected (may change to active in the future)
- filter.py full rework, as it was very bad code quality before.

This is also the release of v1.0, as I'm kinda afraid it wouldn't go through until end of August otherwise. So everything (should) work(s) now!

Update attachment

I have worked around 2 weeks on this with a very bad internet connection (max. 8kB/s), so Summer of Making didn't load at all. Here is a devlog of these two weeks and 5½ hours of work:

This project is getting close to a production-ready state, however my to-do list of things I could somewhen do is incredibly loooong... I have, however managed to already publish one form with fMD, and it worked great!

Features added:
- DROPDOWN - select your element out of a dropdown
- DATALISTS - get context-based suggestions for text inputs - BROKEN (MD processing breaks everything there)
- GLOBAL OPTIONS - set preferred submit method, title, etc.
- WORKING SUBMIT - using different services (formsubmit, mailto: link, etc.) the form can FINALLY be submitted! using formsubmit, it is a clean user experience, as no mail program, etc. needs to be installed.
- probably more I forgot about

Update attachment

Continued on the documentation for a new feature I will reveal once implemented! As a small hint: It's included in the Syntax of the screenshot.

Update attachment

improved a lot on the documentation (GitHub wiki), made a doc page for every question type, currently working on global options.
Additionally made a getting started guide for new users.

Update attachment

Added docs for different question types, so users can easily review the syntax.

added 'other' field for checkbox and radio questions

Update attachment

Started work on the wiki, so anyone can understand and use this tool

Update attachment

Minor bug fixes, e.g. newline chars in textareas not being transmitted to the mailto: URL
small improvement: changed a more complicated while statement to a regex '-+', to turn multiple hyphens in a generated qid into 1.

Update attachment

New Feature!
textareas, now you can promt your users to submit longer feedback, by including a multi-line textarea, just like the one you write your DevLogs in.

Bug Fixes:
I've fixed many minor bugs, the biggest of them being MD in divs not being rendered. Using the Markdown extension mdinhtml, I was able to still have it rendered though.

Update attachment

I've finished the stylesheet to make it look good, I've used multiple variables, so I can update them via JS and global options in the document in future DevLogs.

Here is the link for the live prview: https://0yqc.github.io/formsMD/output/page1.html

Update attachment

I started some work on the CSS to not only make it functional but also visually appealing, this is not finished yet, I'll make it look more beautiful tomorrow.

What's planned already?
- Options for the result, e.g. some CSS colors, info about where to send emails, etc.
- logic support, e.g. dynamically hide or show questions/answers
and more...

Update attachment

(In case you wonder, the submit action on the demo page doesn't work yet as the demo tool doesn't support JS)
(The currently generated page is just some random text and options I wrote to test everything out.)

first thing I did: added the support for all text input fields, as I started this yesterday it wasn't as difficult.

second thing: added a simple submit function with some JS cloning, I'll need to change it, since currently it always sends all form submissions to my personal email address. the plan is, to include these options at the top of the file:
- document name for the HTML title and email subject
- receiving email address for receiving all form submissions

Update attachment

I started to make the compiler for open-ended input questions (, etc.), however for that I needed to implement an options system where questions can implement options. And that took longer than expected...

So here I am after 1h37m and haven't finished text input yet, but am nearly done with the options, which will be a time-saver also for other question types.

If you wonder, why the code in the screenshot looks so short for that long coding time, it's because I tried a lot of other options before coming up with this complicated regex.

Update attachment

Added support for multiple-choice questions!

Now you can ask your survey or form participants a question where they need to decide themself.

It was basically just copying over the code from checkboxes and changing the generated HTML a bit to now include radio buttons.

Next up will be text input fields (+ email, etc.) and textareas.

Update attachment

Reworked Compiler!

Now I included more reusable code and made it cleaner in general by utilizing f-strings. Additionally the output now looks way cleaner and is even better styleable using CSS, since I used more IDs and classes.

with the new compiler I'll probably be able to do other question types in the near future...

Update attachment

finished up the checkbox conversion and fixing some bugs

added the markdown library to convert markdown to HTML (sudo apt install python-markdown-doc), so now I get the first outputs

as you can see on the screenshot, this project needs a lot of work to be competitive with the major forms platforms, but I'll maybe get there eventually

Update attachment

finished basic compiling for checkbox questions, the screenshot shows all the code I did for that.
is it the most efficient solutions? i don't think so
but does it work? yes, so I'm gonna keep it (at least for now)

next up will be multiple choice questions and then text input fields. In the end I would like logic and advanced options, let's what this project will evolve to...

Update attachment

Quick DevLog: Started to convert checkbox and multiple-choice questions to HTML elements

Update attachment

core conversion system: Big progress!

✅ open and process files for compiling
✅ filter out formsMD blocks for further compiling
⏳ compile fMD blocks into HTML elements

If you want to see this project process, consider following this project. If you have questions, just drop them in the comments or send them to 0yqc@duck.com
If you like this project, you may want to visit the GitHub repository.

Update attachment

Don't have a new image, but I started to do some work on the Core Conversion system, which is written in Python.
I'm not as fast, so in this hour I've mainly set the files up and done some script, that they can open input files.

My Plan:
- Filter out lines that are from formsMD and not regular MD
- let them compile using a custom compiler I will write
- insert the compiled HTML
- a MD library will handle the rest

Update attachment

Started to work on how the markup syntax looks like. It may change in the future though :)
Basically this should in the end be a python tool that converts this Markdown to a HTML/JS site. If you have any ideas on how to save the results using only a front-end site (e.g open-source online-services), please send them to 0yqc@duck.com. Thanks!

Update attachment