PGHtml — HTML template engine using PostgreSQL
Tool is described in more detail on a separate website pghtml.org


Description

Tool is designed to display on the site static information from database, which:
PGHtml is a service that creates HTML, JS, JSON and other file types using data obtained from a PostgreSQL database.
The file is created from a template file in which SQL queries, tags and variables are replaced.
Template extension started with pg, i.e. index.html will be created based on the index.pghtml file

Replacements


$$ [SQL query] $$-SQL query result
<pghtml-include>-file contents
${[variable]}-variable value


Replacement example

<!-- single value from database --> 
$$
select user
$$

<!-- multiple values --> 
$$
select tablename from pg_tables
  where schemaname='pg_catalog' limit 5
$$

<!-- inclusion file example_include.html -->
<pghtml-include>include-simple.html</pghtml-include>



<!-- single value from database --> 
postgres

<!-- multiple values --> 
pg_statistic
pg_type
pg_foreign_table
pg_proc
pg_attribute

<!-- inclusion file example_include.html -->
[ file example-header.html ]


Template example

Template
<!DOCTYPE html>
<head>
<title>${title}</title>
</head>

<body>
<h2>${caption}</h2>
${text}
</body>

</html>

Source and result pages
<pghtml-var name="title">Example</pghtml-var>
<pghtml-var name="caption">Multiline text</pghtml-var>
<pghtml-var name="text">
Text line 1
<br>
<i>Text line 2</i>
</pghtml-var>
<pghtml-include>/template/template-common.html</pghtml-include>





<!DOCTYPE html>
<head>
<title>Example</title>
</head>

<body>
<h2>Multiline text</h2>

Text line 1
<br>
<i>Text line 2</i>

</body>

</html>


Simple example

<!-- single value from database --> 
$$
select user
$$

<!-- multiple values --> 
$$
select tablename from pg_tables
  where schemaname='pg_catalog' limit 5
$$

<!-- inclusion file example_include.html -->
<pghtml-include>include-simple.html</pghtml-include>



<!-- single value from database --> 
postgres

<!-- multiple values --> 
pg_statistic
pg_type
pg_foreign_table
pg_proc
pg_attribute

<!-- inclusion file example_include.html -->
[ file example-header.html ]