This directory stores information and references for a training class that introduces Winlink Template and Form development.
Warning: Coding HTML, JavaScript, and CSS is an intermediate-level software development skillset.
Materials are set up in modules to build upon each other. By the time you are done with Module 4, you will have the basis for a functional, well designed and styled form.
This material is not comprehensive. As much as possible, I have reduced information down to bare minimums so that those new to web development can get onboarded and quickly start creating/editing basic Winlink Templates and Forms.
The code behind these modules is available here: wl-forms-training
Winlink Form: An HTML webpage with a specially crafted Form element designed to work directly with Winlink Express to simplify data input using a familiar web-based user interface.
Winlink Template: A plain text file with Winlink specific syntax that can help rapidly define a standardized Message Layout, and integrate easily with Winlink Forms.
You can approach working with modules one of a few different ways:
Choose whatever you are most comfortable with.
A compact overview of the repository layout with short descriptions.
. (root): README
|
\_ 1-hello-world - Beginner template: hello-world-template.txt
\_ 2-hello-form - Simple form + template: hello-form.html, hello-form-template.txt
\_ 3-form-functionality - Intermediate form + template example: functional-form.html, tagged-template.txt
\_ 4-form-style - Styled form example: styled-form.html, tagged-styledform-template.txt
\_ 5-txrx-forms - Transmit/Receive example forms: tx-form.html, tx-form-viewer.html, txrx-template.txt
\_ boilerplate - WDT's starter form example, and an updated HTML 5 version for reference
\_ tools - Helper script copies Template and Form file(s) to your Winlink Express installation's Global Templates directory
Notes:
1-hello-world.Instructions and background information in these modules will get increasingly more complex and lengthy.
Understanding the basics introduced in Modules 1 and 2 are probably the most critical short-term goals.
Longer term, it is up to you to seek resources and training to learn more about web development with HTML, CSS, and JavaScript. These skills will help you to build effective, attractive, and widely usable Winlink Forms.
Included Settings and Configuration files:
.vscode/settings.json: VSCode specific. Enable/Disable format on save. Sets ‘Prettier’ as default formatter.eslintrc.json: Opinionated JS linting, focused on ECMA 2015/ES 6. Highly recommended to follow (more) modern standards.htmlhintrc: Opinionated HTML 5 code style suggestions, based on HTML 5 standards. Recommended to meet most browser expectations..prettierrc: Opinionated HTML 5 formatting suggestions. Edit as you see fit.Below are recommended VS Code extensions to help create, update, and debug files in this project. If they do not install automatically, you can install/enable them manually.
If you want this list trimmed further or expanded with recommended themes or Git/GitHub helpers, update ./.vscode/extensions.json for your environment needs.
In VS Code:
Optional: To enable only for this workspace click the gear for the extension and then click “Enable (Workspace)”.
You can also install VS Code Extensions from a PowerShell terminal:
# Install an extension by its ID
code --install-extension <publisher.extension-id>
The VS Code Extension IDs are available at the Visual Studio Marketplace
After installing Winlink Express, look in its root installation folder for two files:
SkeletonForm.html: Starter Form file. Add CSS, JavaScript, and a template file to get going quickly (with caveats noted in Boilerplate Directory comments, below).TemplateHelp.txt: Keywords, usages, and examples for building Templates.Go to Winlink.org and peruse “HOW - TO Recipes” to find the following helpful resources:
insertion_tags.zip: Contains Insertion Tags.txt. A reference of ‘Commands’ and ‘Insertion Tags’, with a few usage examples.create_templates.pdf: Outlines the basics of Templates and Forms, usage of Templates directories, creating a low-complexity form and a display file. Includes an example template and form with form viewer file including CSS styling.rms_express_html_forms.zip: Contains a PDF version of ‘RMS_Express_HTML_Forms’ presentation by W4PHS. It has older screenshots in examples, but the concepts are largely the same.rms_express_message_templates.zip: PDF describes Template basics. Includes a sampling of Control Fields and Insertion Tags for prompting users for data and moving data between Forms and Templates.Use the Winlink Express Help system:
Provides basic starting points for new Winlink Forms. There are 2 files:
There are issues with the WDT’s skeleton form:
action has hard coded ‘localhost’ instead of using WDT’s standard {Form_Server} placeholder.<div> or other structural elements for simplified layout and style application.<p> should be used for text, not layout or functional elements.method and enctype attributes defined, so the Submit button does not need them.PowerShell helper script Copy-TemplateFormFilesToWinlink.ps1 copies template and form files into your Winlink Express templates folder.
Two common usages are shown below.
# Just copy the template file(s) from srcPath
.\Copy-TemplateFormFilesToWinlink.ps1 -srcPath 'C:\path\to\templates'
# Copy template file(s) and form file(s) from srcPath
.\Copy-TemplateFormFilesToWinlink.ps1 -srcPath 'C:\path\to\templates' -includeForms
The script will copy all *.txt template files from the specified -srcPath, and if -includeForms is provided it will also copy *.html form files.
Note: The script does not distinguish between multiple forms and template files, it simply copies them all.
Code is availble here: Bigfoot-Bib-Report-WL-Form
I have built an Express server that is designed to work with Winlink Express Forms to help with:
Find the project and instructions on how to deploy and use it at my GitHub repo mock-wle-server
The Winlink Developer Team (WDT) is a group of volunteers that take time out of their day to make Winlink (the system, the app, and the feature sets) work, providing support through a public forum, and producing regular updates to program, system, and documentation. They deserve our thanks and support.