Age | Commit message (Collapse) | Author |
|
* doc/tissue.skb: Add identifiers to all chapters and sections.
|
|
* tissue/git.scm (git-top-level): Find git top level correctly even in
bare repositories.
|
|
* bin/tissue (load-config): Define using define instead of define*.
|
|
The build process may run code that expects files to be on the
filesystem. Not all of this file accessing code is within tissue's
control. Think arbitrary code in skribilo documents. So, we cannot
always work around this by pointing file accesses into a bare git
repository.
* tissue/web/static.scm: Import (git).
(build-website): Move into temporary clone of git repository before
building files.
(exporter): Use call-with-input-file instead of call-with-file-in-git.
|
|
with-current-directory is the exact same as
call-with-current-directory from (tissue utils).
* tissue/web/static.scm (with-current-directory): Delete function.
(build-website): Replace with-current-directory with
call-with-current-directory.
|
|
The project name is not used anywhere now. If it is required, it
should be passed through the lexical context of closures in the tissue
configuration object.
* tissue/tissue.scm (<tissue-configuration>)[project]: Delete field.
(tissue-configuration-project): Delete function.
(tissue-configuration): Remove project argument.
* tissue.scm (tissue-configuration)[#:project]: Delete parameter.
* tissue/web/static.scm (%project-name): Delete parameter.
* bin/tissue (pull): Do not parameterize %project-name.
|
|
CSS is now specified exclusively through the lexical context of
closures in the tissue configuration object.
* tissue.scm: Use (tissue web themes default).
(%css, %engine): New variables.
(tissue-configuration)[#:web-css]: Delete parameter.
[#:web-search-renderer]: Pass %css to default theme.
[#:web-files]: Pass %engine to gemtext-exporter and skribe-exporter.
* tissue/tissue.scm (<tissue-configuration>)[web-css]: Delete field.
(tissue-configuration-web-css): Delete function.
(tissue-configuration): Remove web-css argument.
|
|
* tissue/web/static.scm (engine-custom-set): New function.
(html-engine): New public function.
(gemtext-exporter, skribe-exporter): Use html-engine in default value
of engine.
|
|
* tissue/web/static.scm (gemtext-exporter, skribe-exporter): Accept
engine keyword argument.
|
|
* tissue/web/static.scm (gemtext-exporter, skribe-exporter): Accept
reader as a keyword argument, instead of as an optional argument.
|
|
Parameters from the project configuration may be needed by the
theme. But, these parameters should not passed as explicit parameters
to the generic function of the theme. Instead, they should be passed
implicitly through the lexical context of the generic methods.
* tissue/web/server.scm (search-handler): Do not pass project to
search renderer.
* tissue/web/themes/default.scm: Do not import (tissue tissue).
(default-theme): New public function.
(make-head-renderer): New function.
(render-sxml): Make private. Remove project parameter from all generic
methods.
* tissue/tissue.scm (tissue-configuration): Set default value of
web-search-renderer to (default-theme) instead of render-sxml.
|
|
* tissue/web/themes.scm: Import (srfi srfi-26).
(add-methods): New function.
|
|
To the development server, pass a thunk to read project configuration
instead of the project configuration itself. This allows us to hack on
the project's tissue.scm without having to restart the development
server to see changes.
* bin/tissue (tissue-web-dev): Pass thunk to read project
configuration instead of the project configuration itself.
* tissue/web/dev.scm (handler, start-dev-web-server): Accept thunk to
read project configuration instead of the project configuration
itself.
|
|
We factor out all display related code to a theming module, and
support powerful user customization of the theme thanks to generic
functions.
* tissue/commit.scm (document->sxml): Move to (tissue web themes
default).
* tissue/document.scm (document->sxml): Move to (tissue web themes
default).
* tissue/file-document.scm (document->sxml): Move to (tissue web
themes default).
* tissue/issue.scm (sanitize-string, document->sxml): Move to (tissue
web themes default).
* tissue/tissue.scm: Import (tissue web themes default).
(<tissue-configuration>)[web-search-renderer]: New field.
(tissue-configuration-web-search-renderer): New function.
(tissue-configuration): Accept web-search-renderer argument.
* tissue/web/server.scm: Import (oop goops) and (tissue web
themes). Do not import (tissue document).
(%css, make-search-page, search-handler): Move to (tissue web themes
default).
* tissue/web/themes.scm, tissue/web/themes/default.scm: New files.
* Makefile (sources): Add $(top_level_module_dir)/web/themes/*.scm.
|
|
Themes should be free to access the entirety of the project
configuration. It is impossible to predict which parts of the project
configuration they will need.
* bin/tissue (tissue-web, tissue-web-dev): Pass entire configuration
object to start-web-server and start-dev-web-server respectively.
* tissue/web/dev.scm: Import (tissue tissue).
(handler, start-dev-web-server): Accept entire configuration object.
* tissue/web/server.scm: Import (tissue tissue).
(search-handler, start-web-server): Accept entire configuration
object.
|
|
* tissue/web/server.scm (query-parameters, query-string): Move to ...
* tissue/utils.scm: ... here. Import (ice-9 match) and (web uri).
|
|
* bin/tissue: Import (tissue web dev).
(tissue-web-dev): Run the new development web server.
(main): Remove web-build command.
(print-usage): Delist deprecated web-build command. Update synopsis of
web-dev command.
(tissue-web-build): Delete function.
|
|
* tissue/web/dev.scm: New file.
|
|
The newly factored out functions will be used in the upcoming
development web server.
* tissue/web/server.scm (handler): Factor out reusable parts into ...
(log-request, mime-type-for-extension, 404-response, search-handler,
try-paths): ... new functions.
|
|
* tissue/web/server.scm (handler): Do not prepend / to URI path.
|
|
* tissue/web/server.scm (handler): Serve path/index.html if path ends
in /.
|
|
* tissue/tissue.scm (tissue-configuration): Document
#:indexed-documents as a list of <document> objects, not a list of
<indexed-document> objects.
|
|
* doc/skribilo.scm, doc/tissue.skb: New files.
* tissue.scm (#:web-files): Add manual/dev/en/index.html.
|
|
* tissue/tissue.scm (define-lazy): New macro.
(tissue-configuration): Define using define-lazy.
(pairify): Delete function.
(<tissue-configuration>[tissue-configuration-project,
tissue-configuration-aliases, tissue-configuration-web-css]: Force
values in getters.
|
|
* tissue/document.scm (slot-set): Markup docstring in texinfo syntax.
* tissue/file-document.scm (read-gemtext-document): Markup docstring
in texinfo syntax.
* tissue/git.scm (git-tracked-files): Markup docstring in texinfo
syntax.
* tissue/issue.scm (read-gemtext-issue): Markup docstring in texinfo
syntax.
* tissue/tissue.scm (gemtext-files-in-directory): Markup docstring in
texinfo syntax.
* tissue/web/static.scm (exporter, copier, gemtext-exporter,
skribe-exporter): Markup docstrings in texinfo syntax.
|
|
* guix.scm: Import autoconf and automake from (gnu packages
autotools). Import gnu-gettext from (gnu packages gettext). Import
guile-3.0 and guile-git from (gnu packages guile). Import
guile-filesystem and guile-xapian from (gnu packages
guile-xyz). Import (gnu packages skribilo) with a guix: prefix.
(skribilo-latest): New variable.
(tissue)[inputs]: Add guile-3.0, guile-filesystem, guile-git and
guile-xapian.
[propagated-inputs]: Add skribilo-latest.
|
|
* guix.scm (tissue)[arguments]: Add patch-source-shebangs script.
|
|
* guix.scm (tissue)[arguments]: Import target-guile-effective-version
from (guix build guile-build-system). Add wrap phase.
|
|
* website/style.css: New file.
* tissue.scm (#:web-files): Copy CSS to website.
(#:web-css): Use it.
|
|
* tissue.scm (#:web-files): Copy IBM Plex fonts.
|
|
This allows us to report fatal user errors and exit.
* bin/tissue (main): Print error message and exit on user-error
conditions.
|
|
* bin/tissue (tissue-web-dev): Raise user error if not given a
website-directory command-line argument.
|
|
* bin/tissue (&user-error-condition): New condition type.
|
|
* bin/tissue (print-usage): Separate development and deployment
subcommands in listing.
|
|
* bin/tissue (tissue-web-dev, print-usage): Clarify in the usage
summary that web-dev serves both the built website and the issues.
|
|
The index is built on all tissue subcommands. There is no need for a
separate subcommand to build the index. Having a separate subcommand
only complicates the command-line interface and confuses the user.
* bin/tissue (tissue-index): Delete function.
(print-usage): Unlist index subcommand.
(main): Do not call tissue-index.
|
|
* tissue/web/server.scm (%css)[.document-type]: Remove text-transform
property. Set font-variant property.
|
|
* tissue/web/server.scm (%css)[.document-type]: Remove font-size,
padding, background-color and color properties.
[.open-issue-document-type]: Remove background-color property.
|
|
* tissue/web/server.scm (%css)[.search-result a]: Remove font-size
property.
|
|
* tissue/web/server.scm (%css)[.search-hint]: Remove line-height
property.
|
|
* bin/tissue (tissue-web-dev): New function.
(print-usage): List the tissue web-dev subcommand.
(main): Call tissue-web-dev.
|
|
This generalization of call-with-file-in-git permits preferential
reading of uncommitted changes, and reading of files external to the
git repository.
* tissue/git.scm (call-with-file-in-git): Prefer reading checked out
files.
|
|
* bin/tissue (start-repl): New function.
(listen-repl-option): New variable.
(tissue-web): Use listen-repl-option. Call start-repl.
|
|
* bin/tissue (tissue-web-build): New function.
* bin/tissue (print-usage): List web-build subcommand.
(main): Invoke tissue-web-build.
|
|
The server should be unaware of the specifics of the state directory
and its directory structure. It should be explicitly passed paths to
all necessary directories. This way, the server can be repurposed for
other applications such as the development web server---something that
is coming soon in the subsequent commits.
* tissue/web/server.scm (handler): Remove state-directory
argument. Use directory paths in hosts argument.
(start-web-server): Remove state-directory argument. Do not pass on
state-directory to handler.
* bin/tissue (tissue-web): Pass directory paths explicitly to
start-web-server in hosts argument. Do not pass the removed
state-directory argument.
|
|
* tissue/web/server.scm (handler): Add article 'the' in docstring.
|
|
* tissue/utils.scm (call-with-temporary-directory): Allow specifying
directory in which to create temporary directory.
|
|
`tissue pull' may be run in CI with the logs getting published. It is
better to not expose the canonical paths in such public logs.
* bin/tissue (pull): Do not print canonical paths.
|
|
* tissue/git.scm: Import (rnrs exceptions).
(git-tracked-file?): New public function.
|
|
If the response to a static file request is returned as a
procedure, (web server) tries to interpret the response as text. This
results in encoding errors with binary files. Fixing this is not worth
the trouble since (tissue web server) is anyway not meant to serve
large static files. Large static files should be served using a more
capable server such as nginx.
* tissue/web/server.scm (handler): Return response to a static file
request as a bytevector, instead of as a procedure.
|