Skip to content

Latest commit

 

History

History
184 lines (156 loc) · 7.31 KB

TODO.md

File metadata and controls

184 lines (156 loc) · 7.31 KB

To Do

  • doc: svg role and title
  • doc and README: share links
  • workflow: run fflint on the fflint.dev website
  • workflow: go test
  • test without ./main.go
  • shared/ImageFlags.go
  • credits: goatcounter, sass, nodeping, bootstrap
  • doc strings in Cobra: Long, Examples
  • doc: installation
  • doc: pricing/license
  • doc: single font (i.e. header font)
  • doc: responsive navbar
  • doc: upgrade bootstrap
  • frontmatter: report
  • til frontmatter: title,noindex,layout,draft,date,tags,created
  • github actions working
  • OptionalBool flag type: required/any/forbidden
  • Dimensions flag (ranges): WxH || N (=square)
  • OptionalXxx flags
  • SignedRange (i.e. handle negative numbers: -10-10, -20--10, --10, -10-)
  • Range: take a comma-separated list of acceptable values

Online

  • logging (not per-page, since that is done by CloudRun)
  • disclaimer in all responses
  • verbose flag
  • pass flags to fflint
  • forms (in docs)
  • api.html (in docs)
  • links to forms from /index.html

Docs

  • better description on home page
  • local contact page
  • command Long should include links to file format specifications
  • examples
  • installation
  • quick start
  • using in pre-commit hook, CI pipeline(s), etc.
  • examples: everything in an online sitemap.xml
  • add link to ignorefile specs

General work

  • make go test part of build.yaml
  • all commands/types: tests
  • Dockerfile to run locally, docker-run.sh
  • nicer formatting of numbers in text output x/text/message or go-humanize
  • include a man page: mango
  • shell completion
  • cache ReadFile results (--nocache=bytes to control memory usage)

GoLang

  • multithreading
  • why .go file in repo root directory
  • generics for [Decimal|Integer]Range, [Decimal|Integer]Ratio, Optional[], []List
  • generics for contains(haystack, needle)
  • how to share code for image tests
  • ability to use plugins? general discussion, go-plugin, pie, wazero

Additional formats

Mixed/Auto mode

  • single pass through file list
  • different tests based on filename
  • config file with multiple sections
  • each section: name, filename_regex, command, flags
  • special 'skip' command for files that should not be checked
  • default case: nothing or error or warn or ???
  • profiles for different scenarios: website, backend codebase...

To consider

  • progress: fix counter display during globbing
  • progress: move terminal cursor to keep line in constant location if showFiles or showTests
  • progress: if stderr is redirected to file, show stats every n seconds
  • output yaml: similar to JSON, but grouped by file, etc
  • output md5: print md5 hash for each file (maybe as part of debug mode?)
  • web mode: scan files on a website instead of a file system (or just example with wget)

Globbing improvements

Distribution

  • brew example
  • deb
  • rpm
  • github action
  • Docker container
  • website

Probably not

  • showFiles: print at end if progress
  • html: support for charsets besides utf8
  • flag to enable colorized output
  • progress: option to calc percentage by file count (vs bytes)
  • error if a file exists (to prevent certs/.env/source code)
  • slim binaries that only do a single format
  • file locking
  • each --verbose increments a --showXxx level
  • GUI version

External Tools

Bad file names

  • separate program in Rust (namelint)
  • takes directory names only (possibly multiple, default to current directory)
  • recursively (optional) scans the directory looking for bad file names
  • option: specify list of codepoints allowed
  • profiles: preset lists of codepoints
  • profile: strict (ASCII letters, numbers, dot)
  • profile: unicode (UTF-8, no shell chars, newlines, lookalikes)
  • profile: loose (UTF-8)
  • maybe: regex/camel/kebab/pascal/snake/lowercase/urlsafe/none/etc
  • maybe: profile for a given language
  • maybe: note hidden files, leading dot files, bad modes, etc
  • separate utility program to list all codepoints used (with first few files containing each)

https://github.com/jhspetersson/fselect https://github.com/github/super-linter#supported-linters https://htmlhint.com/docs/user-guide/list-rules https://stackoverflow.com/questions/29838185/how-to-detect-additional-mime-type-in-golang text/tabwriter