PDF
Previously known as GenHTMLAddOn, and then PublishAddOn, this is the original publishing extension for TWiki.
PublishContrib provides support for the generation of stand-alone HTML from a TWiki web. It will generate fully rendered versions of a set of TWiki pages together with any attached files.
When TWiki generates a view, it does so dynamically i.e. there's a CGI script that runs, processes some files, and generates HTML that is displayed by the browser. There are circumstances in which this may not be desirable or even possible. For example:
The output is generated in a directory designated during installation. The progress messages printed during documentation generation tell you exactly where the output is, and you can use the publishers control interface to manage your published output.
Publishing is a controlled process; before you can publish, you have to have VIEW access to the topics you want to publish, and CHANGE access to the publishing history topic.
You can also create a permanent topic in a web to help with the publishing process.
String | What it does | Example | What the example matches |
---|---|---|---|
* | Matches any string, including an empty string. | *Cheese* |
Every topic with "Cheese" somewhere in the name (but not "cheese") |
? | Matches any single character. | Example1? | Example10 and Example 1X but not example1 |
[...] | Matches any one of the enclosed characters. A pair of characters separated by a hyphen denotes a range expression; any character that sorts between those two characters, inclusive, using the current locale's collating sequence and character set, is matched. If the first character following the [ is a ^ then any character not enclosed is matched. A - may be matched by including it as the first or last character in the set. A ] may be matched by including it as the first character in the set. Within [ and ], character classes can be specified using the syntax [:class:], where class is one of the following classes defined in the POSIX.2 standard: alnum , alpha , ascii , blank , cntrl , digit , graph , lower , print , punct , space , upper , word , xdigit . A character class matches any character belonging to that class. The word character class matches letters, digits, and the character _. |
B[aeiou]g | Bag, Bog, Big, Beg, Bug |
Abc*,Def*;Ghi*Then, topics starting with Abc or Def are put into the output first. Next, topics starting with Def are put into the output.
More than one pattern lists may match a topic. Even in that case, a topic isn't included more than once in an output. For example, the following pattern yields an output having topics starting with Abcd first, then topics starting with Ab but not Abcd because topics starting with Abcd are already included.
Abcd*;Ab*
Alternatively you can just take a copy of the form in this topic, paste it into your own topic, and change the defaults.
To use a publish topic, you must pass the configtopic
parameter to the publish
script set to the name of the topic to use to control publishing. You can specify a topic in another web using the standard Web.Topic syntax.
TWiki scripts work as part of the web application while can run from command line. The publish
script is no exception. If you have necessary permission, just cd
to the bin
directory, and
./publish
. Parameters are passed as name=value pairs, for example:
./publish web=Book exclusions='Web*' format=file ./publish web=Book inclusions=WebBook format=pdf genopt='--book --duplex --toclevels=5'The available parameter names are shown in the example above, in the 'Name' column.
%STARTPUBLISH%
and %STOPPUBLISH%
control tags: %STARTPUBLISH%
is the first control tag seen in the file, everything before it will be ignored.
%STOPPUBLISH%
and the next %STARTPUBLISH%
(or the end of the topic) will be ignored.
%STARTPUBLISH%
and %STOPPUBLISH%
will be visible in the viewed topic, so you can easily see what will be published from the topic.
Another good trick is to set up a special "publishing" web. Create topics in the web that %INCLUDE the topics from other webs that you want to publish. You can use STARTSECTION and ENDSECTION to highlight what you want published. This way the "publishing" web gives you a view of exactly what will be in the published output, without the need for special publishing tags.
PublishContribHistory
, but you can choose another name (see the form, above). In order to publish a web, you have to be able to write to this topic. If you need to add access controls to the topic, then make sure you do that right at the beginning of the topic, or in the hidden preferences.
The history topics contains a list of all the parameters used, and the versions of the topics that were published, so it is very useful for tracking exactly what you publish. it is written every time you run publish
.
Let's say you are publishing WebA and TopicA has a link to WebB.TopicB. Then, on the published page, the link is transformed into
<a href="../WebB/TopicB">...</a>
This means that you can make a link from WebA.TopicA to WebB.TopicB work on published files with the following steps.
Note: If you want to generate PDF files, you will need an installation of htmldoc
. This program is available from http://www.easysw.com/htmldoc/ for free, but you are strongly recommended to buy the commercial version. Your support for open-source projects helps make open-source software possible.
PublishContrib.zip
in your twiki installation directory.
Run configure
and complete the installation in the PublishContrib section. If you can't do this for some reason, these are the settings required in LocalSite.cfg:
$TWiki::cfg{PublishContrib}{Dir} |
File path to the directory where published files will be generated. you will normally want this to be visible via a URL, so the TWiki pub directory is a good choice. |
$TWiki::cfg{PublishContrib}{URL} |
URL path of the directory you defined above. |
$TWiki::cfg{PublishContrib}{ViewUrlBaseRegex} |
Links to other topics may be written in absolute URLs, which is not a good practice but some do anyway. There might be URLs not matching the TWiki::getScriptURL('view') value but still work. If you set a regular expression matching such URLs, links having those URLs are properly handled. e.g. http://twiki(?:-\w+)?.example.com |
$TWiki::cfg{PublishContrib}{FormatAllowed}{file} |
There are several output formats supported by this contrib. Depending on your situation, you provided some formats, while not providing the others. By setting true (typically 1) or false (typically 0) for these variables, you sepecify which formats are provided and which are not. |
$TWiki::cfg{PublishContrib}{FormatAllowed}{zip} |
|
$TWiki::cfg{PublishContrib}{FormatAllowed}{tgz} |
|
$TWiki::cfg{PublishContrib}{FormatAllowed}{pdf} |
|
$TWiki::cfg{PublishContrib}{FormatAllowed}{ftp} |
|
$TWiki::cfg{PublishContrib}{PDFCmd} |
Template command-line for the PDF generator program - for example, htmldoc --webpage --links --linkstyle plain --outfile %FILE|F% %EXTRAS|U% %FILES|F%' |
$TWiki::cfg{PublishContrib}{PluginControl} |
This contrib has a feature to disable TWiki plugins when publishing. But the feature is harmful for Fast CGI and mod_perl. Setting a true value (typically 1) to this turns of the feature. |
PDF
output
Note that htmldoc
can also be used to generate PostScript by using the -t
option in the Other output generator options
above. See the htmldoc
man pages for details.
.tgz
(tar) output
.zip
output
Plugin Authors: | TWiki:Main/CrawfordCurrie, TWiki:Main/EricScouten, TWiki:Main.SvenDowideit, TWiki:Main.MartinCleaver |
Copyright: | © 2001 Motorola © 2002-2003, Eric Scouten © 2004-2006 Crawford Currie http://c-dot.co.uk © 2006 Martin Cleaver http://www.cleaver.org © 2008-2017, TWiki:TWiki.TWikiContributor |
Sponsors: | Wind River Systems for the 2005 functionality improvements Sabio Labs for the pdf and tgz output formats |
License: | GPL (GNU General Public License) |
Contrib Version: | 2017-05-18 |
2017-05-18 | TWikibug:Item7784: Upgrade code for Perl up to version 5.24 -- HaraldJoerg |
2016-01-16 | TWikibug:Item7714: PublishContrib bug fixes and enhancements 2016-01 -- HideyoImazu |
27 Oct 2008 | TWikibug:Item5385: Fixed doc for configtopic TWikibug:Item5388: $WEB and $TOPIC were not correct in %IF statements TWikibug:Item5390: remove comments from .css before processing for included resoures TWikibug:Item5706: Improved FTP upload process for incrementally maintained webs TWikibug:Item6029: expand config topic on load to support use of searches TWikibug:Item6030: respect VIEW_TEMPLATE in published topics TWikibug:Item6092: expand common tags in configtopic TWikibug:Item6110: rename settings in config topic to avoid clashes with other plugins |
11 Dec 2007 | TWikibug:Item5099 fixed |
10 Nov 2007 | Tested on 4.2.0. TWikibug:Item4624:, TWikibug:Item4625: TWikibug:Item4830: fixed. TWikibug:Item4825: added a basic skin to avoid the confusion caused by text skin. TWikibug:Item4951: added interface to allow management of output files |
13222 | fixed ftp publish, added doco, and added enabled plugin selection funcitonality |
13064 | TWikibug:Item3722 worked around core attaching URL params to internal URLs |
12961 | TWikibug:Item3671 cannot publish without write access to history topic, so security now checked early. TWikibug:Item3619 Cleaned up error handling from writers. TWikibug:Item3675 added history topic to record changeset. Plus major refactoring of main class to get rid of some of the cruft that had built up from many authors. Item2726: uses getExternalResource now, so should obey proxy settings (untested) |
12824 | Added support for new internal api - no user changes |
12708 | Added UI for FTP. Added .spec file. Fixed TWikibug:Item3515 and TWikibug:Item2725 |
12028 | Michael Daum - create a new TWiki object for every topic, don't reuse the current one (TWikibug:Item3139) |
10412 | Correction to the correction for anchors. |
10345 | Correction to support anchors in URLs properly |
10242 | Martin Cleaver - changes to allow generation of viewprint and viewxxx when specified by TEMPLATE; multiple INSTANCE (dev/test/prod); (TWikibug:Item2269) |
10063 | Bugfix TWikibug:Item2216 |
10006 | Crawford Currie - fixed problem where it was failing to remove <base> tags completely (TWikibug:Item2200) |
9986 | Crawford Currie - added doc on usage from command line, corrected sense of topicsearch filter (TWikibug:Item2120, TWikibug:Item2121), renamed parameters (old ones are still valid), corrected handling of empty web refs (TWikibug:Item2128), deprecated nopublish html-style tag in favour of PublishWebPlugin-compatible style (though with richer semantics) (TWikibug:Item2196) |
9823 | Crawford Currie - added support for hierarchical webs, and inclusion of external images. |
9773 | Crawford Currie - added tgz and pdf support |
9725 | Michael Daum - fixed rewriting urls; fixed nested resources issue; creating a new prefs object for each topic |
9713 | Corrected form action so it uses up the right web preferences |
9695 | Michael Daum - recursively archive resources imported by css files; fixed several html errors in the PublishContrib and PublishWeb topics; removed hardcoded reference to print.pattern |
8959 | TWiki-4 version. Also supports publishing to a file area, making TWiki easier to use as a CMS (see also TWiki:Plugins/PublishWebPlugin, which does almost the same thing ![]() |
6276 | TWikibug:Item196 - bugfix for HTTP_HOST, as described in the Dev topic for the contrib |
5566 | Changed interface to support wildcards, and lightened the plugin by replacing a lot of files with simpler ways of doing things. |
5499 | Added Compress::Zlib dependency, as requested by Brad Taylor |
27 Apr 2005 | 1.301 Crawford Currie - fixed minor issues highlighted by Bruce Dillahunty and Scott Claridge |
11 Apr 2005 | 1.3 Crawford Currie - reworked the interface and code to work better |
13 October 2004 | 1.200 Crawford Currie - Cairo compatible |
7 Jan 2003 | 1.1 Initial version |
Dependencies: |
|
|||||||||||||||||||||||||||||||||
Contrib Home: | http://TWiki.org/cgi-bin/view/Plugins/PublishContrib | |||||||||||||||||||||||||||||||||
Feedback: | http://TWiki.org/cgi-bin/view/Plugins/PublishContribDev | |||||||||||||||||||||||||||||||||
Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/PublishContribAppraisal |
Related Topics: TWikiPreferences, TWikiPlugins
I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|
![]() |
publish.gif | manage | 53.3 K | 2017-05-18 - 18:42 | TWikiAdminUser | Saved by install script |
![]() |
wikiringlogo20x20.png | manage | 1.3 K | 2017-05-18 - 18:42 | TWikiAdminUser | Saved by install script |