Age | Commit message (Expand) | Author |
2022-12-24 | bin: Expose new development web server.•••* 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.
| Arun Isaac |
2022-12-24 | dev: Implement development web server.•••* tissue/web/dev.scm: New file.
| Arun Isaac |
2022-12-24 | server: Factor out reusable parts into separate functions.•••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.
| Arun Isaac |
2022-11-28 | web: server: Do not prepend / to URI path.•••* tissue/web/server.scm (handler): Do not prepend / to URI path.
| Arun Isaac |
2022-11-28 | web: server: Serve path/index.html if path ends in /.•••* tissue/web/server.scm (handler): Serve path/index.html if path ends
in /.
| Arun Isaac |
2022-10-10 | tissue: Document #:indexed-documents as a list of <document> objects.•••* tissue/tissue.scm (tissue-configuration): Document
#:indexed-documents as a list of <document> objects, not a list of
<indexed-document> objects.
| Arun Isaac |
2022-10-10 | doc: Add documentation.•••* doc/skribilo.scm, doc/tissue.skb: New files.
* tissue.scm (#:web-files): Add manual/dev/en/index.html.
| Arun Isaac |
2022-10-10 | tissue: Introduce define-lazy, an abstraction for lazy functions.•••* 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.
| Arun Isaac |
2022-10-07 | tissue: Markup docstrings in texinfo syntax.•••* 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.
| Arun Isaac |
2022-09-19 | guix.scm: Add dependencies.•••* 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.
| Arun Isaac |
2022-09-19 | guix.scm: Patch shebang in executable script.•••* guix.scm (tissue)[arguments]: Add patch-source-shebangs script.
| Arun Isaac |
2022-09-19 | guix.scm: Wrap tissue executable.•••* guix.scm (tissue)[arguments]: Import target-guile-effective-version
from (guix build guile-build-system). Add wrap phase.
| Arun Isaac |
2022-09-19 | tissue.scm: Add CSS.•••* website/style.css: New file.
* tissue.scm (#:web-files): Copy CSS to website.
(#:web-css): Use it.
| Arun Isaac |
2022-09-19 | tissue.scm: Copy IBM Plex fonts to built website.•••* tissue.scm (#:web-files): Copy IBM Plex fonts.
| Arun Isaac |
2022-09-19 | bin: Print error message and exit on user-error conditions.•••This allows us to report fatal user errors and exit.
* bin/tissue (main): Print error message and exit on user-error
conditions.
| Arun Isaac |
2022-09-19 | bin: Error out if web-dev subcommand is not given a website directory.•••* bin/tissue (tissue-web-dev): Raise user error if not given a
website-directory command-line argument.
| Arun Isaac |
2022-09-19 | bin: Define &user-error-condition.•••* bin/tissue (&user-error-condition): New condition type.
| Arun Isaac |
2022-09-19 | bin: Separate development and deployment subcommands in listing.•••* bin/tissue (print-usage): Separate development and deployment
subcommands in listing.
| Arun Isaac |
2022-09-19 | bin: Clarify that web-dev serves both built website and issues.•••* bin/tissue (tissue-web-dev, print-usage): Clarify in the usage
summary that web-dev serves both the built website and the issues.
| Arun Isaac |
2022-09-19 | bin: Deprecate tissue index subcommand.•••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.
| Arun Isaac |
2022-07-24 | web: server: Use small caps for document type identifiers.•••* tissue/web/server.scm (%css)[.document-type]: Remove text-transform
property. Set font-variant property.
| Arun Isaac |
2022-07-24 | web: server: Style document type identifiers without color.•••* tissue/web/server.scm (%css)[.document-type]: Remove font-size,
padding, background-color and color properties.
[.open-issue-document-type]: Remove background-color property.
| Arun Isaac |
2022-07-23 | web: server: Use default font size for search result titles.•••* tissue/web/server.scm (%css)[.search-result a]: Remove font-size
property.
| Arun Isaac |
2022-07-23 | web: server: Remove special line height for search hints.•••* tissue/web/server.scm (%css)[.search-hint]: Remove line-height
property.
| Arun Isaac |
2022-07-23 | bin: Add tissue web-dev subcommand.•••* bin/tissue (tissue-web-dev): New function.
(print-usage): List the tissue web-dev subcommand.
(main): Call tissue-web-dev.
| Arun Isaac |
2022-07-23 | git: Prefer reading checked out files.•••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.
| Arun Isaac |
2022-07-23 | bin: Abstract out REPL listen code.•••* bin/tissue (start-repl): New function.
(listen-repl-option): New variable.
(tissue-web): Use listen-repl-option. Call start-repl.
| Arun Isaac |
2022-07-21 | bin: Add tissue web-build subcommand.•••* bin/tissue (tissue-web-build): New function.
* bin/tissue (print-usage): List web-build subcommand.
(main): Invoke tissue-web-build.
| Arun Isaac |
2022-07-21 | web: server: Be unaware of the state directory.•••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.
| Arun Isaac |
2022-07-20 | web: server: Add article 'the' in handler docstring.•••* tissue/web/server.scm (handler): Add article 'the' in docstring.
| Arun Isaac |
2022-07-20 | utils: Allow specifying parent of temporary directory.•••* tissue/utils.scm (call-with-temporary-directory): Allow specifying
directory in which to create temporary directory.
| Arun Isaac |
2022-07-20 | bin: Do not print canonical paths when pulling.•••`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.
| Arun Isaac |
2022-07-20 | git: Add git-tracked-file? utility.•••* tissue/git.scm: Import (rnrs exceptions).
(git-tracked-file?): New public function.
| Arun Isaac |
2022-07-20 | web: server: Respond to a static file request with a bytevector.•••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.
| Arun Isaac |
2022-07-19 | web: server: Move document type identifier into HTML.•••* tissue/commit.scm (document->sxml): Generate document type
identifier.
* tissue/file-document.scm (document->sxml): Generate document type
identifier.
* tissue/issue.scm (document->sxml): Generate document type
identifier.
* tissue/web/server.scm (%css): Style document type identifiers.
| Arun Isaac |
2022-07-19 | web: server: Remove rounded edges on search filters.•••* tissue/web/server.scm (%css)[.search-filter]: Remove rounded edges.
| Arun Isaac |
2022-07-19 | web: server: Remove rounded edges on tags.•••* tissue/web/server.scm (%css)[.tag a]: Remove rounded edges and
reduce padding.
| Arun Isaac |
2022-07-19 | issue: Render tags as an unordered list.•••* tissue/issue.scm (document->sxml): Render tags as an unordered list.
* tissue/web/server.scm (%css): Style list items with tag classes, not
anchor tags.
| Arun Isaac |
2022-07-19 | web: server: Link to Xapian::QueryParser syntax documentation.•••* tissue/web/server.scm (make-search-page): Link to upstream
Xapian::QueryParser syntax documentation.
| Arun Isaac |
2022-07-19 | file-document: Show created and last updated dates in listings.•••* tissue/file-document.scm (print, document->sxml): Show created and
last updated dates in listings.
* tissue/web/server.scm (%css): Put DOC identifier before metadata,
not before title.
| Arun Isaac |
2022-07-19 | web: server: Parse provided search query only once.•••* tissue/web/server.scm (matches): Accept parsed search query.
(handler): Parse provided search query only once.
| Arun Isaac |
2022-07-19 | search: Sort by date on strictly boolean queries.•••* issues/sort-by-date.gmi: Close issue.
* tissue/search.scm (term-ref, query-terms-every): New functions.
(boolean-query?): New public function.
(search-fold): Sort by date on strictly boolean queries.
* tissue/web/server.scm (handler): Sort by date on strictly boolean
queries.
| Arun Isaac |
2022-07-19 | utils: Add string-contains? utility.•••* tissue/utils.scm (string-contains?): New public function.
| Arun Isaac |
2022-07-19 | issue: Quote tags with spaces instead of hyphenating them.•••* tissue/issue.scm (document->sxml): Quote tags with spaces instead of
hyphenating them.
| Arun Isaac |
2022-07-19 | search: Parse boolean terms in search query.•••* tissue/search.scm: Import (ice-9 match).
(make-query-parser): New function.
(%prefixes, %boolean-prefixes, query-parser): New variables.
(parse-query): Use query-parser.
| Arun Isaac |
2022-07-19 | document: Index boolean terms.•••Metadata that will be used in boolean filtering should be indexed as
boolean terms, not as free text. This also results in the happy
coincidence that we no longer need a specialized
document-term-generator generic method for <issue> and <commit>.
* tissue/document.scm (document-boolean-terms): New public generic
function.
(document-term-generator): Use document-boolean-terms.
* tissue/issue.scm (document-boolean-terms): New generic method.
(document-term-generator): Delete generic method.
* tissue/commit.scm (document-boolean-terms): New generic method.
(document-term-generator): Delete generic method.
| Arun Isaac |
2022-07-19 | document: Store serialized date as value in Xapian document.•••* tissue/document.scm (document-recency-date): Declare public generic
function.
(document-term-generator): Store serialized date in slot 0 of Xapian
document.
* tissue/file-document.scm (document-recency-date): New generic
method.
* tissue/commit.scm (document-recency-date): New generic method.
| Arun Isaac |
2022-07-13 | document: Use string-blank?.•••* tissue/document.scm (document-snippet-source-text): Use
string-blank?.
| Arun Isaac |
2022-07-13 | search: Match all on blank query, not null query.•••* tissue/search.scm: Import (tissue utils).
(parse-query): Match all on blank query, not null query.
| Arun Isaac |
2022-07-13 | utils: Add string-blank? utility.•••* tissue/utils.scm (string-blank?): New function.
| Arun Isaac |