Commit Graph

41 Commits

Author SHA1 Message Date
4ae854f5e1
Remove unused module import
The dbi sqlite module is not directly used in the site-generator code.
The module is called by template files. Removing it allows the main
code to be database independent.
2024-09-08 09:01:17 -04:00
Dave Morriss
ccba560ee3 Setting up static RSS feeds
site-generator: Changed the routine used to generate entities in
    'HTML::Entities'; see filter function 'xml_entity'

site.cfg: Added root variable 'http_baseurl' which defines the base URL
    using 'http'

templates/rss.tpl.xml: RSS template defining the channel and inserting
    the 'item' definitions; adjusted to be in step with the PHP version.

templates/shared-item.tpl.xml: RSS template used for each 'item' in an
    RSS feed; contains a call to 'HTML::Strip' which turns off the
    addition of spaces when removing tags; adjusted to be in step with
    the PHP version.

templates/shared-utils.tpl.html: Macro collection used by other
    templates; addition of temporay macro 'display_explicit_feed_2'
    which generates 'Yes/No' strings to be in step with the PHP version.
2024-05-23 20:14:42 +01:00
Dave Morriss
68c5e91552 Added a link to the IA copy of the show
site-generator: removed a subroutine prototype

templates/content-episode.tpl.html: added a new IA show link
2023-09-28 23:16:04 +01:00
Dave Morriss
b4448caf16 Fixing 'absolute_url'
site-generator:

    Added all the modules that the script and the templates use to make
    it explicit what is required.

templates/shared-utils.tpl.html:

    Added a new TT² macro called 'absolute_url' which takes two
    arguments, the base and  the path or relative URL. It's fairly
    primitive but seems to work.

templates/content-about.tpl.html,
templates/content-recording.tpl.html,
templates/content-request_a_slot.tpl.html,
templates/content-requested_topics.tpl.html,
templates/page.tpl.html:

    All calls to 'absolute_url' changed to use two arguments, and the
    link definitions adjusted to match this change.
2023-09-09 17:54:19 +01:00
Dave Morriss
d519936f98 Fixing Unicode problems
site-generator:
    - Modification to the POD documentation
    - Addition of 'use 5.012' which enables various later Perl features
    - Addition of "use open ':encoding(UTF-8)'" which forces 'utf8' for
      all IO
    - Addition of 'use Template::Plugin::HTML::Strip' for consistency
    - Removal of other methods of making the default 'utf8' for IO
    - Removal of "'ENCODING => 'utf8'" when setting up a new template
      object. This allows template files to contain Unicode, but doesn't
      seem to be necessary
    - Changes to subroutine 'parse_csv': more comments, clarification of
      warning message, explicit conversion of tags which are marked as
      'utf8' to this format using 'utf8::encode' from core Perl.
2023-08-27 13:22:11 +01:00
Dave Morriss
dc138596ea Fixing issue #140
site-generator:

    Cosmetic adjustments. Additions to the POD documentation.
    Additions to module list.
    Additions to work better with UTF-8.
    Addition of functions 'parse_csv' and 'xml_entity'

templates/queries-episodes-sqlite.tpl.html:
templates/shared-utils.tpl.html:

    Cosmetic changes

templates/rss-query-hpr-mysql.tpl.xml:
templates/rss-query-hpr-sqlite.tpl.xml:
templates/rss-query-hpr_total-mysql.tpl.xml:
templates/rss-query-hpr_total-sqlite.tpl.xml:

    Enhancements to allow the query to collect the audio length from the
    'assets' table. The audio file extension is passed as an argument to
    the 'execute' statement.

templates/rss.tpl.xml:

    Cosmetic changes
    Changed one 'php' URL to 'html'.

templates/shared-episode-summary.tpl.html:

    Change to 'display_tags' macro to turn the 'eps.tags' field into
    a list of links. This works, but needs further development because
    using the tag strings as anchor ids is not reliable.

