Julian Noble
1 day ago
128 changed files with 7441 additions and 1383 deletions
@ -0,0 +1,71 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin fauxlink_module_fauxlink 0 0.1.1] |
||||
[copyright "2024"] |
||||
[titledesc {faux link application shortcuts}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {fauxlink .fxlnk}] [comment {-- Description at end of page heading --}] |
||||
[require fauxlink] |
||||
[keywords symlink faux fake shortcut toml] |
||||
[description] |
||||
[para] A cross platform shortcut/symlink alternative. |
||||
[para] Unapologetically ugly - but practical in certain circumstances. |
||||
[para] A solution is required for application-driven filesystem links that survives cross platform moves as well as |
||||
[para] archiving and packaging systems. |
||||
[para] The target is specified in a minimally-encoded form in the filename itself - but still human readable. |
||||
[para] format of name <nominalname>#<encodedtarget>.fxlnk |
||||
[para] where <nominalname> can be empty - then the effective nominal name is the tail of the <encodedtarget> |
||||
[para] The + symbol substitutes for forward-slashes. |
||||
[para] Other chars can be encoded using url-like encoding - (but only up to %7E !) |
||||
[para] We deliberately treat higher % sequences literally. |
||||
[para] This means actual uri::urn encoded unicode sequences (e.g %E2%99%A5 [lb]heart[rb]) can remain literal for linking to urls. |
||||
[para] e.g if an actual + or # is required in a filename or path segment they can be encoded as %2B & %23 |
||||
[para] e.g a link to a file file#A.txt in parent dir could be: |
||||
[para] file%23A.txt#..+file%23A.txt.fxlnk |
||||
[para] or equivalently (but obviously affecting sorting) #..+file%23A.txt.fxlnk |
||||
[para] The <nominalname> can be unrelated to the actual target |
||||
[para] e.g datafile.dat#..+file%23A.txt.fxlnk |
||||
[para] This system has no filesystem support - and must be completely application driven. |
||||
[para] This can be useful for example in application test packages which may be tarred or zipped and moved cross platform. |
||||
[para] The target being fully specified in the name means the file doesn't have to be read for the target to be determined |
||||
[para] Extensions to behaviour should be added in the file as text data in Toml format, |
||||
[para] with custom data being under a single application-chosen table name |
||||
[para] The toplevel Toml table [lb]fauxlink[rb] is reserved for core extensions to this system. |
||||
[para] Aside from the 2 used for delimiting (+ #) |
||||
[para] certain characters which might normally be allowed in filesystems are required to be encoded |
||||
[para] e.g space and tab are required to be %20 %09 |
||||
[para] Others that require encoding are: * ? \ / | : ; " < > |
||||
[para] The nul character in raw form, when detected, is always mapped away to the empty string - as very few filesystems support it. |
||||
[para] Control characters and other punctuation is optional to encode. |
||||
[para] Generally utf-8 should be used where possible and unicode characters can often be left unencoded on modern systems. |
||||
[para] Where encoding of unicode is desired in the nominalname,encodedtarget,tag or comment portions it can be specified as %UXXXXXXXX |
||||
[para] There must be between 1 and 8 X digits following the %U. Interpretation of chars following %U stops at the first non-hex character. |
||||
[para] This means %Utest would not get any translation as there were no hex digits so it would come out as %Utest |
||||
|
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
[section Overview] |
||||
[para] overview of fauxlink |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by fauxlink |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6-}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace fauxlink::class}] |
||||
[para] class definitions |
||||
[list_begin enumerated] |
||||
[list_end] [comment {--- end class enumeration ---}] |
||||
[subsection {Namespace fauxlink}] |
||||
[para] Core API functions for fauxlink |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace fauxlink ---}] |
||||
[subsection {Namespace fauxlink::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace fauxlink::lib ---}] |
||||
[section Internal] |
||||
[subsection {Namespace fauxlink::system}] |
||||
[para] Internal functions that are not part of the API |
||||
[manpage_end] |
@ -1,7 +1,7 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin modpod_module_modpod 0 0.1.0] |
||||
[manpage_begin modpod_module_modpod 0 0.1.2] |
||||
[copyright "2024"] |
||||
[titledesc {Module API}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {-}] [comment {-- Description at end of page heading --}] |
@ -1,49 +0,0 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin overtype_module_overtype 0 1.6.3] |
||||
[copyright "2024"] |
||||
[titledesc {overtype text layout - ansi aware}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {overtype text layout}] [comment {-- Description at end of page heading --}] |
||||
[require overtype] |
||||
[keywords module text ansi] |
||||
[description] |
||||
[para] - |
||||
[section Overview] |
||||
[para] overview of overtype |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by overtype |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[item] [package textutil] |
||||
[item] [package punk::ansi] |
||||
[para] - required to detect, split, strip and calculate lengths of text possibly containing ansi codes |
||||
[item] [package punk::char] |
||||
[para] - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace overtype}] |
||||
[para] Core API functions for overtype |
||||
[list_begin definitions] |
||||
[call [fun overtype::renderspace] [arg args] ] |
||||
[para] usage: ?-transparent [lb]0|1[rb]? ?-overflow [lb]1|0[rb]? ?-ellipsis [lb]1|0[rb]? ?-ellipsistext ...? undertext overtext |
||||
[call [fun overtype::renderline] [arg args] ] |
||||
[para] renderline is the core engine for overtype string processing (frames & textblocks), and the raw mode commandline repl for the Tcl Punk Shell |
||||
[para] It is also a central part of an ansi (micro) virtual terminal-emulator of sorts |
||||
[para] This system does a half decent job at rendering 90's ANSI art to manipulable colour text blocks that can be joined & framed for layout display within a unix or windows terminal |
||||
[para] Renderline helps maintain ANSI text styling reset/replay codes so that the styling of one block doesn't affect another. |
||||
[para] Calling on the punk::ansi library - it can coalesce codes to keep the size down. |
||||
[para] It is a giant mess of doing exactly what common wisdom says not to do... lots at once. |
||||
[para] renderline is part of the Unicode and ANSI aware Overtype system which 'renders' a block of text onto a static underlay |
||||
[para] The underlay is generally expected to be an ordered set of lines or a rectangular text block analogous to a terminal screen - but it can also be ragged in line length, or just blank. |
||||
[para] The overlay couuld be similar - in which case it may often be used to overwrite a column or section of the underlay. |
||||
[para] The overlay could however be a sequence of ANSI-laden text that jumps all over the place. |
||||
|
||||
[para] renderline itself only deals with a single line - or sometimes a single character. It is generally called from a loop that does further terminal-like or textblock processing. |
||||
[para] By suppyling the -info 1 option - it can return various fields indicating the state of the render. |
||||
[para] The main 3 are the result, overflow_right, and unapplied. |
||||
[para] Renderline handles cursor movements from either keystrokes or ANSI sequences but for a full system the aforementioned loop will need to be in place to manage the set of lines under manipulation. |
||||
[list_end] [comment {--- end definitions namespace overtype ---}] |
||||
[manpage_end] |
@ -1,49 +0,0 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin overtype_module_overtype 0 1.6.4] |
||||
[copyright "2024"] |
||||
[titledesc {overtype text layout - ansi aware}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {overtype text layout}] [comment {-- Description at end of page heading --}] |
||||
[require overtype] |
||||
[keywords module text ansi] |
||||
[description] |
||||
[para] - |
||||
[section Overview] |
||||
[para] overview of overtype |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by overtype |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[item] [package textutil] |
||||
[item] [package punk::ansi] |
||||
[para] - required to detect, split, strip and calculate lengths of text possibly containing ansi codes |
||||
[item] [package punk::char] |
||||
[para] - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace overtype}] |
||||
[para] Core API functions for overtype |
||||
[list_begin definitions] |
||||
[call [fun overtype::renderspace] [arg args] ] |
||||
[para] usage: ?-transparent [lb]0|1[rb]? ?-overflow [lb]1|0[rb]? ?-ellipsis [lb]1|0[rb]? ?-ellipsistext ...? undertext overtext |
||||
[call [fun overtype::renderline] [arg args] ] |
||||
[para] renderline is the core engine for overtype string processing (frames & textblocks), and the raw mode commandline repl for the Tcl Punk Shell |
||||
[para] It is also a central part of an ansi (micro) virtual terminal-emulator of sorts |
||||
[para] This system does a half decent job at rendering 90's ANSI art to manipulable colour text blocks that can be joined & framed for layout display within a unix or windows terminal |
||||
[para] Renderline helps maintain ANSI text styling reset/replay codes so that the styling of one block doesn't affect another. |
||||
[para] Calling on the punk::ansi library - it can coalesce codes to keep the size down. |
||||
[para] It is a giant mess of doing exactly what common wisdom says not to do... lots at once. |
||||
[para] renderline is part of the Unicode and ANSI aware Overtype system which 'renders' a block of text onto a static underlay |
||||
[para] The underlay is generally expected to be an ordered set of lines or a rectangular text block analogous to a terminal screen - but it can also be ragged in line length, or just blank. |
||||
[para] The overlay couuld be similar - in which case it may often be used to overwrite a column or section of the underlay. |
||||
[para] The overlay could however be a sequence of ANSI-laden text that jumps all over the place. |
||||
|
||||
[para] renderline itself only deals with a single line - or sometimes a single character. It is generally called from a loop that does further terminal-like or textblock processing. |
||||
[para] By suppyling the -info 1 option - it can return various fields indicating the state of the render. |
||||
[para] The main 3 are the result, overflow_right, and unapplied. |
||||
[para] Renderline handles cursor movements from either keystrokes or ANSI sequences but for a full system the aforementioned loop will need to be in place to manage the set of lines under manipulation. |
||||
[list_end] [comment {--- end definitions namespace overtype ---}] |
||||
[manpage_end] |
@ -0,0 +1,120 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_textblock 0 0.1.2] |
||||
[copyright "2024"] |
||||
[titledesc {punk textblock functions}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {punk textblock}] [comment {-- Description at end of page heading --}] |
||||
[require textblock] |
||||
[keywords module ansi text layout colour table frame console terminal] |
||||
[description] |
||||
[para] Ansi-aware terminal textblock manipulation |
||||
[section Overview] |
||||
[para] overview of textblock |
||||
[subsection Concepts] |
||||
[para] |
||||
[subsection dependencies] |
||||
[para] packages used by textblock |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6-}] |
||||
[item] [package {punk::args}] |
||||
[item] [package {punk::char}] |
||||
[item] [package {punk::ansi}] |
||||
[item] [package {punk::lib}] |
||||
[item] [package {overtype}] |
||||
[item] [package {term::ansi::code::macros}] |
||||
[item] [package {textutil}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace textblock::class}] |
||||
[para] class definitions |
||||
[list_begin itemized] [comment {- textblock::class groupings -}] |
||||
[item] |
||||
[para] [emph {handler_classes}] |
||||
[list_begin enumerated] |
||||
[enum] CLASS [class textblock::class::table] |
||||
[list_begin definitions] |
||||
[para] Create a table suitable for terminal output with various border styles. |
||||
[para] The table can contain multiline cells and ANSI colour and text style attributes. |
||||
[para] Multiple header rows can be configured. |
||||
[para] Header rows can span columns - data rows cannot. |
||||
[para] The restriction on data rows is to maintain compatibility of the data with a Tcl matrix command |
||||
[para] (see get_matrix command) |
||||
[para] Both header and data cells can have various text and blockalignments configured. |
||||
[para] [emph METHODS] |
||||
[call class::table [method constructor] [arg args]] |
||||
[para] TODO - document the many options |
||||
[call class::table [method configure] [arg args]] |
||||
[para] get or set various table-level properties |
||||
[call class::table [method printmatrix] [arg matrix]] |
||||
[para] clear all table rows and print a matrix into the table |
||||
[para] The rowxcolumn structure must match |
||||
[call class::table [method as_matrix] [arg ?cmd?]] |
||||
[para] return a struct::matrix command representing the data portion of the table. |
||||
[call class::table [method add_column] [arg args]] |
||||
[call class::table [method column_count]] |
||||
[para] return the number of columns |
||||
[call class::table [method configure_column] [arg index_expression] [arg args]] |
||||
[para] - undocumented |
||||
[call class::table [method header_count]] |
||||
[para] return the number of header rows |
||||
[call class::table [method header_height] [arg header_index]] |
||||
[para] return the height of a header as the number of content-lines |
||||
[call class::table [method header_colspans]] |
||||
[para] Show the colspans configured for all headers |
||||
[call class::table [method configure_header]] |
||||
[para] - undocumented |
||||
[call class::table [method add_row]\ |
||||
[arg valuelist]\ |
||||
[opt "[option -minheight] [arg int_minheight]"]\ |
||||
[opt "[option -maxheight] [arg int_maxheight]"]\ |
||||
[opt "[option -ansibase] [arg ansicode]"]\ |
||||
] |
||||
[call class::table [method configure_row]\ |
||||
[arg index_expression]\ |
||||
[opt "[option -minheight] [arg int_minheight]"]\ |
||||
[opt "[option -maxheight] [arg int_maxheight]"]\ |
||||
[opt "[option -ansibase] [arg ansicode]"]\ |
||||
] |
||||
[call class::table [method row_count]] |
||||
[para] return the number of data rows in the table. |
||||
[call class::table [method row_clear]] |
||||
[para] Remove all rows without resetting column data. |
||||
[para] When adding new rows the number of entries will need to match the existing column count. |
||||
[call class::table [method clear]] |
||||
[para] Remove all row and column data. |
||||
[para] If a subsequent call to add_row is made it can contain any number of values. |
||||
[para] Further calls to add_row will need to contain the same number of values |
||||
[para] as the first call unless default values have been set for the missing columns (review - in flux). |
||||
[call class::table [method get_column_cells_by_index] [arg index_expression]] |
||||
[para] Return a dict with keys 'headers' and 'cells' giving column header and data values |
||||
[call class::table [method get_column_values_by_index] [arg index_expression]] |
||||
[para] List the cell values of a column from the data area only (no header values) |
||||
[call class::table [method debug]] |
||||
[para] display lots of debug information about how the table is constructed. |
||||
[call class::table [method column_width] [arg index_expression]] |
||||
[para] inner width of column ie the available cell-width without borders/separators |
||||
[call class::table [method column_width]] |
||||
[para] ordered list of column widths (inner widths) |
||||
[call class::table [method width]] |
||||
[para] width of the table including borders and separators |
||||
[para] calculate width based on assumption frame verticals are 1 screen-column wide |
||||
[para] (review - consider possibility of custom unicode double-wide frame?) |
||||
[call class::table [method spangroups]] |
||||
[para] return a dict keyed by column-index showing advanced span information |
||||
[para] (debug tool) |
||||
[call class::table [method print]] |
||||
[para] Return the table as text suitable for console display |
||||
[call class::table [method print_bodymatrix]] |
||||
[para] output the matrix string corresponding to the body data using the matrix 2string format |
||||
[para] this will be a table without borders,headers,title etc and will exclude additional ANSI applied due to table, row or column settings. |
||||
[para] If the original cell data itself contains ANSI - the output will still contain those ansi codes. |
||||
|
||||
[list_end] |
||||
[list_end] [comment {- end enumeration provider_classes }] |
||||
[list_end] [comment {- end itemized list textblock::class groupings -}] |
||||
Already uniform blocks will join faster than textblock::join, and ragged blocks will join in a ragged manner |
||||
" |
||||
Already uniform blocks will join faster than textblock::join, and ragged blocks will join in a ragged manner |
||||
" |
||||
[manpage_end] |
@ -0,0 +1,45 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_punk::blockletter 0 0.1.0] |
||||
[copyright "2024"] |
||||
[titledesc {punk::blockletter frame-based large lettering test/logo}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {-}] [comment {-- Description at end of page heading --}] |
||||
[require punk::blockletter] |
||||
[keywords module] |
||||
[description] |
||||
[para] This is primarily designed to test large lettering using the block2 frametype which requires the right font support |
||||
[para] More reasonably sized block-lettering could be obtained using unicode half-blocks instead - but that doesn't allow the frame outline effect that block2 gives. |
||||
[para] Individual blocks have a minimum width of 4 columns and a minimum height of 2 rows (smallest element that can be fully framed) |
||||
[section Overview] |
||||
[para] overview of punk::blockletter |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by punk::blockletter |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[item] [package {textblock}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::blockletter::class}] |
||||
[para] class definitions |
||||
if {[tcl::info::commands [tcl::namespace::current]::interface_sample1] eq ""} { |
||||
[list_begin enumerated] |
||||
[list_end] [comment {--- end class enumeration ---}] |
||||
} |
||||
} |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
[subsection {Namespace punk::blockletter}] |
||||
[para] Core API functions for punk::blockletter |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::blockletter ---}] |
||||
[subsection {Namespace punk::blockletter::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::blockletter::lib ---}] |
||||
[section Internal] |
||||
tcl::namespace::eval punk::blockletter::system { |
||||
[subsection {Namespace punk::blockletter::system}] |
||||
[para] Internal functions that are not part of the API |
||||
[manpage_end] |
@ -0,0 +1,36 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_punk::cesu 0 0.1.0] |
||||
[copyright "2024"] |
||||
[titledesc {CESU compatibility ehcoding scheme for utf-16: 8-Bit (CESU-8) ??}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {CESU experimental}] [comment {-- Description at end of page heading --}] |
||||
[require punk::cesu] |
||||
[keywords module cesu encoding compatibility experimental unofficial] |
||||
[description] |
||||
[para] experimental |
||||
[section Overview] |
||||
[para] overview of punk::cesu |
||||
[subsection Concepts] |
||||
[para] cesu-8 may be mistaken for utf-8 if no supplementary chars present. |
||||
[para] see: https://www.unicode.org/reports/tr26/tr26-4.html |
||||
[para] Particulary note discouragement of use especially in external interchange. |
||||
[subsection dependencies] |
||||
[para] packages used by punk::cesu |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::cesu}] |
||||
[para] Core API functions for punk::cesu |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::cesu ---}] |
||||
[subsection {Namespace punk::cesu::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::cesu::lib ---}] |
||||
[section Internal] |
||||
tcl::namespace::eval punk::cesu::system { |
||||
[subsection {Namespace punk::cesu::system}] |
||||
[para] Internal functions that are not part of the API |
||||
[manpage_end] |
@ -0,0 +1,42 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_punk::rest 0 0.1.0] |
||||
[copyright "2024"] |
||||
[titledesc {punk::rest}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {experimental rest}] [comment {-- Description at end of page heading --}] |
||||
[require punk::rest] |
||||
[keywords module rest http] |
||||
[description] |
||||
[para] Experimental *basic rest as wrapper over http lib - use tcllib's rest package for a more complete implementation of a rest client |
||||
[section Overview] |
||||
[para] overview of punk::rest |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by punk::rest |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::rest::class}] |
||||
[para] class definitions |
||||
if {[tcl::info::commands [tcl::namespace::current]::interface_sample1] eq ""} { |
||||
[list_begin enumerated] |
||||
[list_end] [comment {--- end class enumeration ---}] |
||||
} |
||||
} |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
[subsection {Namespace punk::rest}] |
||||
[para] Core API functions for punk::rest |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::rest ---}] |
||||
[subsection {Namespace punk::rest::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::rest::lib ---}] |
||||
[section Internal] |
||||
tcl::namespace::eval punk::rest::system { |
||||
[subsection {Namespace punk::rest::system}] |
||||
[para] Internal functions that are not part of the API |
||||
[manpage_end] |
@ -0,0 +1,39 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_punk::trie 0 0.1.0] |
||||
[copyright "2010"] |
||||
[titledesc {punk::trie API}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {punk::trie}] [comment {-- Description at end of page heading --}] |
||||
[require punk::trie] |
||||
[keywords module datastructure trie] |
||||
[description] tcl trie implementation courtesy of CmcC (tcl wiki) |
||||
[para] - |
||||
[section Overview] |
||||
[para] overview of punk::trie |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by punk::trie |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::trie}] |
||||
[para] Core API functions for punk::trie |
||||
[list_begin enumerated] |
||||
[enum] CLASS [class trieclass] |
||||
[list_begin definitions] |
||||
[call class::trieclass [method matches] [arg t] [arg what]] |
||||
[para] search for longest prefix, return matching prefix, element and suffix |
||||
[list_end] [comment {--- end definitions ---}] |
||||
[list_end] [comment {--- end class enumeration ---}] |
||||
[subsection {Namespace punk::trie::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::trie::lib ---}] |
||||
[section Internal] |
||||
tcl::namespace::eval punk::trie::system { |
||||
[subsection {Namespace punk::trie::system}] |
||||
[para] Internal functions that are not part of the API |
||||
[manpage_end] |
@ -0,0 +1,50 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_punk::winlnk 0 0.1.0] |
||||
[copyright "2024"] |
||||
[titledesc {windows shortcut .lnk library}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {punk::winlnk}] [comment {-- Description at end of page heading --}] |
||||
[require punk::winlnk] |
||||
[keywords module shortcut lnk parse windows crossplatform] |
||||
[description] |
||||
[para] Tools for reading windows shortcuts (.lnk files) on any platform |
||||
[section Overview] |
||||
[para] overview of punk::winlnk |
||||
[subsection Concepts] |
||||
[para] Windows shortcuts are a binary format file with a .lnk extension |
||||
[para] Shell Link (.LNK) Binary File Format is documented in [lb]MS_SHLLINK[rb].pdf published by Microsoft. |
||||
[para] Revision 8.0 published 2024-04-23 |
||||
[subsection dependencies] |
||||
[para] packages used by punk::winlnk |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::winlnk::class}] |
||||
[para] class definitions |
||||
if {[tcl::info::commands [tcl::namespace::current]::interface_sample1] eq ""} { |
||||
[list_begin enumerated] |
||||
[list_end] [comment {--- end class enumeration ---}] |
||||
} |
||||
} |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
[subsection {Namespace punk::winlnk}] |
||||
[para] Core API functions for punk::winlnk |
||||
[list_begin definitions] |
||||
[call [fun file_check_header] [arg path] ] |
||||
[para]Return 0|1 |
||||
[para]Determines if the .lnk file specified in path has a valid header for a windows shortcut |
||||
[call [fun file_get_info] [arg path] ] |
||||
[para] Return a dict of info obtained by parsing the binary data in a windows .lnk file |
||||
[para] If the .lnk header check fails, then the .lnk file probably isn't really a shortcut file and the dictionary will contain an 'error' key |
||||
[list_end] [comment {--- end definitions namespace punk::winlnk ---}] |
||||
[subsection {Namespace punk::winlnk::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::winlnk::lib ---}] |
||||
[section Internal] |
||||
tcl::namespace::eval punk::winlnk::system { |
||||
[subsection {Namespace punk::winlnk::system}] |
||||
[para] Internal functions that are not part of the API |
||||
[manpage_end] |
@ -0,0 +1,66 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_punk::zip 0 0.1.1] |
||||
[copyright "2024"] |
||||
[titledesc {Module API}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {-}] [comment {-- Description at end of page heading --}] |
||||
[require punk::zip] |
||||
[keywords module zip fileformat] |
||||
[description] |
||||
[para] - |
||||
[section Overview] |
||||
[para] overview of punk::zip |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by punk::zip |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[item] [package {punk::args}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::zip}] |
||||
[para] Core API functions for punk::zip |
||||
[list_begin definitions] |
||||
[call [fun Timet_to_dos] [arg time_t]] |
||||
[para] convert a unix timestamp into a DOS timestamp for ZIP times. |
||||
[example { |
||||
DOS timestamps are 32 bits split into bit regions as follows: |
||||
24 16 8 0 |
||||
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ |
||||
|Y|Y|Y|Y|Y|Y|Y|m| |m|m|m|d|d|d|d|d| |h|h|h|h|h|m|m|m| |m|m|m|s|s|s|s|s| |
||||
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ |
||||
}] |
||||
[call [fun walk] [arg ?options?] [arg base]] |
||||
[para] Walk a directory tree rooted at base |
||||
[para] the -excludes list can be a set of glob expressions to match against files and avoid |
||||
[para] e.g |
||||
[example { |
||||
punk::zip::walk -exclude {CVS/* *~.#*} library |
||||
}] |
||||
[call [fun Addentry] [arg zipchan] [arg base] [arg path] [arg ?comment?]] |
||||
[para] Add a single file to a zip archive |
||||
[para] The zipchan channel should already be open and binary. |
||||
[para] You can provide a -comment for the file. |
||||
[para] The return value is the central directory record that will need to be used when finalizing the zip archive. |
||||
[call [fun mkzip]\ |
||||
[opt "[option -offsettype] [arg offsettype]"]\ |
||||
[opt "[option -return] [arg returntype]"]\ |
||||
[opt "[option -zipkit] [arg 0|1]"]\ |
||||
[opt "[option -runtime] [arg preamble_filename]"]\ |
||||
[opt "[option -comment] [arg zipfilecomment]"]\ |
||||
[opt "[option -directory] [arg dir_to_zip]"]\ |
||||
[opt "[option -base] [arg archive_root]"]\ |
||||
[opt "[option -exclude] [arg globlist]"]\ |
||||
[arg zipfilename]\ |
||||
[arg ?glob...?]] |
||||
[para] Create a zip archive in 'zipfilename' |
||||
[para] If a file already exists, an error will be raised. |
||||
[para] Call 'punk::zip::mkzip' with no arguments for usage display. |
||||
[list_end] [comment {--- end definitions namespace punk::zip ---}] |
||||
[subsection {Namespace punk::zip::lib}] |
||||
[para] Secondary functions that are part of the API |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::zip::lib ---}] |
||||
[manpage_end] |
@ -1,9 +1,45 @@
|
||||
[comment {--- punk::docgen generated from inline doctools comments ---}] |
||||
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
||||
[comment {--- punk::docgen overwrites this file ---}] |
||||
[manpage_begin punkshell_module_scriptwrap 0 0.1.0] |
||||
[copyright "2024"] |
||||
[titledesc {scriptwrap polyglot tool}] [comment {-- Name section and table of contents description --}] |
||||
[moddesc {scriptwrap tool}] [comment {-- Description at end of page heading --}] |
||||
[require punk::mix::commandset::scriptwrap] |
||||
[keywords module commandset launcher scriptwrap] |
||||
[description] |
||||
[para] - |
||||
[section Overview] |
||||
[para] overview of scriptwrap |
||||
[subsection Concepts] |
||||
[para] - |
||||
[subsection dependencies] |
||||
[para] packages used by poshinfo |
||||
[list_begin itemized] |
||||
[item] [package {Tcl 8.6}] |
||||
[item] [package {punk::lib}] |
||||
[item] [package {punk::args}] |
||||
[item] [package {punk::mix}] |
||||
[item] [package {punk::base}] |
||||
[item] [package {punk::fileline}] |
||||
[list_end] |
||||
[section API] |
||||
[subsection {Namespace punk::mix::commandset::scriptwrap}] |
||||
[para] Core API functions for punk::mix::commandset::scriptwrap |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::mix::commandset::scriptwrap ---}] |
||||
[subsection {Namespace punk::mix::commandset::scriptwrap::lib}] |
||||
[para] Library API functions for punk::mix::commandset::scriptwrap |
||||
[list_begin definitions] |
||||
[call [fun get_wrapper_folders] [arg args] ] |
||||
[para] Return list of dicts representing wrapper folders. keys: basefolder sourceinfo |
||||
[para] Return list of dicts representing wrapper folders in the project. keys: basefolder sourceinfo |
||||
[para] Arguments: |
||||
[list_begin arguments] |
||||
[arg_def string args] name-value pairs -scriptpath <path> |
||||
[list_end] |
||||
[list_end] [comment {--- end definitions namespace punk::mix::commandset::scriptwrap::lib ---}] |
||||
[subsection {Namespace punk::mix::commandset::scriptwrap::batchlib}] |
||||
[para] Utility funcions for processing windows .bat files |
||||
[list_begin definitions] |
||||
[list_end] [comment {--- end definitions namespace punk::mix::commandset::scriptwrap::batchlib ---}] |
||||
[manpage_end] |
||||
|
@ -0,0 +1,383 @@
|
||||
'\" |
||||
'\" Generated from file '_module_fauxlink-0\&.1\&.1\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "fauxlink_module_fauxlink" 0 0\&.1\&.1 doc "fauxlink \&.fxlnk" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
fauxlink_module_fauxlink \- faux link application shortcuts |
||||
.SH SYNOPSIS |
||||
package require \fBfauxlink \fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION |
||||
.PP |
||||
A cross platform shortcut/symlink alternative\&. |
||||
.PP |
||||
Unapologetically ugly - but practical in certain circumstances\&. |
||||
.PP |
||||
A solution is required for application-driven filesystem links that survives cross platform moves as well as |
||||
.PP |
||||
archiving and packaging systems\&. |
||||
.PP |
||||
The target is specified in a minimally-encoded form in the filename itself - but still human readable\&. |
||||
.PP |
||||
format of name <nominalname>#<encodedtarget>\&.fxlnk |
||||
.PP |
||||
where <nominalname> can be empty - then the effective nominal name is the tail of the <encodedtarget> |
||||
.PP |
||||
The + symbol substitutes for forward-slashes\&. |
||||
.PP |
||||
Other chars can be encoded using url-like encoding - (but only up to %7E !) |
||||
.PP |
||||
We deliberately treat higher % sequences literally\&. |
||||
.PP |
||||
This means actual uri::urn encoded unicode sequences (e\&.g %E2%99%A5 [heart]) can remain literal for linking to urls\&. |
||||
.PP |
||||
e\&.g if an actual + or # is required in a filename or path segment they can be encoded as %2B & %23 |
||||
.PP |
||||
e\&.g a link to a file file#A\&.txt in parent dir could be: |
||||
.PP |
||||
file%23A\&.txt#\&.\&.+file%23A\&.txt\&.fxlnk |
||||
.PP |
||||
or equivalently (but obviously affecting sorting) #\&.\&.+file%23A\&.txt\&.fxlnk |
||||
.PP |
||||
The <nominalname> can be unrelated to the actual target |
||||
.PP |
||||
e\&.g datafile\&.dat#\&.\&.+file%23A\&.txt\&.fxlnk |
||||
.PP |
||||
This system has no filesystem support - and must be completely application driven\&. |
||||
.PP |
||||
This can be useful for example in application test packages which may be tarred or zipped and moved cross platform\&. |
||||
.PP |
||||
The target being fully specified in the name means the file doesn't have to be read for the target to be determined |
||||
.PP |
||||
Extensions to behaviour should be added in the file as text data in Toml format, |
||||
.PP |
||||
with custom data being under a single application-chosen table name |
||||
.PP |
||||
The toplevel Toml table [fauxlink] is reserved for core extensions to this system\&. |
||||
.PP |
||||
Aside from the 2 used for delimiting (+ #) |
||||
.PP |
||||
certain characters which might normally be allowed in filesystems are required to be encoded |
||||
.PP |
||||
e\&.g space and tab are required to be %20 %09 |
||||
.PP |
||||
Others that require encoding are: * ? \\ / | : ; " < > |
||||
.PP |
||||
The nul character in raw form, when detected, is always mapped away to the empty string - as very few filesystems support it\&. |
||||
.PP |
||||
Control characters and other punctuation is optional to encode\&. |
||||
.PP |
||||
Generally utf-8 should be used where possible and unicode characters can often be left unencoded on modern systems\&. |
||||
.PP |
||||
Where encoding of unicode is desired in the nominalname,encodedtarget,tag or comment portions it can be specified as %UXXXXXXXX |
||||
.PP |
||||
There must be between 1 and 8 X digits following the %U\&. Interpretation of chars following %U stops at the first non-hex character\&. |
||||
.PP |
||||
This means %Utest would not get any translation as there were no hex digits so it would come out as %Utest |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of fauxlink |
||||
.SS CONCEPTS |
||||
.PP |
||||
- |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by fauxlink |
||||
.IP \(bu |
||||
\fBTcl 8\&.6-\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE FAUXLINK::CLASS" |
||||
.PP |
||||
class definitions |
||||
.PP |
||||
.SS "NAMESPACE FAUXLINK" |
||||
.PP |
||||
Core API functions for fauxlink |
||||
.PP |
||||
.SS "NAMESPACE FAUXLINK::LIB" |
||||
.PP |
||||
Secondary functions that are part of the API |
||||
.PP |
||||
.SH INTERNAL |
||||
.SS "NAMESPACE FAUXLINK::SYSTEM" |
||||
.PP |
||||
Internal functions that are not part of the API |
||||
.SH KEYWORDS |
||||
fake, faux, shortcut, symlink, toml |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2024 |
||||
|
||||
.fi |
@ -1,8 +1,8 @@
|
||||
'\" |
||||
'\" Generated from file '_module_modpod-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Generated from file '_module_modpod-0\&.1\&.2\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "modpod_module_modpod" 0 0\&.1\&.0 doc "-" |
||||
.TH "modpod_module_modpod" 0 0\&.1\&.2 doc "-" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
@ -0,0 +1,512 @@
|
||||
'\" |
||||
'\" Generated from file '_module_textblock-0\&.1\&.2\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "punkshell_module_textblock" 0 0\&.1\&.2 doc "punk textblock" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
punkshell_module_textblock \- punk textblock functions |
||||
.SH SYNOPSIS |
||||
package require \fBtextblock \fR |
||||
.sp |
||||
class::table \fBconstructor\fR \fIargs\fR |
||||
.sp |
||||
class::table \fBconfigure\fR \fIargs\fR |
||||
.sp |
||||
class::table \fBprintmatrix\fR \fImatrix\fR |
||||
.sp |
||||
class::table \fBas_matrix\fR \fI?cmd?\fR |
||||
.sp |
||||
class::table \fBadd_column\fR \fIargs\fR |
||||
.sp |
||||
class::table \fBcolumn_count\fR |
||||
.sp |
||||
class::table \fBconfigure_column\fR \fIindex_expression\fR \fIargs\fR |
||||
.sp |
||||
class::table \fBheader_count\fR |
||||
.sp |
||||
class::table \fBheader_height\fR \fIheader_index\fR |
||||
.sp |
||||
class::table \fBheader_colspans\fR |
||||
.sp |
||||
class::table \fBconfigure_header\fR |
||||
.sp |
||||
class::table \fBadd_row\fR \fIvaluelist\fR ?\fB-minheight\fR \fIint_minheight\fR? ?\fB-maxheight\fR \fIint_maxheight\fR? ?\fB-ansibase\fR \fIansicode\fR? |
||||
.sp |
||||
class::table \fBconfigure_row\fR \fIindex_expression\fR ?\fB-minheight\fR \fIint_minheight\fR? ?\fB-maxheight\fR \fIint_maxheight\fR? ?\fB-ansibase\fR \fIansicode\fR? |
||||
.sp |
||||
class::table \fBrow_count\fR |
||||
.sp |
||||
class::table \fBrow_clear\fR |
||||
.sp |
||||
class::table \fBclear\fR |
||||
.sp |
||||
class::table \fBget_column_cells_by_index\fR \fIindex_expression\fR |
||||
.sp |
||||
class::table \fBget_column_values_by_index\fR \fIindex_expression\fR |
||||
.sp |
||||
class::table \fBdebug\fR |
||||
.sp |
||||
class::table \fBcolumn_width\fR \fIindex_expression\fR |
||||
.sp |
||||
class::table \fBcolumn_width\fR |
||||
.sp |
||||
class::table \fBwidth\fR |
||||
.sp |
||||
class::table \fBspangroups\fR |
||||
.sp |
||||
class::table \fBprint\fR |
||||
.sp |
||||
class::table \fBprint_bodymatrix\fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION |
||||
.PP |
||||
Ansi-aware terminal textblock manipulation |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of textblock |
||||
.SS CONCEPTS |
||||
.PP |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by textblock |
||||
.IP \(bu |
||||
\fBTcl 8\&.6-\fR |
||||
.IP \(bu |
||||
\fBpunk::args\fR |
||||
.IP \(bu |
||||
\fBpunk::char\fR |
||||
.IP \(bu |
||||
\fBpunk::ansi\fR |
||||
.IP \(bu |
||||
\fBpunk::lib\fR |
||||
.IP \(bu |
||||
\fBovertype\fR |
||||
.IP \(bu |
||||
\fBterm::ansi::code::macros\fR |
||||
.IP \(bu |
||||
\fBtextutil\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE TEXTBLOCK::CLASS" |
||||
.PP |
||||
class definitions |
||||
.IP \(bu |
||||
.sp |
||||
\fIhandler_classes\fR |
||||
.RS |
||||
.IP [1] |
||||
CLASS \fBtextblock::class::table\fR |
||||
.RS |
||||
.sp |
||||
Create a table suitable for terminal output with various border styles\&. |
||||
.sp |
||||
The table can contain multiline cells and ANSI colour and text style attributes\&. |
||||
.sp |
||||
Multiple header rows can be configured\&. |
||||
.sp |
||||
Header rows can span columns - data rows cannot\&. |
||||
.sp |
||||
The restriction on data rows is to maintain compatibility of the data with a Tcl matrix command |
||||
.sp |
||||
(see get_matrix command) |
||||
.sp |
||||
Both header and data cells can have various text and blockalignments configured\&. |
||||
.sp |
||||
\fIMETHODS\fR |
||||
.TP |
||||
class::table \fBconstructor\fR \fIargs\fR |
||||
.sp |
||||
TODO - document the many options |
||||
.TP |
||||
class::table \fBconfigure\fR \fIargs\fR |
||||
.sp |
||||
get or set various table-level properties |
||||
.TP |
||||
class::table \fBprintmatrix\fR \fImatrix\fR |
||||
.sp |
||||
clear all table rows and print a matrix into the table |
||||
.sp |
||||
The rowxcolumn structure must match |
||||
.TP |
||||
class::table \fBas_matrix\fR \fI?cmd?\fR |
||||
.sp |
||||
return a struct::matrix command representing the data portion of the table\&. |
||||
.TP |
||||
class::table \fBadd_column\fR \fIargs\fR |
||||
.TP |
||||
class::table \fBcolumn_count\fR |
||||
.sp |
||||
return the number of columns |
||||
.TP |
||||
class::table \fBconfigure_column\fR \fIindex_expression\fR \fIargs\fR |
||||
.sp |
||||
- undocumented |
||||
.TP |
||||
class::table \fBheader_count\fR |
||||
.sp |
||||
return the number of header rows |
||||
.TP |
||||
class::table \fBheader_height\fR \fIheader_index\fR |
||||
.sp |
||||
return the height of a header as the number of content-lines |
||||
.TP |
||||
class::table \fBheader_colspans\fR |
||||
.sp |
||||
Show the colspans configured for all headers |
||||
.TP |
||||
class::table \fBconfigure_header\fR |
||||
.sp |
||||
- undocumented |
||||
.TP |
||||
class::table \fBadd_row\fR \fIvaluelist\fR ?\fB-minheight\fR \fIint_minheight\fR? ?\fB-maxheight\fR \fIint_maxheight\fR? ?\fB-ansibase\fR \fIansicode\fR? |
||||
.TP |
||||
class::table \fBconfigure_row\fR \fIindex_expression\fR ?\fB-minheight\fR \fIint_minheight\fR? ?\fB-maxheight\fR \fIint_maxheight\fR? ?\fB-ansibase\fR \fIansicode\fR? |
||||
.TP |
||||
class::table \fBrow_count\fR |
||||
.sp |
||||
return the number of data rows in the table\&. |
||||
.TP |
||||
class::table \fBrow_clear\fR |
||||
.sp |
||||
Remove all rows without resetting column data\&. |
||||
.sp |
||||
When adding new rows the number of entries will need to match the existing column count\&. |
||||
.TP |
||||
class::table \fBclear\fR |
||||
.sp |
||||
Remove all row and column data\&. |
||||
.sp |
||||
If a subsequent call to add_row is made it can contain any number of values\&. |
||||
.sp |
||||
Further calls to add_row will need to contain the same number of values |
||||
.sp |
||||
as the first call unless default values have been set for the missing columns (review - in flux)\&. |
||||
.TP |
||||
class::table \fBget_column_cells_by_index\fR \fIindex_expression\fR |
||||
.sp |
||||
Return a dict with keys 'headers' and 'cells' giving column header and data values |
||||
.TP |
||||
class::table \fBget_column_values_by_index\fR \fIindex_expression\fR |
||||
.sp |
||||
List the cell values of a column from the data area only (no header values) |
||||
.TP |
||||
class::table \fBdebug\fR |
||||
.sp |
||||
display lots of debug information about how the table is constructed\&. |
||||
.TP |
||||
class::table \fBcolumn_width\fR \fIindex_expression\fR |
||||
.sp |
||||
inner width of column ie the available cell-width without borders/separators |
||||
.TP |
||||
class::table \fBcolumn_width\fR |
||||
.sp |
||||
ordered list of column widths (inner widths) |
||||
.TP |
||||
class::table \fBwidth\fR |
||||
.sp |
||||
width of the table including borders and separators |
||||
.sp |
||||
calculate width based on assumption frame verticals are 1 screen-column wide |
||||
.sp |
||||
(review - consider possibility of custom unicode double-wide frame?) |
||||
.TP |
||||
class::table \fBspangroups\fR |
||||
.sp |
||||
return a dict keyed by column-index showing advanced span information |
||||
.sp |
||||
(debug tool) |
||||
.TP |
||||
class::table \fBprint\fR |
||||
.sp |
||||
Return the table as text suitable for console display |
||||
.TP |
||||
class::table \fBprint_bodymatrix\fR |
||||
.sp |
||||
output the matrix string corresponding to the body data using the matrix 2string format |
||||
.sp |
||||
this will be a table without borders,headers,title etc and will exclude additional ANSI applied due to table, row or column settings\&. |
||||
.sp |
||||
If the original cell data itself contains ANSI - the output will still contain those ansi codes\&. |
||||
.RE |
||||
.RE |
||||
.PP |
||||
Already uniform blocks will join faster than textblock::join, and ragged blocks will join in a ragged manner |
||||
" |
||||
Already uniform blocks will join faster than textblock::join, and ragged blocks will join in a ragged manner |
||||
" |
||||
.SH KEYWORDS |
||||
ansi, colour, console, frame, layout, module, table, terminal, text |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2024 |
||||
|
||||
.fi |
@ -0,0 +1,329 @@
|
||||
'\" |
||||
'\" Generated from file '_module_blockletter-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "punkshell_module_punk::blockletter" 0 0\&.1\&.0 doc "-" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
punkshell_module_punk::blockletter \- punk::blockletter frame-based large lettering test/logo |
||||
.SH SYNOPSIS |
||||
package require \fBpunk::blockletter \fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION |
||||
.PP |
||||
This is primarily designed to test large lettering using the block2 frametype which requires the right font support |
||||
.PP |
||||
More reasonably sized block-lettering could be obtained using unicode half-blocks instead - but that doesn't allow the frame outline effect that block2 gives\&. |
||||
.PP |
||||
Individual blocks have a minimum width of 4 columns and a minimum height of 2 rows (smallest element that can be fully framed) |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of punk::blockletter |
||||
.SS CONCEPTS |
||||
.PP |
||||
- |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by punk::blockletter |
||||
.IP \(bu |
||||
\fBTcl 8\&.6\fR |
||||
.IP \(bu |
||||
\fBtextblock\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE PUNK::BLOCKLETTER::CLASS" |
||||
.PP |
||||
class definitions |
||||
if { eq ""} { |
||||
.PP |
||||
} |
||||
} |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
.SS "NAMESPACE PUNK::BLOCKLETTER" |
||||
.PP |
||||
Core API functions for punk::blockletter |
||||
.PP |
||||
.SS "NAMESPACE PUNK::BLOCKLETTER::LIB" |
||||
.PP |
||||
Secondary functions that are part of the API |
||||
.PP |
||||
.SH INTERNAL |
||||
tcl::namespace::eval punk::blockletter::system { |
||||
.SS "NAMESPACE PUNK::BLOCKLETTER::SYSTEM" |
||||
.PP |
||||
Internal functions that are not part of the API |
||||
.SH KEYWORDS |
||||
module |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2024 |
||||
|
||||
.fi |
@ -0,0 +1,319 @@
|
||||
'\" |
||||
'\" Generated from file '_module_cesu-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "punkshell_module_punk::cesu" 0 0\&.1\&.0 doc "CESU experimental" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
punkshell_module_punk::cesu \- CESU compatibility ehcoding scheme for utf-16: 8-Bit (CESU-8) ?? |
||||
.SH SYNOPSIS |
||||
package require \fBpunk::cesu \fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION |
||||
.PP |
||||
experimental |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of punk::cesu |
||||
.SS CONCEPTS |
||||
.PP |
||||
cesu-8 may be mistaken for utf-8 if no supplementary chars present\&. |
||||
.PP |
||||
see: https://www\&.unicode\&.org/reports/tr26/tr26-4\&.html |
||||
.PP |
||||
Particulary note discouragement of use especially in external interchange\&. |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by punk::cesu |
||||
.IP \(bu |
||||
\fBTcl 8\&.6\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE PUNK::CESU" |
||||
.PP |
||||
Core API functions for punk::cesu |
||||
.PP |
||||
.SS "NAMESPACE PUNK::CESU::LIB" |
||||
.PP |
||||
Secondary functions that are part of the API |
||||
.PP |
||||
.SH INTERNAL |
||||
tcl::namespace::eval punk::cesu::system { |
||||
.SS "NAMESPACE PUNK::CESU::SYSTEM" |
||||
.PP |
||||
Internal functions that are not part of the API |
||||
.SH KEYWORDS |
||||
cesu, compatibility, encoding, experimental, module, unofficial |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2024 |
||||
|
||||
.fi |
@ -0,0 +1,323 @@
|
||||
'\" |
||||
'\" Generated from file '_module_rest-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "punkshell_module_punk::rest" 0 0\&.1\&.0 doc "experimental rest" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
punkshell_module_punk::rest \- punk::rest |
||||
.SH SYNOPSIS |
||||
package require \fBpunk::rest \fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION |
||||
.PP |
||||
Experimental *basic rest as wrapper over http lib - use tcllib's rest package for a more complete implementation of a rest client |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of punk::rest |
||||
.SS CONCEPTS |
||||
.PP |
||||
- |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by punk::rest |
||||
.IP \(bu |
||||
\fBTcl 8\&.6\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE PUNK::REST::CLASS" |
||||
.PP |
||||
class definitions |
||||
if { eq ""} { |
||||
.PP |
||||
} |
||||
} |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
.SS "NAMESPACE PUNK::REST" |
||||
.PP |
||||
Core API functions for punk::rest |
||||
.PP |
||||
.SS "NAMESPACE PUNK::REST::LIB" |
||||
.PP |
||||
Secondary functions that are part of the API |
||||
.PP |
||||
.SH INTERNAL |
||||
tcl::namespace::eval punk::rest::system { |
||||
.SS "NAMESPACE PUNK::REST::SYSTEM" |
||||
.PP |
||||
Internal functions that are not part of the API |
||||
.SH KEYWORDS |
||||
http, module, rest |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2024 |
||||
|
||||
.fi |
@ -0,0 +1,325 @@
|
||||
'\" |
||||
'\" Generated from file '_module_trie-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2010 |
||||
'\" |
||||
.TH "punkshell_module_punk::trie" 0 0\&.1\&.0 doc "punk::trie" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
punkshell_module_punk::trie \- punk::trie API |
||||
.SH SYNOPSIS |
||||
package require \fBpunk::trie \fR |
||||
.sp |
||||
class::trieclass \fBmatches\fR \fIt\fR \fIwhat\fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION tcl trie implementation courtesy of CmcC (tcl wiki) |
||||
.PP |
||||
- |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of punk::trie |
||||
.SS CONCEPTS |
||||
.PP |
||||
- |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by punk::trie |
||||
.IP \(bu |
||||
\fBTcl 8\&.6\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE PUNK::TRIE" |
||||
.PP |
||||
Core API functions for punk::trie |
||||
.IP [1] |
||||
CLASS \fBtrieclass\fR |
||||
.RS |
||||
.TP |
||||
class::trieclass \fBmatches\fR \fIt\fR \fIwhat\fR |
||||
.sp |
||||
search for longest prefix, return matching prefix, element and suffix |
||||
.RE |
||||
.PP |
||||
.SS "NAMESPACE PUNK::TRIE::LIB" |
||||
.PP |
||||
Secondary functions that are part of the API |
||||
.PP |
||||
.SH INTERNAL |
||||
tcl::namespace::eval punk::trie::system { |
||||
.SS "NAMESPACE PUNK::TRIE::SYSTEM" |
||||
.PP |
||||
Internal functions that are not part of the API |
||||
.SH KEYWORDS |
||||
datastructure, module, trie |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2010 |
||||
|
||||
.fi |
@ -0,0 +1,343 @@
|
||||
'\" |
||||
'\" Generated from file '_module_winlnk-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' |
||||
'\" Copyright (c) 2024 |
||||
'\" |
||||
.TH "punkshell_module_punk::winlnk" 0 0\&.1\&.0 doc "punk::winlnk" |
||||
.\" The -*- nroff -*- definitions below are for supplemental macros used |
||||
.\" in Tcl/Tk manual entries. |
||||
.\" |
||||
.\" .AP type name in/out ?indent? |
||||
.\" Start paragraph describing an argument to a library procedure. |
||||
.\" type is type of argument (int, etc.), in/out is either "in", "out", |
||||
.\" or "in/out" to describe whether procedure reads or modifies arg, |
||||
.\" and indent is equivalent to second arg of .IP (shouldn't ever be |
||||
.\" needed; use .AS below instead) |
||||
.\" |
||||
.\" .AS ?type? ?name? |
||||
.\" Give maximum sizes of arguments for setting tab stops. Type and |
||||
.\" name are examples of largest possible arguments that will be passed |
||||
.\" to .AP later. If args are omitted, default tab stops are used. |
||||
.\" |
||||
.\" .BS |
||||
.\" Start box enclosure. From here until next .BE, everything will be |
||||
.\" enclosed in one large box. |
||||
.\" |
||||
.\" .BE |
||||
.\" End of box enclosure. |
||||
.\" |
||||
.\" .CS |
||||
.\" Begin code excerpt. |
||||
.\" |
||||
.\" .CE |
||||
.\" End code excerpt. |
||||
.\" |
||||
.\" .VS ?version? ?br? |
||||
.\" Begin vertical sidebar, for use in marking newly-changed parts |
||||
.\" of man pages. The first argument is ignored and used for recording |
||||
.\" the version when the .VS was added, so that the sidebars can be |
||||
.\" found and removed when they reach a certain age. If another argument |
||||
.\" is present, then a line break is forced before starting the sidebar. |
||||
.\" |
||||
.\" .VE |
||||
.\" End of vertical sidebar. |
||||
.\" |
||||
.\" .DS |
||||
.\" Begin an indented unfilled display. |
||||
.\" |
||||
.\" .DE |
||||
.\" End of indented unfilled display. |
||||
.\" |
||||
.\" .SO ?manpage? |
||||
.\" Start of list of standard options for a Tk widget. The manpage |
||||
.\" argument defines where to look up the standard options; if |
||||
.\" omitted, defaults to "options". The options follow on successive |
||||
.\" lines, in three columns separated by tabs. |
||||
.\" |
||||
.\" .SE |
||||
.\" End of list of standard options for a Tk widget. |
||||
.\" |
||||
.\" .OP cmdName dbName dbClass |
||||
.\" Start of description of a specific option. cmdName gives the |
||||
.\" option's name as specified in the class command, dbName gives |
||||
.\" the option's name in the option database, and dbClass gives |
||||
.\" the option's class in the option database. |
||||
.\" |
||||
.\" .UL arg1 arg2 |
||||
.\" Print arg1 underlined, then print arg2 normally. |
||||
.\" |
||||
.\" .QW arg1 ?arg2? |
||||
.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). |
||||
.\" |
||||
.\" .PQ arg1 ?arg2? |
||||
.\" Print an open parenthesis, arg1 in quotes, then arg2 normally |
||||
.\" (for trailing punctuation) and then a closing parenthesis. |
||||
.\" |
||||
.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. |
||||
.if t .wh -1.3i ^B |
||||
.nr ^l \n(.l |
||||
.ad b |
||||
.\" # Start an argument description |
||||
.de AP |
||||
.ie !"\\$4"" .TP \\$4 |
||||
.el \{\ |
||||
. ie !"\\$2"" .TP \\n()Cu |
||||
. el .TP 15 |
||||
.\} |
||||
.ta \\n()Au \\n()Bu |
||||
.ie !"\\$3"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP (\\$3) |
||||
.\".b |
||||
.\} |
||||
.el \{\ |
||||
.br |
||||
.ie !"\\$2"" \{\ |
||||
\&\\$1 \\fI\\$2\\fP |
||||
.\} |
||||
.el \{\ |
||||
\&\\fI\\$1\\fP |
||||
.\} |
||||
.\} |
||||
.. |
||||
.\" # define tabbing values for .AP |
||||
.de AS |
||||
.nr )A 10n |
||||
.if !"\\$1"" .nr )A \\w'\\$1'u+3n |
||||
.nr )B \\n()Au+15n |
||||
.\" |
||||
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n |
||||
.nr )C \\n()Bu+\\w'(in/out)'u+2n |
||||
.. |
||||
.AS Tcl_Interp Tcl_CreateInterp in/out |
||||
.\" # BS - start boxed text |
||||
.\" # ^y = starting y location |
||||
.\" # ^b = 1 |
||||
.de BS |
||||
.br |
||||
.mk ^y |
||||
.nr ^b 1u |
||||
.if n .nf |
||||
.if n .ti 0 |
||||
.if n \l'\\n(.lu\(ul' |
||||
.if n .fi |
||||
.. |
||||
.\" # BE - end boxed text (draw box now) |
||||
.de BE |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
.ie n \l'\\n(^lu\(ul' |
||||
.el \{\ |
||||
.\" Draw four-sided box normally, but don't draw top of |
||||
.\" box if the box started on an earlier page. |
||||
.ie !\\n(^b-1 \{\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.el \}\ |
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' |
||||
.\} |
||||
.\} |
||||
.fi |
||||
.br |
||||
.nr ^b 0 |
||||
.. |
||||
.\" # VS - start vertical sidebar |
||||
.\" # ^Y = starting y location |
||||
.\" # ^v = 1 (for troff; for nroff this doesn't matter) |
||||
.de VS |
||||
.if !"\\$2"" .br |
||||
.mk ^Y |
||||
.ie n 'mc \s12\(br\s0 |
||||
.el .nr ^v 1u |
||||
.. |
||||
.\" # VE - end of vertical sidebar |
||||
.de VE |
||||
.ie n 'mc |
||||
.el \{\ |
||||
.ev 2 |
||||
.nf |
||||
.ti 0 |
||||
.mk ^t |
||||
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' |
||||
.sp -1 |
||||
.fi |
||||
.ev |
||||
.\} |
||||
.nr ^v 0 |
||||
.. |
||||
.\" # Special macro to handle page bottom: finish off current |
||||
.\" # box/sidebar if in box/sidebar mode, then invoked standard |
||||
.\" # page bottom macro. |
||||
.de ^B |
||||
.ev 2 |
||||
'ti 0 |
||||
'nf |
||||
.mk ^t |
||||
.if \\n(^b \{\ |
||||
.\" Draw three-sided box if this is the box's first page, |
||||
.\" draw two sides but no top otherwise. |
||||
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.nr ^x \\n(^tu+1v-\\n(^Yu |
||||
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c |
||||
.\} |
||||
.bp |
||||
'fi |
||||
.ev |
||||
.if \\n(^b \{\ |
||||
.mk ^y |
||||
.nr ^b 2 |
||||
.\} |
||||
.if \\n(^v \{\ |
||||
.mk ^Y |
||||
.\} |
||||
.. |
||||
.\" # DS - begin display |
||||
.de DS |
||||
.RS |
||||
.nf |
||||
.sp |
||||
.. |
||||
.\" # DE - end display |
||||
.de DE |
||||
.fi |
||||
.RE |
||||
.sp |
||||
.. |
||||
.\" # SO - start of list of standard options |
||||
.de SO |
||||
'ie '\\$1'' .ds So \\fBoptions\\fR |
||||
'el .ds So \\fB\\$1\\fR |
||||
.SH "STANDARD OPTIONS" |
||||
.LP |
||||
.nf |
||||
.ta 5.5c 11c |
||||
.ft B |
||||
.. |
||||
.\" # SE - end of list of standard options |
||||
.de SE |
||||
.fi |
||||
.ft R |
||||
.LP |
||||
See the \\*(So manual entry for details on the standard options. |
||||
.. |
||||
.\" # OP - start of full description for a single option |
||||
.de OP |
||||
.LP |
||||
.nf |
||||
.ta 4c |
||||
Command-Line Name: \\fB\\$1\\fR |
||||
Database Name: \\fB\\$2\\fR |
||||
Database Class: \\fB\\$3\\fR |
||||
.fi |
||||
.IP |
||||
.. |
||||
.\" # CS - begin code excerpt |
||||
.de CS |
||||
.RS |
||||
.nf |
||||
.ta .25i .5i .75i 1i |
||||
.. |
||||
.\" # CE - end code excerpt |
||||
.de CE |
||||
.fi |
||||
.RE |
||||
.. |
||||
.\" # UL - underline word |
||||
.de UL |
||||
\\$1\l'|0\(ul'\\$2 |
||||
.. |
||||
.\" # QW - apply quotation marks to word |
||||
.de QW |
||||
.ie '\\*(lq'"' ``\\$1''\\$2 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\$2 |
||||
.. |
||||
.\" # PQ - apply parens and quotation marks to word |
||||
.de PQ |
||||
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el (\\*(lq\\$1\\*(rq\\$2)\\$3 |
||||
.. |
||||
.\" # QR - quoted range |
||||
.de QR |
||||
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 |
||||
.\"" fix emacs highlighting |
||||
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 |
||||
.. |
||||
.\" # MT - "empty" string |
||||
.de MT |
||||
.QW "" |
||||
.. |
||||
.BS |
||||
.SH NAME |
||||
punkshell_module_punk::winlnk \- windows shortcut \&.lnk library |
||||
.SH SYNOPSIS |
||||
package require \fBpunk::winlnk \fR |
||||
.sp |
||||
\fBfile_check_header\fR \fIpath\fR |
||||
.sp |
||||
\fBfile_get_info\fR \fIpath\fR |
||||
.sp |
||||
.BE |
||||
.SH DESCRIPTION |
||||
.PP |
||||
Tools for reading windows shortcuts (\&.lnk files) on any platform |
||||
.SH OVERVIEW |
||||
.PP |
||||
overview of punk::winlnk |
||||
.SS CONCEPTS |
||||
.PP |
||||
Windows shortcuts are a binary format file with a \&.lnk extension |
||||
.PP |
||||
Shell Link (\&.LNK) Binary File Format is documented in [MS_SHLLINK]\&.pdf published by Microsoft\&. |
||||
.PP |
||||
Revision 8\&.0 published 2024-04-23 |
||||
.SS DEPENDENCIES |
||||
.PP |
||||
packages used by punk::winlnk |
||||
.IP \(bu |
||||
\fBTcl 8\&.6\fR |
||||
.PP |
||||
.SH API |
||||
.SS "NAMESPACE PUNK::WINLNK::CLASS" |
||||
.PP |
||||
class definitions |
||||
if { eq ""} { |
||||
.PP |
||||
} |
||||
} |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ |
||||
.SS "NAMESPACE PUNK::WINLNK" |
||||
.PP |
||||
Core API functions for punk::winlnk |
||||
.TP |
||||
\fBfile_check_header\fR \fIpath\fR |
||||
.sp |
||||
Return 0|1 |
||||
.sp |
||||
Determines if the \&.lnk file specified in path has a valid header for a windows shortcut |
||||
.TP |
||||
\fBfile_get_info\fR \fIpath\fR |
||||
.sp |
||||
Return a dict of info obtained by parsing the binary data in a windows \&.lnk file |
||||
.sp |
||||
If the \&.lnk header check fails, then the \&.lnk file probably isn't really a shortcut file and the dictionary will contain an 'error' key |
||||
.PP |
||||
.SS "NAMESPACE PUNK::WINLNK::LIB" |
||||
.PP |
||||
Secondary functions that are part of the API |
||||
.PP |
||||
.SH INTERNAL |
||||
tcl::namespace::eval punk::winlnk::system { |
||||
.SS "NAMESPACE PUNK::WINLNK::SYSTEM" |
||||
.PP |
||||
Internal functions that are not part of the API |
||||
.SH KEYWORDS |
||||
crossplatform, lnk, module, parse, shortcut, windows |
||||
.SH COPYRIGHT |
||||
.nf |
||||
Copyright (c) 2024 |
||||
|
||||
.fi |
@ -1,35 +1,42 @@
|
||||
[toc_begin {Table Of Contents} doc] |
||||
[item doc/files/_module_modpod-0.1.0.tm.md modpod_module_modpod {Module API}] |
||||
[item doc/files/_module_overtype-1.6.3.tm.md overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/_module_overtype-1.6.4.tm.md overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/_module_overtype-1.6.5.tm.md overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/main.md punkshell {punkshell - Core}] |
||||
[item doc/files/project_changes.md punkshell__project_changes {punkshell Changes}] |
||||
[item doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}] |
||||
[item doc/files/punk/_module_ansi-0.1.1.tm.md punkshell_module_punk::ansi {Ansi string functions}] |
||||
[item doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}] |
||||
[item doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}] |
||||
[item doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char {character-set and unicode utilities}] |
||||
[item doc/files/punk/_module_console-0.1.1.tm.md punkshell_module_punk::console {punk console}] |
||||
[item doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}] |
||||
[item doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}] |
||||
[item doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {flib experimental}] |
||||
[item doc/files/punk/_module_lib-0.1.1.tm.md punkshell_module_punk::lib {punk general utility functions}] |
||||
[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {dec commandset - project}] |
||||
[item doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}] |
||||
[item doc/files/_module_textblock-0.1.1.tm.md punkshell_module_textblock {punk textblock functions}] |
||||
[item doc/files/_module_argparsingtest-0.1.0.tm.md shellspy_module_argparsingtest {Module API}] |
||||
[item doc/files/_module_poshinfo-0.1.0.tm.md shellspy_module_poshinfo {Module API}] |
||||
[item doc/files/punk/_module_aliascore-0.1.0.tm.md shellspy_module_punk::aliascore {Module API}] |
||||
[item doc/files/punk/_module_assertion-0.1.0.tm.md shellspy_module_punk::assertion {assertion alternative to control::assert}] |
||||
[item doc/files/punk/_module_basictelnet-0.1.0.tm.md shellspy_module_punk::basictelnet {basic telnet client - DKF/Wiki}] |
||||
[item doc/files/punk/_module_experiment-0.1.0.tm.md shellspy_module_punk::experiment {Module API}] |
||||
[item doc/files/punk/_module_island-0.1.0.tm.md shellspy_module_punk::island {filesystem islands for safe interps}] |
||||
[item doc/files/punk/nav/_module_fs-0.1.0.tm.md shellspy_module_punk::nav::fs {Module API}] |
||||
[item doc/files/punk/_module_packagepreference-0.1.0.tm.md shellspy_module_punk::packagepreference {Module API}] |
||||
[item doc/files/punk/repl/_module_codethread-0.1.0.tm.md shellspy_module_punk::repl::codethread {Module API}] |
||||
[item doc/files/punk/_module_sshrun-0.1.0.tm.md shellspy_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}] |
||||
[item doc/files/punk/_module_uc-0.1.0.tm.md shellspy_module_punk::uc {Module API}] |
||||
[item doc/files/punk/_module_zip-0.1.0.tm.md shellspy_module_punk::zip {Module API}] |
||||
[item doc/files/_module_tomlish-1.1.1.tm.md tomlish_module_tomlish {Module API}] |
||||
[item doc/files/_module_fauxlink-0.1.1.tm.md fauxlink_module_fauxlink {faux link application shortcuts}] |
||||
[item doc/files/_module_modpod-0.1.2.tm.md modpod_module_modpod {Module API}] |
||||
[item doc/files/_module_overtype-1.6.5.tm.md overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/main.md punkshell {punkshell - Core}] |
||||
[item doc/files/punk/_module_basictelnet-0.1.0.tm.md punkshell::basictelnet {basic telnet client - DKF/Wiki}] |
||||
[item doc/files/project_changes.md punkshell__project_changes {punkshell Changes}] |
||||
[item doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}] |
||||
[item doc/files/_module_argparsingtest-0.1.0.tm.md punkshell_module_argparsingtest {Module API}] |
||||
[item doc/files/_module_poshinfo-0.1.0.tm.md punkshell_module_poshinfo {poshinfo prompt theme tool}] |
||||
[item doc/files/punk/_module_aliascore-0.1.0.tm.md punkshell_module_punk::aliascore {punkshell command aliases}] |
||||
[item doc/files/punk/_module_ansi-0.1.1.tm.md punkshell_module_punk::ansi {Ansi string functions}] |
||||
[item doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}] |
||||
[item doc/files/punk/_module_assertion-0.1.0.tm.md punkshell_module_punk::assertion {assertion alternative to control::assert}] |
||||
[item doc/files/punk/_module_blockletter-0.1.0.tm.md punkshell_module_punk::blockletter {punk::blockletter frame-based large lettering test/logo}] |
||||
[item doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}] |
||||
[item doc/files/punk/_module_cesu-0.1.0.tm.md punkshell_module_punk::cesu {CESU compatibility ehcoding scheme for utf-16: 8-Bit (CESU-8) ??}] |
||||
[item doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char {character-set and unicode utilities}] |
||||
[item doc/files/punk/_module_console-0.1.1.tm.md punkshell_module_punk::console {punk console}] |
||||
[item doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}] |
||||
[item doc/files/punk/_module_experiment-0.1.0.tm.md punkshell_module_punk::experiment {Module API}] |
||||
[item doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}] |
||||
[item doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {flib experimental}] |
||||
[item doc/files/punk/_module_island-0.1.0.tm.md punkshell_module_punk::island {filesystem islands for safe interps}] |
||||
[item doc/files/punk/_module_lib-0.1.1.tm.md punkshell_module_punk::lib {punk general utility functions}] |
||||
[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {dec commandset - project}] |
||||
[item doc/files/punk/_module_packagepreference-0.1.0.tm.md punkshell_module_punk::packagepreference {punkshell package/module loading}] |
||||
[item doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}] |
||||
[item doc/files/punk/_module_rest-0.1.0.tm.md punkshell_module_punk::rest punk::rest] |
||||
[item doc/files/punk/_module_sshrun-0.1.0.tm.md punkshell_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}] |
||||
[item doc/files/punk/_module_trie-0.1.0.tm.md punkshell_module_punk::trie {punk::trie API}] |
||||
[item doc/files/punk/_module_uc-0.1.0.tm.md punkshell_module_punk::uc {Module API}] |
||||
[item doc/files/punk/_module_winlnk-0.1.0.tm.md punkshell_module_punk::winlnk {windows shortcut .lnk library}] |
||||
[item doc/files/punk/_module_zip-0.1.1.tm.md punkshell_module_punk::zip {Module API}] |
||||
[item doc/files/punk/mix/commandset/_module_scriptwrap-0.1.0.tm.md punkshell_module_scriptwrap {scriptwrap polyglot tool}] |
||||
[item doc/files/_module_textblock-0.1.1.tm.md punkshell_module_textblock {punk textblock functions}] |
||||
[item doc/files/_module_textblock-0.1.2.tm.md punkshell_module_textblock {punk textblock functions}] |
||||
[item doc/files/punk/nav/_module_fs-0.1.0.tm.md shellspy_module_punk::nav::fs {punk::nav::fs console filesystem navigation}] |
||||
[item doc/files/punk/repl/_module_codethread-0.1.0.tm.md shellspy_module_punk::repl::codethread {Module repl codethread}] |
||||
[item doc/files/punk/_module_zip-0.1.0.tm.md shellspy_module_punk::zip {Module API}] |
||||
[item doc/files/_module_tomlish-1.1.1.tm.md tomlish_module_tomlish {tomlish toml parser}] |
||||
[toc_end] |
||||
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
doc {doc/toc {{doc/files/punk/_module_uc-0.1.0.tm.md shellspy_module_punk::uc {Module API}} {doc/files/punk/_module_lib-0.1.1.tm.md punkshell_module_punk::lib {punk general utility functions}} {doc/files/punk/_module_assertion-0.1.0.tm.md shellspy_module_punk::assertion {assertion alternative to control::assert}} {doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}} {doc/files/punk/_module_experiment-0.1.0.tm.md shellspy_module_punk::experiment {Module API}} {doc/files/_module_poshinfo-0.1.0.tm.md shellspy_module_poshinfo {Module API}} {doc/files/_module_argparsingtest-0.1.0.tm.md shellspy_module_argparsingtest {Module API}} {doc/files/_module_overtype-1.6.3.tm.md overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_sshrun-0.1.0.tm.md shellspy_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}} {doc/files/punk/_module_packagepreference-0.1.0.tm.md shellspy_module_punk::packagepreference {Module API}} {doc/files/punk/_module_island-0.1.0.tm.md shellspy_module_punk::island {filesystem islands for safe interps}} {doc/files/punk/_module_aliascore-0.1.0.tm.md shellspy_module_punk::aliascore {Module API}} {doc/files/main.md punkshell {punkshell - Core}} {doc/files/_module_overtype-1.6.4.tm.md overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_console-0.1.1.tm.md punkshell_module_punk::console {punk console}} {doc/files/_module_textblock-0.1.1.tm.md punkshell_module_textblock {punk textblock functions}} {doc/files/_module_overtype-1.6.5.tm.md overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {flib experimental}} {doc/files/_module_tomlish-1.1.1.tm.md tomlish_module_tomlish {Module API}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {dec commandset - project}} {doc/files/punk/_module_basictelnet-0.1.0.tm.md shellspy_module_punk::basictelnet {basic telnet client - DKF/Wiki}} {doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_zip-0.1.0.tm.md shellspy_module_punk::zip {Module API}} {doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/punk/_module_ansi-0.1.1.tm.md punkshell_module_punk::ansi {Ansi string functions}} {doc/files/punk/repl/_module_codethread-0.1.0.tm.md shellspy_module_punk::repl::codethread {Module API}} {doc/files/punk/nav/_module_fs-0.1.0.tm.md shellspy_module_punk::nav::fs {Module API}} {doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}} {doc/files/project_changes.md punkshell__project_changes {punkshell Changes}} {doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}} {doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char {character-set and unicode utilities}} {doc/files/_module_modpod-0.1.0.tm.md modpod_module_modpod {Module API}}}} |
||||
doc {doc/toc {{doc/files/punk/_module_uc-0.1.0.tm.md punkshell_module_punk::uc {Module API}} {doc/files/punk/_module_lib-0.1.1.tm.md punkshell_module_punk::lib {punk general utility functions}} {doc/files/punk/_module_cesu-0.1.0.tm.md punkshell_module_punk::cesu {CESU compatibility ehcoding scheme for utf-16: 8-Bit (CESU-8) ??}} {doc/files/punk/_module_assertion-0.1.0.tm.md punkshell_module_punk::assertion {assertion alternative to control::assert}} {doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}} {doc/files/_module_modpod-0.1.2.tm.md modpod_module_modpod {Module API}} {doc/files/punk/_module_experiment-0.1.0.tm.md punkshell_module_punk::experiment {Module API}} {doc/files/_module_poshinfo-0.1.0.tm.md punkshell_module_poshinfo {poshinfo prompt theme tool}} {doc/files/_module_argparsingtest-0.1.0.tm.md punkshell_module_argparsingtest {Module API}} {doc/files/punk/_module_sshrun-0.1.0.tm.md punkshell_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}} {doc/files/punk/_module_packagepreference-0.1.0.tm.md punkshell_module_punk::packagepreference {punkshell package/module loading}} {doc/files/punk/_module_island-0.1.0.tm.md punkshell_module_punk::island {filesystem islands for safe interps}} {doc/files/punk/_module_aliascore-0.1.0.tm.md punkshell_module_punk::aliascore {punkshell command aliases}} {doc/files/main.md punkshell {punkshell - Core}} {doc/files/punk/_module_console-0.1.1.tm.md punkshell_module_punk::console {punk console}} {doc/files/_module_textblock-0.1.1.tm.md punkshell_module_textblock {punk textblock functions}} {doc/files/_module_overtype-1.6.5.tm.md overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {flib experimental}} {doc/files/_module_tomlish-1.1.1.tm.md tomlish_module_tomlish {tomlish toml parser}} {doc/files/_module_textblock-0.1.2.tm.md punkshell_module_textblock {punk textblock functions}} {doc/files/punk/mix/commandset/_module_scriptwrap-0.1.0.tm.md punkshell_module_scriptwrap {scriptwrap polyglot tool}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {dec commandset - project}} {doc/files/punk/_module_rest-0.1.0.tm.md punkshell_module_punk::rest punk::rest} {doc/files/punk/_module_basictelnet-0.1.0.tm.md punkshell::basictelnet {basic telnet client - DKF/Wiki}} {doc/files/_module_fauxlink-0.1.1.tm.md fauxlink_module_fauxlink {faux link application shortcuts}} {doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_zip-0.1.0.tm.md shellspy_module_punk::zip {Module API}} {doc/files/punk/_module_winlnk-0.1.0.tm.md punkshell_module_punk::winlnk {windows shortcut .lnk library}} {doc/files/punk/_module_blockletter-0.1.0.tm.md punkshell_module_punk::blockletter {punk::blockletter frame-based large lettering test/logo}} {doc/files/punk/_module_zip-0.1.1.tm.md punkshell_module_punk::zip {Module API}} {doc/files/punk/_module_trie-0.1.0.tm.md punkshell_module_punk::trie {punk::trie API}} {doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/punk/_module_ansi-0.1.1.tm.md punkshell_module_punk::ansi {Ansi string functions}} {doc/files/punk/repl/_module_codethread-0.1.0.tm.md shellspy_module_punk::repl::codethread {Module repl codethread}} {doc/files/punk/nav/_module_fs-0.1.0.tm.md shellspy_module_punk::nav::fs {punk::nav::fs console filesystem navigation}} {doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}} {doc/files/project_changes.md punkshell__project_changes {punkshell Changes}} {doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}} {doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char {character-set and unicode utilities}}}} |
File diff suppressed because one or more lines are too long
@ -0,0 +1,168 @@
|
||||
|
||||
[//000000001]: # (fauxlink\_module\_fauxlink \- fauxlink \.fxlnk) |
||||
[//000000002]: # (Generated from file '\_module\_fauxlink\-0\.1\.1\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (fauxlink\_module\_fauxlink\(0\) 0\.1\.1 doc "fauxlink \.fxlnk") |
||||
|
||||
<hr> [ <a href="../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../toc.md">Table Of Contents</a> | <a |
||||
href="../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
fauxlink\_module\_fauxlink \- faux link application shortcuts |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace fauxlink::class](#subsection3) |
||||
|
||||
- [Namespace fauxlink](#subsection4) |
||||
|
||||
- [Namespace fauxlink::lib](#subsection5) |
||||
|
||||
- [Internal](#section4) |
||||
|
||||
- [Namespace fauxlink::system](#subsection6) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require fauxlink |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
A cross platform shortcut/symlink alternative\. |
||||
|
||||
Unapologetically ugly \- but practical in certain circumstances\. |
||||
|
||||
A solution is required for application\-driven filesystem links that survives |
||||
cross platform moves as well as |
||||
|
||||
archiving and packaging systems\. |
||||
|
||||
The target is specified in a minimally\-encoded form in the filename itself \- but |
||||
still human readable\. |
||||
|
||||
format of name <nominalname>\#<encodedtarget>\.fxlnk |
||||
|
||||
where <nominalname> can be empty \- then the effective nominal name is the tail |
||||
of the <encodedtarget> |
||||
|
||||
The \+ symbol substitutes for forward\-slashes\. |
||||
|
||||
Other chars can be encoded using url\-like encoding \- \(but only up to %7E \!\) |
||||
|
||||
We deliberately treat higher % sequences literally\. |
||||
|
||||
This means actual uri::urn encoded unicode sequences \(e\.g %E2%99%A5 \[heart\]\) can |
||||
remain literal for linking to urls\. |
||||
|
||||
e\.g if an actual \+ or \# is required in a filename or path segment they can be |
||||
encoded as %2B & %23 |
||||
|
||||
e\.g a link to a file file\#A\.txt in parent dir could be: |
||||
|
||||
file%23A\.txt\#\.\.\+file%23A\.txt\.fxlnk |
||||
|
||||
or equivalently \(but obviously affecting sorting\) \#\.\.\+file%23A\.txt\.fxlnk |
||||
|
||||
The <nominalname> can be unrelated to the actual target |
||||
|
||||
e\.g datafile\.dat\#\.\.\+file%23A\.txt\.fxlnk |
||||
|
||||
This system has no filesystem support \- and must be completely application |
||||
driven\. |
||||
|
||||
This can be useful for example in application test packages which may be tarred |
||||
or zipped and moved cross platform\. |
||||
|
||||
The target being fully specified in the name means the file doesn't have to be |
||||
read for the target to be determined |
||||
|
||||
Extensions to behaviour should be added in the file as text data in Toml format, |
||||
|
||||
with custom data being under a single application\-chosen table name |
||||
|
||||
The toplevel Toml table \[fauxlink\] is reserved for core extensions to this |
||||
system\. |
||||
|
||||
Aside from the 2 used for delimiting \(\+ \#\) |
||||
|
||||
certain characters which might normally be allowed in filesystems are required |
||||
to be encoded |
||||
|
||||
e\.g space and tab are required to be %20 %09 |
||||
|
||||
Others that require encoding are: \* ? \\ / | : ; " < > |
||||
|
||||
The nul character in raw form, when detected, is always mapped away to the empty |
||||
string \- as very few filesystems support it\. |
||||
|
||||
Control characters and other punctuation is optional to encode\. |
||||
|
||||
Generally utf\-8 should be used where possible and unicode characters can often |
||||
be left unencoded on modern systems\. |
||||
|
||||
Where encoding of unicode is desired in the nominalname,encodedtarget,tag or |
||||
comment portions it can be specified as %UXXXXXXXX |
||||
|
||||
There must be between 1 and 8 X digits following the %U\. Interpretation of chars |
||||
following %U stops at the first non\-hex character\. |
||||
|
||||
This means %Utest would not get any translation as there were no hex digits so |
||||
it would come out as %Utest \+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ \+\+\+ |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of fauxlink |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by fauxlink |
||||
|
||||
- __Tcl 8\.6\-__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace fauxlink::class |
||||
|
||||
class definitions |
||||
|
||||
## <a name='subsection4'></a>Namespace fauxlink |
||||
|
||||
## <a name='subsection5'></a>Namespace fauxlink::lib |
||||
|
||||
# <a name='section4'></a>Internal |
||||
|
||||
## <a name='subsection6'></a>Namespace fauxlink::system |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[fake](\.\./\.\./index\.md\#fake), [faux](\.\./\.\./index\.md\#faux), |
||||
[shortcut](\.\./\.\./index\.md\#shortcut), [symlink](\.\./\.\./index\.md\#symlink), |
||||
[toml](\.\./\.\./index\.md\#toml) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -1,8 +1,8 @@
|
||||
|
||||
[//000000001]: # (modpod\_module\_modpod \- \-) |
||||
[//000000002]: # (Generated from file '\_module\_modpod\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000002]: # (Generated from file '\_module\_modpod\-0\.1\.2\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (modpod\_module\_modpod\(0\) 0\.1\.0 doc "\-") |
||||
[//000000004]: # (modpod\_module\_modpod\(0\) 0\.1\.2 doc "\-") |
||||
|
||||
<hr> [ <a href="../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../toc.md">Table Of Contents</a> | <a |
@ -1,139 +0,0 @@
|
||||
|
||||
[//000000001]: # (overtype\_module\_overtype \- overtype text layout) |
||||
[//000000002]: # (Generated from file '\_module\_overtype\-1\.6\.3\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (overtype\_module\_overtype\(0\) 1\.6\.3 doc "overtype text layout") |
||||
|
||||
<hr> [ <a href="../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../toc.md">Table Of Contents</a> | <a |
||||
href="../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
overtype\_module\_overtype \- overtype text layout \- ansi aware |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace overtype](#subsection3) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require overtype |
||||
|
||||
[__overtype::renderspace__ *args*](#1) |
||||
[__overtype::renderline__ *args*](#2) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
\- |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of overtype |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by overtype |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
- __textutil__ |
||||
|
||||
- __punk::ansi__ |
||||
|
||||
\- required to detect, split, strip and calculate lengths of text possibly |
||||
containing ansi codes |
||||
|
||||
- __punk::char__ |
||||
|
||||
\- box drawing \- and also unicode character width determination for proper |
||||
layout of text with double\-column\-width chars |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace overtype |
||||
|
||||
Core API functions for overtype |
||||
|
||||
- <a name='1'></a>__overtype::renderspace__ *args* |
||||
|
||||
usage: ?\-transparent \[0|1\]? ?\-overflow \[1|0\]? ?\-ellipsis \[1|0\]? |
||||
?\-ellipsistext \.\.\.? undertext overtext |
||||
|
||||
- <a name='2'></a>__overtype::renderline__ *args* |
||||
|
||||
renderline is the core engine for overtype string processing \(frames & |
||||
textblocks\), and the raw mode commandline repl for the Tcl Punk Shell |
||||
|
||||
It is also a central part of an ansi \(micro\) virtual terminal\-emulator of |
||||
sorts |
||||
|
||||
This system does a half decent job at rendering 90's ANSI art to manipulable |
||||
colour text blocks that can be joined & framed for layout display within a |
||||
unix or windows terminal |
||||
|
||||
Renderline helps maintain ANSI text styling reset/replay codes so that the |
||||
styling of one block doesn't affect another\. |
||||
|
||||
Calling on the punk::ansi library \- it can coalesce codes to keep the size |
||||
down\. |
||||
|
||||
It is a giant mess of doing exactly what common wisdom says not to do\.\.\. |
||||
lots at once\. |
||||
|
||||
renderline is part of the Unicode and ANSI aware Overtype system which |
||||
'renders' a block of text onto a static underlay |
||||
|
||||
The underlay is generally expected to be an ordered set of lines or a |
||||
rectangular text block analogous to a terminal screen \- but it can also be |
||||
ragged in line length, or just blank\. |
||||
|
||||
The overlay couuld be similar \- in which case it may often be used to |
||||
overwrite a column or section of the underlay\. |
||||
|
||||
The overlay could however be a sequence of ANSI\-laden text that jumps all |
||||
over the place\. |
||||
|
||||
renderline itself only deals with a single line \- or sometimes a single |
||||
character\. It is generally called from a loop that does further |
||||
terminal\-like or textblock processing\. |
||||
|
||||
By suppyling the \-info 1 option \- it can return various fields indicating |
||||
the state of the render\. |
||||
|
||||
The main 3 are the result, overflow\_right, and unapplied\. |
||||
|
||||
Renderline handles cursor movements from either keystrokes or ANSI sequences |
||||
but for a full system the aforementioned loop will need to be in place to |
||||
manage the set of lines under manipulation\. |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[ansi](\.\./\.\./index\.md\#ansi), [module](\.\./\.\./index\.md\#module), |
||||
[text](\.\./\.\./index\.md\#text) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -1,139 +0,0 @@
|
||||
|
||||
[//000000001]: # (overtype\_module\_overtype \- overtype text layout) |
||||
[//000000002]: # (Generated from file '\_module\_overtype\-1\.6\.4\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (overtype\_module\_overtype\(0\) 1\.6\.4 doc "overtype text layout") |
||||
|
||||
<hr> [ <a href="../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../toc.md">Table Of Contents</a> | <a |
||||
href="../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
overtype\_module\_overtype \- overtype text layout \- ansi aware |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace overtype](#subsection3) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require overtype |
||||
|
||||
[__overtype::renderspace__ *args*](#1) |
||||
[__overtype::renderline__ *args*](#2) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
\- |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of overtype |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by overtype |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
- __textutil__ |
||||
|
||||
- __punk::ansi__ |
||||
|
||||
\- required to detect, split, strip and calculate lengths of text possibly |
||||
containing ansi codes |
||||
|
||||
- __punk::char__ |
||||
|
||||
\- box drawing \- and also unicode character width determination for proper |
||||
layout of text with double\-column\-width chars |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace overtype |
||||
|
||||
Core API functions for overtype |
||||
|
||||
- <a name='1'></a>__overtype::renderspace__ *args* |
||||
|
||||
usage: ?\-transparent \[0|1\]? ?\-overflow \[1|0\]? ?\-ellipsis \[1|0\]? |
||||
?\-ellipsistext \.\.\.? undertext overtext |
||||
|
||||
- <a name='2'></a>__overtype::renderline__ *args* |
||||
|
||||
renderline is the core engine for overtype string processing \(frames & |
||||
textblocks\), and the raw mode commandline repl for the Tcl Punk Shell |
||||
|
||||
It is also a central part of an ansi \(micro\) virtual terminal\-emulator of |
||||
sorts |
||||
|
||||
This system does a half decent job at rendering 90's ANSI art to manipulable |
||||
colour text blocks that can be joined & framed for layout display within a |
||||
unix or windows terminal |
||||
|
||||
Renderline helps maintain ANSI text styling reset/replay codes so that the |
||||
styling of one block doesn't affect another\. |
||||
|
||||
Calling on the punk::ansi library \- it can coalesce codes to keep the size |
||||
down\. |
||||
|
||||
It is a giant mess of doing exactly what common wisdom says not to do\.\.\. |
||||
lots at once\. |
||||
|
||||
renderline is part of the Unicode and ANSI aware Overtype system which |
||||
'renders' a block of text onto a static underlay |
||||
|
||||
The underlay is generally expected to be an ordered set of lines or a |
||||
rectangular text block analogous to a terminal screen \- but it can also be |
||||
ragged in line length, or just blank\. |
||||
|
||||
The overlay couuld be similar \- in which case it may often be used to |
||||
overwrite a column or section of the underlay\. |
||||
|
||||
The overlay could however be a sequence of ANSI\-laden text that jumps all |
||||
over the place\. |
||||
|
||||
renderline itself only deals with a single line \- or sometimes a single |
||||
character\. It is generally called from a loop that does further |
||||
terminal\-like or textblock processing\. |
||||
|
||||
By suppyling the \-info 1 option \- it can return various fields indicating |
||||
the state of the render\. |
||||
|
||||
The main 3 are the result, overflow\_right, and unapplied\. |
||||
|
||||
Renderline handles cursor movements from either keystrokes or ANSI sequences |
||||
but for a full system the aforementioned loop will need to be in place to |
||||
manage the set of lines under manipulation\. |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[ansi](\.\./\.\./index\.md\#ansi), [module](\.\./\.\./index\.md\#module), |
||||
[text](\.\./\.\./index\.md\#text) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,253 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_textblock \- punk textblock) |
||||
[//000000002]: # (Generated from file '\_module\_textblock\-0\.1\.2\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_textblock\(0\) 0\.1\.2 doc "punk textblock") |
||||
|
||||
<hr> [ <a href="../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../toc.md">Table Of Contents</a> | <a |
||||
href="../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_textblock \- punk textblock functions |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace textblock::class](#subsection3) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require textblock |
||||
|
||||
[class::table __constructor__ *args*](#1) |
||||
[class::table __configure__ *args*](#2) |
||||
[class::table __printmatrix__ *matrix*](#3) |
||||
[class::table __as\_matrix__ *?cmd?*](#4) |
||||
[class::table __add\_column__ *args*](#5) |
||||
[class::table __column\_count__](#6) |
||||
[class::table __configure\_column__ *index\_expression* *args*](#7) |
||||
[class::table __header\_count__](#8) |
||||
[class::table __header\_height__ *header\_index*](#9) |
||||
[class::table __header\_colspans__](#10) |
||||
[class::table __configure\_header__](#11) |
||||
[class::table __add\_row__ *valuelist* ?__\-minheight__ *int\_minheight*? ?__\-maxheight__ *int\_maxheight*? ?__\-ansibase__ *ansicode*?](#12) |
||||
[class::table __configure\_row__ *index\_expression* ?__\-minheight__ *int\_minheight*? ?__\-maxheight__ *int\_maxheight*? ?__\-ansibase__ *ansicode*?](#13) |
||||
[class::table __row\_count__](#14) |
||||
[class::table __row\_clear__](#15) |
||||
[class::table __clear__](#16) |
||||
[class::table __get\_column\_cells\_by\_index__ *index\_expression*](#17) |
||||
[class::table __get\_column\_values\_by\_index__ *index\_expression*](#18) |
||||
[class::table __debug__](#19) |
||||
[class::table __column\_width__ *index\_expression*](#20) |
||||
[class::table __column\_width__](#21) |
||||
[class::table __width__](#22) |
||||
[class::table __spangroups__](#23) |
||||
[class::table __print__](#24) |
||||
[class::table __print\_bodymatrix__](#25) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
Ansi\-aware terminal textblock manipulation |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of textblock |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by textblock |
||||
|
||||
- __Tcl 8\.6\-__ |
||||
|
||||
- __punk::args__ |
||||
|
||||
- __punk::char__ |
||||
|
||||
- __punk::ansi__ |
||||
|
||||
- __punk::lib__ |
||||
|
||||
- __overtype__ |
||||
|
||||
- __term::ansi::code::macros__ |
||||
|
||||
- __textutil__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace textblock::class |
||||
|
||||
class definitions |
||||
|
||||
- *handler\_classes* |
||||
|
||||
1. CLASS __textblock::class::table__ |
||||
|
||||
* <a name='1'></a>class::table __constructor__ *args* |
||||
|
||||
*METHODS* |
||||
|
||||
TODO \- document the many options |
||||
|
||||
* <a name='2'></a>class::table __configure__ *args* |
||||
|
||||
get or set various table\-level properties |
||||
|
||||
* <a name='3'></a>class::table __printmatrix__ *matrix* |
||||
|
||||
clear all table rows and print a matrix into the table |
||||
|
||||
The rowxcolumn structure must match |
||||
|
||||
* <a name='4'></a>class::table __as\_matrix__ *?cmd?* |
||||
|
||||
return a struct::matrix command representing the data portion of |
||||
the table\. |
||||
|
||||
* <a name='5'></a>class::table __add\_column__ *args* |
||||
|
||||
* <a name='6'></a>class::table __column\_count__ |
||||
|
||||
return the number of columns |
||||
|
||||
* <a name='7'></a>class::table __configure\_column__ *index\_expression* *args* |
||||
|
||||
\- undocumented |
||||
|
||||
* <a name='8'></a>class::table __header\_count__ |
||||
|
||||
return the number of header rows |
||||
|
||||
* <a name='9'></a>class::table __header\_height__ *header\_index* |
||||
|
||||
return the height of a header as the number of content\-lines |
||||
|
||||
* <a name='10'></a>class::table __header\_colspans__ |
||||
|
||||
Show the colspans configured for all headers |
||||
|
||||
* <a name='11'></a>class::table __configure\_header__ |
||||
|
||||
\- undocumented |
||||
|
||||
* <a name='12'></a>class::table __add\_row__ *valuelist* ?__\-minheight__ *int\_minheight*? ?__\-maxheight__ *int\_maxheight*? ?__\-ansibase__ *ansicode*? |
||||
|
||||
* <a name='13'></a>class::table __configure\_row__ *index\_expression* ?__\-minheight__ *int\_minheight*? ?__\-maxheight__ *int\_maxheight*? ?__\-ansibase__ *ansicode*? |
||||
|
||||
* <a name='14'></a>class::table __row\_count__ |
||||
|
||||
return the number of data rows in the table\. |
||||
|
||||
* <a name='15'></a>class::table __row\_clear__ |
||||
|
||||
Remove all rows without resetting column data\. |
||||
|
||||
When adding new rows the number of entries will need to match the |
||||
existing column count\. |
||||
|
||||
* <a name='16'></a>class::table __clear__ |
||||
|
||||
Remove all row and column data\. |
||||
|
||||
If a subsequent call to add\_row is made it can contain any number |
||||
of values\. |
||||
|
||||
Further calls to add\_row will need to contain the same number of |
||||
values |
||||
|
||||
as the first call unless default values have been set for the |
||||
missing columns \(review \- in flux\)\. |
||||
|
||||
* <a name='17'></a>class::table __get\_column\_cells\_by\_index__ *index\_expression* |
||||
|
||||
Return a dict with keys 'headers' and 'cells' giving column header |
||||
and data values |
||||
|
||||
* <a name='18'></a>class::table __get\_column\_values\_by\_index__ *index\_expression* |
||||
|
||||
List the cell values of a column from the data area only \(no header |
||||
values\) |
||||
|
||||
* <a name='19'></a>class::table __debug__ |
||||
|
||||
display lots of debug information about how the table is |
||||
constructed\. |
||||
|
||||
* <a name='20'></a>class::table __column\_width__ *index\_expression* |
||||
|
||||
inner width of column ie the available cell\-width without |
||||
borders/separators |
||||
|
||||
* <a name='21'></a>class::table __column\_width__ |
||||
|
||||
ordered list of column widths \(inner widths\) |
||||
|
||||
* <a name='22'></a>class::table __width__ |
||||
|
||||
width of the table including borders and separators |
||||
|
||||
calculate width based on assumption frame verticals are 1 |
||||
screen\-column wide |
||||
|
||||
\(review \- consider possibility of custom unicode double\-wide |
||||
frame?\) |
||||
|
||||
* <a name='23'></a>class::table __spangroups__ |
||||
|
||||
return a dict keyed by column\-index showing advanced span |
||||
information |
||||
|
||||
\(debug tool\) |
||||
|
||||
* <a name='24'></a>class::table __print__ |
||||
|
||||
Return the table as text suitable for console display |
||||
|
||||
* <a name='25'></a>class::table __print\_bodymatrix__ |
||||
|
||||
output the matrix string corresponding to the body data using the |
||||
matrix 2string format |
||||
|
||||
this will be a table without borders,headers,title etc and will |
||||
exclude additional ANSI applied due to table, row or column |
||||
settings\. |
||||
|
||||
If the original cell data itself contains ANSI \- the output will |
||||
still contain those ansi codes\. |
||||
|
||||
Already uniform blocks will join faster than textblock::join, and ragged blocks |
||||
will join in a ragged manner " Already uniform blocks will join faster than |
||||
textblock::join, and ragged blocks will join in a ragged manner " |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[ansi](\.\./\.\./index\.md\#ansi), [colour](\.\./\.\./index\.md\#colour), |
||||
[console](\.\./\.\./index\.md\#console), [frame](\.\./\.\./index\.md\#frame), |
||||
[layout](\.\./\.\./index\.md\#layout), [module](\.\./\.\./index\.md\#module), |
||||
[table](\.\./\.\./index\.md\#table), [terminal](\.\./\.\./index\.md\#terminal), |
||||
[text](\.\./\.\./index\.md\#text) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,98 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_punk::blockletter \- \-) |
||||
[//000000002]: # (Generated from file '\_module\_blockletter\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_punk::blockletter\(0\) 0\.1\.0 doc "\-") |
||||
|
||||
<hr> [ <a href="../../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_punk::blockletter \- punk::blockletter frame\-based large |
||||
lettering test/logo |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::blockletter::class](#subsection3) |
||||
|
||||
- [Namespace punk::blockletter](#subsection4) |
||||
|
||||
- [Namespace punk::blockletter::lib](#subsection5) |
||||
|
||||
- [Internal](#section4) |
||||
|
||||
- [Namespace punk::blockletter::system](#subsection6) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::blockletter |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
This is primarily designed to test large lettering using the block2 frametype |
||||
which requires the right font support |
||||
|
||||
More reasonably sized block\-lettering could be obtained using unicode |
||||
half\-blocks instead \- but that doesn't allow the frame outline effect that |
||||
block2 gives\. |
||||
|
||||
Individual blocks have a minimum width of 4 columns and a minimum height of 2 |
||||
rows \(smallest element that can be fully framed\) |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of punk::blockletter |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by punk::blockletter |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
- __textblock__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::blockletter::class |
||||
|
||||
class definitions if \{ eq ""\} \{ |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::blockletter |
||||
|
||||
## <a name='subsection5'></a>Namespace punk::blockletter::lib |
||||
|
||||
# <a name='section4'></a>Internal |
||||
|
||||
## <a name='subsection6'></a>Namespace punk::blockletter::system |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[module](\.\./\.\./\.\./index\.md\#module) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,93 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_punk::cesu \- CESU experimental) |
||||
[//000000002]: # (Generated from file '\_module\_cesu\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_punk::cesu\(0\) 0\.1\.0 doc "CESU experimental") |
||||
|
||||
<hr> [ <a href="../../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_punk::cesu \- CESU compatibility ehcoding scheme for utf\-16: |
||||
8\-Bit \(CESU\-8\) ?? |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::cesu](#subsection3) |
||||
|
||||
- [Namespace punk::cesu::lib](#subsection4) |
||||
|
||||
- [Internal](#section4) |
||||
|
||||
- [Namespace punk::cesu::system](#subsection5) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::cesu |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
experimental |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of punk::cesu |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
cesu\-8 may be mistaken for utf\-8 if no supplementary chars present\. |
||||
|
||||
see: https://www\.unicode\.org/reports/tr26/tr26\-4\.html |
||||
|
||||
Particulary note discouragement of use especially in external interchange\. |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by punk::cesu |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::cesu |
||||
|
||||
Core API functions for punk::cesu |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::cesu::lib |
||||
|
||||
# <a name='section4'></a>Internal |
||||
|
||||
## <a name='subsection5'></a>Namespace punk::cesu::system |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[cesu](\.\./\.\./\.\./index\.md\#cesu), |
||||
[compatibility](\.\./\.\./\.\./index\.md\#compatibility), |
||||
[encoding](\.\./\.\./\.\./index\.md\#encoding), |
||||
[experimental](\.\./\.\./\.\./index\.md\#experimental), |
||||
[module](\.\./\.\./\.\./index\.md\#module), |
||||
[unofficial](\.\./\.\./\.\./index\.md\#unofficial) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,89 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_punk::rest \- experimental rest) |
||||
[//000000002]: # (Generated from file '\_module\_rest\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_punk::rest\(0\) 0\.1\.0 doc "experimental rest") |
||||
|
||||
<hr> [ <a href="../../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_punk::rest \- punk::rest |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::rest::class](#subsection3) |
||||
|
||||
- [Namespace punk::rest](#subsection4) |
||||
|
||||
- [Namespace punk::rest::lib](#subsection5) |
||||
|
||||
- [Internal](#section4) |
||||
|
||||
- [Namespace punk::rest::system](#subsection6) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::rest |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
Experimental \*basic rest as wrapper over http lib \- use tcllib's rest package |
||||
for a more complete implementation of a rest client |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of punk::rest |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by punk::rest |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::rest::class |
||||
|
||||
class definitions if \{ eq ""\} \{ |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::rest |
||||
|
||||
## <a name='subsection5'></a>Namespace punk::rest::lib |
||||
|
||||
# <a name='section4'></a>Internal |
||||
|
||||
## <a name='subsection6'></a>Namespace punk::rest::system |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[http](\.\./\.\./\.\./index\.md\#http), [module](\.\./\.\./\.\./index\.md\#module), |
||||
[rest](\.\./\.\./\.\./index\.md\#rest) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,96 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_punk::trie \- punk::trie) |
||||
[//000000002]: # (Generated from file '\_module\_trie\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2010) |
||||
[//000000004]: # (punkshell\_module\_punk::trie\(0\) 0\.1\.0 doc "punk::trie") |
||||
|
||||
<hr> [ <a href="../../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_punk::trie \- punk::trie API |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::trie](#subsection3) |
||||
|
||||
- [Namespace punk::trie::lib](#subsection4) |
||||
|
||||
- [Internal](#section4) |
||||
|
||||
- [Namespace punk::trie::system](#subsection5) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::trie |
||||
|
||||
[class::trieclass __matches__ *t* *what*](#1) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
tcl trie implementation courtesy of CmcC \(tcl wiki\) |
||||
|
||||
\- |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of punk::trie |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by punk::trie |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::trie |
||||
|
||||
Core API functions for punk::trie |
||||
|
||||
1. CLASS __trieclass__ |
||||
|
||||
- <a name='1'></a>class::trieclass __matches__ *t* *what* |
||||
|
||||
search for longest prefix, return matching prefix, element and suffix |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::trie::lib |
||||
|
||||
Secondary functions that are part of the API |
||||
|
||||
# <a name='section4'></a>Internal |
||||
|
||||
## <a name='subsection5'></a>Namespace punk::trie::system |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[datastructure](\.\./\.\./\.\./index\.md\#datastructure), |
||||
[module](\.\./\.\./\.\./index\.md\#module), [trie](\.\./\.\./\.\./index\.md\#trie) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2010 |
@ -0,0 +1,116 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_punk::winlnk \- punk::winlnk) |
||||
[//000000002]: # (Generated from file '\_module\_winlnk\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_punk::winlnk\(0\) 0\.1\.0 doc "punk::winlnk") |
||||
|
||||
<hr> [ <a href="../../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_punk::winlnk \- windows shortcut \.lnk library |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::winlnk::class](#subsection3) |
||||
|
||||
- [Namespace punk::winlnk](#subsection4) |
||||
|
||||
- [Namespace punk::winlnk::lib](#subsection5) |
||||
|
||||
- [Internal](#section4) |
||||
|
||||
- [Namespace punk::winlnk::system](#subsection6) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::winlnk |
||||
|
||||
[__file\_check\_header__ *path*](#1) |
||||
[__file\_get\_info__ *path*](#2) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
Tools for reading windows shortcuts \(\.lnk files\) on any platform |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of punk::winlnk |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
Windows shortcuts are a binary format file with a \.lnk extension |
||||
|
||||
Shell Link \(\.LNK\) Binary File Format is documented in \[MS\_SHLLINK\]\.pdf published |
||||
by Microsoft\. |
||||
|
||||
Revision 8\.0 published 2024\-04\-23 |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by punk::winlnk |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::winlnk::class |
||||
|
||||
class definitions if \{ eq ""\} \{ |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::winlnk |
||||
|
||||
- <a name='1'></a>__file\_check\_header__ *path* |
||||
|
||||
Return 0|1 |
||||
|
||||
Determines if the \.lnk file specified in path has a valid header for a |
||||
windows shortcut |
||||
|
||||
- <a name='2'></a>__file\_get\_info__ *path* |
||||
|
||||
Return a dict of info obtained by parsing the binary data in a windows \.lnk |
||||
file |
||||
|
||||
If the \.lnk header check fails, then the \.lnk file probably isn't really a |
||||
shortcut file and the dictionary will contain an 'error' key |
||||
|
||||
## <a name='subsection5'></a>Namespace punk::winlnk::lib |
||||
|
||||
Secondary functions that are part of the API |
||||
|
||||
# <a name='section4'></a>Internal |
||||
|
||||
## <a name='subsection6'></a>Namespace punk::winlnk::system |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[crossplatform](\.\./\.\./\.\./index\.md\#crossplatform), |
||||
[lnk](\.\./\.\./\.\./index\.md\#lnk), [module](\.\./\.\./\.\./index\.md\#module), |
||||
[parse](\.\./\.\./\.\./index\.md\#parse), |
||||
[shortcut](\.\./\.\./\.\./index\.md\#shortcut), |
||||
[windows](\.\./\.\./\.\./index\.md\#windows) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,125 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_punk::zip \- \-) |
||||
[//000000002]: # (Generated from file '\_module\_zip\-0\.1\.1\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_punk::zip\(0\) 0\.1\.1 doc "\-") |
||||
|
||||
<hr> [ <a href="../../../toc.md">Main Table Of Contents</a> | <a |
||||
href="../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_punk::zip \- Module API |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::zip](#subsection3) |
||||
|
||||
- [Namespace punk::zip::lib](#subsection4) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::zip |
||||
|
||||
[__Timet\_to\_dos__ *time\_t*](#1) |
||||
[__walk__ *?options?* *base*](#2) |
||||
[__Addentry__ *zipchan* *base* *path* *?comment?*](#3) |
||||
[__mkzip__ ?__\-offsettype__ *offsettype*? ?__\-return__ *returntype*? ?__\-zipkit__ *0|1*? ?__\-runtime__ *preamble\_filename*? ?__\-comment__ *zipfilecomment*? ?__\-directory__ *dir\_to\_zip*? ?__\-base__ *archive\_root*? ?__\-exclude__ *globlist*? *zipfilename* *?glob\.\.\.?*](#4) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
\- |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of punk::zip |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by punk::zip |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
- __punk::args__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::zip |
||||
|
||||
Core API functions for punk::zip |
||||
|
||||
- <a name='1'></a>__Timet\_to\_dos__ *time\_t* |
||||
|
||||
convert a unix timestamp into a DOS timestamp for ZIP times\. |
||||
|
||||
DOS timestamps are 32 bits split into bit regions as follows: |
||||
24 16 8 0 |
||||
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ |
||||
|Y|Y|Y|Y|Y|Y|Y|m| |m|m|m|d|d|d|d|d| |h|h|h|h|h|m|m|m| |m|m|m|s|s|s|s|s| |
||||
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ |
||||
|
||||
- <a name='2'></a>__walk__ *?options?* *base* |
||||
|
||||
Walk a directory tree rooted at base |
||||
|
||||
the \-excludes list can be a set of glob expressions to match against files |
||||
and avoid |
||||
|
||||
e\.g |
||||
|
||||
punk::zip::walk -exclude {CVS/* *~.#*} library |
||||
|
||||
- <a name='3'></a>__Addentry__ *zipchan* *base* *path* *?comment?* |
||||
|
||||
Add a single file to a zip archive |
||||
|
||||
The zipchan channel should already be open and binary\. |
||||
|
||||
You can provide a \-comment for the file\. |
||||
|
||||
The return value is the central directory record that will need to be used |
||||
when finalizing the zip archive\. |
||||
|
||||
- <a name='4'></a>__mkzip__ ?__\-offsettype__ *offsettype*? ?__\-return__ *returntype*? ?__\-zipkit__ *0|1*? ?__\-runtime__ *preamble\_filename*? ?__\-comment__ *zipfilecomment*? ?__\-directory__ *dir\_to\_zip*? ?__\-base__ *archive\_root*? ?__\-exclude__ *globlist*? *zipfilename* *?glob\.\.\.?* |
||||
|
||||
Create a zip archive in 'zipfilename' |
||||
|
||||
If a file already exists, an error will be raised\. |
||||
|
||||
Call 'punk::zip::mkzip' with no arguments for usage display\. |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::zip::lib |
||||
|
||||
Secondary functions that are part of the API |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[fileformat](\.\./\.\./\.\./index\.md\#fileformat), |
||||
[module](\.\./\.\./\.\./index\.md\#module), [zip](\.\./\.\./\.\./index\.md\#zip) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -0,0 +1,108 @@
|
||||
|
||||
[//000000001]: # (punkshell\_module\_scriptwrap \- scriptwrap tool) |
||||
[//000000002]: # (Generated from file '\_module\_scriptwrap\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') |
||||
[//000000003]: # (Copyright © 2024) |
||||
[//000000004]: # (punkshell\_module\_scriptwrap\(0\) 0\.1\.0 doc "scriptwrap tool") |
||||
|
||||
<hr> [ <a href="../../../../../toc.md">Main Table Of Contents</a> | |
||||
<a href="../../../../toc.md">Table Of Contents</a> | <a |
||||
href="../../../../../index.md">Keyword Index</a> ] <hr> |
||||
|
||||
# NAME |
||||
|
||||
punkshell\_module\_scriptwrap \- scriptwrap polyglot tool |
||||
|
||||
# <a name='toc'></a>Table Of Contents |
||||
|
||||
- [Table Of Contents](#toc) |
||||
|
||||
- [Synopsis](#synopsis) |
||||
|
||||
- [Description](#section1) |
||||
|
||||
- [Overview](#section2) |
||||
|
||||
- [Concepts](#subsection1) |
||||
|
||||
- [dependencies](#subsection2) |
||||
|
||||
- [API](#section3) |
||||
|
||||
- [Namespace punk::mix::commandset::scriptwrap](#subsection3) |
||||
|
||||
- [Namespace punk::mix::commandset::scriptwrap::lib](#subsection4) |
||||
|
||||
- [Namespace |
||||
punk::mix::commandset::scriptwrap::batchlib](#subsection5) |
||||
|
||||
- [Keywords](#keywords) |
||||
|
||||
- [Copyright](#copyright) |
||||
|
||||
# <a name='synopsis'></a>SYNOPSIS |
||||
|
||||
package require punk::mix::commandset::scriptwrap |
||||
|
||||
[__get\_wrapper\_folders__ *args*](#1) |
||||
|
||||
# <a name='description'></a>DESCRIPTION |
||||
|
||||
\- |
||||
|
||||
# <a name='section2'></a>Overview |
||||
|
||||
overview of scriptwrap |
||||
|
||||
## <a name='subsection1'></a>Concepts |
||||
|
||||
\- |
||||
|
||||
## <a name='subsection2'></a>dependencies |
||||
|
||||
packages used by poshinfo |
||||
|
||||
- __Tcl 8\.6__ |
||||
|
||||
- __punk::lib__ |
||||
|
||||
- __punk::args__ |
||||
|
||||
- __punk::mix__ |
||||
|
||||
- __punk::base__ |
||||
|
||||
- __punk::fileline__ |
||||
|
||||
# <a name='section3'></a>API |
||||
|
||||
## <a name='subsection3'></a>Namespace punk::mix::commandset::scriptwrap |
||||
|
||||
Core API functions for punk::mix::commandset::scriptwrap |
||||
|
||||
## <a name='subsection4'></a>Namespace punk::mix::commandset::scriptwrap::lib |
||||
|
||||
- <a name='1'></a>__get\_wrapper\_folders__ *args* |
||||
|
||||
Return list of dicts representing wrapper folders in the project\. keys: |
||||
basefolder sourceinfo |
||||
|
||||
Arguments: |
||||
|
||||
* string *args* |
||||
|
||||
name\-value pairs \-scriptpath <path> |
||||
|
||||
## <a name='subsection5'></a>Namespace punk::mix::commandset::scriptwrap::batchlib |
||||
|
||||
Utility funcions for processing windows \.bat files |
||||
|
||||
# <a name='keywords'></a>KEYWORDS |
||||
|
||||
[commandset](\.\./\.\./\.\./\.\./\.\./index\.md\#commandset), |
||||
[launcher](\.\./\.\./\.\./\.\./\.\./index\.md\#launcher), |
||||
[module](\.\./\.\./\.\./\.\./\.\./index\.md\#module), |
||||
[scriptwrap](\.\./\.\./\.\./\.\./\.\./index\.md\#scriptwrap) |
||||
|
||||
# <a name='copyright'></a>COPYRIGHT |
||||
|
||||
Copyright © 2024 |
@ -1,35 +1,42 @@
|
||||
[toc_begin {Table Of Contents} doc] |
||||
[item doc/files/_module_modpod-0.1.0.tm.html modpod_module_modpod {Module API}] |
||||
[item doc/files/_module_overtype-1.6.3.tm.html overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/_module_overtype-1.6.4.tm.html overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/_module_overtype-1.6.5.tm.html overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/main.html punkshell {punkshell - Core}] |
||||
[item doc/files/project_changes.html punkshell__project_changes {punkshell Changes}] |
||||
[item doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}] |
||||
[item doc/files/punk/_module_ansi-0.1.1.tm.html punkshell_module_punk::ansi {Ansi string functions}] |
||||
[item doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}] |
||||
[item doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}] |
||||
[item doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char {character-set and unicode utilities}] |
||||
[item doc/files/punk/_module_console-0.1.1.tm.html punkshell_module_punk::console {punk console}] |
||||
[item doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}] |
||||
[item doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}] |
||||
[item doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {flib experimental}] |
||||
[item doc/files/punk/_module_lib-0.1.1.tm.html punkshell_module_punk::lib {punk general utility functions}] |
||||
[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {dec commandset - project}] |
||||
[item doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}] |
||||
[item doc/files/_module_textblock-0.1.1.tm.html punkshell_module_textblock {punk textblock functions}] |
||||
[item doc/files/_module_argparsingtest-0.1.0.tm.html shellspy_module_argparsingtest {Module API}] |
||||
[item doc/files/_module_poshinfo-0.1.0.tm.html shellspy_module_poshinfo {Module API}] |
||||
[item doc/files/punk/_module_aliascore-0.1.0.tm.html shellspy_module_punk::aliascore {Module API}] |
||||
[item doc/files/punk/_module_assertion-0.1.0.tm.html shellspy_module_punk::assertion {assertion alternative to control::assert}] |
||||
[item doc/files/punk/_module_basictelnet-0.1.0.tm.html shellspy_module_punk::basictelnet {basic telnet client - DKF/Wiki}] |
||||
[item doc/files/punk/_module_experiment-0.1.0.tm.html shellspy_module_punk::experiment {Module API}] |
||||
[item doc/files/punk/_module_island-0.1.0.tm.html shellspy_module_punk::island {filesystem islands for safe interps}] |
||||
[item doc/files/punk/nav/_module_fs-0.1.0.tm.html shellspy_module_punk::nav::fs {Module API}] |
||||
[item doc/files/punk/_module_packagepreference-0.1.0.tm.html shellspy_module_punk::packagepreference {Module API}] |
||||
[item doc/files/punk/repl/_module_codethread-0.1.0.tm.html shellspy_module_punk::repl::codethread {Module API}] |
||||
[item doc/files/punk/_module_sshrun-0.1.0.tm.html shellspy_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}] |
||||
[item doc/files/punk/_module_uc-0.1.0.tm.html shellspy_module_punk::uc {Module API}] |
||||
[item doc/files/punk/_module_zip-0.1.0.tm.html shellspy_module_punk::zip {Module API}] |
||||
[item doc/files/_module_tomlish-1.1.1.tm.html tomlish_module_tomlish {Module API}] |
||||
[item doc/files/_module_fauxlink-0.1.1.tm.html fauxlink_module_fauxlink {faux link application shortcuts}] |
||||
[item doc/files/_module_modpod-0.1.2.tm.html modpod_module_modpod {Module API}] |
||||
[item doc/files/_module_overtype-1.6.5.tm.html overtype_module_overtype {overtype text layout - ansi aware}] |
||||
[item doc/files/main.html punkshell {punkshell - Core}] |
||||
[item doc/files/punk/_module_basictelnet-0.1.0.tm.html punkshell::basictelnet {basic telnet client - DKF/Wiki}] |
||||
[item doc/files/project_changes.html punkshell__project_changes {punkshell Changes}] |
||||
[item doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}] |
||||
[item doc/files/_module_argparsingtest-0.1.0.tm.html punkshell_module_argparsingtest {Module API}] |
||||
[item doc/files/_module_poshinfo-0.1.0.tm.html punkshell_module_poshinfo {poshinfo prompt theme tool}] |
||||
[item doc/files/punk/_module_aliascore-0.1.0.tm.html punkshell_module_punk::aliascore {punkshell command aliases}] |
||||
[item doc/files/punk/_module_ansi-0.1.1.tm.html punkshell_module_punk::ansi {Ansi string functions}] |
||||
[item doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}] |
||||
[item doc/files/punk/_module_assertion-0.1.0.tm.html punkshell_module_punk::assertion {assertion alternative to control::assert}] |
||||
[item doc/files/punk/_module_blockletter-0.1.0.tm.html punkshell_module_punk::blockletter {punk::blockletter frame-based large lettering test/logo}] |
||||
[item doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}] |
||||
[item doc/files/punk/_module_cesu-0.1.0.tm.html punkshell_module_punk::cesu {CESU compatibility ehcoding scheme for utf-16: 8-Bit (CESU-8) ??}] |
||||
[item doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char {character-set and unicode utilities}] |
||||
[item doc/files/punk/_module_console-0.1.1.tm.html punkshell_module_punk::console {punk console}] |
||||
[item doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}] |
||||
[item doc/files/punk/_module_experiment-0.1.0.tm.html punkshell_module_punk::experiment {Module API}] |
||||
[item doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}] |
||||
[item doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {flib experimental}] |
||||
[item doc/files/punk/_module_island-0.1.0.tm.html punkshell_module_punk::island {filesystem islands for safe interps}] |
||||
[item doc/files/punk/_module_lib-0.1.1.tm.html punkshell_module_punk::lib {punk general utility functions}] |
||||
[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {dec commandset - project}] |
||||
[item doc/files/punk/_module_packagepreference-0.1.0.tm.html punkshell_module_punk::packagepreference {punkshell package/module loading}] |
||||
[item doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}] |
||||
[item doc/files/punk/_module_rest-0.1.0.tm.html punkshell_module_punk::rest punk::rest] |
||||
[item doc/files/punk/_module_sshrun-0.1.0.tm.html punkshell_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}] |
||||
[item doc/files/punk/_module_trie-0.1.0.tm.html punkshell_module_punk::trie {punk::trie API}] |
||||
[item doc/files/punk/_module_uc-0.1.0.tm.html punkshell_module_punk::uc {Module API}] |
||||
[item doc/files/punk/_module_winlnk-0.1.0.tm.html punkshell_module_punk::winlnk {windows shortcut .lnk library}] |
||||
[item doc/files/punk/_module_zip-0.1.1.tm.html punkshell_module_punk::zip {Module API}] |
||||
[item doc/files/punk/mix/commandset/_module_scriptwrap-0.1.0.tm.html punkshell_module_scriptwrap {scriptwrap polyglot tool}] |
||||
[item doc/files/_module_textblock-0.1.1.tm.html punkshell_module_textblock {punk textblock functions}] |
||||
[item doc/files/_module_textblock-0.1.2.tm.html punkshell_module_textblock {punk textblock functions}] |
||||
[item doc/files/punk/nav/_module_fs-0.1.0.tm.html shellspy_module_punk::nav::fs {punk::nav::fs console filesystem navigation}] |
||||
[item doc/files/punk/repl/_module_codethread-0.1.0.tm.html shellspy_module_punk::repl::codethread {Module repl codethread}] |
||||
[item doc/files/punk/_module_zip-0.1.0.tm.html shellspy_module_punk::zip {Module API}] |
||||
[item doc/files/_module_tomlish-1.1.1.tm.html tomlish_module_tomlish {tomlish toml parser}] |
||||
[toc_end] |
||||
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
doc {doc/toc {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/punk/_module_ansi-0.1.1.tm.html punkshell_module_punk::ansi {Ansi string functions}} {doc/files/punk/repl/_module_codethread-0.1.0.tm.html shellspy_module_punk::repl::codethread {Module API}} {doc/files/punk/nav/_module_fs-0.1.0.tm.html shellspy_module_punk::nav::fs {Module API}} {doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}} {doc/files/project_changes.html punkshell__project_changes {punkshell Changes}} {doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}} {doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char {character-set and unicode utilities}} {doc/files/_module_modpod-0.1.0.tm.html modpod_module_modpod {Module API}} {doc/files/punk/_module_uc-0.1.0.tm.html shellspy_module_punk::uc {Module API}} {doc/files/punk/_module_lib-0.1.1.tm.html punkshell_module_punk::lib {punk general utility functions}} {doc/files/punk/_module_assertion-0.1.0.tm.html shellspy_module_punk::assertion {assertion alternative to control::assert}} {doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}} {doc/files/punk/_module_experiment-0.1.0.tm.html shellspy_module_punk::experiment {Module API}} {doc/files/_module_poshinfo-0.1.0.tm.html shellspy_module_poshinfo {Module API}} {doc/files/_module_argparsingtest-0.1.0.tm.html shellspy_module_argparsingtest {Module API}} {doc/files/_module_overtype-1.6.3.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_sshrun-0.1.0.tm.html shellspy_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}} {doc/files/punk/_module_packagepreference-0.1.0.tm.html shellspy_module_punk::packagepreference {Module API}} {doc/files/punk/_module_island-0.1.0.tm.html shellspy_module_punk::island {filesystem islands for safe interps}} {doc/files/punk/_module_aliascore-0.1.0.tm.html shellspy_module_punk::aliascore {Module API}} {doc/files/main.html punkshell {punkshell - Core}} {doc/files/_module_overtype-1.6.4.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_console-0.1.1.tm.html punkshell_module_punk::console {punk console}} {doc/files/_module_textblock-0.1.1.tm.html punkshell_module_textblock {punk textblock functions}} {doc/files/_module_overtype-1.6.5.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {flib experimental}} {doc/files/_module_tomlish-1.1.1.tm.html tomlish_module_tomlish {Module API}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {dec commandset - project}} {doc/files/punk/_module_basictelnet-0.1.0.tm.html shellspy_module_punk::basictelnet {basic telnet client - DKF/Wiki}} {doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_zip-0.1.0.tm.html shellspy_module_punk::zip {Module API}}}} |
||||
doc {doc/toc {{doc/files/punk/_module_zip-0.1.1.tm.html punkshell_module_punk::zip {Module API}} {doc/files/punk/_module_trie-0.1.0.tm.html punkshell_module_punk::trie {punk::trie API}} {doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/punk/_module_ansi-0.1.1.tm.html punkshell_module_punk::ansi {Ansi string functions}} {doc/files/punk/repl/_module_codethread-0.1.0.tm.html shellspy_module_punk::repl::codethread {Module repl codethread}} {doc/files/punk/nav/_module_fs-0.1.0.tm.html shellspy_module_punk::nav::fs {punk::nav::fs console filesystem navigation}} {doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}} {doc/files/project_changes.html punkshell__project_changes {punkshell Changes}} {doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}} {doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char {character-set and unicode utilities}} {doc/files/punk/_module_uc-0.1.0.tm.html punkshell_module_punk::uc {Module API}} {doc/files/punk/_module_lib-0.1.1.tm.html punkshell_module_punk::lib {punk general utility functions}} {doc/files/punk/_module_cesu-0.1.0.tm.html punkshell_module_punk::cesu {CESU compatibility ehcoding scheme for utf-16: 8-Bit (CESU-8) ??}} {doc/files/punk/_module_assertion-0.1.0.tm.html punkshell_module_punk::assertion {assertion alternative to control::assert}} {doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}} {doc/files/_module_modpod-0.1.2.tm.html modpod_module_modpod {Module API}} {doc/files/punk/_module_experiment-0.1.0.tm.html punkshell_module_punk::experiment {Module API}} {doc/files/_module_poshinfo-0.1.0.tm.html punkshell_module_poshinfo {poshinfo prompt theme tool}} {doc/files/_module_argparsingtest-0.1.0.tm.html punkshell_module_argparsingtest {Module API}} {doc/files/punk/_module_sshrun-0.1.0.tm.html punkshell_module_punk::sshrun {Tcl procedures to execute tcl scripts in remote hosts}} {doc/files/punk/_module_packagepreference-0.1.0.tm.html punkshell_module_punk::packagepreference {punkshell package/module loading}} {doc/files/punk/_module_island-0.1.0.tm.html punkshell_module_punk::island {filesystem islands for safe interps}} {doc/files/punk/_module_aliascore-0.1.0.tm.html punkshell_module_punk::aliascore {punkshell command aliases}} {doc/files/main.html punkshell {punkshell - Core}} {doc/files/punk/_module_console-0.1.1.tm.html punkshell_module_punk::console {punk console}} {doc/files/_module_textblock-0.1.1.tm.html punkshell_module_textblock {punk textblock functions}} {doc/files/_module_overtype-1.6.5.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {flib experimental}} {doc/files/_module_tomlish-1.1.1.tm.html tomlish_module_tomlish {tomlish toml parser}} {doc/files/_module_textblock-0.1.2.tm.html punkshell_module_textblock {punk textblock functions}} {doc/files/punk/mix/commandset/_module_scriptwrap-0.1.0.tm.html punkshell_module_scriptwrap {scriptwrap polyglot tool}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {dec commandset - project}} {doc/files/punk/_module_rest-0.1.0.tm.html punkshell_module_punk::rest punk::rest} {doc/files/punk/_module_basictelnet-0.1.0.tm.html punkshell::basictelnet {basic telnet client - DKF/Wiki}} {doc/files/_module_fauxlink-0.1.1.tm.html fauxlink_module_fauxlink {faux link application shortcuts}} {doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_zip-0.1.0.tm.html shellspy_module_punk::zip {Module API}} {doc/files/punk/_module_winlnk-0.1.0.tm.html punkshell_module_punk::winlnk {windows shortcut .lnk library}} {doc/files/punk/_module_blockletter-0.1.0.tm.html punkshell_module_punk::blockletter {punk::blockletter frame-based large lettering test/logo}}}} |
File diff suppressed because one or more lines are too long
@ -0,0 +1,220 @@
|
||||
<!DOCTYPE html><html><head> |
||||
<title>fauxlink_module_fauxlink - fauxlink .fxlnk</title> |
||||
<style type="text/css"><!-- |
||||
HTML { |
||||
background: #FFFFFF; |
||||
color: black; |
||||
} |
||||
BODY { |
||||
background: #FFFFFF; |
||||
color: black; |
||||
} |
||||
DIV.doctools { |
||||
margin-left: 10%; |
||||
margin-right: 10%; |
||||
} |
||||
DIV.doctools H1,DIV.doctools H2 { |
||||
margin-left: -5%; |
||||
} |
||||
H1, H2, H3, H4 { |
||||
margin-top: 1em; |
||||
font-family: sans-serif; |
||||
font-size: large; |
||||
color: #005A9C; |
||||
background: transparent; |
||||
text-align: left; |
||||
} |
||||
H1.doctools_title { |
||||
text-align: center; |
||||
} |
||||
UL,OL { |
||||
margin-right: 0em; |
||||
margin-top: 3pt; |
||||
margin-bottom: 3pt; |
||||
} |
||||
UL LI { |
||||
list-style: disc; |
||||
} |
||||
OL LI { |
||||
list-style: decimal; |
||||
} |
||||
DT { |
||||
padding-top: 1ex; |
||||
} |
||||
UL.doctools_toc,UL.doctools_toc UL, UL.doctools_toc UL UL { |
||||
font: normal 12pt/14pt sans-serif; |
||||
list-style: none; |
||||
} |
||||
LI.doctools_section, LI.doctools_subsection { |
||||
list-style: none; |
||||
margin-left: 0em; |
||||
text-indent: 0em; |
||||
padding: 0em; |
||||
} |
||||
PRE { |
||||
display: block; |
||||
font-family: monospace; |
||||
white-space: pre; |
||||
margin: 0%; |
||||
padding-top: 0.5ex; |
||||
padding-bottom: 0.5ex; |
||||
padding-left: 1ex; |
||||
padding-right: 1ex; |
||||
width: 100%; |
||||
} |
||||
PRE.doctools_example { |
||||
color: black; |
||||
background: #f5dcb3; |
||||
border: 1px solid black; |
||||
} |
||||
UL.doctools_requirements LI, UL.doctools_syntax LI { |
||||
list-style: none; |
||||
margin-left: 0em; |
||||
text-indent: 0em; |
||||
padding: 0em; |
||||
} |
||||
DIV.doctools_synopsis { |
||||
color: black; |
||||
background: #80ffff; |
||||
border: 1px solid black; |
||||
font-family: serif; |
||||
margin-top: 1em; |
||||
margin-bottom: 1em; |
||||
} |
||||
UL.doctools_syntax { |
||||
margin-top: 1em; |
||||
border-top: 1px solid black; |
||||
} |
||||
UL.doctools_requirements { |
||||
margin-bottom: 1em; |
||||
border-bottom: 1px solid black; |
||||
} |
||||
--></style> |
||||
</head> |
||||
<!-- Generated from file '_module_fauxlink-0.1.1.tm.man' by tcllib/doctools with format 'html' |
||||
--> |
||||
<!-- Copyright &copy; 2024 |
||||
--> |
||||
<!-- fauxlink_module_fauxlink.0 |
||||
--> |
||||
<body><hr> [ |
||||
<a href="../../toc.html">Main Table Of Contents</a> |
||||
| <a href="../toc.html">Table Of Contents</a> |
||||
| <a href="../../index.html">Keyword Index</a> |
||||
] <hr> |
||||
<div class="doctools"> |
||||
<h1 class="doctools_title">fauxlink_module_fauxlink(0) 0.1.1 doc "fauxlink .fxlnk"</h1> |
||||
<div id="name" class="doctools_section"><h2><a name="name">Name</a></h2> |
||||
<p>fauxlink_module_fauxlink - faux link application shortcuts</p> |
||||
</div> |
||||
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2> |
||||
<ul class="doctools_toc"> |
||||
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li> |
||||
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li> |
||||
<li class="doctools_section"><a href="#section1">Description</a></li> |
||||
<li class="doctools_section"><a href="#section2">Overview</a> |
||||
<ul> |
||||
<li class="doctools_subsection"><a href="#subsection1">Concepts</a></li> |
||||
<li class="doctools_subsection"><a href="#subsection2">dependencies</a></li> |
||||
</ul> |
||||
</li> |
||||
<li class="doctools_section"><a href="#section3">API</a> |
||||
<ul> |
||||
<li class="doctools_subsection"><a href="#subsection3">Namespace fauxlink::class</a></li> |
||||
<li class="doctools_subsection"><a href="#subsection4">Namespace fauxlink</a></li> |
||||
<li class="doctools_subsection"><a href="#subsection5">Namespace fauxlink::lib</a></li> |
||||
</ul> |
||||
</li> |
||||
<li class="doctools_section"><a href="#section4">Internal</a> |
||||
<ul> |
||||
<li class="doctools_subsection"><a href="#subsection6">Namespace fauxlink::system</a></li> |
||||
</ul> |
||||
</li> |
||||
<li class="doctools_section"><a href="#keywords">Keywords</a></li> |
||||
<li class="doctools_section"><a href="#copyright">Copyright</a></li> |
||||
</ul> |
||||
</div> |
||||
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2> |
||||
<div class="doctools_synopsis"> |
||||
<ul class="doctools_requirements"> |
||||
<li>package require <b class="pkgname">fauxlink</b></li> |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2> |
||||
<p>A cross platform shortcut/symlink alternative.</p> |
||||
<p>Unapologetically ugly - but practical in certain circumstances.</p> |
||||
<p>A solution is required for application-driven filesystem links that survives cross platform moves as well as</p> |
||||
<p>archiving and packaging systems.</p> |
||||
<p>The target is specified in a minimally-encoded form in the filename itself - but still human readable.</p> |
||||
<p>format of name <nominalname>#<encodedtarget>.fxlnk</p> |
||||
<p>where <nominalname> can be empty - then the effective nominal name is the tail of the <encodedtarget></p> |
||||
<p>The + symbol substitutes for forward-slashes.</p> |
||||
<p>Other chars can be encoded using url-like encoding - (but only up to %7E !)</p> |
||||
<p>We deliberately treat higher % sequences literally.</p> |
||||
<p>This means actual uri::urn encoded unicode sequences (e.g %E2%99%A5 [heart]) can remain literal for linking to urls.</p> |
||||
<p>e.g if an actual + or # is required in a filename or path segment they can be encoded as %2B & %23</p> |
||||
<p>e.g a link to a file file#A.txt in parent dir could be:</p> |
||||
<p>file%23A.txt#..+file%23A.txt.fxlnk</p> |
||||
<p>or equivalently (but obviously affecting sorting) #..+file%23A.txt.fxlnk</p> |
||||
<p>The <nominalname> can be unrelated to the actual target</p> |
||||
<p>e.g datafile.dat#..+file%23A.txt.fxlnk</p> |
||||
<p>This system has no filesystem support - and must be completely application driven.</p> |
||||
<p>This can be useful for example in application test packages which may be tarred or zipped and moved cross platform.</p> |
||||
<p>The target being fully specified in the name means the file doesn't have to be read for the target to be determined</p> |
||||
<p>Extensions to behaviour should be added in the file as text data in Toml format,</p> |
||||
<p>with custom data being under a single application-chosen table name</p> |
||||
<p>The toplevel Toml table [fauxlink] is reserved for core extensions to this system.</p> |
||||
<p>Aside from the 2 used for delimiting (+ #)</p> |
||||
<p>certain characters which might normally be allowed in filesystems are required to be encoded</p> |
||||
<p>e.g space and tab are required to be %20 %09</p> |
||||
<p>Others that require encoding are: * ? \ / | : ; " < ></p> |
||||
<p>The nul character in raw form, when detected, is always mapped away to the empty string - as very few filesystems support it.</p> |
||||
<p>Control characters and other punctuation is optional to encode.</p> |
||||
<p>Generally utf-8 should be used where possible and unicode characters can often be left unencoded on modern systems.</p> |
||||
<p>Where encoding of unicode is desired in the nominalname,encodedtarget,tag or comment portions it can be specified as %UXXXXXXXX</p> |
||||
<p>There must be between 1 and 8 X digits following the %U. Interpretation of chars following %U stops at the first non-hex character.</p> |
||||
<p>This means %Utest would not get any translation as there were no hex digits so it would come out as %Utest |
||||
++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++</p> |
||||
</div> |
||||
<div id="section2" class="doctools_section"><h2><a name="section2">Overview</a></h2> |
||||
<p>overview of fauxlink</p> |
||||
<div id="subsection1" class="doctools_subsection"><h3><a name="subsection1">Concepts</a></h3> |
||||
<p>-</p> |
||||
</div> |
||||
<div id="subsection2" class="doctools_subsection"><h3><a name="subsection2">dependencies</a></h3> |
||||
<p>packages used by fauxlink</p> |
||||
<ul class="doctools_itemized"> |
||||
<li><p><b class="package">Tcl 8.6-</b></p></li> |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
<div id="section3" class="doctools_section"><h2><a name="section3">API</a></h2> |
||||
<div id="subsection3" class="doctools_subsection"><h3><a name="subsection3">Namespace fauxlink::class</a></h3> |
||||
<p>class definitions</p> |
||||
<ol class="doctools_enumerated"> |
||||
</ol> |
||||
</div> |
||||
<div id="subsection4" class="doctools_subsection"><h3><a name="subsection4">Namespace fauxlink</a></h3> |
||||
<p>Core API functions for fauxlink</p> |
||||
<dl class="doctools_definitions"> |
||||
</dl> |
||||
</div> |
||||
<div id="subsection5" class="doctools_subsection"><h3><a name="subsection5">Namespace fauxlink::lib</a></h3> |
||||
<p>Secondary functions that are part of the API</p> |
||||
<dl class="doctools_definitions"> |
||||
</dl> |
||||
</div> |
||||
</div> |
||||
<div id="section4" class="doctools_section"><h2><a name="section4">Internal</a></h2> |
||||
<div id="subsection6" class="doctools_subsection"><h3><a name="subsection6">Namespace fauxlink::system</a></h3> |
||||
<p>Internal functions that are not part of the API</p> |
||||
</div> |
||||
</div> |
||||
<div id="keywords" class="doctools_section"><h2><a name="keywords">Keywords</a></h2> |
||||
<p><a href="../../index.html#fake">fake</a>, <a href="../../index.html#faux">faux</a>, <a href="../../index.html#shortcut">shortcut</a>, <a href="../../index.html#symlink">symlink</a>, <a href="../../index.html#toml">toml</a></p> |
||||
</div> |
||||
<div id="copyright" class="doctools_section"><h2><a name="copyright">Copyright</a></h2> |
||||
<p>Copyright © 2024</p> |
||||
</div> |
||||
</div></body></html> |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue