[BACK]Return to TODO CVS log [TXT][DIR] Up to [local] / projects / Porcelain

File: [local] / projects / Porcelain / TODO (download)

Revision 1.7, Fri Sep 3 17:08:19 2021 UTC (11 months, 1 week ago) by thfr
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +1 -0 lines

update TODO

# - add Copyright/license to modules
# - limit size of history; can be configurable in whatever config approach is later chosen
# - implement subscribed option
# - allow theming (colors etc) via a config file?
# - see if some Perl modules may not be needed
# - review error handling - may not always need 'die'. Create a way to display warnings uniformly?
# - replace all uses of die with clean_die (?)
# - add option for "Content Warning" type use of preformatted text and alt text:
#	https://dragonscave.space/@devinprater/105782591455644854
# - implement logging messages, warnings, errors to file
# - add mouse support?!
# - implement 'N' to search backwards
# - implement '|' to pipe to external programs (like espeak)
# - update README, ideally as output from pod2usage
# - pledge after reading config; can get rid of rpath?? see https://marc.info/?l=openbsd-ports&m=161417431131260&w=2
# - remove non-printable terminal control characters; see https://lists.orbitalfox.eu/archives/gemini/2020/000390.html
# - implement TOFU recommendations:gemini://drewdevault.com/2020/09/21/Gemini-TOFU.gmi - PARTIALLY; NEED TEMP PERMISSIONS
# - fix supporting MIME text/plain: query: gemini://gemini.thebackupbox.net/IRIcheck
# - gemini://gemini.thebackupbox.net/IRIcheck: strip non-printable characters from $meta - displays: ": bmit something and I'll tell you if it is an IRI."
# - fix newline in SYNOPSIS to separate different syntax
# - fix $reflow_text, $update_viewport mechanics in sub page_nav to keep viewport at stable position
#   (currently viewport moves down when increasing COLs, and up when decreasing)
# - add timeout to loading resources
# - ?add test suite?
# - add config option to mandate TLS >= 1.3
#   see specification (as of 2021-03-09): "Clients who wish to be "ahead of the curve MAY refuse to connect to servers using TLS version 1.2 or lower."
#   => test then what domains break
# - store protocol version with my $rv = Net::SSLeay::get_version($ssl); => can use to check TLSv1.3
# - fix underscore in front of link, header , see gemini://astrobotany.mozz.us
#	gemini://palm93.com/2021-03-07_Midgard.gmi 
# - implement geminispace search, like 's' in gemini://gmn.clttr.info/cgmnlm.gmi ?
# - c_prompt_str - enable backspace, arrow key navigation, cursor?
# - use newpad with $max_vrows and $max_vcols rather than simple window for the display
# - make sure not using getstr, inchstr, instr because of potential for buffer overflow attacks; see https://metacpan.org/pod/Curses
# - make sure to escape dots and other RE chars in all uses of grep
# - add the server response header (e.g. "20 text/gemini; lang=en-US;charset=utf-8") to Info page
# - other page to test with temporary certs: gemini://bestiya.duckdns.org/
# - check why cert mismatch with gemini://skyjake.fi/lagrange/ when following link from other domain (hyperborea.org)
# - add IRI support (see mailing list)
# - implement a way to preview links before following them
# - fix glitch of line continuation showing the internal leading characters e.g. gemini://thfr.info/gemini/modified-trust-verify.gmi list items when scrolling past initial line
# - remove need for rpath from sslcat_porcelain by preloading whatever is needed?
# - check POD documentation with podchecker(1)
# - go through '$ perldoc perlpodstyle'
# - enable --conf/-c config file support; see GetOptions
# - implement '.' to see raw page (like Elpher, apparently; see https://www.youtube.com/watch?v=Dy4IWoGbm6g)
# - implement Tab key to select links in page
# - clean up module usage between script and Porcelain modules
# - use constant pragma or p5-Readonly{,-XS} to harden certain variables like %open_with
# - fix connection issue without trailing '/'
# - clean out use of "our" variables

When error opening a file:
Use of uninitialized value $render_format in string eq at /home/thfr/cvs/projects/Porcelain/script/../lib/Porcelain/RequestHandler.pm line 283.
Use of uninitialized value $renderformat in string eq at /home/thfr/cvs/projects/Porcelain/script/../lib/Porcelain/Nav.pm line 77.
Use of uninitialized value $renderformat in string eq at /home/thfr/cvs/projects/Porcelain/script/../lib/Porcelain/Nav.pm line 79.

# with links continued into another line, fix correct color display of the link
# "gemini://frrobert.net" doesn't open, but "gemini://frrobert.net/" does: "Error completing the request"
# in console, the background of the title window misses background coloring of the leftmost char