templates/shared-item.tpl.xml:

    Cosmetic changes.
    Addition of filter 'HTML.strip' which is used as a means of removing
    HTML tags from '<itunes:summary>' strings.
    Using new filter 'xml_entity' which converts all non-ASCII
    characters in the notes to numeric hexadecimal entities for
    '<itunes:summary>'.
    The '<enclosure>' tag now uses 'episode.length' rather than
    'episode.duration' which has been extracted from the 'assets' table.
2023-08-19 13:34:50 +01:00
Dave Morriss
3f766544ac I145 Various bug fixes
site-generator: fixed an error in the POD documentation and added an
    example. Reformatted 'GetOptions' arguments. Fixed 'parse_page_arg'
    which started its returned array with an empty arrayref. Fixed code
    using this array which skipped this unwanted extra value. Fixed
    'get_ids_from_db' which turns a CSV list of shows into an array, but
    includes a blank element. Removed a few trailing spaces.

templates/content-correspondents.tpl.html: Capitalised "License". Added
    'order by h.host' to the internal query to get hosts sorted
    alphabetically.

templates/content-episode.tpl.html: Added a call to macro
    'zero_pad_left' to add leading zeroes to show number in the title.
    Added a call to 'FILTER html_para' when displaying comments (which
    are plain text). Added a test for whether the show being displayed
    is in the 20-show window before the current one to determine whether
    the short or long comment form is required. Added the code to
    generate the two form types depending on the earlier test.

templates/content-sitemap.tpl.html: Corrected the entry for "Show
    Comments" which contained an invalid URL.

templates/page.tpl.html: Grammar corrections in the '<head>' section.

templates/queries-episode-mysql.tpl.html: Adjusted the date tests in the
    CTE's which compare the episode date with today's date plus one day.
    Why add a day when the test is whether the episode date is less than
    or equal to the current one? Also, it seemed that MySQL/MariaDB
    might need to work with the UTC date rather than the local dat
    implied by 'NOW()'.

templates/queries-episode-sqlite.tpl.html: Similar adjustment to date
    tests in CTE's to the MySQL version. SQLite defaults to UTC however.

templates/queries-episodes-mysql.tpl.html: See above for notes about
    date tests and MySQL UTC dates. Same arguments here.

templates/queries-episodes-sqlite.tpl.html: Date test adjustment
    described above.

templates/queries-ids-episode-mysql.tpl.html: Removed the date test from
    the query so all episode numbers are returned. Added an 'order by'
    since the table can (could in the past) return numbers out of
    numerical sequence.

templates/queries-ids-episode-sqlite.tpl.html: Same change as for the
    MySQL version.

templates/queries-index-mysql.tpl.html: There are three queries here,
    returned as TT² variables. The one called 'query_latest_episodes'
    has been adjusted to use UTC and to avoid adding a day to the
    current date. The query called 'query_last_5_weeks_episodes' has
    been similarly adjusted.

templates/queries-index-sqlite.tpl.html: Changes for the same two
    queries, but just for the tests requiring today's date plus one day.

templates/rss-comments.tpl.xml: Grammar corrections in the
    '<channel><description>' section.

templates/rss.tpl.xml: Grammar corrections in various subsections of the
    '<channel>' section.

templates/shared-call_for_shows.tpl.html: Removed the "FTP server"
    message. Slight tidying.
