< spin Documentation | Russ Allbery > Software > Web Tools |
Fix variable scoping error that prevented pages from a Git repository to get correct modified timestamps.
Lines changed: +2 -2
Support using Git to determine the last modification date of a thread file (via the Git::Repository module). Also skip RCS directories when recursively processing a source directory.
Lines changed: +45 -16
Add \under for HTML <u>
Lines changed: +5 -2
Don't attempt to determine image size for the generated HTML unless the image location is a relative path to a file that can be found. With the current version of Image::Size, the previous code was producing warnings and spurious spaces in the generated HTML when the image URL was not a relative path.
Lines changed: +6 -3
Fix a bug in processing the output from external converters that caused the <body> tag to be duplicated in the resulting output.
Lines changed: +2 -3
When doing special parsing of table cells, extract <div> tags with all of their options and lift the options into the <td> tag similar to how <span> already worked. Add a border at the end of each table cell so that a construct like <ul> wouldn't stay open across table cells.
Lines changed: +9 -6
When running cvs2xhtml, spin was changing to the directory of the file but still passing the full path to the file to cvs. This works for local repositories, but when using a remote repository cvs passes the full path to the remote CVS server, which doesn't like it. Pass only the file name to cvs.
Lines changed: +5 -5
Update comment and documentation for -d support for removing directories.
Document that \sitemap and \include aren't smart about dependencies and touching the file may be required to re-process it.
Improve the documentation of \id support to mention the Subversion command to enable Id keyword expansion.
Rewrap the POD documentation.
Lines changed: +217 -196
Remove directories as well as files from the staging area if they're no longer represented in the input tree.
Lines changed: +6 -5
Better error recovery from missing arguments to commands: treat the missing argument as empty instead of undefined. Produce a different warning for an empty file argument to \size.
Lines changed: +12 -7
Add a new command, \size, which is inserts the size in bytes of a local file with appropriate scaling of units. Better error handling and suppression of Perl warnings when a macro definition is botched.
Lines changed: +33 -3
Add a \sitemap command that inserts the full sitemap of the site as an unordered list, if it was defined.
Lines changed: +61 -11
Add an \rss command to set an RSS feed URL and title for the page and output the appropriate tags in the document header in \heading.
Clear \id information between documents. Update the documentation to note that it's useful with Subversion as well.
Lines changed: +42 -12
Add \strike, \sub, and \sup to the command table.
Lines changed: +4 -1
Run spin-rss on any .rss file found in a directory being processed before processing the contents of that directory.
Support being called with only a source and no output if the source is a file. In this case, output is sent to standard output. In all cases where the source is a single file, change directories to the location of that file so that \include will work properly.
Add \strike, \sub, and \sup inline commands.
Lines changed: +51 -14
Drop blank lines at the start of a parsed section and don't treat blank lines at the start of text as another paragraph. Thanks to Benjamin A'Lee for the report.
Lines changed: +3 -1
Switch to UTF-8 encoding by default.
Lines changed: +5 -5
Support format strings in <dt> tags.
Lines changed: +3 -2
Redo how attribution is done for quotes that aren't broken or centered to try to make it look a bit less weird. Not sure how successful this is going to be, but it does seem slightly better.
Lines changed: +10 -4
CVS, in its infinite wisdom, has decided to start using dashes instead of slashes to separate parts of the date in the Id string.
Lines changed: +2 -2
Allow the source and destination directories to be relative.
Lines changed: +20 -3
Add the -d option, telling spin to delete any files in the output directory that don't correspond to files in the source directory. Allow the source and output files specified on the command line to be simple files, in which case File::Find is not used. Improve the spin comment generated in filter mode and in that case. Add the to-do item of first and last links in the sitemap support to a NOTES section of the documentation.
Lines changed: +70 -13
Remove the bug about [ and ] handling, now that this has been fixed. Explicitly mention the need to escape unbalanced [ and ] in both the main thread documentation and the \entity documentation.
Lines changed: +8 -9
Add a better warning for when the output from a converter is seriously broken and suppress the obscure Perl warning. Convert \entity[91] and \entity[93] into proper square brackets instead of HTML entities since they sometimes have to be used to avoid unbalanced brackets, but there's no reason to expose that to the end user.
Lines changed: +11 -4
Add a missing entry in the routine mapping table for \strong.
Lines changed: +3 -2
Be sure to always put borders around block elements, even if they're packed. Add a new \strong command that means <strong></strong> and change the \bold command to mean <b></b> as it should have been in the first place (I was excessively cute in defining the initial language). Add recognition of line ending problems so that the bizarre effects generated by running a file with DOS line endings through spin on Unix at least generate a warning.
Lines changed: +11 -5
Add an \include command. Also clear macros and strings after each file being processed and don't emit a newline after every image tag (it adds unwanted whitespace when \image is inside \link.
Lines changed: +75 -27
Parse the arguments to heading to handle macros and entities.
Lines changed: +3 -1
Put non-breaking spaces before the < and > in the navigation bar for the previous and next links.
Lines changed: +3 -3
Fix the arror direction in the crumb navigation section of the navbar.
Lines changed: +2 -2
Significantly rework the navigation code to put a navigation bar at the top and bottom of each page. This is still very hard-coded, and ideally more of the navigation infrasturcture should be generalized so that other users can more easily pick their preferences.
Lines changed: +49 -32
Add support for \div.
Lines changed: +3 -1
Return an error if loading the overrides file fails.
Lines changed: +10 -2
Fix a bug in dependency handling in .versions. Only the last entry that affected a particular page was being checked, instead of all of them.
Lines changed: +8 -4
Daylight savings time handling was wrong when converting timestamps in .versions into seconds since epoch. Force mktime to figure out for itself whether daylight savings time applies.
Lines changed: +4 -1
Add support for a -e option specifying regular expressions of files to ignore when spinning, based on a patch from Huaqing Zheng. Fix a few minor coding style issues.
Lines changed: +31 -14
Add support for a .versions file listing versions and release dates of various products, and \version and \release commands to put those into a generated HTML file. Implement dependencies so that the appropriate web pages will be rebuilt when versions change, even if the web page text hasn't changed.
Lines changed: +123 -10
Close the <link> tags in <head>.
Lines changed: +5 -5
Fix the last change to really work properly. Update the copyright date.
Lines changed: +13 -7
When building the <link> tags in <head>, don't include a title attribute if the link is to the top page of the tree. The title we have available isn't particularly useful.
Lines changed: +2 -1
Fix significant bugs in the previous release that I didn't catch due to making a mistake in testing methods. This release now correctly reproduces the output of previous releases before I started fiddling around with block and inline scope, but still fixes the bug I was trying to fix. This part of spin is tricky and complex; I wonder if there's a simpler way of handling it.
Add support for adding <link> tags to the <head> section of every page duplicating the navigation information in the footer in a more browser-friendly fashion. Currently only supports prev, next, up, and top (first and last could be added but haven't been yet).
If .signature is not found in the current directory, check the top of the source tree for a .signature file there as well.
Regenerate a page produced by an external program if the pointer file has changed as well as if the source file has changed.
Lines changed: +95 -36
Rework how paragraphs at the block level contaning both block-level and inline content are handled. This should fix various bugs caused by doing such things as mixing regular text and \number commands in the same paragraph, and whitespace separation between commands should now no longer be necessary.
Lines changed: +45 -20
Fix a long-standing bug where a paragraph consisting entirely of inline commands and/or macros would not be wrapped in paragraph tags (breaking, for example, the SYNOPSIS section of a man page for library functions). This bug was caused by an incomplete understanding of block and inline scope. spin now detects and propagates block and inline scope properly through command and macro expansions and now knows when a paragraph needs to be wrapped in tags and when it doesn't, rather than just guessing.
Clean up whitespace handling surrounding list tags. This eliminates extraneous blank lines between elements in a packed list, tidying up the HTML output slightly.
Lines changed: +58 -35
Avoid a cryptic warning if the file used as input to an external translator doesn't exist.
Lines changed: +2 -2
The Basic Syntax heading was head1 instead of head2.
Lines changed: +2 -2
Add full documentation for the thread macro language. Also add an example of a .sitemap file, clarify what is done with .signature files, and add a bug regarding the need to occasionally escape [ and ].
Lines changed: +351 -47
The previous change pruned everything because of . and .. pruning. Fixed by handling . and .. specially.
Lines changed: +2 -1
Warn about spaces in anchors, since one can't easily create a valid link to such an anchor. Prune directories beginning with a period rather than just ignoring them since otherwise copying the files inside the directory causes problems. Copy over .htaccess files even though they begin with a period.
Lines changed: +7 -3
Fix an incorrect variable name in the last change.
Lines changed: +2 -2
Add \verbatim to output a block of HTML vertabim in the output page.
Lines changed: +13 -2
Add table support, and in the process add internal support for commands that can take an unlimited number of arguments.
Lines changed: +92 -30
Don't require a .sitemap file.
Lines changed: +2 -2
Replace the .spinrc code that I never used with a new command-line option -o that allows one to specify an arbitrary bit of Perl code to load as overrides to regular spin functions. Ignore files named Makefile as well as directories named CVS.
Lines changed: +18 -9
Use a .sitemap file at the top of the source tree to establish the navigation structure rather than individual .placement files in every directory. This approach requires considerably less duplicate information and is easier to maintain, plus will allow easy generation of a global sitemap.
Lines changed: +104 -48
Avoid wrapping <p> twice around paragraphs inside block elements that contain only a single inline command, but with leading whitespace.
Lines changed: +6 -6
When running an external converter, there won't be anything in $SPACE, so we don't need to output its contents.
Lines changed: +2 -2
Rewrite how page footers are handled so that the code to generate them can be abstracted out rather than repeated. Generalize them so that if wanted some of the converted pages can also make use of things like the document Id string (although this isn't the case yet). Lift the URL to my web tools up to a variable at the top of the script.
Move handling of the spin comment into do_heading where it's used rather than in the top-level spin routine with a global variable.
Clean up most of the duplicate code between all the routines to call external converters and standardize the format of a pointer file. It now contains the pointer to the source file, any additional options, and the style sheet to use, rather than taking different formats depending on the converter run. Update the documentation and remove the relevant BUGS entry.
Remove the BUGS entry for \p since that was removed in the last set of changes.
Lines changed: +183 -266
Track block structure better so that nested description lists are correctly handled. This also simplifies parse and expand somewhat and gets rid of one of the more obscure flags.
Lines changed: +37 -24
Significantly changed the internal processing mechanisms for thread so that the code keeps track of whether each element is block or inline and wraps paragraphs appropriately without special-casing <p> and <pre>. This involved a significant rewrite of the core processing code and the implementation of each of the command handlers. This also fixes the fact that some commands output directly and others returned their output, which was causing some whitespace irregularities.
Removed \p; the same thing can now be done with \class. Removed \packbullet and \packnumber in favor of \bullet(packed) and \number(packed). Improved handling of \quote(broken) and \quote in general for multi-paragraph quotes.
Improved handling of whitespace at the end of the document and with documents generated by external programs. Removed the unnecessary $OUT global variable. Improved warnings for unknown strings and handling of unknown commands. Removed the <?xml-stylesheet> directive since it doesn't fit with Appendix C XHTML 1.0.
Lines changed: +273 -250
Fix a cut and paste error in the description of -v.
Lines changed: +2 -2
Fix handling of \pre blocks inside \desc so that we don't wrap <pre> with another level of <p>.
Lines changed: +3 -1
Add a new function format_string to generate the right class attributes where appropriate for tags with a format (something in parens after the tag), and also handle formats that begin with # by turning them into id instead of class. Add <a name> tag when an id is specified for a heading so that it can be used for internal links.
Correctly handle an empty or missing \id string. Add a \packnumber command analogous to \packbullet.
Add the ability to pass options to pod2thread, and pass the -n option by default to add a navigation bar to the top of the generated XHTML.
Fix spin -h to use the right path to spin.
Lines changed: +59 -45
The last change wasn't actually effective. Fix it.
Lines changed: +3 -2
Allow a style sheet name to be given on the second line of the .faq file, and improve the documentation for the various special files.
Lines changed: +29 -12
Use may instead of can in the license comment at the beginning of the script.
Lines changed: +2 -2
Allow quotes that span multiple paragraphs.
Lines changed: +3 -1
Use dashes instead of slashes in the date reported as part of the version string and send version output to stdout rather than stderr.
Lines changed: +4 -2
Don't put a space before the <br /> in the nagivation block, as in Mozilla 1.0 it was causing an extra space to show up before the end of the line on all navigation lines except the last one.
Lines changed: +2 -2
Always use a class of quote for a blockquote enclosing the results of \quote so that we can apply special formatting. Clean up a few other things in \block and \signature to generate more readable XHTML.
Lines changed: +8 -7
Close the <meta> tag in <head>.
Lines changed: +2 -2
Mention -s URL in the SYNOPSIS of the documentation.
Lines changed: +3 -3
Move the generator and Id comments below <head> to work around a bug in IE. Add a <meta> tag declaring the character set. Add support for \entity. Add a command-line option to specify the URL base for style sheets. Add links to my web tools page in the standard signature.
Lines changed: +69 -32
Note that the style sheets for the externally generated pages are hard-coded into the program.
Lines changed: +5 -1
Take the name of the package for cl2xhtml from the second line of the pointer file rather than from the file name, since the file name will always be ChangeLog.
Lines changed: +8 -7
Add support for cl2xhtml, add a mention of the code duplication in spin to BUGS, and flesh out the SEE ALSO section with references to the XHTML standard and to my web tools page.
Lines changed: +76 -6
Redo how \p and \pre are handled so that they'll properly nest inside other tags (like \number). That required a variety of other bits of tweaking so that they didn't result in extra <p> tags when used at the top level. \p is such a hack.
Added \number to support pod2thread.
Added handling of .rpod files and the logic to run pod2thread and spin -f. Added a SEE ALSO section to the documentation.
Lines changed: +101 -9
Add the -f option to act as a filter, including the separate formatting mode that this implies. Added command-line parsing and -h and -v options. Add a requirements section to the documentation. Remove an extra blank line when no style sheet is specified. Handle \\ to put a literal backslash in the output.
Lines changed: +87 -23
Add support for cvs2xhtml and processing for .log files to run cvs log and cvs2xhtml on the given file.
Lines changed: +65 -3
Add \block, and don't generate a navigation section if .placement says there shouldn't be any navigation links.
Lines changed: +24 -10
Add comments to the macro implementations and add the beginnings of a man page.
Lines changed: +142 -4
Major rework to generate XHTML instead of HTML. Added several additional commands necessary to convert the last of my web pages into thread. Reformatted to fit my current coding style. Pass a style argument to faq2html (currently hard-coded for my web pages).
Lines changed: +156 -121
Add TODO items.
Lines changed: +6 -1
Add the "p" (packed) format code for \bullet, which causes <li> to be emitted without <p> tags surrounding the content.
Lines changed: +10 -4
Added \code and \bullet.
Lines changed: +14 -2
Better error handling for calling a macro with an invalid number of arguments.
Lines changed: +6 -2
Added a \break command.
Lines changed: +3 -1
Added an align command, modified \quote so that both the author and the cite sections can be empty.
Lines changed: +27 -7
Incorporate the logic of placepage, break handling of placement and signatures out into separate functions, and add handling of FAQs via .faq files in the source tree (using faq2html as an external program to format them).
Lines changed: +120 -54
Fix the invalid command error message, add emph and italic commands, fix handling of multi-paragraph \desc elements, and switch all dates to ISO format.
Lines changed: +18 -13
Made recursive. Now copies or spins a whole tree of source files into a web site. Fixed handling of <dl> and of lists and borders in general, as well as fixing some problems with space output. Pick up the page signature from a .signature file like placepage did. Switch to four-space indents and allow for quotes without an attributed work.
Lines changed: +142 -71
Added the placement parsing code and link code from placepage.
Lines changed: +50 -5
Fiddled with the output methods and formatting so that the HTML has a proper quantity of blank spaces without lots of extra <p> tags all over the place.
Lines changed: +24 -11
Fixed paragraph handling for paragraphs that contained commands, added the \bold command.
Lines changed: +7 -1
Fixed a problem with the dates in the signature block.
Lines changed: +2 -3
Added more sophisticated whitespace handling in output that probably isn't right yet. Added automatic image size tags using Image::Size, modified the file handling code to expect the input and output files on the command line, and cd'd to the output directory.
Lines changed: +23 -10
Added last modified and spun dates to the signature block, added an initial comment giving the version of spin and the date the HTML was spun.
Lines changed: +18 -2
Added borders and states, added description lists, added support for arguments that cross multiple paragraphs, improved the file handling so that we now generate an output file by default, improved the error messages, fixed the <br> generation for block quotes, added a horizontal rule to the signature, and added support for .spinrc.
Lines changed: +78 -9
Initial marginally working version.
< spin Documentation | Russ Allbery > Software > Web Tools |