summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2022-12-24bin: 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-24dev: Implement development web server.•••* tissue/web/dev.scm: New file. Arun Isaac
2022-12-24server: 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-28web: server: Do not prepend / to URI path.•••* tissue/web/server.scm (handler): Do not prepend / to URI path. Arun Isaac
2022-11-28web: 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-10tissue: 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-10doc: Add documentation.•••* doc/skribilo.scm, doc/tissue.skb: New files. * tissue.scm (#:web-files): Add manual/dev/en/index.html. Arun Isaac
2022-10-10tissue: 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-07tissue: 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-19guix.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-19guix.scm: Patch shebang in executable script.•••* guix.scm (tissue)[arguments]: Add patch-source-shebangs script. Arun Isaac
2022-09-19guix.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-19tissue.scm: Add CSS.•••* website/style.css: New file. * tissue.scm (#:web-files): Copy CSS to website. (#:web-css): Use it. Arun Isaac
2022-09-19tissue.scm: Copy IBM Plex fonts to built website.•••* tissue.scm (#:web-files): Copy IBM Plex fonts. Arun Isaac
2022-09-19bin: 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-19bin: 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-19bin: Define &user-error-condition.•••* bin/tissue (&user-error-condition): New condition type. Arun Isaac
2022-09-19bin: Separate development and deployment subcommands in listing.•••* bin/tissue (print-usage): Separate development and deployment subcommands in listing. Arun Isaac
2022-09-19bin: 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-19bin: 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-24web: 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-24web: 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-23web: 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-23web: server: Remove special line height for search hints.•••* tissue/web/server.scm (%css)[.search-hint]: Remove line-height property. Arun Isaac
2022-07-23bin: 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-23git: 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-23bin: 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-21bin: 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-21web: 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-20web: server: Add article 'the' in handler docstring.•••* tissue/web/server.scm (handler): Add article 'the' in docstring. Arun Isaac
2022-07-20utils: 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-20bin: 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-20git: Add git-tracked-file? utility.•••* tissue/git.scm: Import (rnrs exceptions). (git-tracked-file?): New public function. Arun Isaac
2022-07-20web: 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-19web: 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-19web: server: Remove rounded edges on search filters.•••* tissue/web/server.scm (%css)[.search-filter]: Remove rounded edges. Arun Isaac
2022-07-19web: server: Remove rounded edges on tags.•••* tissue/web/server.scm (%css)[.tag a]: Remove rounded edges and reduce padding. Arun Isaac
2022-07-19issue: 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-19web: 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-19file-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-19web: 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-19search: 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-19utils: Add string-contains? utility.•••* tissue/utils.scm (string-contains?): New public function. Arun Isaac
2022-07-19issue: 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-19search: 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-19document: 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-19document: 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-13document: Use string-blank?.•••* tissue/document.scm (document-snippet-source-text): Use string-blank?. Arun Isaac
2022-07-13search: 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-13utils: Add string-blank? utility.•••* tissue/utils.scm (string-blank?): New function. Arun Isaac