Age | Commit message (Collapse) | Author |
|
* tissue/web/server.scm (log-request): Log complete request URI, not
just the path.
|
|
* bin/tissue (main, pull): Add top level directory of repository to
load path.
|
|
* bin/tissue (pull): Create xapian directory only when it does not
exist.
|
|
Indexing might refer to files on the filesystem.
* bin/tissue (pull): Change to temporary clone of repository before
indexing.
|
|
* tissue/web/static.scm (build-website): Expect to be at the top level
of the repository to be exported.
* bin/tissue (pull): Create a temporary clone of the repository and
change to it before calling build-website.
|
|
* website/index.skb (Documentation): New section.
|
|
* tissue/web/dev.scm (handler): Allow files to shadow the search page.
* tissue/web/server.scm (handler): Allow files to shadow the search
page.
|
|
* Makefile: Add 2023 to Arun Isaac's copyright header.
|
|
The --parents flag of cp is not portable to macOS. Besides, install
correctly replaces destination files when they already exist.
* Makefile (install): Use install instead of cp and mkdir.
|
|
pairify was deprecated.
* tests/tissue.scm (pairify): Delete variable.
("pairify"): Delete test.
|
|
* tissue.scm: Import (tissue skribilo).
(#:indexed-documents): Add manual.
|
|
* .dir-locals.el: New file.
|
|
* tissue/skribilo.scm: New file.
|
|
* tissue/issue.scm: Do not import (git).
|
|
* tissue/file-document.scm (commits-affecting-file): New public
function.
(read-gemtext-document): Use commits-affecting-file.
|
|
Earlier, the document type returned was "file-document". It only
seemed to work because xapian split them into two terms—"file" and
"document".
* tissue/file-document.scm (document-type): Return "document".
* tissue/issue.scm (document-type): New generic method.
|
|
Earlier, the document type returned was "file-document". It only
seemed to work because xapian split them into two terms—"file" and
"document".
* tissue/file-document.scm (document-type): Return "document".
|
|
* tissue/commit.scm (document-id-term, document-recency-date): Refer
to metasyntactic variable COMMIT, not DOCUMENT.
|
|
We already have the mset from enquire-mset.
* tissue/search.scm (search-fold): Do not use
MSetIterator-mset-get. Reuse mset from enquire-mset.
|
|
The gemtext exporter is just a skribe exporter with different
defaults.
* tissue/web/static.scm (gemtext-exporter): Express in terms of
skribe-exporter.
|
|
* tissue/search.scm (search-fold): Limit to 1000 search results by
default.
* tissue/web/server.scm (search-handler): Limit to 1000 search results
by default.
|
|
* guix.scm: Import guile-xapian with the guix: prefix.
(guile-xapian): New variable.
|
|
We use font-ibm-plex on the tissue website.
* guix.scm: Import font-ibm-plex from (gnu packages fonts) with the
guix: prefix. Import (guix utils).
(font-ibm-plex): New variable.
(package)[native-inputs]: Add font-ibm-plex.
|
|
* issues/allow-checkboxes-without-a-space.gmi: New file.
* tissue/issue.scm (file-details): Add TODO note.
|
|
Functionally setting generic functions (like add-methods does) doesn't
work since methods can still refer to the old generic function. The
future of generic functions in the theming system is in doubt. It must
be rethought out carefully.
* tissue/web/themes.scm (add-methods): Delete function.
* tissue/web/themes/default.scm (default-theme): Replace add-methods!
with add-method.
|
|
* tissue/document.scm (object->scm, scm->object): Support symbols.
|
|
* 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.
|