2023-07-23 17:03:27 +01:00
33d98904e2
Skip padding when id is empty string 2023-06-04 22:40:55 -04:00
f65e892182
Add template and HTML folder configuration options
Allow user to set the path for the website templates and
output folders in the site.cfg file.
2023-03-09 20:25:25 -05:00
14bafbc3ab
Add command line option for path to configuration file
Allow user to pass the path to the configuration file into the
site-generator.
2023-03-08 22:23:56 -05:00
24a12a5af3
Update instructions for creating SQLite db
Update the main README file and the POD Installation section
of the site-configuration program.
2023-03-03 23:53:21 -05:00
cb881558ca
Add database type constant for use in templates
This is used to select which database specific SQL query to use.
2022-11-27 13:11:14 -05:00
0b99483f0d
Update installation instruction to include details for MySQL 2022-10-22 21:11:57 -04:00
d556e28e2d
Consume root_template properties generically
Allow user to define root_template properties in the site.cfg file
without need to modify site_generator program.
2022-10-01 13:33:59 -04:00
c817e3a17a
Add MACRO media_baseurl
Allow the audio files to be served from a different host
2022-09-18 16:18:05 -04:00
694c100bcf
Add command line option all
Use --all or -a when calling site-generator instead of special page
ALL to generate all the configured pages for a website.
2022-08-19 22:19:50 -04:00
b36293e52f
Fix generation of series general page 2022-08-19 21:25:14 -04:00
41a18300eb
Allow page to configure root_template in configuration file
RSS commits will be broken before this commit.
2022-08-17 19:13:42 -04:00
818fc25ff9
Add option to site-generator to list configured pages 2022-08-08 21:30:22 -04:00
a194a28b71
Add quiet option to site-generator
Suppress progress information while generating pages.
2022-08-07 21:49:10 -04:00
4725547d39
Update Installation instructions
Add recommendation for SQLite v3.8.3 or greater.
2022-08-07 21:31:01 -04:00
284b92d80b
Update Perl module dependencies
Add missing modules to the Installation section
2022-08-04 19:09:32 -04:00
374ead6592
Update install instructions
Add needed Perl modules.
2022-08-02 12:49:06 -04:00
536f7cce03
Add baseurl feature
Allow an optional base url to be included in generation of html files.
2022-07-31 19:25:56 -04:00
cf554571c8
Autoflush STDOUT for non verbose progress indication 2022-07-31 18:50:34 -04:00
2a61d89907
Guard against empty non existant page id key value 2022-07-31 15:14:03 -04:00
7770f67409
Allow multiple pages to be generated from one template
Feature to allow generation of host and episode pages.
2022-07-28 22:22:55 -04:00
873cfda86a
Allow defining of filename via configuration file 2022-07-28 21:59:38 -04:00
1ec288bbb8
Initial add of multipage template processing
For the individual host pages, allow the ids to be passed
in on the command line.
2022-07-21 23:58:30 -04:00
c1ac9f69a0
Add dynamic generation of years, months, day since start of HPR 2022-07-18 18:25:25 -04:00
0b1e8bea17
Remove whitespace left by template directives 2022-07-17 21:16:42 -04:00
3f19fea622
Change license to AGPLV3 2022-07-13 23:16:44 -04:00
5bacbcec28
Add database creation helper scripts
Add a script to create an empty database and a script to create a
database filled with data from the Insert_Test_Data script.
2022-07-03 20:36:25 -04:00
d0443f0a7d
Add write to file functionality to the site-generator
Add preview option to display generated html in standard out. Default
output of generated html is now written to a file in the public_html
directory with the name of the page with a .html extension.
2022-07-03 17:14:58 -04:00
a592d56547
Update README
Add installation, usage, support, contributing, and author information.
2022-07-02 12:52:50 -04:00
dfaae39202
Add logic to process file arguments
Process all files if the special ALL argument is passed in, or
process the list of files passed in as arguments.
2022-07-01 22:04:58 -04:00
dd8b9b655b
Configure root template page in config file
Currently the root template is page.tpl.html.
2022-06-29 11:03:32 -04:00
3d0ddbfe24
Configure database connection in config file
Pass the db configuration info to the page templates via the
template constants feature.
2022-06-29 10:42:10 -04:00
b33e812c3d
Add correspondents page template
First use of data retrieved from the db.
2022-06-29 00:48:50 -04:00
e31c4a2208
Initial ability to generate page from config file
Added a function to facilitate looping through a list of pages to
be generated. Currently hard coded the generation of the contact page
based on the site.cfg file.
2022-06-28 10:46:52 -04:00
5cb694de14
Initial add of site-generator app and config file
A Perl program which uses Template Toolkit to generate static html
files for Hacker Public Radio.

Signed-off-by: Roan Horning <roan.horning@gmail.com>
2022-06-28 05:38:36 -04:00