aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.env/echo-nixNote239
-rw-r--r--.env/nix-commands20
-rw-r--r--.envrc16
-rw-r--r--.gitignore40
-rw-r--r--CHANGELOG280
-rw-r--r--README43
-rw-r--r--flake.lock80
-rw-r--r--flake.nix189
-rw-r--r--org/config_git.org89
-rw-r--r--org/config_nix.org1494
-rwxr-xr-xshell.nix24
11 files changed, 2342 insertions, 172 deletions
diff --git a/.env/echo-nixNote b/.env/echo-nixNote
new file mode 100644
index 0000000..ad8717f
--- /dev/null
+++ b/.env/echo-nixNote
@@ -0,0 +1,239 @@
+echo '-*- mode: org -*-
+
+* nixpkgs path?
+
+ # eval "$(nix print-dev-env)"
+' > nixNote_.org
+
+echo " <nixpkgs> == `nix-instantiate --find-file nixpkgs`" >> nixNote_.org
+
+echo '
+* nix build and show derivation
+
+#+BEGIN_SRC sh
+nix-shell --pure
+
+nix-build
+nix build -f default.nix --print-build-logs
+nix shell -f default.nix --print-build-logs
+nix develop --build -f derivation.nix -I .envrc --print-build-logs
+
+nix-instantiate | nix-build
+
+nix-instantiate -I .envrc | nix-build -I .envrc
+nix build `nix-instantiate`
+nix build `nix-instantiate -I .envrc`
+
+nix develop
+
+nix-instantiate | nix show-derivation | jq
+nix-instantiate -I .envrc | nix show-derivation -f derivation.nix -I .envrc | jq
+
+nix-instantiate | nix show-derivation --recursive | jq
+nix-instantiate -I .envrc | nix show-derivation -f derivation.nix --recursive -I .envrc | jq
+
+nix search --json 2>/dev/null |jq
+#+END_SRC
+
+* version and build info
+
+#+BEGIN_SRC sh' >> nixNote_.org
+
+echo 'spine version (git) == $SpineVER' >> nixNote_.org
+echo "spine version (git) == $SpineVER" >> nixNote_.org
+echo 'nix-instantiate == `nix-instantiate`' >> nixNote_.org
+echo "nix-instantiate == `nix-instantiate`" >> nixNote_.org
+
+echo "#+END_SRC
+
+* initialised shell variables
+
+#+BEGIN_SRC sh
+SpineSRC=$SpineSRC
+SpineDOC=$SpineDOC
+SpinePOD=$SpinePOD
+SpineOUTversioned=$SpineOUTversioned
+SpineOUT=$SpineOUT
+#+END_SRC
+" >> nixNote_.org
+
+echo '* spine run instruction examples
+** parallelized tasks
+*** doc source
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --pod --source --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** html & epub output
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --html --epub --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** sqlite db for each document - populate each db
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** doc source; html, epub; sqlite outputs
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --pod --html --epub --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** curate (authors topics)
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --curate --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** html, curate
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --dark --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/*
+$SpineBIN/spine --very-verbose --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** composite command: source pod, html, epub, curate, sqlite
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+** sequential tasks
+*** sqlite db (shared) - create db
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUTversioned"
+#+END_SRC
+
+*** sqlite db (shared) - populate db
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-update --output="$SpineOUTversioned" $SpineDOC/spine-markup-samples/markup/pod/*
+#+END_SRC
+
+*** sqlite db (shared) - drop db
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-drop --output="$SpineOUTversioned"
+#+END_SRC
+
+*** sqlite db (shared) - create & populate db (single step)
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-create --sqlite-update --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+*** composite command: source pod, html, epub, curate, sqlite
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --no-parallel --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+#+END_SRC
+
+** config [./pod/].dr/config_local_site
+
+#+BEGIN_SRC sh
+cat $SpinePOD/.dr/config_local_site
+$SpineBIN/spine --show-config $SpinePOD
+$SpineBIN/spine --show-config --output="$SpineOUTversioned" $SpinePOD
+#+END_SRC
+
+** cgi operations (output to $SpineOUT /var/www)
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUT" $SpinePOD/*
+
+$SpineBIN/spine -v --cgi-search-form-codegen --output=$SpineOUT $SpinePOD/*
+
+$SpineBIN/spine -v --show-config --config=$SpinePOD/.dr
+
+$SpineBIN/spine --html $SpinePOD/*
+
+
+$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
+#+END_SRC
+
+*** generate html linked to search form
+
+#+BEGIN_SRC sh
+$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --output=$SpineOUT $SpinePOD/*
+#+END_SRC
+
+*** create or re-create sql db (--sqlite-db-create or --sqlite-db-recreate)
+
+#+BEGIN_SRC sh
+$SpineBIN/spine -v --sqlite-db-create --sqlite-db-filename="spine.search.db" --sqlite-db-path="$SpineDBpath"
+$SpineBIN/spine -v --sqlite-db-recreate --sqlite-db-filename="spine.search.db" --sqlite-db-path="$SpineDBpath"
+#+END_SRC
+
+*** populate sqlite db
+
+#+BEGIN_SRC sh
+$SpineBIN/spine -v --sqlite-update --sqlite-db-filename="spine.search.db" --output=$SpineOUT $SpinePOD/*
+#+END_SRC
+
+*** generate html (linked to search form), sql output, curate COMPOSITE
+
+#+BEGIN_SRC sh
+$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="spine.search.db" --cgi-sqlite-search-filename="spine_search" --sqlite-db-path="$SpineDBpath" --output="$SpineOUT" $SpinePOD/*
+$SpineBIN/spine --epub --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="spine.search.db" --cgi-sqlite-search-filename="spine_search" --cgi-url-action="https://sisudoc.org/spine_search" --ouput="$SpineOUT" $SpinePOD/*
+#+END_SRC
+
+*** generate html (linked to search form), sql output, curate COMPOSITE with resource configuration
+
+if names and paths are configured in resource configuration file, e.g. $SpinePOD/.rc/config_local_site
+
+#+BEGIN_SRC sh
+$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update $SpinePOD/*
+#+END_SRC
+
+#+BEGIN_SRC yaml
+# sample resource configuration file ( $SpinePOD/.rc/config_local_site )
+output:
+ path: "/srv/www/spine"
+default:
+ language: "en"
+ papersize: "a4"
+ text_wrap: "80"
+ digest: "sha256"
+webserv:
+ http: "http"
+ domain: "localhost"
+ data_http: "http"
+ data_domain: "localhost"
+ data_root_url: "https://sisudoc.org"
+ data_root_path: "/srv/www/spine"
+ images_root_part: "image"
+ cgi_search_form_title: "≅ SiSU Spine search"
+ cgi_http: "https"
+ cgi_domain: "sisudoc.org"
+ cgi_bin_url: "http://sisudoc.org/cgi-bin"
+ cgi_bin_part: "cgi-bin"
+ cgi_bin_path: "/var/www/cgi/cgi-bin"
+ cgi_search_script: "spine_search"
+ cgi_action: "https://sisudoc.org/spine_search"
+ db_sqlite_filename: "spine.search.db"
+ db_sqlite_path: "/var/www/sqlite"
+#+END_SRC
+
+*** make search form
+
+#+BEGIN_SRC sh
+$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
+#+END_SRC
+
+*** latex
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --latex --serial --output="$SpineOUT" $SpinePOD/*
+ls $SpineOutstatic/latex/*.tex
+#+END_SRC
+' >> nixNote_.org
+
+#cat nixNote_.org
+
+#echo "emacs nixNote_.org"
+#echo "cat nixNote_.org"
diff --git a/.env/nix-commands b/.env/nix-commands
new file mode 100644
index 0000000..7cfa723
--- /dev/null
+++ b/.env/nix-commands
@@ -0,0 +1,20 @@
+- nix flake update && nix flake check --show-trace && nix flake show && nix develop .#devShell
+
+- nix build .#default --print-build-logs
+- nix build .#spine-dmd --print-build-logs
+- nix build .#spine-ldc --print-build-logs
+- nix build .#spine-gdc --print-build-logs
+
+- nix develop
+ - nix develop .#devShell --print-build-logs
+ - nix develop .#devShell-html --print-build-logs
+ - nix develop .#devShell-epub --print-build-logs
+ - nix develop .#devShell-latex-pdf --print-build-logs
+ - nix develop .#devShell-sqlite --print-build-logs
+ - nix develop .#devShell-i18n --print-build-logs
+
+nix run .#default --print-build-logs
+
+nix develop --build .#default --print-build-logs
+
+nix-shell '<nixpkgs>' -A nix --pure
diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3c33408
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,16 @@
+use flake .
+#use flake .#default
+NIX_ENFORCE_PURITY=1
+NixDirEnvVersion="2.2.1"
+if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then
+# - https://github.com/nix-community/nix-direnv
+# source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000="
+ source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
+fi
+watch_file flake.lock
+watch_file flake.nix
+if [ -f .envrc-local ]; then
+ source_env_if_exists .envrc-local || source .envrc-local
+fi
+PATH_add result/bin
+#nix flake update && nix flake check --show-trace && nix flake show
diff --git a/.gitignore b/.gitignore
index 327d5c6..d8fecda 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,36 @@
# git ls-files --others --exclude-from=.git/info/exclude
+# git check-ignore -v flake.lock
+# git clean -ix
+# find . -name "*_" | xargs rm -rf
+*
+!nix/**
+!*.nix
+!flake.lock
+!.envrc
+!.env
+!.env/**
+!README
+!COPYRIGHT
+!CHANGELOG
+!makefile
+!version.txt
+!configuration.txt
+!conf/
+!conf/**
+!*.json
+!tangle
+!*.org
+!org/
+!org/*.org
+!*.rb
+!*.sst
+!*.ssm
+!*.ssi
+!**/*.sst
+!**/*.ssm
+!**/*.ssi
+!data
+!data/**
*~
*_
\#*
@@ -9,7 +41,13 @@
*.gemspec
*_.rb
*.rb_
-.pc
0???-*.patch
*.gz
*.xz
+*_
+.*
+!.gitignore
+!.gitattributes
+!.envrc
+!.env
+!.env/**
diff --git a/CHANGELOG b/CHANGELOG
index f37fc9d..bf0bfb6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,252 +1,236 @@
SiSU markup samples CHANGELOG -*- mode: org; -*-
#+OPTIONS: ^:nil _:nil
-Homepages: <http://sisudoc.org> <http://www.jus.uio.no/sisu>
-Source: <http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=summary>
+Homepages: <http://sisudoc.org>
+Source: <https://git.sisudoc.org/data/sisu-markup-samples/>
Reverse Chronological:
+* sisu-markup-samples_7.2.0.orig.tar.xz (2019-09-04:35/3) [version follows sisu]
+
+ - markup modifications
+ - distinguish use of block and group
+ - table attributes
+
* sisu-markup-samples_7.1.3.orig.tar.xz (2018-02-14:7/3) [sisu at 7.1.11]
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_7.1.3
- * data directory, housekeeping, small corrections
+ - data directory, housekeeping, small corrections
* sisu-markup-samples_7.1.2.orig.tar.xz (2015-09-30:39/3) [sisu at 7.1.5]
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_7.1.2
- * book index markup related touches
+ - book index markup related touches
Democratizing Innovation; Free Culture; Two Bits; Viral Spiral
- * bibliography related, minor
+ - bibliography related, minor
Free For All; Two Bits
- * update a few urls
+ - update a few urls
Democratizing Innovation; Two Bits
- * make a blurb non-substantive, no ocn
+ - make a blurb non-substantive, no ocn
Wealth of Networks
- * typo...
+ - typo...
Two Bits
- * minimal markup samples, header, identify structure (heading match regex)
+ - minimal markup samples, header, identify structure (heading match regex)
Don Quixote; War and Peace
- * header cleaning
+ - header cleaning
War and Peace
* sisu-markup-samples_7.1.1.orig.tar.xz (2015-05-21:20/4) [version follows sisu]
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_7.1.1
- * Bibliography example, Two Bits, Kelty, note the importance of
+ - Bibliography example, Two Bits, Kelty, note the importance of
the exclamation mark in naming the section 1~!bibliography or 1~!biblio
(left out for Two Bits on previous upload)
* sisu-markup-samples_7.1.0.orig.tar.xz (2015-05-15:19/5) [version follows sisu]
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_7.1.0
- * markup samples
- * Democratizing Innovation, von Hippel, minor markup fixes
- * The Public Domain, James Boyle, name non chapter sections/headings
- * Bibliography
- * provide examples using tags (sisu-7.1.0)
+ - markup samples
+ - Democratizing Innovation, von Hippel, minor markup fixes
+ - The Public Domain, James Boyle, name non chapter sections/headings
+ - Bibliography
+ - provide examples using tags (sisu-7.1.0)
(Democratizing Innovation, von Hippel; Two Bits, Kelty;
Free For All, Wayner)
- * Glossary (sisu-7.1.0)
- * provide example
+ - Glossary (sisu-7.1.0)
+ - provide example
(Free For All, Wayner)
- * config files
- * update sisurc (config)
- * update
- * remove redundant files
- * update sisu_document_make files
+ - config files
+ - update sisurc (config)
+ - update
+ - remove redundant files
+ - update sisu_document_make files
- * setup.rb s/Config/RbConfig/
+ - setup.rb s/Config/RbConfig/
- * CHANGELOG, clean up some cruft
+ - CHANGELOG, clean up some cruft
* sisu-markup-samples_5.0.2.orig.tar.xz (2014-08-07:26/2)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_5.0.2
* sisu-markup-samples_5.0.1.orig.tar.xz (2014-07-01:26/2)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_5.0.1
- * Free Culture, use quote block markers (sisu >= 5.4.3)
+ - Free Culture, use quote block markers (sisu >= 5.4.3)
data/samples/current/en/free_culture.lawrence_lessig.sst
* sisu-markup-samples_5.0.0.orig.tar.xz (2014-05-21:20/3)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_5.0.0
- * document structure errors in a couple of documents, detected by sisu 5.3.5,
+ - document structure errors in a couple of documents, detected by sisu 5.3.5,
fixed
* sisu-markup-samples release follows sisu: 4.2.5.orig.tar.xz (2013-09-22:37/7)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_4.2.5
* sisu-markup-samples_4.2.0.orig.tar.xz (2013-10-14:41/1)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_4.2.0
- * provide alternative samples to give an idea of acceptable sisu markup styles
+ - provide alternative samples to give an idea of acceptable sisu markup styles
(for the same document set)
* sisu-markup-samples_4.1.1.orig.tar.xz (2013-05-19:19/7)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_4.1.1
- * removed
+ - removed
free_as_in_freedom.richard_stallman_crusade_for_free_software.sam_williams.sst
- * the 2nd edition is available
- * be rid of concerns over its use of license GFDL-NIV-1.1
+ - the 2nd edition is available
+ - be rid of concerns over its use of license GFDL-NIV-1.1
* sisu-markup-samples_4.1.0.orig.tar.xz (2013-05-16:19/4)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_4.1.0
- * data/samples shared by sisu v4 & v5, v3 document markup branch closed
- * v3: close version 3 markup sample branch
- * v4: remove version 4 markup branch, have instead default samples branch
- * COPYRIGHT update location of files
+ - data/samples shared by sisu v4 & v5, v3 document markup branch closed
+ - v3: close version 3 markup sample branch
+ - v4: remove version 4 markup branch, have instead default samples branch
+ - COPYRIGHT update location of files
- * data/samples small fixes in text
+ - data/samples small fixes in text
* sisu-markup-samples_4.0.0.orig.tar.xz (2012-12-12:50/3)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_4.0.0
- * v4: version 4 branch
- * open branch
- * update markup samples & directory configuration
+ - v4: version 4 branch
+ - open branch
+ - update markup samples & directory configuration
- * v3: (public domian) texts added as markup samples
- * Gulliver's Travels, Jonathan Swift
- * Alice in Wonderland, Lewis Carroll
- * Through the Looking Glass, Lewis Carroll
+ - v3: (public domian) texts added as markup samples
+ - Gulliver's Travels, Jonathan Swift
+ - Alice in Wonderland, Lewis Carroll
+ - Through the Looking Glass, Lewis Carroll
- * v3: re-arranging, update, fixes
+ - v3: re-arranging, update, fixes
* sisu-markup-samples_3.0.1.orig.tar.xz (2012-04-23:17/1)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_3.0.1
- * The Public Domain - Enclosing the Commons of the Mind, James Boyle
+ - The Public Domain - Enclosing the Commons of the Mind, James Boyle
added, so far without book index, and font attributes (bold, italics)
- * Free as in Freedom (2.0) - Richard Stallman and the Free Software
+ - Free as in Freedom (2.0) - Richard Stallman and the Free Software
Revolution, Sam Williams, 2nd edition revisions Richard Stallman
- * COPYRIGHT, format changed, influenced by Machine-readable debian/copyright
+ - COPYRIGHT, format changed, influenced by Machine-readable debian/copyright
file <http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/>
* sisu-markup-samples_3.0.0.orig.tar.gz (2011-02-16:07/3)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_3.0.0
[post debian squeeze]
- * removes v1 branch, v1 markup (headers) no longer supported by sisu (v3)
+ - removes v1 branch, v1 markup (headers) no longer supported by sisu (v3)
- * v2 & v3 samples moved to common directory data/samples
+ - v2 & v3 samples moved to common directory data/samples
[Note: sisu v2 and v3 will run against the same docuements, separate v2 and
v3 directories may be introduced later if determined to be useful (e.g. v3
permits alternative directory structure using language code for markup
source]
* sisu-markup-samples_2.0.7.orig.tar.gz (2010-10-11:41/1)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.7
[debian in freeze for squeeze, the only changes are documentation related]
- * The Wealth of Networks, Yochai Benkler, missing image added/included, fix
+ - The Wealth of Networks, Yochai Benkler, missing image added/included, fix
- * Down and Out in the Magic Kingdom, Cory Doctorow markup sample added
+ - Down and Out in the Magic Kingdom, Cory Doctorow markup sample added
- * For the Win, Cory Doctorow markup sample added
+ - For the Win, Cory Doctorow markup sample added
- * COPYRIGHT and data/README updated
+ - COPYRIGHT and data/README updated
- * yml list and promo updated
+ - yml list and promo updated
- * manpage updated
+ - manpage updated
- * Other related updates to inclusion of two new markup samples, primarily
+ - Other related updates to inclusion of two new markup samples, primarily
associated linking documents
* sisu-markup-samples_2.0.6.orig.tar.gz (2010-08-24:34/2)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.6
[debian in freeze for squeeze, the only changes are documentation related]
- * Viral Spiral, David Bollier markup sample added
+ - Viral Spiral, David Bollier markup sample added
- * Book index fixes to existing markup samples
+ - Book index fixes to existing markup samples
- * Minor adjustments to markup sample headers where appropriate
+ - Minor adjustments to markup sample headers where appropriate
- * miscellaneous fixes,
- * add missing skin for v1 markup of "CONTENT", Cory Doctorow
- * "CONTENT", use preferred curly braces with emphasized text (v1 & v2)
- * "Free Culture", document structure
- * add v1 markup for "Democratizing Innovation", Eric von Hippel
- * (headers & yaml), links added/updated
+ - miscellaneous fixes,
+ - add missing skin for v1 markup of "CONTENT", Cory Doctorow
+ - "CONTENT", use preferred curly braces with emphasized text (v1 & v2)
+ - "Free Culture", document structure
+ - add v1 markup for "Democratizing Innovation", Eric von Hippel
+ - (headers & yaml), links added/updated
- * COPYRIGHT and README update on contents
+ - COPYRIGHT and README update on contents
- * Manpage update
+ - Manpage update
- * debian markup-samples headers tended to
+ - debian markup-samples headers tended to
- * debian/control
- * update contents
- * make description match sisu
- * update Standards-Version 3.9.1
- * update Maintainers
- * add Uploaders field
+ - debian/control
+ - update contents
+ - make description match sisu
+ - update Standards-Version 3.9.1
+ - update Maintainers
+ - add Uploaders field
* sisu-markup-samples_2.0.5.orig.tar.gz (2010-07-15:28/4)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.5
- * Little Brother, use image by Richard Wilkinson (image 4 cropped),
+ - Little Brother, use image by Richard Wilkinson (image 4 cropped),
(replacing previous image used based on original book cover)
- * CONTENT, remove image based on original book cover
+ - CONTENT, remove image based on original book cover
* sisu-markup-samples_2.0.4.orig.tar.gz (2010-06-27:25/7)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.4
- * adds text Democratizing Innovation, Eric von Hippel
+ - adds text Democratizing Innovation, Eric von Hippel
- * CHANGELOG, COPYRIGHT, README and links updated accordingly, plus small
+ - CHANGELOG, COPYRIGHT, README and links updated accordingly, plus small
touches
* sisu-markup-samples_2.0.3.orig.tar.gz (2010-05-06:18/4)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.3
- * CONTENT: skin and image added; *{emphasis}* set to italics (>= sisu-2.3.2);
+ - CONTENT: skin and image added; *{emphasis}* set to italics (>= sisu-2.3.2);
invisible character at start of document removed, fix
- * small touches
+ - small touches
* sisu-markup-samples_2.0.2.orig.tar.gz (2010-04-27:17/2)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.2
- * oclc, a few online computer library center numbers of texts added (see
+ - oclc, a few online computer library center numbers of texts added (see
sisu-2.3.0 changelog)
- * topic_register, minor tweaking for a few documents
+ - topic_register, minor tweaking for a few documents
* sisu-markup-samples_2.0.1.orig.tar.gz (2010-03-23:12/1)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.1
- * adds text: CONTENT - Selected Essays on Technology, Creativity, Copyright
+ - adds text: CONTENT - Selected Essays on Technology, Creativity, Copyright
and the Future of the Future, Cory Doctorow
- * minor touches
+ - minor touches
[uploaded with sisu-2.0.4]
* sisu-markup-samples_2.0.0.orig.tar.gz (2010-03-06:09/6)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_2.0.0
- * version 2 markup samples provided (document headers changed)
+ - version 2 markup samples provided (document headers changed)
version 1 markup samples retained
- * document markup samples include:
+ - document markup samples include:
Free as in Freedom - Richard Stallman's Crusade for Free Software, Sam
Williams
@@ -269,137 +253,122 @@ Reverse Chronological:
Accelerando, Charles Stross
* sisu-markup-samples_1.1.2.orig.tar.gz (2010-02-17:07/3)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.1.2
- * document sample skins, utf-8 specified (in some cases needed by ruby 1.9.1)
+ - document sample skins, utf-8 specified (in some cases needed by ruby 1.9.1)
* sisu-markup-samples_1.1.1.orig.tar.gz (2010-02-10:06/3)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.1.1
- * Free as in Freedom (on RMS), Sam Williams, markup variation, affects numbering
+ - Free as in Freedom (on RMS), Sam Williams, markup variation, affects numbering
- * minor consistency changes
+ - minor consistency changes
* sisu-markup-samples_1.1.0.orig.tar.gz (2010-02-08:06/1)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.1.0
- * package directory structure changed for sisu version 1.0.0, v1 directory
+ - package directory structure changed for sisu version 1.0.0, v1 directory
introduced to allow parallel maintenance of markup changes if any in v2
- * additional content, includes "Two Bits", Christopher Kelty and "Little
+ - additional content, includes "Two Bits", Christopher Kelty and "Little
Brother", Cory Doctorow, for list of markup samples see COPYRIGHT or
v1/README
- * updated COPYRIGHT and v1/README information, includes list of markup
+ - updated COPYRIGHT and v1/README information, includes list of markup
samples
- * sisu 1.0.0 does not support older style headers, old style markup samples
+ - sisu 1.0.0 does not support older style headers, old style markup samples
removed
- * change in some samples first heading that will affect object numbering,
+ - change in some samples first heading that will affect object numbering,
first headings, where title (and author) take from header metadata, all
placed in heading level A (previoulsy spread across level A & B) which will
affect object numbers
* sisu-markup-samples_1.0.11.orig.tar.gz (2009-07-16:28/4)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.11
- * add topics register, and use surname, other names format
+ - add topics register, and use surname, other names format
(both used by: "sisu --harvest *.sst")
- * minor adjustments to "Free Culture"
+ - minor adjustments to "Free Culture"
* sisu-markup-samples_1.0.10.orig.tar.gz (2008-10-09:40/4)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.10
- * book index sample markup for sisu-0.69 series for books "Free Culture" and "The Wealth of Networks"
+ - book index sample markup for sisu-0.69 series for books "Free Culture" and "The Wealth of Networks"
- * debian, older markup samples retained as an earlier version of sisu makes it to lenny
+ - debian, older markup samples retained as an earlier version of sisu makes it to lenny
- * debian policy Standards-Version 3.8.0
+ - debian policy Standards-Version 3.8.0
* sisu-markup-samples_1.0.9.orig.tar.gz (2007-12-09:49/7)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.9
- * debian build update, with debian maintainer upload permission
+ - debian build update, with debian maintainer upload permission
* sisu-markup-samples_1.0.8.orig.tar.gz (2007-08-19:33/7)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.8
- * minor adjustment of rights headers (C) introduced (used by sisu-0.56.3)
+ - minor adjustment of rights headers (C) introduced (used by sisu-0.56.3)
* sisu-markup-samples_1.0.7.orig.tar.gz (2007w26/7 - 2007-07-01)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.7
- * fixes to skins post sisu-0.55.0, gpl3
+ - fixes to skins post sisu-0.55.0, gpl3
* sisu-markup-samples_1.0.6.orig.tar.gz (2007w14/6 - 2007-04-07)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.6
- * declared document type, markup version identifier added
+ - declared document type, markup version identifier added
* sisu-markup-samples_1.0.5.orig.tar.gz (2007w13/6 - 2007-03-31)
- * skins updated to work with sisu-0.51.0
+ - skins updated to work with sisu-0.51.0
- * "The Cathedral and the Bazaar" by Eric S. Raymond added
+ - "The Cathedral and the Bazaar" by Eric S. Raymond added
- * "The Wealth of Networks" by Yochai Benkler, corrections from conversion
+ - "The Wealth of Networks" by Yochai Benkler, corrections from conversion
extended ascii characters still not accurately represented
- * "The Wealth of Networks" by Yochai Benkler, book index added
+ - "The Wealth of Networks" by Yochai Benkler, book index added
* sisu-markup-samples_1.0.4.orig.tar.gz (2006w48/1 - 20061127)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.4
- * "The Wealth of Networks" by Yochai Benkler, added as markup sample
+ - "The Wealth of Networks" by Yochai Benkler, added as markup sample
["visual" representation of table 3.1 of document requires >= sisu-0.48.8]
* sisu-markup-samples_1.0.3.orig.tar.gz (2006w44/2 - 20061031)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.3
- * housekeeping, minor adjustments
+ - housekeeping, minor adjustments
- * [debian ruby build ruby-1.8.5-3 (uploaded yesterday) detects and breaks on
+ - [debian ruby build ruby-1.8.5-3 (uploaded yesterday) detects and breaks on
cyclic include errors which were found at a basic level of operation,
rendering program effectively broken. New ruby build affects all previous
versions of sisu. (affects provided 'skin' samples)]
* sisu-markup-samples_1.0.2.orig.tar.gz (2006w25/6 - 20060624)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.2
- * document samples placed within sub-directory non-free to avoid clashes with
+ - document samples placed within sub-directory non-free to avoid clashes with
content in the dfsg compliant (Debian Free Software Guideline) document
samples contained in the main package as there is some duplication of
content, skins and images to make this package more or less self contained.
- * removed/moved "GPL2" and "Free as in Freedom" texts and
+ - removed/moved "GPL2" and "Free as in Freedom" texts and
associated images back into main sisu package
[FaiF is published under the GNU Free Documentation License]
- ** debian/control, added line Conflicts: sisu-examples to the existing
+ -* debian/control, added line Conflicts: sisu-examples to the existing
Replaces: sisu-examples
* sisu-markup-samples_1.0.1.orig.tar.gz (2006w21/7 - 20060528)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.1
- * minor markup fix
+ - minor markup fix
* sisu-markup-samples_1.0.0.orig.tar.gz (2006w19/6 - 20060514)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_1.0.0
- * sample markup has been separated from the main sisu package and
+ - sample markup has been separated from the main sisu package and
sisu-examples where it once resided, which are in debian main to non-free,
as they contain authored works that cannot be changed
* sisu_0.39.2.orig.tar.gz (2006w19/5 - 20060512)
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_0.39.2
- * what to do when missing required: header title; heading top;
+ - what to do when missing required: header title; heading top;
heading seg. carries risk, false positives not acceptable, testing
required, may need to scrap
- * debian policy standards version 3.7.2
+ - debian policy standards version 3.7.2
debian vim policy changes, rename sisu_vim vim_sisu
vim 7 in debian includes filetypes, syntax, and color, removed
vim-sisu includes ftplugin
@@ -407,9 +376,8 @@ Reverse Chronological:
...
* sisu_0.16.25.orig.tar.gz (2005w28/6 - 20050716) [First Debian Release]
- http://git.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=log;h=refs/tags/sisu-markup-samples_0.16.25
- * sisu-examples, Free as in Freedom ... minor touch,
+ - sisu-examples, Free as in Freedom ... minor touch,
previous markup broken, will check later
...
diff --git a/README b/README
index b83a522..9a48405 100644
--- a/README
+++ b/README
@@ -1,29 +1,42 @@
+-*- mode: org -*-
+
+git clone git://git.sisudoc.org/markup/sisu-markup-samples
+
+* what is this
+
These are samples of documents for use by SiSU prepared with SiSU markup
-markup samples in sisu-markup-samples are installed to
-/usr/share/doc/markup-samples
+
+the current markup versions are contained in the sub-directory:
+
+./data/samples/current/en/
+
+* To install sisu using nix (flake)
+
+nix flake update
+nix flake show
+nix build . --print-build-logs
+
+nix develop .#devShell --print-build-logs -c zsh
+
+* To run sisu against sisu-markup samples
Output in multiple formats can be generated running SiSU against the markup
-samples, e.g.:
+samples, e.g. you could try:
-sisu --html filename.sst
-sisu --html --epub --pdf filename.sst
+sisu -v --html ./data/samples/current/en/the_wealth_of_networks.yochai_benkler.sst
+sisu -v --html --epub ./data/samples/current/en/the_wealth_of_networks.yochai_benkler.sst
+
+sisu --html ./data/samples/current/en/*
see:
- man sisu
<http://www.sisudoc.org>
- <http://www.jus.uio.no/sisu>
-
-On Debian:
-
-(a) the lines to add for the upstream archive in /etc/apt/sources.list are:
- deb http://www.jus.uio.no/sisu/archive unstable main non-free
- deb-src http://www.jus.uio.no/sisu/archive unstable main non-free
+* On Debian
-(b) this package is placed in non-free, as the documents are released under the
+(a) this package is placed in non-free, as the documents are released under the
author or original publisher's license, and the substantive texts of the
document is to be kept un-altered, which falls outside the Debian Free Software
Guidelines
-(c) this package would be placed in /usr/share/doc/sisu-markup-samples
+(b) this package would be placed in /usr/share/doc/sisu-markup-samples
as reference material on how to markup documents
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..44748df
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,80 @@
+{
+ "nodes": {
+ "flake-utils": {
+ "locked": {
+ "lastModified": 1667395993,
+ "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils_2": {
+ "locked": {
+ "lastModified": 1667395993,
+ "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1675758091,
+ "narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs",
+ "sisu": "sisu"
+ }
+ },
+ "sisu": {
+ "inputs": {
+ "flake-utils": "flake-utils_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1675891915,
+ "narHash": "sha256-Kcdil+n80D5xCQp1TRXrNiVid7e1Ryqei/sXLLVeE9o=",
+ "ref": "refs/heads/upstream",
+ "rev": "615892da80afb671040c8be5d89430ae2fafe180",
+ "revCount": 2029,
+ "type": "git",
+ "url": "git://git.sisudoc.org/software/sisu"
+ },
+ "original": {
+ "type": "git",
+ "url": "git://git.sisudoc.org/software/sisu"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..e6ca0d1
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,189 @@
+{
+ description = "sisu parser & document generator";
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs";
+ flake-utils.url = "github:numtide/flake-utils";
+ sisu.url = "git://git.sisudoc.org/software/sisu";
+ #git clone git://git.sisudoc.org/software/sisu
+ sisu.inputs.nixpkgs.follows = "nixpkgs";
+ sisu.flake = true;
+ };
+ outputs = { self, nixpkgs, flake-utils, sisu } @inputs:
+ let
+ version = "0.7.3";
+ shell = ./shell.nix; # ./default.nix;
+ devEnv = ./.envrc; # ./shell.nix; # ./default.nix;
+ supportedSystems = [ "x86_64-linux" ]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+ forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+ nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); # nixpkgs instantiated for supported system types.
+ in {
+ packages = forAllSystems (system:
+ let pkgs = nixpkgsFor.${system};
+ in {
+ default = sisu.packages.${system}.default;
+ #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000=";
+ });
+ apps = forAllSystems (system: {
+ default = {
+ type = "app";
+ program = "${self.packages.${system}.default}/bin/sisu";
+ };
+ });
+ devShells = forAllSystems (system:
+ let
+ pkgs = nixpkgsFor.${system};
+ shellHook = ''
+ export Date=`date "+%Y%m%d"`
+ ### set local values in .envrc-local (or modify here if you must)
+ # export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu
+ # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/doc-reform-markup/sisu-markup-samples
+ # export sisu=/srv/www/sisu
+ # export sisu=/var/www/sqlite
+ # export sisu=/srv/www/sisu/sqlite
+ export sisu=$sisuPROJ/src
+ export sisu=$sisuPROJ/result/lib
+ export sisu=$sisuDOC/markup/pod
+ export sisu=$sisuOUT/$sisuVER
+ export sisu='http://localhost/sisu_search'
+ # export sisuSearchActionRemote='https://sisudoc.org/sisu_search'
+ export sisuCGIform='sisu_search'
+ export sisuSQLdb='sisusearch.db'
+ export PROG_VER_GIT="`git describe --long --tags | sed -e 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'`"
+ export PROG_VER_DECLARED="`cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`"
+ export sisuNixHelp="cat ./.env/nix-commands"
+ export sisuTest="nix shell .#default --print-build-logs --command sisu --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuHtml="sisu --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"sisu.search.db\" --cgi-sqlite-search-filename=\"sisu_search\" --sqlite-db-path=\"\$sisuDBpath\" --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuEpub="sisu --very-verbose --epub --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuLatex="sisu --very-verbose --latex --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuPdf="sisu --very-verbose --pdf --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuSqliteCreateDB="sisu --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\""
+ export sisuSqlite="sisu --very-verbose --sqlite-discrete --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*"
+ #export sisuSqlite="sisu --very-verbose --sqlite-update --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*"
+ '';
+ in with pkgs; {
+ devShell = mkShell {
+ name = "sisu dev shell default";
+ inherit shell;
+ inherit devEnv;
+ packages = [ sqlite ];
+ inherit shellHook;
+ };
+ devShell-epub = mkShell {
+ name = "sisu dev shell for epub output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ libxml2
+ html-tidy
+ xmlstarlet
+ epubcheck
+ ebook_tools
+ libxml2
+ html-tidy
+ xmlstarlet
+ epubcheck
+ ebook_tools
+ epr
+ sigil
+ calibre #(suite includes: ebook-viewer)
+ foliate
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-html = mkShell {
+ name = "sisu dev shell for latex & pdf output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-latex-pdf = mkShell {
+ name = "sisu dev shell for latex & pdf output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ source-sans-pro
+ source-serif-pro
+ source-code-pro
+ texlive.combined.scheme-full
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-sqlite = mkShell {
+ name = "sisu dev shell for latex & pdf output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-i18n = mkShell {
+ name = "sisu dev shell internationalization, po4a";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ perl534Packages.Po4a
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ });
+ };
+}
diff --git a/org/config_git.org b/org/config_git.org
new file mode 100644
index 0000000..44668c1
--- /dev/null
+++ b/org/config_git.org
@@ -0,0 +1,89 @@
+-*- mode: org -*-
+#+TITLE: configuration git
+#+DESCRIPTION: documents - structuring, various output representations & search
+#+FILETAGS: :spine:hub:
+#+AUTHOR: Ralph Amissah
+#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
+#+COPYRIGHT: Copyright (C) 2015 - 2023 Ralph Amissah
+#+LANGUAGE: en
+#+STARTUP: content hideblocks hidestars noindent entitiespretty
+#+PROPERTY: header-args :exports code
+#+PROPERTY: header-args+ :noweb yes
+#+PROPERTY: header-args+ :results no
+#+PROPERTY: header-args+ :cache no
+#+PROPERTY: header-args+ :padline no
+#+PROPERTY: header-args+ :mkdirp yes
+#+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t
+
+- [[./doc-reform.org][doc-reform.org]] [[./][org/]]
+
+* spine
+** .gitignore :gitignore:
+
+#+HEADER: :tangle "../.gitignore"
+#+BEGIN_SRC sh
+# git ls-files --others --exclude-from=.git/info/exclude
+# git check-ignore -v flake.lock
+# git clean -ix
+# find . -name "*_" | xargs rm -rf
+,*
+!nix/**
+!*.nix
+!flake.lock
+!.envrc
+!.env
+!.env/**
+!README
+!COPYRIGHT
+!CHANGELOG
+!makefile
+!version.txt
+!configuration.txt
+!conf/
+!conf/**
+!*.json
+!tangle
+!*.org
+!org/
+!org/*.org
+!*.rb
+!*.sst
+!*.ssm
+!*.ssi
+!**/*.sst
+!**/*.ssm
+!**/*.ssi
+!data
+!data/**
+,*~
+,*_
+\#*
+,*.\#*
+,*.tmp
+,*_tmp
+,*.gem
+,*.gemspec
+,*_.rb
+,*.rb_
+0???-*.patch
+,*.gz
+,*.xz
+,*_
+.*
+!.gitignore
+!.gitattributes
+!.envrc
+!.env
+!.env/**
+#+END_SRC
+
+** .gitattributes :gitattributes:
+
+#+HEADER: :tangle-NO "../.gitattributes"
+#+BEGIN_SRC sh
+/org export-ignore
+.gitattributes export-ignore
+#.gitignore export-ignore
+tangle export-ignore
+flake.lock export-ignore
+#+END_SRC
diff --git a/org/config_nix.org b/org/config_nix.org
new file mode 100644
index 0000000..6455b5a
--- /dev/null
+++ b/org/config_nix.org
@@ -0,0 +1,1494 @@
+-*- mode: org -*-
+#+TITLE: configuration nix
+#+DESCRIPTION: makefile for spine
+#+FILETAGS: :spine:build:tools:
+#+AUTHOR: Ralph Amissah
+#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
+#+COPYRIGHT: Copyright (C) 2015 - 2023 Ralph Amissah
+#+LANGUAGE: en
+#+STARTUP: content hideblocks hidestars noindent entitiespretty
+#+PROPERTY: header-args :exports code
+#+PROPERTY: header-args+ :noweb yes
+#+PROPERTY: header-args+ :results no
+#+PROPERTY: header-args+ :cache no
+#+PROPERTY: header-args+ :padline no
+#+PROPERTY: header-args+ :mkdirp yes
+#+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t
+
+* nix :nix:
+
+#+NAME: nixpkgs_local
+#+BEGIN_SRC sh
+/srv/nix/nixpkgs
+#+END_SRC
+
+** spine
+
+- default.nix
+- shell.nix
+
+*** envrc :envrc:
+**** .envrc
+
+- https://github.com/nix-community/nix-direnv
+ - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000="
+
+#+HEADER: :tangle ../.envrc
+#+BEGIN_SRC sh
+use flake .
+#use flake .#default
+NIX_ENFORCE_PURITY=1
+NixDirEnvVersion="2.2.1"
+if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then
+# - https://github.com/nix-community/nix-direnv
+# source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000="
+ source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
+fi
+watch_file flake.lock
+watch_file flake.nix
+if [ -f .envrc-local ]; then
+ source_env_if_exists .envrc-local || source .envrc-local
+fi
+PATH_add result/bin
+#nix flake update && nix flake check --show-trace && nix flake show
+#+END_SRC
+
+**** .envrc-local CHECK MODIFY
+
+- bespoke modify appropriately and generate if needed
+
+#+HEADER: :tangle ../.envrc-local_
+#+HEADER: :noweb yes
+#+BEGIN_SRC sh
+PATH_add result/bin
+export DFLAGS="-O2 -inline -boundscheck=on -color=on"
+#export sisuBIN=result/bin
+export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu
+export sisuDOC=.
+export sisuDBpath=/var/www/sqlite
+#export sisuDBpath=/srv/www/sisu/sqlite
+export sisuOUT=/srv/www/sisu
+export sisuCGIbin=/var/www/cgi/cgi-bin
+export sisuSearchActionLocal='http://localhost/sisu_search'
+export sisuSearchActionRemote='https://sisudoc.org/sisu_search'
+export sisuCGIform='sisu_search'
+export sisuSQLdb='spine.search.db'
+#+END_SRC
+
+*** flake :flake:
+**** flake
+***** flake.nix
+
+#+HEADER: :tangle ../flake.nix
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+{
+ description = "sisu parser & document generator";
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs";
+ flake-utils.url = "github:numtide/flake-utils";
+ sisu.url = "git://git.sisudoc.org/software/sisu";
+ #git clone git://git.sisudoc.org/software/sisu
+ sisu.inputs.nixpkgs.follows = "nixpkgs";
+ sisu.flake = true;
+ };
+ outputs = { self, nixpkgs, flake-utils, sisu } @inputs:
+ let
+ version = "<<sisu_version_set>>";
+ shell = ./shell.nix; # ./default.nix;
+ devEnv = ./.envrc; # ./shell.nix; # ./default.nix;
+ supportedSystems = [ "x86_64-linux" ]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+ forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+ nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); # nixpkgs instantiated for supported system types.
+ in {
+ packages = forAllSystems (system:
+ let pkgs = nixpkgsFor.${system};
+ in {
+ default = sisu.packages.${system}.default;
+ #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000=";
+ });
+ apps = forAllSystems (system: {
+ default = {
+ type = "app";
+ program = "${self.packages.${system}.default}/bin/sisu";
+ };
+ });
+ devShells = forAllSystems (system:
+ let
+ pkgs = nixpkgsFor.${system};
+ shellHook = ''
+ export Date=`date "+%Y%m%d"`
+ ### set local values in .envrc-local (or modify here if you must)
+ # export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu
+ # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/doc-reform-markup/sisu-markup-samples
+ # export sisu=/srv/www/sisu
+ # export sisu=/var/www/sqlite
+ # export sisu=/srv/www/sisu/sqlite
+ export sisu=$sisuPROJ/src
+ export sisu=$sisuPROJ/result/lib
+ export sisu=$sisuDOC/markup/pod
+ export sisu=$sisuOUT/$sisuVER
+ export sisu='http://localhost/sisu_search'
+ # export sisuSearchActionRemote='https://sisudoc.org/sisu_search'
+ export sisuCGIform='sisu_search'
+ export sisuSQLdb='sisusearch.db'
+ export PROG_VER_GIT="`git describe --long --tags | sed -e 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'`"
+ export PROG_VER_DECLARED="`cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`"
+ export sisuNixHelp="cat ./.env/nix-commands"
+ export sisuTest="nix shell .#default --print-build-logs --command sisu --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuHtml="sisu --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"sisu.search.db\" --cgi-sqlite-search-filename=\"sisu_search\" --sqlite-db-path=\"\$sisuDBpath\" --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuEpub="sisu --very-verbose --epub --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuLatex="sisu --very-verbose --latex --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuPdf="sisu --very-verbose --pdf --output=\"\$sisuOUT\" $sisuPOD/*"
+ export sisuSqliteCreateDB="sisu --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\""
+ export sisuSqlite="sisu --very-verbose --sqlite-discrete --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*"
+ #export sisuSqlite="sisu --very-verbose --sqlite-update --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*"
+ '';
+ in with pkgs; {
+ devShell = mkShell {
+ name = "sisu dev shell default";
+ inherit shell;
+ inherit devEnv;
+ packages = [ sqlite ];
+ inherit shellHook;
+ };
+ devShell-epub = mkShell {
+ name = "sisu dev shell for epub output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ libxml2
+ html-tidy
+ xmlstarlet
+ epubcheck
+ ebook_tools
+ libxml2
+ html-tidy
+ xmlstarlet
+ epubcheck
+ ebook_tools
+ epr
+ sigil
+ calibre #(suite includes: ebook-viewer)
+ foliate
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-html = mkShell {
+ name = "sisu dev shell for latex & pdf output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-latex-pdf = mkShell {
+ name = "sisu dev shell for latex & pdf output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ source-sans-pro
+ source-serif-pro
+ source-code-pro
+ texlive.combined.scheme-full
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-sqlite = mkShell {
+ name = "sisu dev shell for latex & pdf output";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ zip
+ unzip
+ xz
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ devShell-i18n = mkShell {
+ name = "sisu dev shell internationalization, po4a";
+ inherit shell;
+ inherit devEnv;
+ packages = [
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ perl534Packages.Po4a
+ nixFlakes
+ validatePkgConfig
+ jq
+ git
+ ];
+ inherit shellHook;
+ };
+ });
+ };
+}
+#+END_SRC
+
+*** flake :flake:
+**** notes?
+
+- flake.nix
+ /srv/nix/nixpkgs
+ ./shell.nix
+ - shell.nix
+ ./pkgs/shell-pkgs.nix
+ - pkgs/shell-pkgs.nix
+ - default.nix
+ ./nix/dub.selections.nix #
+ - dub.selections.nix
+
+- nix develop
+
+- nix flake update
+
+- nix shell -f default.nix --print-build-logs
+- nix shell -c default.nix
+
+- nix build `nix-instantiate`
+- nix build -f default.nix --print-build-logs
+- nix shell -f default.nix --print-build-logs
+- nix develop --build -f derivation.nix -I .envrc --print-build-logs
+- nix develop --profile .#default --print-build-logs --command spine -v
+
+- nix search --json 2>/dev/null |jq
+- nix flake show
+- nix show-derivation
+
+# nix-instantiate | nix-build
+
+#nix flake update
+#nix flake check
+#nix flake show
+#nix develop
+#nix build .#default --print-build-logs
+
+#+BEGIN_SRC nix
+src = fetchTarball {
+ url = "file:///[path]/$(pname)-$(version).tar.gz";
+ sha256 = "sha256:0000000000000000000000000000000000000000000000000000";
+};
+#+END_SRC
+
+**** flake parts
+***** flake metadata
+
+#+NAME: flake_metadata
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+pname = "spine";
+version = "<<sisu_version_set>>";
+description = "a sisu like parser and document generator";
+#+END_SRC
+
+***** flake inputs
+****** flake inputs static
+
+#+NAME: flake_inputs_nix
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+nixpkgs.url = "github:nixos/nixpkgs";
+flake-utils.url = "github:numtide/flake-utils";
+#+END_SRC
+
+****** flake inputs for dub2nix
+
+#+NAME: flake_inputs_dub2nix
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+flake-utils.url = "github:numtide/flake-utils";
+nixpkgs.url = "github:nixos/nixpkgs";
+d2sqlite3-src = { url = "github:dlang-community/d2sqlite3"; flake = false; };
+tinyendian-src = { url = "github:kiith-sa/tinyendian"; flake = false; };
+dyaml-src = { url = "github:dlang-community/D-YAML"; flake = false; };
+imageformats-src = { url = "github:lgvz/imageformats"; flake = false; };
+dub2nix-src = { url = "github:lionello/dub2nix"; flake = false; };
+#+END_SRC
+
+***** flake outputs
+****** flake outputs static
+
+#+NAME: flake_outputs
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+self, nixpkgs, flake-utils
+#+END_SRC
+
+****** flake outputs for dub2nix
+
+#+NAME: flake_outputs_dub2nix
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+self, nixpkgs, flake-utils, dub2nix-src, d2sqlite3-src, tinyendian-src, dyaml-src, imageformats-src
+#+END_SRC
+
+***** flake devshells
+
+#+NAME: flake_devshells
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+devShells = forAllSystems (system:
+ let pkgs = nixpkgsFor.${system};
+ in {
+ default = pkgs.mkShell {
+ buildInputs = with pkgs; [ git dub dmd ldc sqlite ];
+ };
+});
+#+END_SRC
+
+***** flake phases
+
+#+NAME: flake_phases
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+buildPhase = ''
+ runHook preBuild
+ HOME="$PWD"
+ for DC_ in dmd ldmd2 ldc2 gdc gdmd; do
+ echo "- check for D compiler $DC_"
+ DC=$(type -P $DC_ || echo "")
+ if [ ! "$DC" == "" ]; then break; fi
+ done
+ if [ "$DC" == "" ]; then exit "Error: could not find D compiler"; fi
+ echo "$DC_ used as D compiler to build $pname"
+ dub build --compiler=$DC --build=$DC_ --combined --skip-registry=all
+ runHook postBuild
+'';
+<<flake_phases_other_than_buildPhase>>
+#+END_SRC
+
+#+NAME: flake_phases_other_than_buildPhase
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+checkPhase = ''
+ runHook preCheck
+ dub test --combined --skip-registry=all
+ runHook postCheck
+'';
+installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ install -m755 ./bin/spine $out/bin/spine
+ runHook postInstall
+'';
+postInstall = ''
+ echo `ls -la $out/bin/spine`
+ echo "
+ nix build or nix develop? (suggestions):
+ - nix build
+ nix build .#default --print-build-logs
+ nix flake update; nix build .#default --print-build-logs
+ nix build --print-build-logs
+ - nix run
+ nix run .#default --print-build-logs
+ nix run default.nix --print-build-logs
+ - nix shell
+ nix shell .#default --print-build-logs --command spine -v
+ - nix develop
+ nix develop --profile .#default --print-build-logs --command spine -v
+ nix develop ; eval \"$buildPhase\"
+ nix develop --build -f derivation.nix -I .envrc --print-build-logs
+ - nix profile install . --print-build-logs
+ spine -v
+ nix-instantiate | nix show-derivation | jq
+ "
+ $out/bin/spine -v
+'';
+#+END_SRC
+
+***** d-compiler (dmd ldc gdc)
+
+- dmd ldc gdc
+
+#+NAME: d-compiler
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+dmd
+#+END_SRC
+
+***** flake spine dub2nix
+
+#+NAME: flake_output_spine_dub2nix
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+packages.x86_64-linux.spine =
+ let
+ pkgs = import nixpkgs {
+ system = "x86_64-linux";
+ };
+ #targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}";
+ in
+ pkgs.stdenv.mkDerivation {
+ pname = "spine";
+ version = "<<sisu_version_set>>";
+ description = "a sisu like parser and document generator";
+ inherit self;
+ src = self;
+ shell = ./shell.nix;
+ <<flake_phases>>
+ buildInputs = [ sqlite ];
+ nativeBuildInputs = with pkgs; [ dub ldc ];
+ };
+#+END_SRC
+
+***** flake misc
+
+#+BEGIN_SRC nix
+src = fetchTarball {
+ url = "file:///[path]/$(pname)-$(version).tar.gz";
+ sha256 = "sha256:0000000000000000000000000000000000000000000000000000";
+};
+#+END_SRC
+
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+{
+ description = "a sisu like parser & document generator";
+ inputs = {
+ flake-utils.url = "github:numtide/flake-utils";
+ nixpkgs.url = "<<nixpkgs_url>>";
+ };
+ outputs = { self, nixpkgs, flake-utils }:
+ let
+ pkgs = nixpkgs.legacyPackages.x86_64-linux;
+ in {
+ packages.x86_64-linux.spine = pkgs.stdenv.mkDerivation {
+ name = "spine";
+ inherit self;
+ src = self;
+ shell = ./shell.nix;
+ installPhase = ''
+ install -m755 spine $out/bin/spine
+ '';
+ };
+ defaultPackage.x86_64-linux = self.packages.x86_64-linux.spine;
+ };
+}
+#+END_SRC
+
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+{
+ description = "a sisu like document parser";
+ inputs = {
+ flake-utils.url = "github:numtide/flake-utils";
+ nixpkgs.url = "<<nixpkgs_url>>";
+ d2sqlite3 = {
+ url = "github:dlang-community/d2sqlite3";
+ flake = false;
+ };
+ tinyendian = {
+ url = "github:kiith-sa/tinyendian";
+ flake = false;
+ };
+ dyaml = {
+ url = "github:dlang-community/D-YAML";
+ flake = false;
+ };
+ imageformats = {
+ url = "github:lgvz/imageformats";
+ flake = false;
+ };
+ };
+ outputs = { self, d2sqlite3, tinyendian, dyaml, imageformats, nixpkgs, flake-utils }:
+ let
+ pkgs = nixpkgs.legacyPackages.x86_64-linux;
+ in {
+ packages.x86_64-linux.spine = pkgs.stdenv.mkDerivation {
+ name = "spine";
+ inherit self;
+ src = self;
+ shell = ./shell.nix;
+ installPhase = ''
+ install -m755 spine $out/bin/spine
+ '';
+ };
+ defaultPackage.x86_64-linux = self.packages.x86_64-linux.spine;
+ };
+}
+#+END_SRC
+
+*** shell.nix :shell:
+**** tangle
+
+#+HEADER: :tangle ../shell.nix
+#+HEADER: :tangle-mode (identity #o755)
+#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --pure\n#!nix-shell -i bash"
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+{ pkgs ? import <nixpkgs> {} }:
+let
+in pkgs.mkShell {
+ buildInputs = with pkgs; [
+ nix
+ bundler
+ bundix
+ #ruby
+ #rubyPackages.rake
+ #rubyPackages.sqlite3
+ #rubyPackages.thor
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ unzip
+ xz
+ zip
+ #texlive-combined-full
+ ];
+}
+#+END_SRC
+
+**** Notes
+
+#+BEGIN_SRC text
+#% Notes
+
+# - shell.nix -I .envrc
+# - shell.nix -I .envrc --pure
+
+# [ nix-shell ]
+
+ # - nix-shell -I nixpkgs=/srv/nix/nixpkgs --pure
+ # - nix-shell -p "with import /srv/nix/nixpkgs {}; ldc" --pure
+ # - nix-shell -p "with import /srv/nix/nixpkgs {}; [dub ldc]" --pure
+
+ # - nix-shell -p nixVersions.unstable #nixFlakes
+ # - nix-shell -p nixFlakes --pure
+ # - nix-shell -p nixFlakes --pure -p "with import /srv/nix/nixpkgs {}; [nix dub ldc git ps]"
+ # - nix-shell shell.nix direnv: export +IN_NIX_SHELL
+ # - nix-shell shell.nix
+
+# [ nix-build ]
+
+ # - nix-build -I nixpkgs=/srv/nix/nixpkgs # --pure
+ # - nix-build -I .envrc --pure
+ # - nix-build default.nix -I .envrc && result/bin/spine -v
+
+# [ nix-instantiate ]
+
+ # - nix-instantiate | nix show-derivation | jq
+ # - nix-instantiate -I .envrc | nix show-derivation -f derivation.nix -I .envrc | jq
+ # - nix-instantiate | nix show-derivation --recursive | jq
+ # - nix-instantiate -I .envrc | nix show-derivation -f derivation.nix --recursive -I .envrc | jq
+ # - nix-instantiate | nix-build
+ # - nix-instantiate -I .envrc | nix-build -I .envrc
+
+# [ nix shell ]
+
+ # - nix shell -c default.nix
+ # - nix shell -f default.nix --print-build-logs
+
+# [ nix build ]
+
+ # - nix build -I .envrc --print-build-logs
+ # - nix build -f default.nix --print-build-logs
+ # - nix build -f derivation.nix --print-build-logs
+
+ # - nix build `nix-instantiate`
+ # - nix build `nix-instantiate -I .envrc`
+
+ # - nix build -f default.nix && ./result/bin/spine -v && noti -t "spine build" -m "see ./result/bin/spine"
+ # - nix build .#default
+
+# [ nix run ]
+
+ # - nix run default.nix --print-build-logs
+ # - nix run -I .envrc default.nix --print-build-logs
+ # - nix run .#default
+
+# - nix-shell -I .envrc --pure
+# - nix develop --build -f derivation.nix -I .envrc --print-build-logs
+
+# - nix-shell -p nixFlakes --pure -p "with import /srv/nix/nixpkgs {}; [nix dub ldc git ps]"
+# - nix-build
+# - nix build `nix-instantiate -I .envrc`
+
+# - nix develop --build -f default.nix -I .envrc
+
+# - nix-shell -I .envrc --pure
+# - nix-build default.nix -I .envrc && result/bin/spine -v
+
+# - nix shell -f default.nix --print-build-logs
+# - nix-instantiate -I .envrc | nix-build -I .envrc
+#+END_SRC
+
+#+BEGIN_SRC text
+#% Notes
+- nix-shell
+
+- shell.nix --pure
+- shell.nix --pure -I .envrc
+
+- nix-shell --pure -I nixpkgs=<<nixpkgs_local>>
+- nix-shell --pure -p "with import <<nixpkgs_local>> {}; ldc"
+- nix-shell --pure -p "with import /srv/nix/nixpkgs {}; [dub ldc]"
+
+- shell.nix direnv: export +IN_NIX_SHELL
+
+- nix-shell -p nixFlakes
+- nix-shell -p nixFlakes --pure
+- nix-shell -p nixFlakes --pure -p "with import /srv/nix/nixpkgs {}; [dub ldc]"
+
+- shell.nix -I .envrc
+- nix-shell -I nixpkgs=<provide local nix path>
+- nix-shell -I nixpkgs=<provide local nix path> --pure
+- shell.nix
+- nix-shell shell.nix --pure
+
+- nix shell -c default.nix
+
+- nix run default.nix --print-build-logs
+- nix run -I .envrc default.nix --print-build-logs
+
+- nix develop
+
+- nix-build -I nixpkgs=<provide local nix path>
+- nix-build -I .envrc
+
+- nix build -f default.nix --print-build-logs
+- nix build -f derivation.nix --print-build-logs
+- nix build -I .envrc --print-build-logs
+- nix shell -f default.nix --print-build-logs
+- nix develop --build -f derivation.nix -I .envrc --print-build-logs
+
+- buildPhase
+
+- nix build -f default.nix && noti
+- nix build -f default.nix && ./result/bin/spine -v && noti -t "spine build" -m "see ./result/bin/spine"
+- nix develop --build -f derivation.nix -I .envrc --print-build-logs
+
+ ./result/bin/spine
+#+END_SRC
+
+**** shell parts (packages)
+***** packages nix related
+
+#+NAME: shell_packages_nix_related
+#+BEGIN_SRC nix
+### nix_related
+direnv
+nixVersions.unstable #nixFlakes
+nix-prefetch-git
+validatePkgConfig
+jq
+git
+ps
+#+END_SRC
+
+***** packages d build related
+
+#+NAME: shell_packages_d_build_related
+#+BEGIN_SRC nix
+### d_build_related
+## package manager
+dub
+## compiler
+ldc
+rund
+## linker
+#lld
+#mold
+## builder
+#ninja
+#meson
+#+END_SRC
+
+***** packages tools
+
+#+NAME: shell_packages_tool_download
+#+BEGIN_SRC nix
+### tools
+#curl
+#wget
+aria
+#+END_SRC
+
+***** packages candy
+
+#+NAME: shell_packages_candy
+#+BEGIN_SRC nix
+### candy
+starship
+#+END_SRC
+
+***** packages search sqlite related
+
+#+NAME: shell_packages_search_related_sqlite
+#+BEGIN_SRC nix
+### sqlite search related
+sqlite
+#+END_SRC
+
+***** packages pdf latex related
+
+#+NAME: shell_packages_pdf_latex_related
+#+BEGIN_SRC nix
+### pdf_latex_related
+source-sans-pro
+source-serif-pro
+source-code-pro
+texlive.combined.scheme-full
+#+END_SRC
+
+***** packages xml epub related
+
+#+NAME: shell_packages_xml_and_epub_related
+#+BEGIN_SRC nix
+### xml_and_epub_related
+libxml2
+html-tidy
+xmlstarlet
+epubcheck
+ebook_tools
+epr
+sigil
+calibre #(suite includes: ebook-viewer)
+foliate
+#+END_SRC
+
+***** packages i18n_translation related
+
+#+NAME: shell_packages_i18n_translation
+#+BEGIN_SRC nix
+### i18n translation related
+perl534Packages.Po4a
+#+END_SRC
+
+*** default.nix :default:
+
+- default.nix -I nixpkgs=<provide local nix path>
+ e.g. default.nix -I nixpkgs=/srv/nix/nixpkgs
+
+- nix-build -I nixpkgs=<provide local nix path>
+ e.g. nix-build -I nixpkgs=<<nixpkgs_local>>
+
+#+HEADER: :noweb yes
+#+BEGIN_SRC sh
+nix-build -I nixpkgs=<<nixpkgs_local>>
+nix-build -I .envrc-local
+nix-build -I .envrc
+default.nix -I .envrc
+default.nix
+
+nix build -f default.nix --print-build-logs
+nix build -f derivation.nix --print-build-logs
+nix shell -f default.nix --print-build-logs
+nix develop --build -f derivation.nix -I .envrc --print-build-logs
+
+# nix build -f project.nix
+# nix build -f spine.nix
+#+END_SRC
+
+
+*** project meta
+
+#+NAME: nix_project_meta
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+meta = with pkgs.lib; {
+ pname = "spine";
+ version = "<<sisu_version_set>>";
+ description = "a sisu like document parser";
+ longDescription = ''
+ A sisu like parser and document generator
+ '';
+ homepage = "https://sisudoc.org";
+ license = licenses.agpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ "RalphAmissah" ];
+};
+#+END_SRC
+
+*** dub.selections.json
+
+#+HEADER: :NO-tangle ../dub.selections.json
+#+BEGIN_SRC nix
+{
+ "fileVersion": 1,
+ "versions": {
+ "d2sqlite3": "0.19.1",
+ "dyaml": "0.8.3",
+ "imageformats": "7.0.2",
+ "tinyendian": "0.2.0"
+ }
+}
+#+END_SRC
+
+*** dub.selections.nix
+
+#+HEADER: :NO-tangle ../nix/dub.selections.nix
+#+BEGIN_SRC nix
+# This file was generated by https://github.com/lionello/dub2nix v0.2.3
+[ {
+ fetch = {
+ type = "git";
+ url = "https://github.com/dlang-community/d2sqlite3.git";
+ rev = "v0.19.1";
+ sha256 = "0rnsgla6xyr8r34knf7v6dwhacra96q1b5rhxcz9246inwhvrk5k";
+ fetchSubmodules = false;
+ date = "2020-07-21T12:32:51+02:00";
+ deepClone = false;
+ leaveDotGit = false;
+ path = "/nix/store/hsi8xvl15w6fwlqvs042m1z5i88yc72i-d2sqlite3";
+ };
+} {
+ fetch = {
+ type = "git";
+ url = "https://github.com/kiith-sa/tinyendian.git";
+ rev = "v0.2.0";
+ sha256 = "086gf5aga52wr5rj2paq54daj8lafn980x77b706vvvqaz2mlis8";
+ fetchSubmodules = false;
+ date = "2018-06-10T11:04:28+02:00";
+ deepClone = false;
+ leaveDotGit = false;
+ path = "/nix/store/9c7fsmi5am84j6dq2mp3va306x3ay291-tinyendian";
+ };
+} {
+ fetch = {
+ type = "git";
+ url = "https://github.com/kiith-sa/D-YAML.git";
+ rev = "v0.8.3";
+ sha256 = "13wy304xjbwkpgg7ilql1lkxkm83s87jm59ffnrg26slp7cx149q";
+ fetchSubmodules = false;
+ date = "2020-09-19T23:46:57+02:00";
+ deepClone = false;
+ leaveDotGit = false;
+ path = "/nix/store/3i8i56lkmw2xq3lxr5h66v909waq2mqg-D-YAML";
+ };
+} {
+ fetch = {
+ type = "git";
+ url = "https://github.com/lgvz/imageformats.git";
+ rev = "v7.0.2";
+ sha256 = "1mfbsmi4fs1xny4zqs6jyr04d5f4h03r9f6jadvkdqj5kd1k0ws7";
+ fetchSubmodules = false;
+ date = "2019-10-10T07:54:45+03:00";
+ deepClone = false;
+ leaveDotGit = false;
+ path = "/nix/store/wn554pn21nzmpvw2hs7hvv9v9y0sgarg-imageformats";
+ };
+} ]
+#+END_SRC
+
+*** dub2nix & shared pkgs SHARED
+**** dub2nix with pkgs shared
+
+#+NAME: nix_with_pkgs
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+with pkgs; [
+ <<nix_shell_with_pkgs_list>>
+]
+#+END_SRC
+
+**** with pkgs list
+
+#+NAME: nix_shell_with_pkgs_list
+#+BEGIN_SRC nix
+nixVersions.unstable #nixFlakes
+rund
+dub
+ldc
+sqlite
+nix-prefetch-git
+validatePkgConfig
+jq
+git
+#+END_SRC
+
+** variables
+*** spine version SET VERSION :version:set:project:
+
+#+NAME: sisu_version_set
+#+BEGIN_SRC sh
+0.7.3
+#+END_SRC
+
+*** set names SET
+
+#+NAME: spine_search_db
+#+BEGIN_SRC sh
+spine.search.db
+#+END_SRC
+
+#+NAME: spine_search_cgi
+#+BEGIN_SRC sh
+spine_search
+#+END_SRC
+
+*** nixpkgs_path SETUP
+**** nixpkgs select path SELECT
+
+#+NAME: nixpkgs_path
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+<<nixpkgs_path_local>>
+#+END_SRC
+
+**** nixpkgs path options
+
+- <nixpkgs>
+
+#+NAME: nixpkgs_path_default
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+<nixpkgs>
+#+END_SRC
+
+#+NAME: nix_path_directory
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+nixpkgs=<<nixpkgs_path_local>>
+#+END_SRC
+
+#+NAME: project_path_local_project
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+~/grotto/repo/git.repo/projects/project-spine/doc-reform
+#+END_SRC
+
+#+NAME: project_path_local_src
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+<<project_path_local_project>>/src
+#+END_SRC
+
+#+NAME: project_path_local_bin
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+<<project_path_local_project>>/result/bin
+#+END_SRC
+
+#+NAME: project_path_cgi_bin
+#+BEGIN_SRC nix
+/var/www/cgi/cgi-bin
+#+END_SRC
+
+#+NAME: project_path_local_doc
+#+BEGIN_SRC nix
+~/grotto/repo/git.repo/projects/project-spine/doc-reform-markup/spine-markup-samples
+#+END_SRC
+
+#+NAME: project_path_local_out
+#+BEGIN_SRC nix
+/srv/www/spine/$SpineVER
+#+END_SRC
+
+#+NAME: project_path_local_out_
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+/tmp/spine/$SpineVER/www
+#+END_SRC
+
+#+NAME: project_path_local_out_static
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+/srv/www/spine
+#+END_SRC
+
+#+NAME: project_path_local_out_static_
+#+BEGIN_SRC nix
+/var/www
+#+END_SRC
+
+#+NAME: project_path_sqlite
+#+BEGIN_SRC nix
+/var/www/sqlite
+#+END_SRC
+
+#+NAME: nixpkgs_url
+#+BEGIN_SRC nix
+github:nixos/nixpkgs
+#+END_SRC
+
+#+HEADER: :noweb yes
+#+BEGIN_SRC nix
+<<nixpkgs_path_local>>
+#+END_SRC
+
+- local path SET WARN
+
+#+NAME: nixpkgs_path_local
+#+BEGIN_SRC nix
+/srv/nix/nixpkgs
+#+END_SRC
+
+**** project path options
+
+- local path SET WARN
+
+#+NAME: nix_path_channel
+#+BEGIN_SRC nix
+/nix/var/nix/profiles/per-user/root/channels/nixos
+#+END_SRC
+
+** texlive xetex xelatex shell.nix
+*** shell.nix :shell:
+
+#+BEGIN_SRC nix
+#!/usr/bin/env -S nix-shell --pure
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+ buildInputs = with pkgs; [
+ nixVersions.unstable #nixFlakes
+ nix-prefetch-git
+ validatePkgConfig
+ jq
+ git
+ fontconfig
+ source-sans-pro
+ source-serif-pro
+ source-code-pro
+ #(texlive.combine {
+ # inherit (texlive) scheme-tetex xetex fontspec footmisc multirow titlesec listings anysize float graphics helvetic times courier;
+ #})
+ texlive.combined.scheme-full
+ dejavu_fonts dejavu_fontsEnv
+ liberation_ttf
+ evince
+ zathura
+ apvlv
+ ];
+ #FONTCONFIG_FILE = makeFontsConf { fontDirectories = [
+ # liberation_ttf
+ #];
+ shellHook = ''
+ if [[ -f ".envrc" ]]; then
+ source .envrc
+ fi
+ #for texfile in *.tex; do xelatex -interaction=nonstopmode $texfile; done
+ #for texfile in *.tex; do xelatex -interaction=batchmode $texfile; done
+ '';
+}
+#+END_SRC
+
+*** notes
+
+#+BEGIN_SRC sh
+nix-shell --run 'which xetex'
+echo 'for texfile in *.tex; do echo "* --> " ~ $texfile && xelatex -interaction=batchmode $texfile; rm *.aux *.log *.toc *.out; done'
+
+$SpineBIN/spine --latex --serial --output="$SpineOUT" $SpinePOD/* && for texfile in $SpineOUT/latex/*.tex; do xelatex -interaction=nonstopmode $texfile; done 2>&1 | tee _err.xelatex_.org; ls $SpineOUT/latex/*.{tex,pdf}
+
+/run/current-system/sw/share/X11/fonts/
+
+kpsewhich pdftexconfig.tex
+/nix/store/2r4qa8rbll085nmpx56jg1rbmbir1zkp-texlive-combined-2021/share/texmf/tex/generic/tex-ini-files/pdftexconfig.tex
+/nix/store/2r4qa8rbll085nmpx56jg1rbmbir1zkp-texlive-combined-2021/share/texmf/fonts/opentype/public/
+
+find: texclive-fonts.conf
+fc-cache && mkfontscale && mkfontdir
+
+fc-match LiberationSans
+
+cd /nix/var/nix/profiles/system/sw/share/X11/fonts
+fc-query LiberationSans-Regular.ttf | grep '^\s\+family:' | cut -d'"' -f2
+Liberation Sans
+fc-query LiberationMono-Regular.ttf | grep '^\s\+family:' | cut -d'"' -f2
+Liberation Mono
+
+fc-query DejaVuSans.ttf | grep '^\s\+family:' | cut -d'"' -f2
+
+$XDG_DATA_HOME/fonts
+~/.local/share/fonts
+#+END_SRC
+
+** NOTES
+*** nix-shell
+
+- default.nix
+
+#+BEGIN_SRC sh
+nix-shell
+nix-build
+#+END_SRC
+
+- project.nix
+
+#+BEGIN_SRC sh
+nix-shell
+nix-build project.nix
+#+END_SRC
+
+*** nix-shell --pure
+
+- default.nix
+
+#+HEADER: :noweb yes
+#+BEGIN_SRC sh
+nix-shell --pure
+nix-build -I nixpkgs=<<nixpkgs_local>>
+nix-build -I .envrc
+#+END_SRC
+
+#+BEGIN_SRC sh
+nix build -f default.nix --print-build-logs
+nix build -f derivation.nix --print-build-logs
+nix shell -f default.nix --print-build-logs
+# nix build -f project.nix
+# nix build -f spine.nix
+nix develop --build -f derivation.nix -I .envrc --print-build-logs
+nix develop --profile .#default --print-build-logs --command spine -v
+#+END_SRC
+
+*** derivation .drv
+
+#+BEGIN_SRC sh
+nix show-derivation /nix/store/q7n14bm8j5vzm62qaraczdb4bpyf59vv-spine-0.11.1.drv
+#+END_SRC
+
+**** .env/echo-nixNote CHECK MODIFY
+
+#+HEADER: :tangle ../.env/nix-commands
+#+BEGIN_SRC text
+- nix flake update && nix flake check --show-trace && nix flake show && nix develop .#devShell
+
+- nix build .#default --print-build-logs
+- nix build .#spine-dmd --print-build-logs
+- nix build .#spine-ldc --print-build-logs
+- nix build .#spine-gdc --print-build-logs
+
+- nix develop
+ - nix develop .#devShell --print-build-logs
+ - nix develop .#devShell-html --print-build-logs
+ - nix develop .#devShell-epub --print-build-logs
+ - nix develop .#devShell-latex-pdf --print-build-logs
+ - nix develop .#devShell-sqlite --print-build-logs
+ - nix develop .#devShell-i18n --print-build-logs
+
+nix run .#default --print-build-logs
+
+nix develop --build .#default --print-build-logs
+
+nix-shell '<nixpkgs>' -A nix --pure
+#+END_SRC
+
+#+HEADER: :tangle ../.env/echo-nixNote
+#+BEGIN_SRC sh
+echo '-*- mode: org -*-
+
+,* nixpkgs path?
+
+ # eval "$(nix print-dev-env)"
+' > nixNote_.org
+
+echo " <nixpkgs> == `nix-instantiate --find-file nixpkgs`" >> nixNote_.org
+
+echo '
+,* nix build and show derivation
+
+,#+BEGIN_SRC sh
+nix-shell --pure
+
+nix-build
+nix build -f default.nix --print-build-logs
+nix shell -f default.nix --print-build-logs
+nix develop --build -f derivation.nix -I .envrc --print-build-logs
+
+nix-instantiate | nix-build
+
+nix-instantiate -I .envrc | nix-build -I .envrc
+nix build `nix-instantiate`
+nix build `nix-instantiate -I .envrc`
+
+nix develop
+
+nix-instantiate | nix show-derivation | jq
+nix-instantiate -I .envrc | nix show-derivation -f derivation.nix -I .envrc | jq
+
+nix-instantiate | nix show-derivation --recursive | jq
+nix-instantiate -I .envrc | nix show-derivation -f derivation.nix --recursive -I .envrc | jq
+
+nix search --json 2>/dev/null |jq
+,#+END_SRC
+
+,* version and build info
+
+,#+BEGIN_SRC sh' >> nixNote_.org
+
+echo 'spine version (git) == $SpineVER' >> nixNote_.org
+echo "spine version (git) == $SpineVER" >> nixNote_.org
+echo 'nix-instantiate == `nix-instantiate`' >> nixNote_.org
+echo "nix-instantiate == `nix-instantiate`" >> nixNote_.org
+
+echo "#+END_SRC
+
+,* initialised shell variables
+
+,#+BEGIN_SRC sh
+SpineSRC=$SpineSRC
+SpineDOC=$SpineDOC
+SpinePOD=$SpinePOD
+SpineOUTversioned=$SpineOUTversioned
+SpineOUT=$SpineOUT
+,#+END_SRC
+" >> nixNote_.org
+
+echo '* spine run instruction examples
+,** parallelized tasks
+,*** doc source
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --pod --source --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** html & epub output
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --html --epub --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** sqlite db for each document - populate each db
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** doc source; html, epub; sqlite outputs
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --pod --html --epub --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** curate (authors topics)
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --curate --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** html, curate
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --dark --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/*
+$SpineBIN/spine --very-verbose --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** composite command: source pod, html, epub, curate, sqlite
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,** sequential tasks
+,*** sqlite db (shared) - create db
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUTversioned"
+,#+END_SRC
+
+,*** sqlite db (shared) - populate db
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-update --output="$SpineOUTversioned" $SpineDOC/spine-markup-samples/markup/pod/*
+,#+END_SRC
+
+,*** sqlite db (shared) - drop db
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-drop --output="$SpineOUTversioned"
+,#+END_SRC
+
+,*** sqlite db (shared) - create & populate db (single step)
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-create --sqlite-update --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,*** composite command: source pod, html, epub, curate, sqlite
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --verbose --no-parallel --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/*
+,#+END_SRC
+
+,** config [./pod/].dr/config_local_site
+
+,#+BEGIN_SRC sh
+cat $SpinePOD/.dr/config_local_site
+$SpineBIN/spine --show-config $SpinePOD
+$SpineBIN/spine --show-config --output="$SpineOUTversioned" $SpinePOD
+,#+END_SRC
+
+,** cgi operations (output to $SpineOUT /var/www)
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUT" $SpinePOD/*
+
+$SpineBIN/spine -v --cgi-search-form-codegen --output=$SpineOUT $SpinePOD/*
+
+$SpineBIN/spine -v --show-config --config=$SpinePOD/.dr
+
+$SpineBIN/spine --html $SpinePOD/*
+
+
+$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
+,#+END_SRC
+
+,*** generate html linked to search form
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --output=$SpineOUT $SpinePOD/*
+,#+END_SRC
+
+,*** create or re-create sql db (--sqlite-db-create or --sqlite-db-recreate)
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine -v --sqlite-db-create --sqlite-db-filename="<<spine_search_db>>" --sqlite-db-path="$SpineDBpath"
+$SpineBIN/spine -v --sqlite-db-recreate --sqlite-db-filename="<<spine_search_db>>" --sqlite-db-path="$SpineDBpath"
+,#+END_SRC
+
+,*** populate sqlite db
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine -v --sqlite-update --sqlite-db-filename="<<spine_search_db>>" --output=$SpineOUT $SpinePOD/*
+,#+END_SRC
+
+,*** generate html (linked to search form), sql output, curate COMPOSITE
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="<<spine_search_db>>" --cgi-sqlite-search-filename="<<spine_search_cgi>>" --sqlite-db-path="$SpineDBpath" --output="$SpineOUT" $SpinePOD/*
+$SpineBIN/spine --epub --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="spine.search.db" --cgi-sqlite-search-filename="spine_search" --cgi-url-action="https://sisudoc.org/spine_search" --ouput="$SpineOUT" $SpinePOD/*
+,#+END_SRC
+
+,*** generate html (linked to search form), sql output, curate COMPOSITE with resource configuration
+
+if names and paths are configured in resource configuration file, e.g. $SpinePOD/.rc/config_local_site
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update $SpinePOD/*
+,#+END_SRC
+
+,#+BEGIN_SRC yaml
+# sample resource configuration file ( $SpinePOD/.rc/config_local_site )
+output:
+ path: "/srv/www/spine"
+default:
+ language: "en"
+ papersize: "a4"
+ text_wrap: "80"
+ digest: "sha256"
+webserv:
+ http: "http"
+ domain: "localhost"
+ data_http: "http"
+ data_domain: "localhost"
+ data_root_url: "https://sisudoc.org"
+ data_root_path: "/srv/www/spine"
+ images_root_part: "image"
+ cgi_search_form_title: "≅ SiSU Spine search"
+ cgi_http: "https"
+ cgi_domain: "sisudoc.org"
+ cgi_bin_url: "http://sisudoc.org/cgi-bin"
+ cgi_bin_part: "cgi-bin"
+ cgi_bin_path: "/var/www/cgi/cgi-bin"
+ cgi_search_script: "<<spine_search_cgi>>"
+ cgi_action: "https://sisudoc.org/spine_search"
+ db_sqlite_filename: "<<spine_search_db>>"
+ db_sqlite_path: "/var/www/sqlite"
+,#+END_SRC
+
+,*** make search form
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
+,#+END_SRC
+
+,*** latex
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --latex --serial --output="$SpineOUT" $SpinePOD/*
+ls $SpineOutstatic/latex/*.tex
+,#+END_SRC
+' >> nixNote_.org
+
+#cat nixNote_.org
+
+#echo "emacs nixNote_.org"
+#echo "cat nixNote_.org"
+#+END_SRC
+
+*** makefile
+
+#+HEADER: :tangle-NO ../makefile_
+#+BEGIN_SRC make
+buildPhase:
+ HOME=$${PWD}; \
+ for DC_ in dmd ldmd2 gdmd; do \
+ echo "- check for D compiler $${DC_}"; \
+ DC=$$(type -P $${DC_} || echo ""); \
+ if [ ! "$${DC}" == "" ]; then \
+ break; \
+ fi; \
+ done; \
+ echo "D compiler = $${DC}"; \
+ if [ "$${DC}" == "" ]; then \
+ echo "Error: could not find D compiler"; \
+ exit 1; \
+ fi; \
+ echo "$${DC_} used as D compiler to build $${pname}"; \
+ export DFLAGS="-O2 -inline"; \
+ dub build --compiler=$${DC} --build=release --combined --skip-registry=all;
+checkPhase:
+ runHook preCheck; \
+ HOME=$${PWD}; \
+ dub test --combined --skip-registry=all; \
+ runHook postCheck
+installPhase:
+ runHook preInstall; \
+ mkdir -p $${out}/bin; \
+ install -m755 ./bin/spine $${out}/bin/spine; \
+ runHook postInstall
+ #cp -r bin/spine $out/bin/.
+postInstall:
+ echo "$${out}/share/cgi-bin"; \
+ echo `ls -la $${out}/bin/spine`
+#+END_SRC
diff --git a/shell.nix b/shell.nix
new file mode 100755
index 0000000..ad4bd50
--- /dev/null
+++ b/shell.nix
@@ -0,0 +1,24 @@
+#!/usr/bin/env -S nix-shell --pure
+#!nix-shell -i bash
+{ pkgs ? import <nixpkgs> {} }:
+let
+in pkgs.mkShell {
+ buildInputs = with pkgs; [
+ nix
+ bundler
+ bundix
+ #ruby
+ #rubyPackages.rake
+ #rubyPackages.sqlite3
+ #rubyPackages.thor
+ ruby_3_1
+ rubyPackages_3_1.rake
+ rubyPackages_3_1.sqlite3
+ rubyPackages_3_1.thor
+ sqlite
+ unzip
+ xz
+ zip
+ #texlive-combined-full
+ ];
+}