Skip to content

Cloud2BR/File-Format-Converter

Repository files navigation

File Format Converter

Atlanta, USA

GitHub Cloud2BR OSS - Learning Hub

Last updated: 2026-06-10


A free, private, in-browser file format converter deployed to GitHub Pages. Upload a file, pick a target format, click convert, and download the result. Every conversion runs locally in your browser — files are never uploaded to a server.

Live app

The project is deployed to GitHub Pages via GitHub Actions, with two environments driven by the main and test branches:

Branch Environment Description URL
main Production Stable release served at the site root. https://Cloud2BR-MSFTLearningHub.github.io/File-Format-Converter/
test Staging Preview of in-progress work served under the /test/ path. https://Cloud2BR-MSFTLearningHub.github.io/File-Format-Converter/test/

Supported conversions

From To
Markdown HTML, PDF, Word (.docx), PowerPoint (.pptx)
Word (.docx) HTML, Markdown, PDF
PDF Images (per page + ZIP of all pages), extracted text
HTML Markdown, PDF
Plain text Markdown, HTML, PDF, PowerPoint
CSV JSON
JSON CSV

Note

PDF → images renders each page to PNG. You can preview and save pages individually, and also download a ZIP containing every page.

How it works

The app is a single-page React + TypeScript project built with Vite. A small conversion engine (src/converters/) maps each input format to its available targets and runs the matching browser library:

  • marked — Markdown → HTML
  • mammoth — Word → HTML
  • turndown — HTML → Markdown
  • docx — Markdown/text → Word
  • pdfjs-dist — PDF rendering and text extraction
  • pptxgenjs — slides from headings
  • papaparse — CSV ↔ JSON
  • html2pdf.js — HTML → PDF
  • jszip / file-saver — packaging and downloads

Local development

npm install
npm run dev      # start the dev server
npm run build    # type-check and produce the production bundle in dist/
npm run preview  # serve the built bundle locally

Deployment

.github/workflows/deploy-pages.yml builds the app and deploys it to GitHub
Pages on pushes to main and on manual runs. Pushes to test trigger an automatic
dispatch of the same workflow on main (to satisfy github-pages environment protection rules).
Both environments ship in a single
Pages artifact:

  • main → built with base /File-Format-Converter/ → served at the site root /.
  • test → built with base /File-Format-Converter/test/ → served at /test/.

Smart refresh behavior:

  • Push to test → refreshes /test/ first, while production (/) is reused from cache when possible.
  • Push to main → refreshes production (/) first, while /test/ is reused from cache when possible.

Repository automation

This repo keeps the organization's standard pipelines:

Workflow Trigger What it does
.github/workflows/deploy-pages.yml Push to main / test and manual runs Deploys from protected main only; test pushes auto-dispatch a main run in test-refresh mode. Rebuild priority is branch-aware (test -> /test/, main -> /).
.github/workflows/cleanup-deployments.yml After Pages deploy success, daily schedule, and manual runs Keeps only the two newest deployment records in the github-pages environment and prunes older ones.
.github/workflows/validate_and_fix_markdown.yml Pull requests to main Runs markdownlint, auto-fixes Markdown style issues when possible, validates the required header block for every tracked Markdown file, and pushes any fixes back to the PR branch.
.github/workflows/update-md-date.yml Pull requests to main Looks at the full PR diff, updates the Last updated: line inside the standard Markdown header block for changed Markdown files, and pushes the result back to the PR branch.
.github/workflows/validate_and_fix_notebook.yml Pull requests to main Validates Jupyter notebooks, normalizes widget metadata when needed, and commits notebook-format fixes back to the PR branch.
.github/workflows/use-visitor-counter.yml Pull requests to main and manual runs Runs the vendored visitor-counter script stored in this repo to refresh Markdown counter badges and metrics.json, then commits the updated repository traffic data.

Total views

Refresh Date: 2026-04-07

About

About Demo web app that lets users upload their files and choose the format in which they will like their final format from the options

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors