diff options
65 files changed, 1061 insertions, 1347 deletions
diff --git a/.env/echo-nixNote b/.env/echo-nixNote deleted file mode 100644 index 36dfa3a..0000000 --- a/.env/echo-nixNote +++ /dev/null @@ -1,238 +0,0 @@ -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 shell -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 shell -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 shell -$SpineBIN/spine --very-verbose --pod --source --output="$SpineOUTversioned" $SpinePOD/* -#+END_SRC - -*** html & epub output - -#+BEGIN_SRC shell -$SpineBIN/spine --very-verbose --html --epub --output="$SpineOUTversioned" $SpinePOD/* -#+END_SRC - -*** sqlite db for each document - populate each db - -#+BEGIN_SRC shell -$SpineBIN/spine --very-verbose --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/* -#+END_SRC - -*** doc source; html, epub; sqlite outputs - -#+BEGIN_SRC shell -$SpineBIN/spine --verbose --pod --html --epub --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/* -#+END_SRC - -*** curate (authors topics) - -#+BEGIN_SRC shell -$SpineBIN/spine --very-verbose --curate --output="$SpineOUTversioned" $SpinePOD/* -#+END_SRC - -*** html, curate - -#+BEGIN_SRC shell -$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 shell -$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 shell -$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUTversioned" -#+END_SRC - -*** sqlite db (shared) - populate db - -#+BEGIN_SRC shell -$SpineBIN/spine --very-verbose --sqlite-update --output="$SpineOUTversioned" $SpineDOC/sisudoc-spine-markup-samples/markup/pod/* -#+END_SRC - -*** sqlite db (shared) - drop db - -#+BEGIN_SRC shell -$SpineBIN/spine --very-verbose --sqlite-db-drop --output="$SpineOUTversioned" -#+END_SRC - -*** sqlite db (shared) - create & populate db (single step) - -#+BEGIN_SRC shell -$SpineBIN/spine --very-verbose --sqlite-db-create --sqlite-update --output="$SpineOUTversioned" $SpinePOD/* -#+END_SRC - -*** composite command: source pod, html, epub, curate, sqlite - -#+BEGIN_SRC shell -$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 shell -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 shell -$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 shell -$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 shell -$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 shell -$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 shell -$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 shell -$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 shell -$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site -#+END_SRC - -*** latex - -#+BEGIN_SRC shell -$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 deleted file mode 100644 index de52220..0000000 --- a/.env/nix-commands +++ /dev/null @@ -1,19 +0,0 @@ -- 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 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 @@ -1,7 +1,7 @@ NIX_ENFORCE_PURITY=1 # - https://github.com/nix-community/nix-direnv -NixDirEnvVersion="3.0.6" -NixDirEnvSHA="sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=" +NixDirEnvVersion="3.0.7" +NixDirEnvSHA="sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc=" if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}" fi @@ -24,11 +24,11 @@ echo ' • nix develop ❯❯ nix develop ".#" --print-build-logs -c zsh • nix develop using nixpkgs - ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh - ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh - • nix develop using package overlays: (dmd-2.110.0, ldc-1.40.1, dub-1.39.0, dtools-2.110.0) - ❯❯ nix develop ".#dsh-overlay-dmd-dub" --print-build-logs -c zsh - ❯❯ nix develop ".#dsh-overlay-ldc-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh + • nix develop using package overlays: (dmd-2.111.0, ldc-1.41.0, dub-1.39.0, dtools-2.110.0) + ❯❯ nix develop ".#dsh-overlay-dmd" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-overlay-ldc" --print-build-logs -c zsh ❯❯ nix flake show • to build project: @@ -40,16 +40,16 @@ echo ' • nix build using nixpkgs ❯❯ nix build ".#spine-nixpkgs-dmd" --print-build-logs ❯❯ nix build ".#spine-nixpkgs-ldc" --print-build-logs - • nix build using package overlays: (dmd-2.110.0, ldc-1.40.1, dub-1.39.0, dtools-2.110.0) + • nix build using package overlays: (dmd-2.111.0, ldc-1.41.0, dub-1.39.0, dtools-2.110.0) ❯❯ nix build ".#spine-overlay-dmd" --print-build-logs ❯❯ nix build ".#spine-overlay-ldc" --print-build-logs • to build using dub on nix (get dependencies by setting your development environment): - ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh ❯❯ dub --verbose --compiler=dmd --config=dmd - ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh ❯❯ dub --verbose --compiler=ldmd2 --config=ldmd2 • for develop environment & build options @@ -63,6 +63,9 @@ echo ' ❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* ❯❯ ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* + + ❯❯ ${SpineBIN} -v --sqlite-db-create --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db + ❯❯ ${SpineBIN} -v --sqlite-update --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db ./markup/pod/* ' echo "• ❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* @@ -13,8 +13,6 @@ !.envrc !.envrc-nix !.envrc-git-init -!.env -!.env/** !nix-overlays !nix-overlays/** !README.md @@ -26,6 +24,7 @@ !configuration.txt !*.json !*.sdl +!*.md !meson.build !tangle !*.org @@ -258,25 +258,18 @@ for a document collection you can point to the document collection: ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-search --html-link-pdf --html-link-curate --html-link-markup --cgi-sqlite-search-filename="${SpineCGIform}" --cgi-url-action="${SpineSearchActionRemote}" --curate --sqlite-update --sqlite-kb-filename="${SpineSQLdb}" --output=${SpineOUT} ${SpinePOD}/* -*** generate a cgi search form in d +*** generate a cgi search form -spine -v --cgi-search-form-codegen \ - --output=/var/www/html \ - ~spineMarkupSamples/pod - -spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod +The CGI search form is built separately in the sisudoc-spine-search-cgi/ directory. -spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod/.dr/config_local_site +Steps: +1. Clone the sisudoc-spine-search-cgi repository +2. Configure views/configuration.txt with your web server settings +3. Build the CGI binary using Nix or dub +4. Deploy the CGI binary to your web server's cgi-bin directory -spine --cgi-search-form-codegen --output=`echo ~webDocRoot` ~spineMarkupSamples/pod - -spine --cgi-search-form-codegen --cgi-sqlite-search-filename="spine_search" --output=`echo ~webDocRoot` - -spine -v --cgi-search-form-codegen \ - --sqlite-db-filename="spine.search.db" \ - --cgi-sqlite-search-filename="spine-search" \ - --output=/var/www/html \ - ~spineMarkupSamples/pod +For detailed instructions, see: + sisudoc-spine-search-cgi/README.md **** compile the cgi search form @@ -306,14 +299,15 @@ cgi-bin directory ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-search --html-link-pdf --html-link-curate --html-link-markup --cgi-sqlite-search-filename="${SpineCGIform}" --cgi-url-action="${SpineSearchActionLocal}" --curate --sqlite-update --sqlite-db-filename="${SpineSQLdb}" --output=${SpineOUT} ${SpinePOD}/* -*** create db & search form +*** create db spine -v \ --sqlite-db-create --sqlite-db-filename="spine.search.db" \ - --cgi-search-form-codegen --cgi-sqlite-search-filename="spine-search" \ --output=/var/www/html \ ~spineMarkupSamples/pod/* +Note: The CGI search form is built separately in sisudoc-spine-search-cgi/ + *** html with links to search form ${SpineBIN} -v --epub --html --html-link-curate --curate --output=${SpineOUT} ${SpinePOD}/* @@ -243,23 +243,16 @@ for a document collection you can point to the document collection: ### generate a cgi search form in d -spine -v --cgi-search-form-codegen \ - --output=/var/www/html \ - ~spineMarkupSamples/pod - -spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod +The CGI search form is built separately in the sisudoc-spine-search-cgi/ directory. -spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod/.dr/config_local_site +Steps: +1. Clone the sisudoc-spine-search-cgi repository +2. Configure views/configuration.txt with your web server settings +3. Build the CGI binary using Nix or dub +4. Deploy the CGI binary to your web server's cgi-bin directory -spine --cgi-search-form-codegen --output=`echo ~webDocRoot` ~spineMarkupSamples/pod - -spine --cgi-search-form-codegen --cgi-sqlite-search-filename="spine_search" --output=`echo ~webDocRoot` - -spine -v --cgi-search-form-codegen \ - --sqlite-db-filename="spine.search.db" \ - --cgi-sqlite-search-filename="spine-search" \ - --output=/var/www/html \ - ~spineMarkupSamples/pod +For detailed instructions, see: + sisudoc-spine-search-cgi/README.md #### compile the cgi search form @@ -289,14 +282,15 @@ cgi-bin directory ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-search --html-link-pdf --html-link-curate --html-link-markup --cgi-sqlite-search-filename="${SpineCGIform}" --cgi-url-action="${SpineSearchActionLocal}" --curate --sqlite-update --sqlite-db-filename="${SpineSQLdb}" --output=${SpineOUT} ${SpinePOD}/* -### create db & search form +### create db spine -v \ --sqlite-db-create --sqlite-db-filename="spine.search.db" \ - --cgi-search-form-codegen --cgi-sqlite-search-filename="spine-search" \ --output=/var/www/html \ ~spineMarkupSamples/pod/* +Note: The CGI search form is built separately in sisudoc-spine-search-cgi/ + ### html with links to search form ${SpineBIN} -v --epub --html --html-link-curate --curate --output=${SpineOUT} ${SpinePOD}/* @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1740019556, - "narHash": "sha256-vn285HxnnlHLWnv59Og7muqECNMS33mWLM14soFIv2g=", + "lastModified": 1754651824, + "narHash": "sha256-aB7ft6njy9EJfuW+rdToNChfRrHNRw/yTg5cSEnG+HI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dad564433178067be1fbdfcce23b546254b6d641", + "rev": "b069b7c1e2fe1a3a24221428558bf44128d3d5c8", "type": "github" }, "original": { @@ -21,8 +21,8 @@ runHook postCheck ''; localOverlay = (final: prev: { - ldc = prev.callPackage ./nix-overlays/ldc { }; # -> ok 1.40.1 - dmd = prev.callPackage ./nix-overlays/dmd { }; # -> ok 2.110.0 + ldc = prev.callPackage ./nix-overlays/ldc { }; # -> ok 1.41.0 + dmd = prev.callPackage ./nix-overlays/dmd { }; # -> ok 2.111.0 dub = prev.callPackage ./nix-overlays/dub { }; # -> ? 1.39.0 dtools = prev.callPackage ./nix-overlays/dtools { }; # -> ok 2.110.0 #gdc = prev.callPackage ./nix-overlays/gdc { }; @@ -131,7 +131,7 @@ spine-overlay-dmd = stdenv.mkDerivation { inherit pname; inherit version; - #name = "spine-0.18.0 dmd-2.110.0 dub-1.39.0"; + #name = "spine-0.18.0 dmd-2.111.0 dub-1.39.0"; meta.mainProgram = "spine-dmd"; executable = true; src = self; @@ -155,7 +155,7 @@ spine-overlay-ldc = stdenv.mkDerivation { inherit pname; inherit version; - #name = "spine-0.18.0 ldc-1.40.1 dub-1.39.0"; + #name = "spine-0.18.0 ldc-1.41.0 dub-1.39.0"; meta.mainProgram = "spine-ldc"; executable = true; src = self; @@ -215,7 +215,7 @@ in with pkgs-nix; { dsh-overlay = mkShell { - name = "spine-0.18.0 base dev shell, ldc-1.40.1, dub-1.39.0 - dtools-2.110.0"; + name = "spine-0.18.0 base dev shell, ldc-1.41.0, dub-1.39.0 - dtools-2.110.0"; inherit shell; inherit devEnv; packages = with pkgs-ovl; [ @@ -228,7 +228,7 @@ ]; inherit shellHook; }; - dsh-nixpkgs-dmd-dub = mkShell { + dsh-nixpkgs-dmd = mkShell { name = "spine-0.18.0 base dev shell"; inherit shell; inherit devEnv; @@ -241,7 +241,7 @@ ]; inherit shellHook; }; - dsh-nixpkgs-ldc-dub = mkShell { + dsh-nixpkgs-ldc = mkShell { name = "spine-0.18.0 base dev shell"; inherit shell; inherit devEnv; @@ -254,8 +254,8 @@ ]; inherit shellHook; }; - dsh-overlay-dmd-dub = mkShell { - name = "spine-0.18.0 base dev shell, dmd-2.110.0, dub-1.39.0 - dtools-2.110.0"; + dsh-overlay-dmd = mkShell { + name = "spine-0.18.0 base dev shell, dmd-2.111.0, dub-1.39.0 - dtools-2.110.0"; inherit shell; inherit devEnv; packages = with pkgs-ovl; [ @@ -267,8 +267,8 @@ ]; inherit shellHook; }; - dsh-overlay-ldc-dub = mkShell { - name = "spine-0.18.0 base dev shell, ldc-1.40.1, dub-1.39.0 - dtools-2.110.0"; + dsh-overlay-ldc = mkShell { + name = "spine-0.18.0 base dev shell, ldc-1.41.0, dub-1.39.0 - dtools-2.110.0"; inherit shell; inherit devEnv; packages = with pkgs-ovl; [ diff --git a/nix-overlays/README b/nix-overlays/README index 56a23e9..75b498b 100644 --- a/nix-overlays/README +++ b/nix-overlays/README @@ -16,8 +16,8 @@ compiler and build tools: ldc, dub and dtools, than exist in nixpkgs at the time of publishing, in some cases with additional fixes. nix overlays for (updates nixpkgs, more recent versions of): - - ldc ( 1.30.0 -> 1.40.1 ) - - dub ( 1.23.0 -> 1.39.0 ) [for nix versions 1.31.0 ... 1.33.0 broken] + - ldc ( 1.30.0 -> 1.41.0 ) + - dub ( 1.23.0 -> 1.40.0 ) [for nix versions 1.31.0 ... 1.33.0 broken] - dtools ( 2.095.1 -> 2.110.0 ) - dmd ( 2.106.1 -> 2.111.0 ) @@ -47,13 +47,13 @@ search nixpkgs here: - https://search.nixos.org/packages?channel=unstable&from=0&size=100&sort=relevance&query= ** compilers -*** ldc OK ✓ ( 1.30.0 -> 1.40.1 ) +*** ldc OK ✓ ( 1.30.0 -> 1.41.0 ) - https://wiki.dlang.org/LDC - https://github.com/ldc-developers/ldc - https://github.com/ldc-developers/ldc/releases - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.40.1.tar.gz + nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.41.0.tar.gz - https://github.com/ldc-developers/ldc/issues - version in nixpkgs: @@ -88,13 +88,13 @@ not yet provided in nixpkgs with gcc12, no attempt made - https://github.com/D-Programming-GDC/gdc ** build tool -*** dub ( 1.23.0 -> 1.39.0 ) +*** dub ( 1.23.0 -> 1.40.0 ) - https://code.dlang.org/packages/dub - https://github.com/dlang/dub - https://github.com/dlang/dub/releases - nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.39.0.tar.gz + nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.40.0.tar.gz - https://github.com/dlang/dub/issues - version in nixpkgs: @@ -102,7 +102,7 @@ not yet provided in nixpkgs with gcc12, no attempt made - dub nixpkg overlay is updated and runs most dub tests correctly -- dub OK ✓ ( 1.30.0 -> 1.39.0 ) +- dub OK ✓ ( 1.30.0 -> 1.40.0 ) from v1.31.0 requires seeting of pwd in buildPhase else fails to build packages with nix tools that previous version of dub built; diff --git a/nix-overlays/dub/package.nix b/nix-overlays/dub/package.nix index 1ac054c..4d63f2d 100644 --- a/nix-overlays/dub/package.nix +++ b/nix-overlays/dub/package.nix @@ -13,7 +13,7 @@ assert dcompiler != null; stdenv.mkDerivation (finalAttrs: { pname = "dub"; - version = "1.39.0"; + version = "1.40.0"; enableParallelBuilding = true; @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "dlang"; repo = "dub"; rev = "v${finalAttrs.version}"; - hash = "sha256-73b15A9+hClD6IbuxTy9QZKpTKjUFYBuqGOclUyhrnM="; + hash = "sha256-OirchEKf66gis70gCSTOYcrHLyHhCsyt/rTEGT83Vcc="; }; postPatch = '' @@ -70,6 +70,7 @@ stdenv.mkDerivation (finalAttrs: { rm -rf test/pr2642-cache-db # added to build v1.34.0 rm -rf test/pr2644-describe-artifact-path # added to build v1.36.0 rm -rf test/pr2647-build-deep # added to build v1.36.0 + rm -rf test/issue2698-cimportpaths-broken-with-dmd-ldc # added to build v1.40.0 ./test/run-unittest.sh runHook postCheck diff --git a/nix-overlays/ldc/bootstrap.nix b/nix-overlays/ldc/bootstrap.nix index 8f76b5b..f166568 100644 --- a/nix-overlays/ldc/bootstrap.nix +++ b/nix-overlays/ldc/bootstrap.nix @@ -13,13 +13,13 @@ let inherit (stdenv) hostPlatform; OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name; - version = "1.25.0"; + version = "1.41.0"; hashes = { - # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.25.0/ldc2-1.25.0-osx-x86_64.tar.xz` etc.. - osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; - linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; - linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; - osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.41.0/ldc2-1.41.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "sha256-W8/0i2PFakXbqs2wxb3cjqa+htSgx7LHyDGOBH9yEYE="; + linux-x86_64 = "sha256-SkOUV/D+WeadAv1rV1Sfw8h60PVa2fueQlB7b44yfI8="; + linux-aarch64 = "sha256-HEuVChPVM3ntT1ZDZsJ+xW1iYeIWhogNcMdIaz6Me6g="; + osx-arm64 = "sha256-FXJnBC8QsEchBhkxSqcZtPC/iHYB6TscY0qh7LPFRuQ="; }; in stdenv.mkDerivation { pname = "ldc-bootstrap"; diff --git a/nix-overlays/ldc/package.nix b/nix-overlays/ldc/package.nix index 39b510a..1767785 100644 --- a/nix-overlays/ldc/package.nix +++ b/nix-overlays/ldc/package.nix @@ -2,20 +2,21 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, + callPackage, + makeWrapper, + removeReferencesTo, + runCommand, + writeText, + targetPackages, cmake, ninja, - llvm_19, + llvm_20, curl, tzdata, lit, gdb, unzip, - darwin, - callPackage, - makeWrapper, - runCommand, - writeText, - targetPackages, ldcBootstrap ? callPackage ./bootstrap.nix { }, }: @@ -31,13 +32,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "ldc"; - version = "1.40.1"; + version = "1.41.0"; src = fetchFromGitHub { owner = "ldc-developers"; repo = "ldc"; rev = "v${finalAttrs.version}"; - hash = "sha256-WdnwdH25A5oMNNY3uWG2hxnaAT+S1hNuP7LElH3uuuk="; + hash = "sha256-6LcpY3LSFK4KgEiGrFp/LONu5Vr+/+vI04wEEpF3s+s="; fetchSubmodules = true; }; @@ -63,9 +64,7 @@ stdenv.mkDerivation (finalAttrs: { ''; nativeBuildInputs = [ - cmake ldcBootstrap lit lit.python llvm_19.dev makeWrapper ninja unzip - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - darwin.apple_sdk.frameworks.Foundation + cmake ldcBootstrap lit lit.python llvm_20.dev makeWrapper ninja unzip ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 gdb @@ -135,6 +134,12 @@ stdenv.mkDerivation (finalAttrs: { --set-default CC ${targetPackages.stdenv.cc}/bin/cc ''; + preFixup = '' + find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${ldcBootstrap} '{}' + + ''; + + disallowedReferences = [ ldcBootstrap ]; + meta = with lib; { description = "LLVM-based D compiler"; homepage = "https://github.com/ldc-developers/ldc"; diff --git a/org/config_env.org b/org/config_env.org index db6af9d..ec6a1d5 100644 --- a/org/config_env.org +++ b/org/config_env.org @@ -80,11 +80,11 @@ echo ' • nix develop ❯❯ nix develop ".#" --print-build-logs -c zsh • nix develop using nixpkgs - ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh - ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh • nix develop using package overlays: (dmd-<<dmd_version>>, ldc-<<ldc_version>>, dub-<<dub_version>>, dtools-<<dtools_version>>) - ❯❯ nix develop ".#dsh-overlay-dmd-dub" --print-build-logs -c zsh - ❯❯ nix develop ".#dsh-overlay-ldc-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-overlay-dmd" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-overlay-ldc" --print-build-logs -c zsh ❯❯ nix flake show • to build project: @@ -102,10 +102,10 @@ echo ' • to build using dub on nix (get dependencies by setting your development environment): - ❯❯ nix develop ".#dsh-nixpkgs-dmd-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-dmd" --print-build-logs -c zsh ❯❯ dub --verbose --compiler=dmd --config=dmd - ❯❯ nix develop ".#dsh-nixpkgs-ldc-dub" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-nixpkgs-ldc" --print-build-logs -c zsh ❯❯ dub --verbose --compiler=ldmd2 --config=ldmd2 • for develop environment & build options @@ -119,6 +119,9 @@ echo ' ❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* ❯❯ ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* + + ❯❯ ${SpineBIN} -v --sqlite-db-create --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db + ❯❯ ${SpineBIN} -v --sqlite-update --sqlite-db-filename=${SpineSQLdb} --sqlite-db-path=./_tmp-db ./markup/pod/* ' echo "• ❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* @@ -175,7 +178,7 @@ export SpineDBpath=/var/www/sqlite #export SpineDBpath=/srv/www/spine/sqlite #+END_SRC -* SHARED versions +* versions GET ** direnv #+NAME: direnv_version diff --git a/org/config_git.org b/org/config_git.org index b997923..66383ad 100644 --- a/org/config_git.org +++ b/org/config_git.org @@ -37,8 +37,6 @@ !.envrc !.envrc-nix !.envrc-git-init -!.env -!.env/** !nix-overlays !nix-overlays/** !README.md @@ -50,6 +48,7 @@ !configuration.txt !*.json !*.sdl +!*.md !meson.build !tangle !*.org diff --git a/org/config_nix.org b/org/config_nix.org index 3ec97d0..3f101a0 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -251,7 +251,7 @@ ]; inherit shellHook; }; - dsh-nixpkgs-dmd-dub = mkShell { + dsh-nixpkgs-dmd = mkShell { name = "spine-<<spine_version>> base dev shell"; inherit shell; inherit devEnv; @@ -264,7 +264,7 @@ ]; inherit shellHook; }; - dsh-nixpkgs-ldc-dub = mkShell { + dsh-nixpkgs-ldc = mkShell { name = "spine-<<spine_version>> base dev shell"; inherit shell; inherit devEnv; @@ -277,7 +277,7 @@ ]; inherit shellHook; }; - dsh-overlay-dmd-dub = mkShell { + dsh-overlay-dmd = mkShell { name = "spine-<<spine_version>> base dev shell, dmd-<<dmd_version>>, dub-<<dub_version>> - dtools-<<dtools_version>>"; inherit shell; inherit devEnv; @@ -290,7 +290,7 @@ ]; inherit shellHook; }; - dsh-overlay-ldc-dub = mkShell { + dsh-overlay-ldc = mkShell { name = "spine-<<spine_version>> base dev shell, ldc-<<ldc_version>>, dub-<<dub_version>> - dtools-<<dtools_version>>"; inherit shell; inherit devEnv; @@ -717,7 +717,7 @@ github:nixos/nixpkgs ** .env/echo-nixNote CHECK MODIFY *** notes on nix commands -#+HEADER: :tangle ../.env/nix-commands +#+HEADER: :tangle-NO ../.env/nix-commands #+BEGIN_SRC text - nix flake update && nix flake check --show-trace && nix flake show && nix develop .#devShell @@ -742,7 +742,7 @@ nix-shell '<nixpkgs>' -A nix --pure *** echo-nixNote -#+HEADER: :tangle ../.env/echo-nixNote +#+HEADER: :tangle-NO ../.env/echo-nixNote #+BEGIN_SRC shell echo '-*- mode: org -*- @@ -892,13 +892,13 @@ $SpineBIN/spine --show-config --output="$SpineOUTversioned" $SpinePOD ,#+BEGIN_SRC shell $SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUT" $SpinePOD/* -$SpineBIN/spine -v --cgi-search-form-codegen --output=$SpineOUT $SpinePOD/* +# CGI search form is built separately in sisudoc-spine-search-cgi/ $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 +# See sisudoc-spine-search-cgi/README.md for CGI search form build instructions ,#+END_SRC ,*** generate html linked to search form @@ -967,7 +967,7 @@ webserv: ,*** make search form ,#+BEGIN_SRC shell -$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site +# CGI search form is built separately - see sisudoc-spine-search-cgi/README.md ,#+END_SRC ,*** latex @@ -1032,9 +1032,8 @@ postInstall: echo `ls -la $${out}/bin/spine` #+END_SRC -* SHARED -** versions -*** spine project VERSION :version:set:project: +* versions GET +** spine project VERSION :version:set:project: #+NAME: spine_version #+HEADER: :noweb yes @@ -1042,8 +1041,8 @@ postInstall: <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:spine_project_version()>> #+END_SRC -*** dlang overlays -**** ldc +** dlang overlays +*** ldc #+NAME: ldc_version #+HEADER: :noweb yes @@ -1051,7 +1050,7 @@ postInstall: <<./nix-develop-dlang-shared.org:ldc-version()>> #+END_SRC -**** dmd +*** dmd #+NAME: dmd_version #+HEADER: :noweb yes @@ -1059,7 +1058,7 @@ postInstall: <<./nix-develop-dlang-shared.org:dmd-version()>> #+END_SRC -**** dub +*** dub #+NAME: dub_version #+HEADER: :noweb yes @@ -1067,7 +1066,7 @@ postInstall: <<./nix-develop-dlang-shared.org:dub-version()>> #+END_SRC -**** dtools +*** dtools #+NAME: dtools_version #+HEADER: :noweb yes @@ -1075,15 +1074,14 @@ postInstall: <<./nix-develop-dlang-shared.org:dtools-version()>> #+END_SRC -*** empty sha56 hash +** sha256 blank hash -#+NAME: blank_hash +#+NAME: sha256-blank #+BEGIN_SRC nix -sha256-0000000000000000000000000000000000000000000= +<<./nix-develop-dlang-shared.org:sha256-blank()>> #+END_SRC -#+NAME: assumed_hash +#+NAME: blank_hash #+BEGIN_SRC nix -sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +<<./nix-develop-dlang-shared.org:sha256-blank()>> #+END_SRC - diff --git a/org/default_imports.org b/org/default_imports.org index d708124..fb310c9 100644 --- a/org/default_imports.org +++ b/org/default_imports.org @@ -32,20 +32,18 @@ module sisudoc.meta; #+NAME: imports_for_meta_general #+BEGIN_SRC d -public import - sisudoc.meta.defaults; +public import sisudoc.meta.defaults; /+ std +/ -public import - std.array, - std.exception, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - // std.uni, - std.utf, - std.conv : to; +public import std.array; +public import std.exception; +public import std.range; +public import std.regex; +public import std.stdio; +public import std.string; +public import std.typecons; +// public import std.uni; +public import std.utf; +public import std.conv : to; #+END_SRC * imports for _output_ :output: @@ -63,25 +61,23 @@ module sisudoc.io_out; #+NAME: imports_for_output_general #+BEGIN_SRC d -public import - std.algorithm, - std.array, - std.container, - std.exception, - std.path, - std.process, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - // std.uni, - std.utf; -public import - sisudoc.share.defaults, - sisudoc.io_in.paths_source, - sisudoc.io_out.defaults, - sisudoc.io_out.paths_output; +public import std.algorithm; +public import std.array; +public import std.container; +public import std.exception; +public import std.path; +public import std.process; +public import std.range; +public import std.regex; +public import std.stdio; +public import std.string; +public import std.typecons; +// public import std.uni; +public import std.utf; +public import sisudoc.share.defaults; +public import sisudoc.io_in.paths_source; +public import sisudoc.io_out.defaults; +public import sisudoc.io_out.paths_output; #+END_SRC * document header including copyright & license diff --git a/org/default_misc.org b/org/default_misc.org index baa7a81..1f58d45 100644 --- a/org/default_misc.org +++ b/org/default_misc.org @@ -190,24 +190,23 @@ module sisudoc.io_out.defaults; #+NAME: defaults_imports #+BEGIN_SRC d -import - std.algorithm, - std.array, - std.container, - std.exception, - std.file, - std.getopt, - std.json, - std.path, - std.process, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; +import std.algorithm; +import std.array; +import std.container; +import std.exception; +import std.file; +import std.getopt; +import std.json; +import std.path; +import std.process; +import std.range; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.uni; +import std.utf; +import std.conv : to; #+END_SRC ** defaults shared by meta & output (generic) diff --git a/org/default_paths.org b/org/default_paths.org index 3cdb909..6ca6ea5 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -31,16 +31,14 @@ +/ module sisudoc.io_in.paths_source; @safe: -import - std.array, - std.file, - std.path, - std.regex, - std.stdio, - std.conv : to; -import - sisudoc.meta.defaults, - sisudoc.meta.rgx_files; +import std.array; +import std.file; +import std.path; +import std.regex; +import std.stdio; +import std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx_files; <<template_paths_src_0>> <<template_paths_src_1>> <<template_paths_src_2>> @@ -974,13 +972,11 @@ template spinePathsPods() { +/ module sisudoc.io_out.paths_output; @safe: -import - std.array, - std.path, - std.regex, - std.stdio; -import - sisudoc.meta.rgx_files; +import std.array; +import std.path; +import std.regex; +import std.stdio; +import sisudoc.meta.rgx_files; <<template_paths_out_0>> <<template_paths_out_1>> <<template_paths_url>> diff --git a/org/default_shared_snippets.org b/org/default_shared_snippets.org index 3cdcb7d..c6d037f 100644 --- a/org/default_shared_snippets.org +++ b/org/default_shared_snippets.org @@ -27,16 +27,14 @@ module sisudoc.io_out.html_snippet; @safe: template htmlSnippet() { - import - std.file, - std.outbuffer, - std.format, - std.uri, - std.conv : to; - import - sisudoc.io_out.rgx, - sisudoc.meta.rgx_files, - sisudoc.io_out.rgx_xhtml; + import std.file; + import std.outbuffer; + import std.format; + import std.uri; + import std.conv : to; + import sisudoc.io_out.rgx; + import sisudoc.meta.rgx_files; + import sisudoc.io_out.rgx_xhtml; auto format_html_blank_page_guide_home()( string css_style, string home_url, diff --git a/org/in_source_files.org b/org/in_source_files.org index cdd220f..5501af5 100644 --- a/org/in_source_files.org +++ b/org/in_source_files.org @@ -31,14 +31,12 @@ +/ module sisudoc.io_in.read_config_files; @safe: -import - std.file, - std.path; -import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; +import std.file; +import std.path; +import sisudoc.meta; +import sisudoc.io_in.paths_source; +import sisudoc.meta.rgx_files; +import sisudoc.meta.rgx; <<meta_config_file_hub_read_site_config>> <<meta_config_file_hub_read_document_config>> <<meta_config_file_hub_read_site_yaml>> @@ -186,14 +184,12 @@ webserv: #+HEADER: :noweb yes #+BEGIN_SRC d static template readConfigDoc() { - import - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; + import sisudoc.meta.rgx_files; + import sisudoc.meta.rgx; @system final auto readConfigDoc(M,E)(M _manifested, E _env) { mixin spineRgxIn; static auto rgx = RgxI(); @@ -249,14 +245,12 @@ static template readConfigDoc() { #+HEADER: :noweb yes #+BEGIN_SRC d static template configReadSiteYAML() { - import - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; + import sisudoc.meta.rgx_files; + import sisudoc.meta.rgx; final YAMLDocument configReadSiteYAML(M,E)(M _manifested, E _env) { string _configuration = configReadInSiteYAML!()(_manifested, _env); auto _conf_file_details = configFilePaths!()(_manifested, _env); @@ -266,12 +260,10 @@ static template configReadSiteYAML() { } } static template configReadDocYAML() { - import - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; final YAMLDocument configReadDocYAML(M,E)(M _manifested, E _env) { string _configuration = configReadInDocYAML!()(_manifested, _env); auto _conf_file_details = configFilePaths!()(_manifested, _env); @@ -297,15 +289,13 @@ static template configReadDocYAML() { module sisudoc.io_in.read_source_files; @safe: template spineRawMarkupContent() { - import - std.digest.sha, - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; + import std.digest.sha; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; + import sisudoc.meta.rgx_files; + import sisudoc.meta.rgx; mixin spineRgxIn; static auto rgx = RgxI(); mixin spineRgxFiles; @@ -374,7 +364,7 @@ template spineRawMarkupContent() { sourcefile_body_content = _cii.contents; insert_file_list_get = _cii.insert_files.dup; images_list_get = _cii.images.dup; - } else if (_opt_action.source || _opt_action.pod) { + } else if (_opt_action.source_or_pod) { auto ins = Inserts(); ST_contents_inserts_images _cii = ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src); @@ -399,9 +389,8 @@ template spineRawMarkupContent() { } } struct MarkupRawUnit { - import - std.digest.sha, - std.file; + import std.digest.sha; + import std.file; <<meta_markup_source_raw_read_file_source_string>> <<meta_markup_source_raw_doc_header_and_content_split>> <<meta_markup_source_raw_source_line_array>> @@ -630,7 +619,7 @@ if (code_block_status == codeBlock.curly) { markup_sourcesubfile_insert_content.length ); } - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { _images ~= _extract_images(markup_sourcesubfile_insert_content); } auto ins = Inserts(); @@ -646,7 +635,7 @@ if (code_block_status == codeBlock.curly) { +/ } else { contents_insert ~= line; // images to extract for image list? - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { string[] _image_linelist = _extract_images(line); if (_image_linelist.length > 0) { _images ~= _image_linelist; @@ -735,7 +724,7 @@ if (code_block_status == codeBlock.curly) { fn_src_insert.to!string ); contents ~= contents_insert_st.insert_contents; - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { string[] _image_linelist = _extract_images(contents_insert_st.images); if (_image_linelist.length > 0) { _images ~= _image_linelist; @@ -753,7 +742,7 @@ if (code_block_status == codeBlock.curly) { +/ } else { contents ~= line; - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { string[] _image_linelist = _extract_images(line); if (_image_linelist.length > 0) { _images ~= _image_linelist; diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org index 00bc3d3..7809370 100644 --- a/org/meta_conf_make_meta.org +++ b/org/meta_conf_make_meta.org @@ -197,24 +197,23 @@ webserv: #+NAME: meta_defaults_imports #+BEGIN_SRC d -import - std.algorithm, - std.array, - std.container, - std.exception, - std.file, - std.getopt, - std.json, - std.path, - std.process, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; +import std.algorithm; +import std.array; +import std.container; +import std.exception; +import std.file; +import std.getopt; +import std.json; +import std.path; +import std.process; +import std.range; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.uni; +import std.utf; +import std.conv : to; import sisudoc.meta.conf_make_meta_structs; #+END_SRC @@ -239,20 +238,18 @@ module sisudoc.meta.conf_make_meta_structs; #+NAME: meta_defaults_template_structs_init #+BEGIN_SRC d -import - std.exception, - std.json, - std.path, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; -import - sisudoc.meta.defaults, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; +import std.exception; +import std.json; +import std.path; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.utf; +import std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx_yaml; +import sisudoc.meta.rgx; mixin spineRgxIn; static auto rgx = RgxI(); mixin spineRgxYamlTags; @@ -621,22 +618,20 @@ string check_input_markup()( module sisudoc.meta.conf_make_meta_yaml; @safe: template contentYAMLtoSpineStruct() { - import - std.algorithm, - std.array, - std.exception, - std.path, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.defaults, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.path; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx_yaml; + import sisudoc.meta.rgx; ConfComposite _struct_composite; @system ConfComposite contentYAMLtoSpineStruct(C,Y,M,O,Cfg)( C _struct_composite, @@ -1448,21 +1443,19 @@ if ("rights" in _yaml module sisudoc.meta.conf_make_meta_json; @safe: static template contentJSONtoSpineStruct() { - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; ConfComposite _struct_composite; auto contentJSONtoSpineStruct(C,J,M)(C _struct_composite, J _json, M _manifested, string _identifier) { mixin spineRgxIn; @@ -2116,9 +2109,8 @@ if ("rights" in _json.object) { #+BEGIN_SRC d template configParseYAMLreturnSpineStruct() { import dyaml; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; mixin contentYAMLtoSpineStruct; @system ConfComposite configParseYAMLreturnSpineStruct(T,M,O,Cfg)( T _document_struct, @@ -2154,21 +2146,18 @@ template configParseYAMLreturnSpineStruct() { #+NAME: doc_header_convert_to_struct #+BEGIN_SRC d template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() { - import - std.exception, - std.regex, - std.stdio, - // std.traits, - std.typecons, - std.utf, - std.conv : to; - import - dyaml; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; + import std.exception; + import std.regex; + import std.stdio; + // import std.traits; + import std.typecons; + import std.utf; + import std.conv : to; + import dyaml; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.rgx_yaml; + import sisudoc.meta.rgx; mixin spineRgxIn; mixin contentJSONtoSpineStruct; static auto rgx = RgxI(); @@ -2286,7 +2275,11 @@ header. ** dlang rgx example #+BEGIN_SRC d -import std.conv, std.regex, std.range, std.file, std.stdio; +import std.conv; +import std.regex; +import std.range; +import std.file; +import std.stdio; import std.string : format; void main(string[] argv) { immutable ratio = 1.5824; // UK pounds to US dollar as of this writing diff --git a/org/meta_debugs.org b/org/meta_debugs.org index b5948eb..8580c8b 100644 --- a/org/meta_debugs.org +++ b/org/meta_debugs.org @@ -52,24 +52,22 @@ template spineDebugs() { #+NAME: debug_imports #+BEGIN_SRC d -import - sisudoc.meta.defaults, - sisudoc.meta.rgx_files; -import - std.algorithm, - std.array, - std.container, - std.exception, - std.json, - std.stdio, - std.file, - std.path, - std.range, - std.regex, - std.string, - std.typecons, - std.utf, - std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx_files; +import std.algorithm; +import std.array; +import std.container; +import std.exception; +import std.json; +import std.stdio; +import std.file; +import std.path; +import std.range; +import std.regex; +import std.string; +import std.typecons; +import std.utf; +import std.conv : to; #+END_SRC ** initialize :report: diff --git a/org/nix-develop-dlang-shared.org b/org/nix-develop-dlang-shared.org index e40403d..671fa8d 100644 --- a/org/nix-develop-dlang-shared.org +++ b/org/nix-develop-dlang-shared.org @@ -17,20 +17,51 @@ * nix ** direnv +*** NOTES to update direnv in .envrc-nix + +- https://github.com/nix-community/nix-direnv + +check for latest version: + +- https://github.com/nix-community/nix-direnv/releases + +update direnv version and sha hash: +- emacs org/nix-develop-dlang-shared.org + +re-tangle file: + +- emacs org/config_env.org + updates: .envrc-nix + +update flake.lock: +- nix flake update && nix flake check && nix flake show + *** version SET #+NAME: direnv-version #+BEGIN_SRC org -<<direnv_version_3_0_6>> +<<direnv_version_3_0_7>> #+END_SRC #+NAME: direnv-hash #+BEGIN_SRC org -<<direnv_hash_3_0_6>> +<<direnv_hash_3_0_7>> #+END_SRC *** versions +**** 3.0.7 + +#+NAME: direnv_version_3_0_7 +#+BEGIN_SRC org +3.0.7 +#+END_SRC + +#+NAME: direnv_hash_3_0_7 +#+BEGIN_SRC org +sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc= +#+END_SRC + **** 3.0.6 #+NAME: direnv_version_3_0_6 @@ -81,6 +112,40 @@ sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U= * dlang ** ldc +*** tags link + +- https://github.com/ldc-developers/ldc/tags + +*** NOTES to update ldc + +check for latest version: + +update ldc version and sha hash: +- emacs ./org/nix-develop-dlang-shared.org + +re-tangle files: +- emacs ./org/nixpkgs_overlays_d_related.org + updates: nix-overlays/ldc/package.nix +- emacs ./org/config_nix.org + updates: flake.nix +- emacs ./org/config_env.org + updates: .envrc-nix + +update flake.lock: +- nix flake update && nix flake check && nix flake show + +build: +- nix build ".#spine-overlay-ldc" --print-build-logs + +adjust nix overlay if required (to get started): +- git clone --depth 1 https://github.com/NixOS/nixpkgs +- find ./nixpkgs/pkgs/ -type d -name "ldc" + ./nixpkgs/pkgs/by-name/ld/ldc +- compare with overlay: + ./nix-overlays/ldc +- overlay is tangled from: + emacs ./org/nixpkgs_overlays_d_related.org + *** version SET **** version & sha256 nix composite @@ -94,20 +159,41 @@ sha256 = "<<ldc-hash>>"; #+NAME: ldc-version #+BEGIN_SRC org -<<ldc_version_1_40_1>> +<<ldc_version_1_41_0>> #+END_SRC #+NAME: ldc-hash #+BEGIN_SRC org -<<ldc_hash_1_40_1>> +<<ldc_hash_1_41_0>> #+END_SRC #+NAME: ldc-llvm-set #+BEGIN_SRC org -<<ldc_llvm_set_1_40_1>> +<<ldc_llvm_set_1_41_0>> #+END_SRC *** versions +**** 1.41 OK ✓ +***** 1.41.0 OK ✓ + + - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/archive/refs/tags/v1.41.0.tar.gz + - nix-prefetch-url --unpack https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz + +#+NAME: ldc_version_1_41_0 +#+BEGIN_SRC nix +1.41.0 +#+END_SRC + +#+NAME: ldc_hash_1_41_0 +#+BEGIN_SRC nix +sha256-6LcpY3LSFK4KgEiGrFp/LONu5Vr+/+vI04wEEpF3s+s= +#+END_SRC + +#+NAME: ldc_llvm_set_1_41_0 +#+BEGIN_SRC nix +llvm_20 +#+END_SRC + **** 1.40 OK ✓ ***** 1.40.1 OK ✓ @@ -242,6 +328,10 @@ sha256-/bs3bwgkLZF5IqaiKnc5gCF/r6MQBG/F1kWUkK8j2s0= #+END_SRC ** dmd +*** tags link + +- https://github.com/dlang/dmd/tags + *** version SET #+NAME: dmd-version @@ -416,20 +506,39 @@ sha256-yRL9ub3u4mREG9PVxBvgQ/LDXD57RadPTZ2h08qyh/s= #+END_SRC ** dub +*** tags link + +- https://github.com/dlang/dub/releases + *** version SET #+NAME: dub-version #+HEADER: :noweb yes #+BEGIN_SRC org -<<dub_version_1_39_0>> +<<dub_version_1_40_0>> #+END_SRC #+NAME: dub-hash #+BEGIN_SRC org -<<dub_hash_1_39_0>> +<<dub_hash_1_40_0>> #+END_SRC *** versions +**** 1.40 OK ✓ +***** 1.40.0 + +- nix-prefetch-url --unpack https://github.com/dlang/dub/archive/refs/tags/v1.40.0.tar.gz + +#+NAME: dub_version_1_40_0 +#+BEGIN_SRC nix +1.40.0 +#+END_SRC + +#+NAME: dub_hash_1_40_0 +#+BEGIN_SRC nix +sha256-OirchEKf66gis70gCSTOYcrHLyHhCsyt/rTEGT83Vcc= +#+END_SRC + **** 1.39 OK ✓ ***** 1.39.0 @@ -611,17 +720,17 @@ sha256-Pfj8Kwf5AlcrHhLs5A/0vIFWLZaNR3ro+esbs7oWN9I= ** sha256 blank_hash #+NAME: blank_hash -#+BEGIN_SRC nix +#+BEGIN_SRC org <<sha256-blank>> #+END_SRC #+NAME: sha256-blank -#+BEGIN_SRC nix +#+BEGIN_SRC org sha256-0000000000000000000000000000000000000000000= #+END_SRC #+NAME: assumed_hash -#+BEGIN_SRC nix +#+BEGIN_SRC org sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= #+END_SRC diff --git a/org/nixpkgs_overlays_d_related.org b/org/nixpkgs_overlays_d_related.org index f79d3e2..3b39d7a 100644 --- a/org/nixpkgs_overlays_d_related.org +++ b/org/nixpkgs_overlays_d_related.org @@ -503,10 +503,6 @@ pkgs.callPackage ./shell.nix {} - version in nixpkgs: - https://search.nixos.org/packages?channel=unstable&show=ldc&from=0&size=100&sort=relevance&type=packages&query=ldc -**** notes - -- OK ldc 1.32.2 tested - *** overlays OK ✓ **** default.nix @@ -523,6 +519,13 @@ import ./package.nix lib, stdenv, fetchFromGitHub, + fetchpatch, + callPackage, + makeWrapper, + removeReferencesTo, + runCommand, + writeText, + targetPackages, cmake, ninja, <<ldc_llvm_set>>, @@ -531,12 +534,6 @@ import ./package.nix lit, gdb, unzip, - darwin, - callPackage, - makeWrapper, - runCommand, - writeText, - targetPackages, ldcBootstrap ? callPackage ./bootstrap.nix { }, }: @@ -585,8 +582,6 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake ldcBootstrap lit lit.python <<ldc_llvm_set>>.dev makeWrapper ninja unzip - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - darwin.apple_sdk.frameworks.Foundation ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 gdb @@ -656,6 +651,12 @@ stdenv.mkDerivation (finalAttrs: { --set-default CC ${targetPackages.stdenv.cc}/bin/cc ''; + preFixup = '' + find $out/bin -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${ldcBootstrap} '{}' + + ''; + + disallowedReferences = [ ldcBootstrap ]; + meta = with lib; { description = "LLVM-based D compiler"; homepage = "https://github.com/ldc-developers/ldc"; @@ -723,7 +724,7 @@ let inherit (stdenv) hostPlatform; OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name; - <<ldc_bootstrap_1-25-0_hashes>> + <<ldc_bootstrap_1-41-0_hashes>> in stdenv.mkDerivation { pname = "ldc-bootstrap"; inherit version; @@ -763,17 +764,17 @@ in stdenv.mkDerivation { #+END_SRC ***** bootstrap.nix version SELECT -****** bootstrap.nix ldc2-1.25.0 +****** bootstrap.nix ldc2-1.41.0 -#+NAME: ldc_bootstrap_1-25-0_hashes +#+NAME: ldc_bootstrap_1-41-0_hashes #+BEGIN_SRC nix -version = "1.25.0"; +version = "1.41.0"; hashes = { - # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.25.0/ldc2-1.25.0-osx-x86_64.tar.xz` etc.. - osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; - linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; - linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; - osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.41.0/ldc2-1.41.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "sha256-W8/0i2PFakXbqs2wxb3cjqa+htSgx7LHyDGOBH9yEYE="; + linux-x86_64 = "sha256-SkOUV/D+WeadAv1rV1Sfw8h60PVa2fueQlB7b44yfI8="; + linux-aarch64 = "sha256-HEuVChPVM3ntT1ZDZsJ+xW1iYeIWhogNcMdIaz6Me6g="; + osx-arm64 = "sha256-FXJnBC8QsEchBhkxSqcZtPC/iHYB6TscY0qh7LPFRuQ="; }; #+END_SRC @@ -791,6 +792,20 @@ hashes = { }; #+END_SRC +****** bootstrap.nix ldc2-1.25.0 + +#+NAME: ldc_bootstrap_1-25-0_hashes +#+BEGIN_SRC nix +version = "1.25.0"; +hashes = { + # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.25.0/ldc2-1.25.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "sha256-6iKnbS+oalLKmyS8qYD/wS21b7+O+VgsWG2iT4PrWPU="; + linux-x86_64 = "sha256-sfg47RdlsIpryc3iZvE17OtLweh3Zw6DeuNJYgpuH+o="; + linux-aarch64 = "sha256-UDZ43x4flSo+SfsPeE8juZO2Wtk2ZzwySk0ADHnvJBI="; + osx-arm64 = "sha256-O/x0vy0wwQFaDc4uWSeMhx+chJKqbQb6e5QNYf+7DCw="; +}; +#+END_SRC + ** dmd OK ✓ *** info **** links @@ -805,12 +820,6 @@ hashes = { - version in nixpkgs: - https://search.nixos.org/packages?channel=unstable&show=dmd&from=0&size=100&sort=relevance&type=packages&query=dmd -**** notes KO ✗ - -- dmd nixpkg modified and appears to build ok - -- ISSUES dmd on nixos FAILS to build (my working projects), appears not to find parts of itself - *** overlays **** default.nix @@ -1190,19 +1199,6 @@ stdenv.mkDerivation { - version in nixpkgs: - https://search.nixos.org/packages?channel=unstable&show=dub&from=0&size=100&sort=relevance&type=packages&query=dub -**** notes - -- OK dub == current OK ✓ - -- NOTES for dub 1.33.0 >= 1.31.0 KO ✗ - - dub builds test tilix which calls in gtkd - - ISSUES dub FAILS to build project from local disk that has built without issue - since dub v1.23.0 - - BROKEN breaks on subproject ends up in nix: Error /homeless-shelter: - Permission denied - -- OK dub == 1.30.0 OK ✓ - *** overlays **** default.nix @@ -1287,6 +1283,7 @@ stdenv.mkDerivation (finalAttrs: { rm -rf test/pr2642-cache-db # added to build v1.34.0 rm -rf test/pr2644-describe-artifact-path # added to build v1.36.0 rm -rf test/pr2647-build-deep # added to build v1.36.0 + rm -rf test/issue2698-cimportpaths-broken-with-dmd-ldc # added to build v1.40.0 ./test/run-unittest.sh runHook postCheck @@ -1309,7 +1306,7 @@ stdenv.mkDerivation (finalAttrs: { }) #+END_SRC -*** dcompiler SET +*** dcompiler #+NAME: dcompiler #+BEGIN_SRC nix @@ -1522,9 +1519,9 @@ Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69 $(ROOT)/catdoc$(DOTEXE) \ #+END_SRC -** versions SET +** versions GET *** direnv -***** select version SET OK ✓ +***** select version #+NAME: direnv_version #+HEADER: :noweb yes @@ -1545,7 +1542,7 @@ Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69 <<./nix-develop-dlang-shared.org:ldc-version-info()>> #+END_SRC -***** select version SET OK ✓ +***** selected version #+NAME: ldc_version #+HEADER: :noweb yes @@ -1564,6 +1561,7 @@ Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69 #+END_SRC *** dmd +**** selected version #+NAME: dmd_version #+HEADER: :noweb yes @@ -1582,6 +1580,7 @@ Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69 #+END_SRC *** dub +**** selected version #+NAME: dub_version #+HEADER: :noweb yes @@ -1595,6 +1594,7 @@ Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69 #+END_SRC *** dtools +**** selected version #+NAME: dtools_version #+HEADER: :noweb yes @@ -1610,12 +1610,12 @@ Adapted from https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69 ** sha256 blank_hash #+NAME: sha256-blank -#+BEGIN_SRC nix +#+BEGIN_SRC emacs-lisp <<./nix-develop-dlang-shared.org:sha256-blank()>> #+END_SRC #+NAME: blank_hash -#+BEGIN_SRC nix +#+BEGIN_SRC emacs-lisp <<./nix-develop-dlang-shared.org:sha256-blank()>> #+END_SRC diff --git a/org/ocda.org b/org/ocda.org index 148edf8..4c27706 100644 --- a/org/ocda.org +++ b/org/ocda.org @@ -1,6 +1,7 @@ -*- mode: org -*- #+TITLE: sisudoc spine (doc_reform) object-centric document abstraction #+DESCRIPTION: documents - structuring, publishing in multiple formats & search +#+SUMMARY: process markup document, create document abstraction #+FILETAGS: :spine:abstraction: #+AUTHOR: Ralph Amissah #+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] @@ -18,7 +19,8 @@ - [[./doc-reform.org][doc-reform.org]] [[./][org/]] * (Object-Centric) Document Abstraction -Process markup document, create document abstraction. + +- Process markup document, create document abstraction ** _module template_ :module:metadoc_from_src: @@ -51,25 +53,23 @@ template docAbstraction() { #+HEADER: :noweb yes #+BEGIN_SRC d // ↓ abstraction imports -import - std.algorithm, - std.container, - std.digest.sha, - std.file, - std.json, - std.path; -import - sisudoc.meta, - sisudoc.meta.defaults, - sisudoc.meta.rgx, - sisudoc.meta.metadoc_object_setter, - sisudoc.meta.rgx; +import std.algorithm; +import std.container; +import std.digest.sha; +import std.file; +import std.json; +import std.path; +import sisudoc.meta; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx; +import sisudoc.meta.metadoc_object_setter; +import sisudoc.meta.rgx; public import sisudoc.meta.metadoc_from_src_functions; mixin docAbstractionFunctions; #+END_SRC ** docAbstraction -*** abstraction summary +*** _toc_ abstraction summary #+NAME: docAbstraction #+HEADER: :noweb yes @@ -219,7 +219,7 @@ int cnt1 = 1; int cnt2 = 1; int cnt3 = 1; // abstraction init ↑ #+END_SRC -*** abstraction init substitutions +*** debug abstraction init substitutions #+NAME: docAbstractionInitSubstitutionsDebug #+HEADER: :noweb yes @@ -231,8 +231,8 @@ debug (substitutions) { } if (conf_make_meta.make.substitute) { foreach(substitution_pair; conf_make_meta.make.substitute) { - writeln("regex to match: ", substitution_pair[Substitute.match]); - writeln("substitution to make: ", substitution_pair[Substitute.markup]); + writeln("regex to match: ", substitution_pair[Substitute.match]); + writeln("substitution to make: ", substitution_pair[Substitute.markup]); } } if (conf_make_meta.make.bold) { @@ -250,7 +250,7 @@ debug (substitutions) { } #+END_SRC -*** loop source by line (large block) +*** _loop_ source by line (large block) #+NAME: docAbstractionMainLoopSrcByLine #+HEADER: :noweb yes @@ -883,7 +883,7 @@ _loopMarkupSrcByLineStruct loopMarkupSrcByLine( } #+END_SRC -*** post loop (consider and segment/break up further in code & org) +*** _post loop_ (consider and segment/break up further in code & org) #+NAME: docAbstractionPostMainLoop #+HEADER: :noweb yes @@ -1456,7 +1456,7 @@ debug(segnames) { } #+END_SRC -*** return structure +*** _return structure_ #+NAME: docAbstractionReturnsStruct #+HEADER: :noweb yes diff --git a/org/out_curate_metadata.org b/org/out_curate_metadata.org index f01229a..559f5e0 100644 --- a/org/out_curate_metadata.org +++ b/org/out_curate_metadata.org @@ -50,19 +50,17 @@ template spineMetaDocCurate() { #+NAME: metadoc_curate_imports #+BEGIN_SRC d -import - sisudoc.meta.defaults, - sisudoc.meta.rgx; -import - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx; +import std.array; +import std.exception; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.uni; +import std.utf; +import std.conv : to; #+END_SRC *** initialize :report: @@ -127,17 +125,15 @@ return hvst.curate; <<doc_header_including_copyright_and_license>> module sisudoc.meta.metadoc_curate_topics; @safe: - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.conv : to; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; mixin spineCurateMetadata; mixin InternalMarkup; template spineMetaDocCuratesTopics() { @@ -472,17 +468,15 @@ try { <<doc_header_including_copyright_and_license>> module sisudoc.meta.metadoc_curate_authors; @safe: - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.conv : to; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; mixin spineCurateMetadata; mixin InternalMarkup; template spineMetaDocCuratesAuthors() { diff --git a/org/out_latex.org b/org/out_latex.org index 9767286..9312827 100644 --- a/org/out_latex.org +++ b/org/out_latex.org @@ -41,9 +41,8 @@ module sisudoc.io_out.latex; #+HEADER: :noweb yes #+BEGIN_SRC d template paperLaTeX() { - import - std.format, - std.conv : to; + import std.format; + import std.conv : to; auto paperLaTeX() { <<Struct_shared_geometry_paper_dimensions>> return PaperType(); @@ -289,9 +288,8 @@ void outputLaTeX(D,M)( #+NAME: Initialize_output_style #+BEGIN_SRC d -import - std.format, - std.conv : to; +import std.format; +import std.conv : to; #+END_SRC **** write latex styles output :latex:out: @@ -663,15 +661,13 @@ fonts to try: #+NAME: ImportsAndMixins_imports #+BEGIN_SRC d -import - std.file, - std.outbuffer, - std.uri, - std.conv : to; -import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_latex; +import std.file; +import std.outbuffer; +import std.uri; +import std.conv : to; +import sisudoc.io_out; +import sisudoc.io_out.rgx; +import sisudoc.io_out.rgx_latex; mixin spineRgxOut; static auto rgx = RgxO(); mixin spineRgxLSC; diff --git a/org/out_metadata.org b/org/out_metadata.org index 92f3eda..7a080fa 100644 --- a/org/out_metadata.org +++ b/org/out_metadata.org @@ -47,11 +47,10 @@ template outputMetadata() { #+NAME: output_imports #+BEGIN_SRC d -import - std.digest.crc, - std.digest.sha, - std.file, - std.format; +import std.digest.crc; +import std.digest.sha; +import std.file; +import std.format; import sisudoc.io_out; mixin InternalMarkup; char[] metadata_; diff --git a/org/out_odt.org b/org/out_odt.org index 75ea565..3acc5ed 100644 --- a/org/out_odt.org +++ b/org/out_odt.org @@ -1041,20 +1041,17 @@ void outputODT(D,I)( #+NAME: output_imports #+BEGIN_SRC d -import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_xhtml; -import - std.file, - std.outbuffer, - std.uri, - std.zip, - std.conv : to; -import - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls, - sisudoc.io_out.xmls_css; +import sisudoc.io_out; +import sisudoc.io_out.rgx; +import sisudoc.io_out.rgx_xhtml; +import std.file; +import std.outbuffer; +import std.uri; +import std.zip; +import std.conv : to; +import sisudoc.io_out.create_zip_file; +import sisudoc.io_out.xmls; +import sisudoc.io_out.xmls_css; #+END_SRC *** make directory tree diff --git a/org/out_sqlite.org b/org/out_sqlite.org index 2d10d87..a6802f6 100644 --- a/org/out_sqlite.org +++ b/org/out_sqlite.org @@ -560,14 +560,12 @@ db.close; #+NAME: sqlite_imports #+BEGIN_SRC d -import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_xhtml; -import - // std.digest.sha, - std.file, - std.uri; +import sisudoc.io_out; +import sisudoc.io_out.rgx; +import sisudoc.io_out.rgx_xhtml; +import std.file; +import std.uri; +// import std.digest.sha; import std.conv : to; import std.typecons : Nullable; import d2sqlite3; diff --git a/org/out_src_pod.org b/org/out_src_pod.org index e72d332..4da9133 100644 --- a/org/out_src_pod.org +++ b/org/out_src_pod.org @@ -31,7 +31,7 @@ template spinePod() { <<output_imports>> void spinePod(T)(T doc_matters) { <<source_pod_init>> - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { try { { podArchive_directory_tree(doc_matters, pths_pod); @@ -69,18 +69,15 @@ template spinePod() { #+NAME: output_imports #+BEGIN_SRC d -import - sisudoc.meta.rgx_files, - sisudoc.io_out; -import - std.digest.sha, - std.file, - std.outbuffer, - std.zip, - std.conv : to; -import - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls; +import std.digest.sha; +import std.file; +import std.outbuffer; +import std.zip; +import std.conv : to; +import sisudoc.meta.rgx_files; +import sisudoc.io_out; +import sisudoc.io_out.create_zip_file; +import sisudoc.io_out.xmls; #+END_SRC *** init @@ -105,8 +102,8 @@ assert (doc_matters.src.filename.match(rgx_files.src_fn)); #+BEGIN_SRC d auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { auto pth_dr_doc_src = doc_matters.src_path_info; - if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) { - writeln(__LINE__, ": ", + if (doc_matters.opt.action.vox_gt2) { // correct + writeln(__LINE__, ":", __FILE__, ":\n", doc_matters.src.filename, " -> ", pths_pod.fn_doc(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod ); @@ -116,7 +113,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { string[string][string] _digests; { // bundle images - get digest foreach (image; doc_matters.srcs.image_list) { - debug(podimages) { + if (doc_matters.opt.action.vox_gt2) { writeln( pth_dr_doc_src.image_root.to!string, "/", image, " -> ", pths_pod.image_root(doc_matters.src.filename).zpod, "/", image @@ -139,7 +136,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { if (doc_matters.opt.action.source_or_pod) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_bin", fn_src_in, fn_src_out_pod_zip_base, zip); } } else { @@ -163,7 +160,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { if (doc_matters.opt.action.source_or_pod) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip); } } else { @@ -208,7 +205,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { if (doc_matters.opt.action.source_or_pod) { pod_filelist_yaml_string.writeln(_pm); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("string", _pm, fn_src_out_pod_zip_base, zip); } } @@ -228,11 +225,14 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { string fn_src_out_filesystem_lng = pths_pod.fn_doc(doc_matters.src.filename, _lang).filesystem_open_zpod.to!string; string _sstm = (doc_matters.pod.manifest_path ~ "/media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename); - // writeln(_sstm); - if (exists(_sstm)) { // what of language? - debug(io) { writeln("(io debug) src in found: ", _sstm); } + string _pth_file_sstm; + if (exists(_sstm)) { _pth_file_sstm = _sstm; + } else if (exists(fn_src_in)) { _pth_file_sstm = fn_src_in; + } + if (exists(_pth_file_sstm)) { // what of language? + debug(io) { writeln("(io debug) src in found: ", _pth_file_sstm); } { // take DIGEST write to pod file digests.txt - auto data = (cast(byte[]) (_sstm).read); + auto data = (cast(byte[]) (_pth_file_sstm).read); _digests[_lang]["sstm"] ~= data.sha256Of.toHexString ~ "::" ~ data.length.to!string ~ " - " ~ doc_matters.src.filename ~ " - [" ~ _lang ~ "]"; // writeln(data.sha256Of.toHexString, "::", data.length, " - ", doc_matters.src.filename); } @@ -240,11 +240,11 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { filelist_src_zpod_arr ~= fn_src_out_inside_pod; string _pod_to_markup_file = doc_matters.src.pod_name ~ "/" ~ "media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename; if (doc_matters.opt.action.source_or_pod) { - _sstm.copy(fn_src_out_filesystem_lng); + _pth_file_sstm.copy(fn_src_out_filesystem_lng); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { auto _rgx_sstm = regex(r"(?P<path_to_pod>\S+?)(?P<podname>[a-z_-]+)/(?P<from_root>media/text/)(?P<language>\S+?)/(?P<filename>\S+?\.ss[mt])"); - if (auto _x = _sstm.match(_rgx_sstm)){ + if (auto _x = _pth_file_sstm.match(_rgx_sstm)){ if (doc_matters.src.lng == doc_matters.pod.manifest_list_of_languages[$-1]) { // again wait until all language versions of .ssm parsed string _path_to_pod = _x.captures["path_to_pod"]; string _podname = _x.captures["podname"]; @@ -259,12 +259,12 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { } } } else { - zip = podArchive("file_path_text", _sstm, fn_src_out_pod_zip_base, zip); + zip = podArchive("file_path_text", _pth_file_sstm, fn_src_out_pod_zip_base, zip); } } } else { if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) { - writeln("WARNING (io) src in NOT found (markup source): ", _sstm); + writeln("WARNING (io) src in NOT found (markup source): \n", _sstm, "or in", fn_src_in); } } } @@ -308,7 +308,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { ).filesystem_open_zpod.to!string; _pth_mkup_src_in.copy(fn_src_out_filesystem); // check why here, thought dealt with elsewhere } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_text", _pth_mkup_src_in, _pth_mkup_src_out, zip); } } else { @@ -342,7 +342,7 @@ auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { if (doc_matters.opt.action.source_or_pod) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip); } } else { diff --git a/org/out_xmls.org b/org/out_xmls.org index 8d0b475..65afb8c 100644 --- a/org/out_xmls.org +++ b/org/out_xmls.org @@ -91,38 +91,34 @@ template outputXHTMLs() { #+NAME: output_imports_xml #+BEGIN_SRC d -import - std.file, - std.outbuffer, - std.uri, - std.conv : to; -import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.meta.rgx_files, - sisudoc.io_out.rgx_xhtml, - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls, - sisudoc.io_out.xmls_css; +import std.file; +import std.outbuffer; +import std.uri; +import std.conv : to; +import sisudoc.io_out; +import sisudoc.io_out.rgx; +import sisudoc.meta.rgx_files; +import sisudoc.io_out.rgx_xhtml; +import sisudoc.io_out.create_zip_file; +import sisudoc.io_out.xmls; +import sisudoc.io_out.xmls_css; #+END_SRC **** epub3 #+NAME: output_imports_epub #+BEGIN_SRC d -import - std.file, - std.outbuffer, - std.uri, - std.zip, - std.conv : to; -import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_xhtml, - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls, - sisudoc.io_out.xmls_css; +import std.file; +import std.outbuffer; +import std.uri; +import std.zip; +import std.conv : to; +import sisudoc.io_out; +import sisudoc.io_out.rgx; +import sisudoc.io_out.rgx_xhtml; +import sisudoc.io_out.create_zip_file; +import sisudoc.io_out.xmls; +import sisudoc.io_out.xmls_css; #+END_SRC *** misc diff --git a/org/out_zip.org b/org/out_zip.org index 5bd503b..5ffd1ae 100644 --- a/org/out_zip.org +++ b/org/out_zip.org @@ -28,11 +28,10 @@ module sisudoc.io_out.create_zip_file; @safe: template createZipFile() { - import - std.file, - std.outbuffer, - std.string, - std.zip; + import std.file; + import std.outbuffer; + import std.string; + import std.zip; void createZipFile( string zip_file_name, void[] compressed_zip_data, diff --git a/org/output_show.org b/org/output_show.org index 6f54451..ffea8b3 100644 --- a/org/output_show.org +++ b/org/output_show.org @@ -532,27 +532,25 @@ writefln( #+NAME: metadoc_show_imports_shared #+BEGIN_SRC d -import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; +import std.array; +import std.digest.crc; +import std.digest.sha; +import std.exception; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.uni; +import std.utf; +import std.conv : to; #+END_SRC *** imports #+NAME: metadoc_show_summary_imports #+BEGIN_SRC d -import - sisudoc.meta.defaults, - sisudoc.meta.rgx; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx; #+END_SRC *** initialize :report: diff --git a/org/spine.org b/org/spine.org index 05245f7..2b4b14e 100644 --- a/org/spine.org +++ b/org/spine.org @@ -125,52 +125,48 @@ string program_name = "spine"; #+NAME: imports_spine #+BEGIN_SRC d -import - std.algorithm, - std.datetime, - std.getopt, - std.file, - std.path, - std.process; -import - sisudoc.conf.compile_time_info, - sisudoc.meta, - sisudoc.meta.metadoc, - sisudoc.meta.metadoc_curate, - sisudoc.meta.metadoc_curate_authors, - sisudoc.meta.metadoc_curate_topics, - sisudoc.meta.metadoc_from_src, - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.meta.doc_debugs, - sisudoc.meta.rgx, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx_files, - sisudoc.io_in.paths_source, - sisudoc.io_in.read_config_files, - sisudoc.io_in.read_source_files, - sisudoc.io_out.hub; +import std.algorithm; +import std.datetime; +import std.getopt; +import std.file; +import std.path; +import std.process; +import sisudoc.conf.compile_time_info; +import sisudoc.meta; +import sisudoc.meta.metadoc; +import sisudoc.meta.metadoc_curate; +import sisudoc.meta.metadoc_curate_authors; +import sisudoc.meta.metadoc_curate_topics; +import sisudoc.meta.metadoc_from_src; +import sisudoc.meta.conf_make_meta_structs; +import sisudoc.meta.conf_make_meta_json; +import sisudoc.meta.defaults; +import sisudoc.meta.doc_debugs; +import sisudoc.meta.rgx; +import sisudoc.meta.rgx_yaml; +import sisudoc.meta.rgx_files; +import sisudoc.io_in.paths_source; +import sisudoc.io_in.read_config_files; +import sisudoc.io_in.read_source_files; +import sisudoc.io_out.hub; #+END_SRC ***** spine metadoc :spine: #+NAME: imports_spine_metadoc #+BEGIN_SRC d -import - std.datetime, - std.digest.crc, - std.digest.sha; -import - sisudoc.meta, - sisudoc.meta.metadoc_from_src, - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.io_in.paths_source, - sisudoc.io_in.read_config_files, - sisudoc.io_in.read_source_files, - sisudoc.io_out.hub; +import std.datetime; +import std.digest.crc; +import std.digest.sha; +import sisudoc.meta; +import sisudoc.meta.metadoc_from_src; +import sisudoc.meta.conf_make_meta_structs; +import sisudoc.meta.conf_make_meta_json; +import sisudoc.meta.defaults; +import sisudoc.io_in.paths_source; +import sisudoc.io_in.read_config_files; +import sisudoc.io_in.read_source_files; +import sisudoc.io_out.hub; #+END_SRC ****** notes diff --git a/org/spine_info.org b/org/spine_info.org index a2078fe..2d61c20 100644 --- a/org/spine_info.org +++ b/org/spine_info.org @@ -77,7 +77,7 @@ <<sisudoc_spine_README_command_examples_populate_db_text>> -,*** generate a cgi search form in d +,*** generate a cgi search form <<sisudoc_spine_README_command_examples_search_db_cgi_text>> @@ -85,7 +85,7 @@ <<sisudoc_spine_README_command_examples_compile_search_db_cgi_text>> -,*** create db & search form +,*** create db <<sisudoc_spine_README_command_examples_create_db_and_search_form_text>> @@ -196,7 +196,7 @@ <<sisudoc_spine_README_command_examples_compile_search_db_cgi_text>> -### create db & search form +### create db <<sisudoc_spine_README_command_examples_create_db_and_search_form_text>> @@ -624,23 +624,16 @@ for a document collection you can point to the document collection: #+NAME: sisudoc_spine_README_command_examples_search_db_cgi_text #+BEGIN_SRC text -spine -v --cgi-search-form-codegen \ - --output=/var/www/html \ - ~spineMarkupSamples/pod - -spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod +The CGI search form is built separately in the sisudoc-spine-search-cgi/ directory. -spine -v --cgi-search-form-codegen --config=~spineMarkupSamples/pod/.dr/config_local_site +Steps: +1. Clone the sisudoc-spine-search-cgi repository +2. Configure views/configuration.txt with your web server settings +3. Build the CGI binary using Nix or dub +4. Deploy the CGI binary to your web server's cgi-bin directory -spine --cgi-search-form-codegen --output=`echo ~webDocRoot` ~spineMarkupSamples/pod - -spine --cgi-search-form-codegen --cgi-sqlite-search-filename="spine_search" --output=`echo ~webDocRoot` - -spine -v --cgi-search-form-codegen \ - --sqlite-db-filename="spine.search.db" \ - --cgi-sqlite-search-filename="spine-search" \ - --output=/var/www/html \ - ~spineMarkupSamples/pod +For detailed instructions, see: + sisudoc-spine-search-cgi/README.md #+END_SRC #+NAME: sisudoc_spine_README_command_examples_compile_search_db_cgi_text @@ -676,9 +669,10 @@ cgi-bin directory #+BEGIN_SRC text spine -v \ --sqlite-db-create --sqlite-db-filename="spine.search.db" \ - --cgi-search-form-codegen --cgi-sqlite-search-filename="spine-search" \ --output=/var/www/html \ ~spineMarkupSamples/pod/* + +Note: The CGI search form is built separately in sisudoc-spine-search-cgi/ #+END_SRC #+NAME: sisudoc_spine_README_command_examples_html_with_links_to_search_form_text diff --git a/src/sisudoc/io_in/paths_source.d b/src/sisudoc/io_in/paths_source.d index d5fafa3..c30b5d5 100644 --- a/src/sisudoc/io_in/paths_source.d +++ b/src/sisudoc/io_in/paths_source.d @@ -54,16 +54,14 @@ +/ module sisudoc.io_in.paths_source; @safe: -import - std.array, - std.file, - std.path, - std.regex, - std.stdio, - std.conv : to; -import - sisudoc.meta.defaults, - sisudoc.meta.rgx_files; +import std.array; +import std.file; +import std.path; +import std.regex; +import std.stdio; +import std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx_files; template PodManifest() { mixin spineRgxFiles; static auto rgx_files = RgxFiles(); diff --git a/src/sisudoc/io_in/read_config_files.d b/src/sisudoc/io_in/read_config_files.d index 8da08f5..9a390d5 100644 --- a/src/sisudoc/io_in/read_config_files.d +++ b/src/sisudoc/io_in/read_config_files.d @@ -54,14 +54,12 @@ +/ module sisudoc.io_in.read_config_files; @safe: -import - std.file, - std.path; -import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; +import std.file; +import std.path; +import sisudoc.meta; +import sisudoc.io_in.paths_source; +import sisudoc.meta.rgx_files; +import sisudoc.meta.rgx; template readConfigSite() { @system final auto readConfigSite(Cf,O,Cfg)(Cf _conf_file_details, O _opt_action, Cfg _cfg) { mixin spineRgxIn; @@ -190,14 +188,12 @@ webserv: } } static template readConfigDoc() { - import - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; + import sisudoc.meta.rgx_files; + import sisudoc.meta.rgx; @system final auto readConfigDoc(M,E)(M _manifested, E _env) { mixin spineRgxIn; static auto rgx = RgxI(); @@ -246,14 +242,12 @@ static template readConfigDoc() { } } static template configReadSiteYAML() { - import - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; + import sisudoc.meta.rgx_files; + import sisudoc.meta.rgx; final YAMLDocument configReadSiteYAML(M,E)(M _manifested, E _env) { string _configuration = configReadInSiteYAML!()(_manifested, _env); auto _conf_file_details = configFilePaths!()(_manifested, _env); @@ -263,12 +257,10 @@ static template configReadSiteYAML() { } } static template configReadDocYAML() { - import - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; final YAMLDocument configReadDocYAML(M,E)(M _manifested, E _env) { string _configuration = configReadInDocYAML!()(_manifested, _env); auto _conf_file_details = configFilePaths!()(_manifested, _env); diff --git a/src/sisudoc/io_in/read_source_files.d b/src/sisudoc/io_in/read_source_files.d index c683d1e..428c119 100644 --- a/src/sisudoc/io_in/read_source_files.d +++ b/src/sisudoc/io_in/read_source_files.d @@ -55,15 +55,13 @@ module sisudoc.io_in.read_source_files; @safe: template spineRawMarkupContent() { - import - std.digest.sha, - std.file, - std.path; - import - sisudoc.meta, - sisudoc.io_in.paths_source, - sisudoc.meta.rgx_files, - sisudoc.meta.rgx; + import std.digest.sha; + import std.file; + import std.path; + import sisudoc.meta; + import sisudoc.io_in.paths_source; + import sisudoc.meta.rgx_files; + import sisudoc.meta.rgx; mixin spineRgxIn; static auto rgx = RgxI(); mixin spineRgxFiles; @@ -132,7 +130,7 @@ template spineRawMarkupContent() { sourcefile_body_content = _cii.contents; insert_file_list_get = _cii.insert_files.dup; images_list_get = _cii.images.dup; - } else if (_opt_action.source || _opt_action.pod) { + } else if (_opt_action.source_or_pod) { auto ins = Inserts(); ST_contents_inserts_images _cii = ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src); @@ -157,9 +155,8 @@ template spineRawMarkupContent() { } } struct MarkupRawUnit { - import - std.digest.sha, - std.file; + import std.digest.sha; + import std.file; final private string readInMarkupSource(in char[] fn_src) { enforce( exists(fn_src) != 0, @@ -297,7 +294,7 @@ template spineRawMarkupContent() { markup_sourcesubfile_insert_content.length ); } - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { _images ~= _extract_images(markup_sourcesubfile_insert_content); } auto ins = Inserts(); @@ -313,7 +310,7 @@ template spineRawMarkupContent() { +/ } else { contents_insert ~= line; // images to extract for image list? - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { string[] _image_linelist = _extract_images(line); if (_image_linelist.length > 0) { _images ~= _image_linelist; @@ -392,7 +389,7 @@ template spineRawMarkupContent() { fn_src_insert.to!string ); contents ~= contents_insert_st.insert_contents; - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { string[] _image_linelist = _extract_images(contents_insert_st.images); if (_image_linelist.length > 0) { _images ~= _image_linelist; @@ -410,7 +407,7 @@ template spineRawMarkupContent() { +/ } else { contents ~= line; - if (_opt_action.source || _opt_action.pod) { + if (_opt_action.source_or_pod) { string[] _image_linelist = _extract_images(line); if (_image_linelist.length > 0) { _images ~= _image_linelist; diff --git a/src/sisudoc/io_out/create_zip_file.d b/src/sisudoc/io_out/create_zip_file.d index e468253..7bd58bc 100644 --- a/src/sisudoc/io_out/create_zip_file.d +++ b/src/sisudoc/io_out/create_zip_file.d @@ -50,11 +50,10 @@ module sisudoc.io_out.create_zip_file; @safe: template createZipFile() { - import - std.file, - std.outbuffer, - std.string, - std.zip; + import std.file; + import std.outbuffer; + import std.string; + import std.zip; void createZipFile( string zip_file_name, void[] compressed_zip_data, diff --git a/src/sisudoc/io_out/epub3.d b/src/sisudoc/io_out/epub3.d index 610d6b8..77bf040 100644 --- a/src/sisudoc/io_out/epub3.d +++ b/src/sisudoc/io_out/epub3.d @@ -50,19 +50,17 @@ module sisudoc.io_out.epub3; @safe: template outputEPub3() { - import - std.file, - std.outbuffer, - std.uri, - std.zip, - std.conv : to; - import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_xhtml, - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls, - sisudoc.io_out.xmls_css; + import std.file; + import std.outbuffer; + import std.uri; + import std.zip; + import std.conv : to; + import sisudoc.io_out; + import sisudoc.io_out.rgx; + import sisudoc.io_out.rgx_xhtml; + import sisudoc.io_out.create_zip_file; + import sisudoc.io_out.xmls; + import sisudoc.io_out.xmls_css; mixin InternalMarkup; mixin outputXHTMLs; static auto rgx = RgxO(); diff --git a/src/sisudoc/io_out/html.d b/src/sisudoc/io_out/html.d index 6d3129a..5ca320c 100644 --- a/src/sisudoc/io_out/html.d +++ b/src/sisudoc/io_out/html.d @@ -50,19 +50,17 @@ module sisudoc.io_out.html; @safe: template outputHTML() { - import - std.file, - std.outbuffer, - std.uri, - std.conv : to; - import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.meta.rgx_files, - sisudoc.io_out.rgx_xhtml, - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls, - sisudoc.io_out.xmls_css; + import std.file; + import std.outbuffer; + import std.uri; + import std.conv : to; + import sisudoc.io_out; + import sisudoc.io_out.rgx; + import sisudoc.meta.rgx_files; + import sisudoc.io_out.rgx_xhtml; + import sisudoc.io_out.create_zip_file; + import sisudoc.io_out.xmls; + import sisudoc.io_out.xmls_css; mixin outputXHTMLs; void scroll(D)(D doc) { mixin spineRgxOut; diff --git a/src/sisudoc/io_out/html_snippet.d b/src/sisudoc/io_out/html_snippet.d index 9cc9259..7f1edea 100644 --- a/src/sisudoc/io_out/html_snippet.d +++ b/src/sisudoc/io_out/html_snippet.d @@ -50,16 +50,14 @@ module sisudoc.io_out.html_snippet; @safe: template htmlSnippet() { - import - std.file, - std.outbuffer, - std.format, - std.uri, - std.conv : to; - import - sisudoc.io_out.rgx, - sisudoc.meta.rgx_files, - sisudoc.io_out.rgx_xhtml; + import std.file; + import std.outbuffer; + import std.format; + import std.uri; + import std.conv : to; + import sisudoc.io_out.rgx; + import sisudoc.meta.rgx_files; + import sisudoc.io_out.rgx_xhtml; auto format_html_blank_page_guide_home()( string css_style, string home_url, diff --git a/src/sisudoc/io_out/latex.d b/src/sisudoc/io_out/latex.d index d26d502..7df91c3 100644 --- a/src/sisudoc/io_out/latex.d +++ b/src/sisudoc/io_out/latex.d @@ -50,9 +50,8 @@ module sisudoc.io_out.latex; @safe: template paperLaTeX() { - import - std.format, - std.conv : to; + import std.format; + import std.conv : to; auto paperLaTeX() { string mm(uint mmi) { string _mm = format(q"┃%smm┃", mmi.to!string); @@ -319,15 +318,13 @@ template paperLaTeX() { } } template outputLaTeX() { - import - std.file, - std.outbuffer, - std.uri, - std.conv : to; - import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_latex; + import std.file; + import std.outbuffer; + import std.uri; + import std.conv : to; + import sisudoc.io_out; + import sisudoc.io_out.rgx; + import sisudoc.io_out.rgx_latex; mixin spineRgxOut; static auto rgx = RgxO(); mixin spineRgxLSC; @@ -1487,9 +1484,8 @@ template outputLaTeXstyInit() { } } template outputLaTeXstyStatic() { - import - std.format, - std.conv : to; + import std.format; + import std.conv : to; string outputLaTeXstyStatic( bool generated_by, string name_version_and_compiler, @@ -1730,9 +1726,8 @@ template outputLaTeXstyStatic() { } } template outputLaTeXstyPaperSizeAndOrientation() { - import - std.format, - std.conv : to; + import std.format; + import std.conv : to; auto outputLaTeXstyPaperSizeAndOrientation(P)( P doc_sty_info, bool generated_by, diff --git a/src/sisudoc/io_out/metadata.d b/src/sisudoc/io_out/metadata.d index 4d540af..0d586d2 100644 --- a/src/sisudoc/io_out/metadata.d +++ b/src/sisudoc/io_out/metadata.d @@ -109,11 +109,10 @@ template outputMetadata() { } return o; } - import - std.digest.crc, - std.digest.sha, - std.file, - std.format; + import std.digest.crc; + import std.digest.sha; + import std.file; + import std.format; import sisudoc.io_out; mixin InternalMarkup; char[] metadata_; diff --git a/src/sisudoc/io_out/package.d b/src/sisudoc/io_out/package.d index 1ab72b0..7cc69ff 100644 --- a/src/sisudoc/io_out/package.d +++ b/src/sisudoc/io_out/package.d @@ -48,22 +48,20 @@ +/ module sisudoc.io_out; -public import - std.algorithm, - std.array, - std.container, - std.exception, - std.path, - std.process, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - // std.uni, - std.utf; -public import - sisudoc.share.defaults, - sisudoc.io_in.paths_source, - sisudoc.io_out.defaults, - sisudoc.io_out.paths_output; +public import std.algorithm; +public import std.array; +public import std.container; +public import std.exception; +public import std.path; +public import std.process; +public import std.range; +public import std.regex; +public import std.stdio; +public import std.string; +public import std.typecons; +// public import std.uni; +public import std.utf; +public import sisudoc.share.defaults; +public import sisudoc.io_in.paths_source; +public import sisudoc.io_out.defaults; +public import sisudoc.io_out.paths_output; diff --git a/src/sisudoc/io_out/paths_output.d b/src/sisudoc/io_out/paths_output.d index 72508fc..a5b73a0 100644 --- a/src/sisudoc/io_out/paths_output.d +++ b/src/sisudoc/io_out/paths_output.d @@ -52,13 +52,11 @@ +/ module sisudoc.io_out.paths_output; @safe: -import - std.array, - std.path, - std.regex, - std.stdio; -import - sisudoc.meta.rgx_files; +import std.array; +import std.path; +import std.regex; +import std.stdio; +import sisudoc.meta.rgx_files; template spineOutPaths() { auto spineOutPaths()( string output_pth_root, diff --git a/src/sisudoc/io_out/source_pod.d b/src/sisudoc/io_out/source_pod.d index a6253ab..6ac2590 100644 --- a/src/sisudoc/io_out/source_pod.d +++ b/src/sisudoc/io_out/source_pod.d @@ -50,18 +50,15 @@ module sisudoc.io_out.source_pod; @system: // is not @safe: use: @system: or @trusted: template spinePod() { - import - sisudoc.meta.rgx_files, - sisudoc.io_out; - import - std.digest.sha, - std.file, - std.outbuffer, - std.zip, - std.conv : to; - import - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls; + import std.digest.sha; + import std.file; + import std.outbuffer; + import std.zip; + import std.conv : to; + import sisudoc.meta.rgx_files; + import sisudoc.io_out; + import sisudoc.io_out.create_zip_file; + import sisudoc.io_out.xmls; void spinePod(T)(T doc_matters) { debug(asserts) { // static assert(is(typeof(doc_matters) == tuple)); @@ -73,7 +70,7 @@ template spinePod() { auto lang = Lang(); static auto rgx_files = RgxFiles(); assert (doc_matters.src.filename.match(rgx_files.src_fn)); - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { try { { podArchive_directory_tree(doc_matters, pths_pod); @@ -139,8 +136,8 @@ template spinePod() { } auto pod_zipMakeReady(M,P,S)(M doc_matters, P pths_pod, S _st) { auto pth_dr_doc_src = doc_matters.src_path_info; - if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) { - writeln(__LINE__, ": ", + if (doc_matters.opt.action.vox_gt2) { // correct + writeln(__LINE__, ":", __FILE__, ":\n", doc_matters.src.filename, " -> ", pths_pod.fn_doc(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod ); @@ -150,7 +147,7 @@ template spinePod() { string[string][string] _digests; { // bundle images - get digest foreach (image; doc_matters.srcs.image_list) { - debug(podimages) { + if (doc_matters.opt.action.vox_gt2) { writeln( pth_dr_doc_src.image_root.to!string, "/", image, " -> ", pths_pod.image_root(doc_matters.src.filename).zpod, "/", image @@ -173,7 +170,7 @@ template spinePod() { if (doc_matters.opt.action.source_or_pod) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_bin", fn_src_in, fn_src_out_pod_zip_base, zip); } } else { @@ -197,7 +194,7 @@ template spinePod() { if (doc_matters.opt.action.source_or_pod) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip); } } else { @@ -242,7 +239,7 @@ template spinePod() { if (doc_matters.opt.action.source_or_pod) { pod_filelist_yaml_string.writeln(_pm); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("string", _pm, fn_src_out_pod_zip_base, zip); } } @@ -262,11 +259,14 @@ template spinePod() { string fn_src_out_filesystem_lng = pths_pod.fn_doc(doc_matters.src.filename, _lang).filesystem_open_zpod.to!string; string _sstm = (doc_matters.pod.manifest_path ~ "/media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename); - // writeln(_sstm); - if (exists(_sstm)) { // what of language? - debug(io) { writeln("(io debug) src in found: ", _sstm); } + string _pth_file_sstm; + if (exists(_sstm)) { _pth_file_sstm = _sstm; + } else if (exists(fn_src_in)) { _pth_file_sstm = fn_src_in; + } + if (exists(_pth_file_sstm)) { // what of language? + debug(io) { writeln("(io debug) src in found: ", _pth_file_sstm); } { // take DIGEST write to pod file digests.txt - auto data = (cast(byte[]) (_sstm).read); + auto data = (cast(byte[]) (_pth_file_sstm).read); _digests[_lang]["sstm"] ~= data.sha256Of.toHexString ~ "::" ~ data.length.to!string ~ " - " ~ doc_matters.src.filename ~ " - [" ~ _lang ~ "]"; // writeln(data.sha256Of.toHexString, "::", data.length, " - ", doc_matters.src.filename); } @@ -274,11 +274,11 @@ template spinePod() { filelist_src_zpod_arr ~= fn_src_out_inside_pod; string _pod_to_markup_file = doc_matters.src.pod_name ~ "/" ~ "media/text/" ~ _lang ~ "/" ~ doc_matters.src.filename; if (doc_matters.opt.action.source_or_pod) { - _sstm.copy(fn_src_out_filesystem_lng); + _pth_file_sstm.copy(fn_src_out_filesystem_lng); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { auto _rgx_sstm = regex(r"(?P<path_to_pod>\S+?)(?P<podname>[a-z_-]+)/(?P<from_root>media/text/)(?P<language>\S+?)/(?P<filename>\S+?\.ss[mt])"); - if (auto _x = _sstm.match(_rgx_sstm)){ + if (auto _x = _pth_file_sstm.match(_rgx_sstm)){ if (doc_matters.src.lng == doc_matters.pod.manifest_list_of_languages[$-1]) { // again wait until all language versions of .ssm parsed string _path_to_pod = _x.captures["path_to_pod"]; string _podname = _x.captures["podname"]; @@ -293,12 +293,12 @@ template spinePod() { } } } else { - zip = podArchive("file_path_text", _sstm, fn_src_out_pod_zip_base, zip); + zip = podArchive("file_path_text", _pth_file_sstm, fn_src_out_pod_zip_base, zip); } } } else { if (doc_matters.opt.action.debug_do_pod && doc_matters.opt.action.vox_gt1) { - writeln("WARNING (io) src in NOT found (markup source): ", _sstm); + writeln("WARNING (io) src in NOT found (markup source): \n", _sstm, "or in", fn_src_in); } } } @@ -342,7 +342,7 @@ template spinePod() { ).filesystem_open_zpod.to!string; _pth_mkup_src_in.copy(fn_src_out_filesystem); // check why here, thought dealt with elsewhere } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_text", _pth_mkup_src_in, _pth_mkup_src_out, zip); } } else { @@ -376,7 +376,7 @@ template spinePod() { if (doc_matters.opt.action.source_or_pod) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt.action.pod) { + if (doc_matters.opt.action.source_or_pod) { zip = podArchive("file_path_text", fn_src_in, fn_src_out_pod_zip_base, zip); } } else { diff --git a/src/sisudoc/io_out/sqlite.d b/src/sisudoc/io_out/sqlite.d index ded6e9a..486b87e 100644 --- a/src/sisudoc/io_out/sqlite.d +++ b/src/sisudoc/io_out/sqlite.d @@ -48,14 +48,12 @@ +/ module sisudoc.io_out.sqlite; -import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.io_out.rgx_xhtml; -import - // std.digest.sha, - std.file, - std.uri; +import sisudoc.io_out; +import sisudoc.io_out.rgx; +import sisudoc.io_out.rgx_xhtml; +import std.file; +import std.uri; +// import std.digest.sha; import std.conv : to; import std.typecons : Nullable; import d2sqlite3; diff --git a/src/sisudoc/io_out/xmls.d b/src/sisudoc/io_out/xmls.d index 7fc5e51..1091aa5 100644 --- a/src/sisudoc/io_out/xmls.d +++ b/src/sisudoc/io_out/xmls.d @@ -50,19 +50,17 @@ module sisudoc.io_out.xmls; @safe: template outputXHTMLs() { - import - std.file, - std.outbuffer, - std.uri, - std.conv : to; - import - sisudoc.io_out, - sisudoc.io_out.rgx, - sisudoc.meta.rgx_files, - sisudoc.io_out.rgx_xhtml, - sisudoc.io_out.create_zip_file, - sisudoc.io_out.xmls, - sisudoc.io_out.xmls_css; + import std.file; + import std.outbuffer; + import std.uri; + import std.conv : to; + import sisudoc.io_out; + import sisudoc.io_out.rgx; + import sisudoc.meta.rgx_files; + import sisudoc.io_out.rgx_xhtml; + import sisudoc.io_out.create_zip_file; + import sisudoc.io_out.xmls; + import sisudoc.io_out.xmls_css; mixin spineRgxOut; mixin spineRgxXHTML; struct outputXHTMLs { diff --git a/src/sisudoc/meta/conf_make_meta_json.d b/src/sisudoc/meta/conf_make_meta_json.d index 44f2c5e..4e9e5cd 100644 --- a/src/sisudoc/meta/conf_make_meta_json.d +++ b/src/sisudoc/meta/conf_make_meta_json.d @@ -54,21 +54,19 @@ module sisudoc.meta.conf_make_meta_json; @safe: static template contentJSONtoSpineStruct() { - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; ConfComposite _struct_composite; auto contentJSONtoSpineStruct(C,J,M)(C _struct_composite, J _json, M _manifested, string _identifier) { mixin spineRgxIn; diff --git a/src/sisudoc/meta/conf_make_meta_structs.d b/src/sisudoc/meta/conf_make_meta_structs.d index 4738a57..9503c83 100644 --- a/src/sisudoc/meta/conf_make_meta_structs.d +++ b/src/sisudoc/meta/conf_make_meta_structs.d @@ -49,20 +49,18 @@ +/ module sisudoc.meta.conf_make_meta_structs; @safe: -import - std.exception, - std.json, - std.path, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; -import - sisudoc.meta.defaults, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; +import std.exception; +import std.json; +import std.path; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.utf; +import std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx_yaml; +import sisudoc.meta.rgx; mixin spineRgxIn; static auto rgx = RgxI(); mixin spineRgxYamlTags; diff --git a/src/sisudoc/meta/conf_make_meta_yaml.d b/src/sisudoc/meta/conf_make_meta_yaml.d index 98a92f9..4b56b51 100644 --- a/src/sisudoc/meta/conf_make_meta_yaml.d +++ b/src/sisudoc/meta/conf_make_meta_yaml.d @@ -54,22 +54,20 @@ module sisudoc.meta.conf_make_meta_yaml; @safe: template contentYAMLtoSpineStruct() { - import - std.algorithm, - std.array, - std.exception, - std.path, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.defaults, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.path; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx_yaml; + import sisudoc.meta.rgx; ConfComposite _struct_composite; @system ConfComposite contentYAMLtoSpineStruct(C,Y,M,O,Cfg)( C _struct_composite, @@ -896,9 +894,8 @@ template contentYAMLtoSpineStruct() { } template configParseYAMLreturnSpineStruct() { import dyaml; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; mixin contentYAMLtoSpineStruct; @system ConfComposite configParseYAMLreturnSpineStruct(T,M,O,Cfg)( T _document_struct, @@ -928,21 +925,18 @@ template configParseYAMLreturnSpineStruct() { } } template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() { - import - std.exception, - std.regex, - std.stdio, - // std.traits, - std.typecons, - std.utf, - std.conv : to; - import - dyaml; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; + import std.exception; + import std.regex; + import std.stdio; + // import std.traits; + import std.typecons; + import std.utf; + import std.conv : to; + import dyaml; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.rgx_yaml; + import sisudoc.meta.rgx; mixin spineRgxIn; mixin contentJSONtoSpineStruct; static auto rgx = RgxI(); diff --git a/src/sisudoc/meta/doc_debugs.d b/src/sisudoc/meta/doc_debugs.d index 35fd3de..b28ba2e 100644 --- a/src/sisudoc/meta/doc_debugs.d +++ b/src/sisudoc/meta/doc_debugs.d @@ -52,24 +52,22 @@ +/ module sisudoc.meta.doc_debugs; template spineDebugs() { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx_files; - import - std.algorithm, - std.array, - std.container, - std.exception, - std.json, - std.stdio, - std.file, - std.path, - std.range, - std.regex, - std.string, - std.typecons, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx_files; + import std.algorithm; + import std.array; + import std.container; + import std.exception; + import std.json; + import std.stdio; + import std.file; + import std.path; + import std.range; + import std.regex; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; auto spineDebugs(S,T)( const S contents, T doc_matters, diff --git a/src/sisudoc/meta/metadoc.d b/src/sisudoc/meta/metadoc.d index 5c3694e..ffe297e 100644 --- a/src/sisudoc/meta/metadoc.d +++ b/src/sisudoc/meta/metadoc.d @@ -50,20 +50,18 @@ module sisudoc.meta.metadoc; @safe: template spineAbstraction() { - import - std.datetime, - std.digest.crc, - std.digest.sha; - import - sisudoc.meta, - sisudoc.meta.metadoc_from_src, - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.io_in.paths_source, - sisudoc.io_in.read_config_files, - sisudoc.io_in.read_source_files, - sisudoc.io_out.hub; + import std.datetime; + import std.digest.crc; + import std.digest.sha; + import sisudoc.meta; + import sisudoc.meta.metadoc_from_src; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.defaults; + import sisudoc.io_in.paths_source; + import sisudoc.io_in.read_config_files; + import sisudoc.io_in.read_source_files; + import sisudoc.io_out.hub; mixin spineBiblio; mixin outputHub; enum makeMeta { make, meta } diff --git a/src/sisudoc/meta/metadoc_curate.d b/src/sisudoc/meta/metadoc_curate.d index bb7452a..da20b3e 100644 --- a/src/sisudoc/meta/metadoc_curate.d +++ b/src/sisudoc/meta/metadoc_curate.d @@ -54,19 +54,17 @@ template spineMetaDocCurate() { T doc_matters, H hvst, ) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; static auto mkup = InlineMarkup(); import sisudoc.io_out.paths_output; diff --git a/src/sisudoc/meta/metadoc_curate_authors.d b/src/sisudoc/meta/metadoc_curate_authors.d index c86d3e1..d8b5261 100644 --- a/src/sisudoc/meta/metadoc_curate_authors.d +++ b/src/sisudoc/meta/metadoc_curate_authors.d @@ -49,17 +49,15 @@ +/ module sisudoc.meta.metadoc_curate_authors; @safe: - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.conv : to; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; mixin spineCurateMetadata; mixin InternalMarkup; template spineMetaDocCuratesAuthors() { diff --git a/src/sisudoc/meta/metadoc_curate_topics.d b/src/sisudoc/meta/metadoc_curate_topics.d index fca3ff2..3045dcb 100644 --- a/src/sisudoc/meta/metadoc_curate_topics.d +++ b/src/sisudoc/meta/metadoc_curate_topics.d @@ -49,17 +49,15 @@ +/ module sisudoc.meta.metadoc_curate_topics; @safe: - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.conv : to; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; mixin spineCurateMetadata; mixin InternalMarkup; template spineMetaDocCuratesTopics() { diff --git a/src/sisudoc/meta/metadoc_from_src.d b/src/sisudoc/meta/metadoc_from_src.d index 4aa49dc..24ae935 100644 --- a/src/sisudoc/meta/metadoc_from_src.d +++ b/src/sisudoc/meta/metadoc_from_src.d @@ -54,19 +54,17 @@ module sisudoc.meta.metadoc_from_src; @safe: template docAbstraction() { // ↓ abstraction imports - import - std.algorithm, - std.container, - std.digest.sha, - std.file, - std.json, - std.path; - import - sisudoc.meta, - sisudoc.meta.defaults, - sisudoc.meta.rgx, - sisudoc.meta.metadoc_object_setter, - sisudoc.meta.rgx; + import std.algorithm; + import std.container; + import std.digest.sha; + import std.file; + import std.json; + import std.path; + import sisudoc.meta; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import sisudoc.meta.metadoc_object_setter; + import sisudoc.meta.rgx; public import sisudoc.meta.metadoc_from_src_functions; mixin docAbstractionFunctions; @system auto docAbstraction(CMM,Opt,Mf) ( @@ -214,8 +212,8 @@ template docAbstraction() { } if (conf_make_meta.make.substitute) { foreach(substitution_pair; conf_make_meta.make.substitute) { - writeln("regex to match: ", substitution_pair[Substitute.match]); - writeln("substitution to make: ", substitution_pair[Substitute.markup]); + writeln("regex to match: ", substitution_pair[Substitute.match]); + writeln("substitution to make: ", substitution_pair[Substitute.markup]); } } if (conf_make_meta.make.bold) { diff --git a/src/sisudoc/meta/metadoc_show_config.d b/src/sisudoc/meta/metadoc_show_config.d index 7434506..5bbeea6 100644 --- a/src/sisudoc/meta/metadoc_show_config.d +++ b/src/sisudoc/meta/metadoc_show_config.d @@ -54,21 +54,19 @@ template spineShowSiteConfig() { O opt_action, T config, ) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto char_repeat_number = 66; @@ -140,21 +138,19 @@ template spineShowSiteConfig() { } template spineShowConfig() { void spineShowConfig(T)(T doc_matters) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/metadoc_show_make.d b/src/sisudoc/meta/metadoc_show_make.d index a5e5608..57721cf 100644 --- a/src/sisudoc/meta/metadoc_show_make.d +++ b/src/sisudoc/meta/metadoc_show_make.d @@ -51,21 +51,19 @@ module sisudoc.meta.metadoc_show_make; @safe: template spineShowMake() { void spineShowMake(T)(T doc_matters) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/metadoc_show_metadata.d b/src/sisudoc/meta/metadoc_show_metadata.d index 4a7a177..331ab7f 100644 --- a/src/sisudoc/meta/metadoc_show_metadata.d +++ b/src/sisudoc/meta/metadoc_show_metadata.d @@ -51,21 +51,19 @@ module sisudoc.meta.metadoc_show_metadata; @safe: template spineShowMetaData() { void spineShowMetaData(T)(T doc_matters) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/metadoc_show_summary.d b/src/sisudoc/meta/metadoc_show_summary.d index 2ceb337..923473c 100644 --- a/src/sisudoc/meta/metadoc_show_summary.d +++ b/src/sisudoc/meta/metadoc_show_summary.d @@ -52,21 +52,19 @@ module sisudoc.meta.metadoc_show_summary; template spineMetaDocSummary() { void spineMetaDocSummary(D)(D doc) { auto doc_matters = doc.matters; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/package.d b/src/sisudoc/meta/package.d index d24afbb..911952b 100644 --- a/src/sisudoc/meta/package.d +++ b/src/sisudoc/meta/package.d @@ -48,17 +48,15 @@ +/ module sisudoc.meta; -public import - sisudoc.meta.defaults; +public import sisudoc.meta.defaults; /+ std +/ -public import - std.array, - std.exception, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - // std.uni, - std.utf, - std.conv : to; +public import std.array; +public import std.exception; +public import std.range; +public import std.regex; +public import std.stdio; +public import std.string; +public import std.typecons; +// public import std.uni; +public import std.utf; +public import std.conv : to; diff --git a/src/sisudoc/spine.d b/src/sisudoc/spine.d index 59789f6..75cd9d5 100755 --- a/src/sisudoc/spine.d +++ b/src/sisudoc/spine.d @@ -54,32 +54,30 @@ description "A SiSU inspired document parser written in D." homepage "https://sisudoc.org" +/ @safe: -import - std.algorithm, - std.datetime, - std.getopt, - std.file, - std.path, - std.process; -import - sisudoc.conf.compile_time_info, - sisudoc.meta, - sisudoc.meta.metadoc, - sisudoc.meta.metadoc_curate, - sisudoc.meta.metadoc_curate_authors, - sisudoc.meta.metadoc_curate_topics, - sisudoc.meta.metadoc_from_src, - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.meta.doc_debugs, - sisudoc.meta.rgx, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx_files, - sisudoc.io_in.paths_source, - sisudoc.io_in.read_config_files, - sisudoc.io_in.read_source_files, - sisudoc.io_out.hub; +import std.algorithm; +import std.datetime; +import std.getopt; +import std.file; +import std.path; +import std.process; +import sisudoc.conf.compile_time_info; +import sisudoc.meta; +import sisudoc.meta.metadoc; +import sisudoc.meta.metadoc_curate; +import sisudoc.meta.metadoc_curate_authors; +import sisudoc.meta.metadoc_curate_topics; +import sisudoc.meta.metadoc_from_src; +import sisudoc.meta.conf_make_meta_structs; +import sisudoc.meta.conf_make_meta_json; +import sisudoc.meta.defaults; +import sisudoc.meta.doc_debugs; +import sisudoc.meta.rgx; +import sisudoc.meta.rgx_yaml; +import sisudoc.meta.rgx_files; +import sisudoc.io_in.paths_source; +import sisudoc.io_in.read_config_files; +import sisudoc.io_in.read_source_files; +import sisudoc.io_out.hub; mixin(import("version.txt")); mixin(import("configuration.txt")); mixin CompileTimeInfo; |