From 5806a50b3258b02e18c8d04312ef70257ac9e067 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Wed, 27 Mar 2024 12:09:49 +0100 Subject: [PATCH 01/29] Create jekyll.yml --- .github/workflows/jekyll.yml | 64 ++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .github/workflows/jekyll.yml diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml new file mode 100644 index 0000000..61cb2f0 --- /dev/null +++ b/.github/workflows/jekyll.yml @@ -0,0 +1,64 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0 + with: + ruby-version: '3.1' # Not needed with a .ruby-version file + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + cache-version: 0 # Increment this number if you need to re-download cached gems + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + - name: Build with Jekyll + # Outputs to the './_site' directory by default + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + - name: Upload artifact + # Automatically uploads an artifact from the './_site' directory by default + uses: actions/upload-pages-artifact@v3 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From ca2b9c1d76c23f97d5b20a33d2f361079bcad963 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Wed, 27 Mar 2024 13:24:52 +0100 Subject: [PATCH 02/29] Copy content of README.md into index.md --- index.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/index.md b/index.md index d6e39c3..9c91b69 100644 --- a/index.md +++ b/index.md @@ -3,4 +3,76 @@ title: Home layout: home --- -Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg. Als es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy. Die Copy warnte das Blindtextchen, da, wo sie herkäme wäre sie [...] +![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) + +# Metafacture Documentation + +Metafacture is a toolkit for processing semi-structured data with a focus on library metadata. It provides a versatile set of tools for reading, writing and transforming data. Metafacture can be used as a stand-alone application via CLI or as a Java library in other applications. There is also a playground where you can test workflows. + +[Have a look here for a quick intro into metafacture.](./MF-in-5-min.md) + +This is the central place for the documentation about Metafacture. + +Metafacture comprises three main parts: **Framework**, **Flux** and one of the **Transformation-Modules Fix and Morph**. It can be extended with modules. + +> [!NOTE] +> With regard to the Transformation-Modules this documentation focusses on Fix instead of MORPH. If you want to find out more about MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). + + +Our goal with this repo is to collaboratively create comprehensive documentation on Metafacture in the [issue tracker](https://github.com/culturegraph/metafacture-documentation/issues?q=). Feel free to open issues not only for bugs or enhancements, but also questions about Metafacture usage, or to share your experiences. We hope that over time, in that way we can create useful tutorials, how-tos, and collect good practices for using Metafacture. + +__________________ + +Deciding which parts are relevant to you depends on the way you are using Metafacture: + +## Using Metafacture via playground or CLI + +> [!NOTE] +> No Java-Code is necessary!!! + +While working with the playground or the command line you only need [Flux](#flux) and the transformation module [Fix](#fix). +Have a look here for [Getting started](/Getting-Started.md). + +## Framework for Java integration/development + +If you plan to use Metafacture as a Java library or if you wish to add commands to Flux. You should get familar with the [Framework](#framework). + +__________________ + +## FLUX + +Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used as a command line. To use Flux you may download the binary distribution of Metafacture. + +For more information on how to use Flux, see the [Flux User Guide](/Flux-User-Guide.md). + +See [here a list for all available FLUX-Commands](/flux-commands.md). + +__________________ + +## FIX + +Metafix is a domain specific language for metadata transformation based on Catmandu FIX. The FIX object performing the transformation is used as part of a processing pipeline. + +If you are using **Metafacture with CLI or Playground** and therefore the Flux scripting language to build and run pipelines, use the `fix` command in your FLUX-Pipeline. + +If you are using **Metafacture as a Java library**, just create a Metafix object and add it to your pipeline (see also the [Framework User Guide](#framework)). + +The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](/Fix-User-Guide.md). + +See [here a list for all available FIX functions and a cookbook for using fix](/Fix-function-and-Cookbook.md). + +> [!NOTE] +> PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). + +__________________ + +## Framework + +> [!NOTE] +>Relevant for developers + +The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. + +For more information see the [Framework User Guide](/Framework-User-Guide.md). + + From 865d8ff75f3c8957b9273b29c4d1e7d6c76a9cc9 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Thu, 28 Mar 2024 10:41:45 +0100 Subject: [PATCH 03/29] Restructure files/pages, add YAML headers to generate the desired navigation --- ...ching a transformation with metafacture.md | 6 +++ .../Documentation-Maintainer-Guide.md | 7 +++ Getting-Started.md => docs/Getting-Started.md | 6 +++ LICENSE => docs/LICENSE | 0 docs/LICENSE.md | 27 ++++++++++ MF-in-5-min.md => docs/MF-in-5-min.md | 6 +++ .../fix/Fix-User-Guide.md | 7 +++ .../fix/Fix-function-and-Cookbook.md | 7 +++ docs/fix/fix.md | 19 +++++++ .../flux/Flux-User-Guide.md | 7 +++ .../flux/flux-commands.md | 7 +++ docs/flux/flux.md | 14 ++++++ .../java-integration/Framework-User-Guide.md | 7 +++ docs/java-integration/java-integration.md | 15 ++++++ index.md | 49 ++----------------- 15 files changed, 139 insertions(+), 45 deletions(-) rename Approaching a transformation with metafacture.md => docs/Approaching a transformation with metafacture.md (92%) rename Documentation-Maintainer-Guide.md => docs/Documentation-Maintainer-Guide.md (96%) rename Getting-Started.md => docs/Getting-Started.md (98%) rename LICENSE => docs/LICENSE (100%) create mode 100644 docs/LICENSE.md rename MF-in-5-min.md => docs/MF-in-5-min.md (99%) rename Fix-User-Guide.md => docs/fix/Fix-User-Guide.md (99%) rename Fix-function-and-Cookbook.md => docs/fix/Fix-function-and-Cookbook.md (99%) create mode 100644 docs/fix/fix.md rename Flux-User-Guide.md => docs/flux/Flux-User-Guide.md (99%) rename flux-commands.md => docs/flux/flux-commands.md (99%) create mode 100644 docs/flux/flux.md rename Framework-User-Guide.md => docs/java-integration/Framework-User-Guide.md (97%) create mode 100644 docs/java-integration/java-integration.md diff --git a/Approaching a transformation with metafacture.md b/docs/Approaching a transformation with metafacture.md similarity index 92% rename from Approaching a transformation with metafacture.md rename to docs/Approaching a transformation with metafacture.md index cbc326a..524ab4f 100644 --- a/Approaching a transformation with metafacture.md +++ b/docs/Approaching a transformation with metafacture.md @@ -1,3 +1,9 @@ +--- +layout: default +title: Approaching a transformation with metafacture +nav_order: 4 +--- + Every approach to transform metadata with metafacture is quite similiar: - You need to know the type and source of the input and the type and destination of the output: diff --git a/Documentation-Maintainer-Guide.md b/docs/Documentation-Maintainer-Guide.md similarity index 96% rename from Documentation-Maintainer-Guide.md rename to docs/Documentation-Maintainer-Guide.md index 735cd63..faddeca 100644 --- a/Documentation-Maintainer-Guide.md +++ b/docs/Documentation-Maintainer-Guide.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Maintainer Guide +nav_order: 8 +--- + +# Maintainer Guide ## how to change flux-commands.md diff --git a/Getting-Started.md b/docs/Getting-Started.md similarity index 98% rename from Getting-Started.md rename to docs/Getting-Started.md index e473475..27ff29e 100644 --- a/Getting-Started.md +++ b/docs/Getting-Started.md @@ -1,3 +1,9 @@ +--- +layout: default +title: Getting Started +nav_order: 2 +--- + ![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) diff --git a/LICENSE b/docs/LICENSE similarity index 100% rename from LICENSE rename to docs/LICENSE diff --git a/docs/LICENSE.md b/docs/LICENSE.md new file mode 100644 index 0000000..3d56621 --- /dev/null +++ b/docs/LICENSE.md @@ -0,0 +1,27 @@ +--- +layout: default +title: LICENSE +nav_order: 9 +--- + +MIT License + +Copyright (c) 2022 just-the-docs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/MF-in-5-min.md b/docs/MF-in-5-min.md similarity index 99% rename from MF-in-5-min.md rename to docs/MF-in-5-min.md index b4a2b5d..76e581e 100644 --- a/MF-in-5-min.md +++ b/docs/MF-in-5-min.md @@ -1,3 +1,9 @@ +--- +layout: default +title: 5 min Intro into MF +nav_order: 3 +--- + # Introduction - A quick 5 minute introduction to Metafacture ## HELLO WORLD diff --git a/Fix-User-Guide.md b/docs/fix/Fix-User-Guide.md similarity index 99% rename from Fix-User-Guide.md rename to docs/fix/Fix-User-Guide.md index 415d52c..503f7a6 100644 --- a/Fix-User-Guide.md +++ b/docs/fix/Fix-User-Guide.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Fix User Guide +parent: Fix +nav_order: 1 +--- + ![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) # Fix User Guide diff --git a/Fix-function-and-Cookbook.md b/docs/fix/Fix-function-and-Cookbook.md similarity index 99% rename from Fix-function-and-Cookbook.md rename to docs/fix/Fix-function-and-Cookbook.md index 8c882e5..02745ae 100644 --- a/Fix-function-and-Cookbook.md +++ b/docs/fix/Fix-function-and-Cookbook.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Fix Functions and Cookbook +parent: Fix +nav_order: 2 +--- + This page is a replication of the passage of the Fix Readme.md. ## Functions and cookbook diff --git a/docs/fix/fix.md b/docs/fix/fix.md new file mode 100644 index 0000000..de6fbf5 --- /dev/null +++ b/docs/fix/fix.md @@ -0,0 +1,19 @@ +--- +layout: default +title: Fix +nav_order: 6 +has_children: true +--- + +Metafix is a domain specific language for metadata transformation based on Catmandu FIX. The FIX object performing the transformation is used as part of a processing pipeline. + +If you are using **Metafacture with CLI or Playground** and therefore the Flux scripting language to build and run pipelines, use the `fix` command in your FLUX-Pipeline. + +If you are using **Metafacture as a Java library**, just create a Metafix object and add it to your pipeline (see also the [Framework User Guide](#framework)). + +The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](/Fix-User-Guide.md). + +See [here a list for all available FIX functions and a cookbook for using fix](/Fix-function-and-Cookbook.md). + +> [!NOTE] +> PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file diff --git a/Flux-User-Guide.md b/docs/flux/Flux-User-Guide.md similarity index 99% rename from Flux-User-Guide.md rename to docs/flux/Flux-User-Guide.md index eb13f3f..c1f6046 100644 --- a/Flux-User-Guide.md +++ b/docs/flux/Flux-User-Guide.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Flux User Guide +parent: Flux +nav_order: 1 +--- + ![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) # Flux User Guide diff --git a/flux-commands.md b/docs/flux/flux-commands.md similarity index 99% rename from flux-commands.md rename to docs/flux/flux-commands.md index 1e52834..66f26e5 100644 --- a/flux-commands.md +++ b/docs/flux/flux-commands.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Flux Commands +parent: Flux +nav_order: 2 +--- + Available flux commands ======================= diff --git a/docs/flux/flux.md b/docs/flux/flux.md new file mode 100644 index 0000000..2ae2cf0 --- /dev/null +++ b/docs/flux/flux.md @@ -0,0 +1,14 @@ +--- +layout: default +title: Flux +nav_order: 5 +has_children: true +--- + +# FLUX + +Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used as a command line. To use Flux you may download the binary distribution of Metafacture. + +For more information on how to use Flux, see the [Flux User Guide](/Flux-User-Guide.md). + +See [here a list for all available FLUX-Commands](/flux-commands.md). \ No newline at end of file diff --git a/Framework-User-Guide.md b/docs/java-integration/Framework-User-Guide.md similarity index 97% rename from Framework-User-Guide.md rename to docs/java-integration/Framework-User-Guide.md index 7c06e5a..0a03a75 100644 --- a/Framework-User-Guide.md +++ b/docs/java-integration/Framework-User-Guide.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Framework User Guide +parent: Java Integration +nav_order: 1 +--- + ![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) # Framework User Guide diff --git a/docs/java-integration/java-integration.md b/docs/java-integration/java-integration.md new file mode 100644 index 0000000..517432e --- /dev/null +++ b/docs/java-integration/java-integration.md @@ -0,0 +1,15 @@ +--- +layout: default +title: Java Integration +nav_order: 7 +has_children: true +--- + +## Framework for Java integration/development + +> [!NOTE] +>Relevant for developers + +The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. + +For more information see the [Framework User Guide](/Framework-User-Guide.md). \ No newline at end of file diff --git a/index.md b/index.md index 9c91b69..fd1fa71 100644 --- a/index.md +++ b/index.md @@ -1,6 +1,9 @@ --- +layout: default title: Home -layout: home +nav_order: 1 +description: "This is the central place for the documentation about Metafacture." +permalink: / --- ![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) @@ -32,47 +35,3 @@ Deciding which parts are relevant to you depends on the way you are using Metafa While working with the playground or the command line you only need [Flux](#flux) and the transformation module [Fix](#fix). Have a look here for [Getting started](/Getting-Started.md). - -## Framework for Java integration/development - -If you plan to use Metafacture as a Java library or if you wish to add commands to Flux. You should get familar with the [Framework](#framework). - -__________________ - -## FLUX - -Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used as a command line. To use Flux you may download the binary distribution of Metafacture. - -For more information on how to use Flux, see the [Flux User Guide](/Flux-User-Guide.md). - -See [here a list for all available FLUX-Commands](/flux-commands.md). - -__________________ - -## FIX - -Metafix is a domain specific language for metadata transformation based on Catmandu FIX. The FIX object performing the transformation is used as part of a processing pipeline. - -If you are using **Metafacture with CLI or Playground** and therefore the Flux scripting language to build and run pipelines, use the `fix` command in your FLUX-Pipeline. - -If you are using **Metafacture as a Java library**, just create a Metafix object and add it to your pipeline (see also the [Framework User Guide](#framework)). - -The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](/Fix-User-Guide.md). - -See [here a list for all available FIX functions and a cookbook for using fix](/Fix-function-and-Cookbook.md). - -> [!NOTE] -> PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). - -__________________ - -## Framework - -> [!NOTE] ->Relevant for developers - -The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. - -For more information see the [Framework User Guide](/Framework-User-Guide.md). - - From bfa7d8b434ae39c407025b4f9f3bc9b0d65da2a3 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Thu, 28 Mar 2024 12:49:43 +0100 Subject: [PATCH 04/29] Add logo to header/sidebar, remove from pages --- _config.yml | 6 +++++- assets/images/favicon.ico | Bin 0 -> 1581 bytes assets/images/metafacture_small.png | Bin 0 -> 14450 bytes docs/Getting-Started.md | 3 --- docs/fix/Fix-User-Guide.md | 2 -- docs/flux/Flux-User-Guide.md | 2 -- docs/java-integration/Framework-User-Guide.md | 2 -- index.md | 2 -- 8 files changed, 5 insertions(+), 12 deletions(-) create mode 100644 assets/images/favicon.ico create mode 100644 assets/images/metafacture_small.png diff --git a/_config.yml b/_config.yml index d05090c..bbc0dec 100644 --- a/_config.yml +++ b/_config.yml @@ -5,4 +5,8 @@ theme: just-the-docs url: https://Phu2.github.io/metafacture-documentation aux_links: - Template Repository: https://github.com/Phu2/metafacture-documentation + Metafacture Documentation on Github: https://github.com/Phu2/metafacture-documentation + +# Set a path/url to a logo that will be displayed instead of the title +logo: "/assets/images/metafacture_small.png" +favicon_ico: "/assets/images/favicon.ico" diff --git a/assets/images/favicon.ico b/assets/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4fd4115e27400cc991ab78832376a6ab370c9d16 GIT binary patch literal 1581 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 OLf%U%NR*2i2LB(zaTEst literal 0 HcmV?d00001 diff --git a/docs/Getting-Started.md b/docs/Getting-Started.md index 27ff29e..c26f62a 100644 --- a/docs/Getting-Started.md +++ b/docs/Getting-Started.md @@ -4,9 +4,6 @@ title: Getting Started nav_order: 2 --- -![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) - - # Getting started! ## Playground diff --git a/docs/fix/Fix-User-Guide.md b/docs/fix/Fix-User-Guide.md index 503f7a6..109aa12 100644 --- a/docs/fix/Fix-User-Guide.md +++ b/docs/fix/Fix-User-Guide.md @@ -5,8 +5,6 @@ parent: Fix nav_order: 1 --- -![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) - # Fix User Guide This document provides an introduction to the Metafacture Fix language (short: Metafix or Fix). The Fix language for Metafacture is introduced as an alternative to configuring data transformations with Metamorph. Inspired by Catmandu Fix, Metafix processes metadata not as a continuous data stream but as discrete records. diff --git a/docs/flux/Flux-User-Guide.md b/docs/flux/Flux-User-Guide.md index c1f6046..f4b83c7 100644 --- a/docs/flux/Flux-User-Guide.md +++ b/docs/flux/Flux-User-Guide.md @@ -5,8 +5,6 @@ parent: Flux nav_order: 1 --- -![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) - # Flux User Guide This document provides a quick introduction to Metafacture Flux, a domain specific language to build data flows for metadata processing. diff --git a/docs/java-integration/Framework-User-Guide.md b/docs/java-integration/Framework-User-Guide.md index 0a03a75..278e0fc 100644 --- a/docs/java-integration/Framework-User-Guide.md +++ b/docs/java-integration/Framework-User-Guide.md @@ -5,8 +5,6 @@ parent: Java Integration nav_order: 1 --- -![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) - # Framework User Guide > [!NOTE] diff --git a/index.md b/index.md index fd1fa71..9cd651c 100644 --- a/index.md +++ b/index.md @@ -6,8 +6,6 @@ description: "This is the central place for the documentation about Metafacture. permalink: / --- -![logo](https://github.com/culturegraph/metafacture-core/wiki/img/metafacture_small.png) - # Metafacture Documentation Metafacture is a toolkit for processing semi-structured data with a focus on library metadata. It provides a versatile set of tools for reading, writing and transforming data. Metafacture can be used as a stand-alone application via CLI or as a Java library in other applications. There is also a playground where you can test workflows. From 9d9df6dd4a9208a0b5c2dd00071b297c50f2fcf8 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Thu, 28 Mar 2024 12:51:04 +0100 Subject: [PATCH 05/29] Add footer --- _config.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/_config.yml b/_config.yml index bbc0dec..c93571b 100644 --- a/_config.yml +++ b/_config.yml @@ -10,3 +10,16 @@ aux_links: # Set a path/url to a logo that will be displayed instead of the title logo: "/assets/images/metafacture_small.png" favicon_ico: "/assets/images/favicon.ico" + +# Footer content +# appears at the bottom of every page's main content + +# Back to top link +back_to_top: true +back_to_top_text: "Back to top" + +footer_content: "Metafacture Documentation is maintained by the Open infrastructure team of hbz." + +# Footer last edited timestamp +last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter +last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html From 0788e9658b827a7076342ec9d7857c10ac4b3c93 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Thu, 28 Mar 2024 13:32:27 +0100 Subject: [PATCH 06/29] Add custom link color and font sizes --- _config.yml | 3 +++ _sass/color_schemes/metafacture.scss | 1 + _sass/custom/custom.scss | 4 ++++ 3 files changed, 8 insertions(+) create mode 100644 _sass/color_schemes/metafacture.scss create mode 100644 _sass/custom/custom.scss diff --git a/_config.yml b/_config.yml index c93571b..8b964f8 100644 --- a/_config.yml +++ b/_config.yml @@ -23,3 +23,6 @@ footer_content: "Metafacture Documentation is maintained by the Date: Thu, 28 Mar 2024 14:19:41 +0100 Subject: [PATCH 07/29] Fix links and some formatting --- docs/Getting-Started.md | 10 +++++----- docs/MF-in-5-min.md | 2 +- docs/fix/Fix-User-Guide.md | 4 ++-- ...Cookbook.md => Fix-functions-and-Cookbook.md} | 0 docs/fix/fix.md | 2 +- docs/flux/Flux-User-Guide.md | 16 +++++++++------- docs/flux/flux.md | 4 ++-- docs/java-integration/Framework-User-Guide.md | 2 +- docs/java-integration/java-integration.md | 2 +- index.md | 6 +++--- 10 files changed, 25 insertions(+), 23 deletions(-) rename docs/fix/{Fix-function-and-Cookbook.md => Fix-functions-and-Cookbook.md} (100%) diff --git a/docs/Getting-Started.md b/docs/Getting-Started.md index c26f62a..2faa073 100644 --- a/docs/Getting-Started.md +++ b/docs/Getting-Started.md @@ -10,11 +10,11 @@ nav_order: 2 The easiest way to get started with Metafacture is the Playground. Take a look at the [first example](https://metafacture.org/playground/?flux=PG_DATA%0A%7Cas-lines%0A%7Cdecode-formeta%0A%7Cfix%0A%7Cencode-xml%28rootTag%3D%22collection%22%29%0A%7Cprint%0A%3B&fix=move_field%28_id%2C+id%29%0Amove_field%28a%2C+title%29%0Apaste%28author%2C+b.v%2C+b.n%2C+%27~aus%27%2C+c%29%0Aretain%28id%2C+title%2C+author%29&data=1%7Ba%3A+Faust%2C+b+%7Bn%3A+Goethe%2C+v%3A+JW%7D%2C+c%3A+Weimar%7D%0A2%7Ba%3A+R%C3%A4uber%2C+b+%7Bn%3A+Schiller%2C+v%3A+F%7D%2C+c%3A+Weimar%7D&active-editor=fix) and run it by pressing the !["Process"](https://metafacture.org/img/process.png) button. Check out the other examples (first button, !["Load Examples"](https://metafacture.org/img/load-exmples.png)) for different input sources, transformations, and output formats. -For commands available in the Flux, see [the Flux commands documentation](/flux-commands.md). +For commands available in the Flux, see [the Flux commands documentation](/docs/flux/flux-commands.html). -For functions and usage of the Fix, see [the Fix functions and cookbook](/Fix-functions-and-cookbook). +For functions and usage of the Fix, see [the Fix functions and cookbook](/docs/fix/Fix-functions-and-cookbook.html). -For next steps get familar with [FLUX](/Flux-User-Guide.md) and [FIX](/Fix-User-Guide.md). And try out some Metafacture workflows. +For next steps get familar with [FLUX](/docs/flux/Flux-User-Guide.html) and [FIX](/docs/fix/Fix-User-Guide.html). And try out some Metafacture workflows. ## Command line @@ -27,7 +27,7 @@ To get started, you can export a workflow from the Playground (last button, !["E To set up IDE support for editing your Flux and Fix files, see [the IDE extensions page](https://metafacture.org/ide-extensions/index.html). -For next steps get familar with [FLUX](/Flux-User-Guide.md) and [FIX](/Fix-User-Guide.md). And try out some Metafacture workflows. +For next steps get familar with [FLUX](/docs/flux/Flux-User-Guide.html) and [FIX](/docs/fix/Fix-User-Guide.html). And try out some Metafacture workflows. ## Using Metafacture as a Java library @@ -58,4 +58,4 @@ To use Fix you would declare `metafix` instead of `metafacture-io` as in the exa Occasionally, we publish snapshot builds on [Sonatype OSS Repository](https://oss.sonatype.org/index.html#nexus-search;gav~org.metafacture~~~~~kw,versionexpand). The version number is derived from the branch name. Snapshot builds from the master branch always have the version `master-SNAPSHOT`. We also provide sometimes pre releases as github packages. -If you plan to use Metafacture as a Java library or if you wish to add commands to Flux you should get familar with the [Framework](/Framework-User-Guide.md). +If you plan to use Metafacture as a Java library or if you wish to add commands to Flux you should get familar with the [Framework](/docs/java-integration/Framework-User-Guide.html). diff --git a/docs/MF-in-5-min.md b/docs/MF-in-5-min.md index 76e581e..cfe7bfe 100644 --- a/docs/MF-in-5-min.md +++ b/docs/MF-in-5-min.md @@ -93,7 +93,7 @@ $ cat yaml2json.flux ## FIX LANGUAGE -Many data conversions need a mapping from one field to another field plus optional conversions of the data inside these fields. Metafacture provides the transformation module `fix` that uses the Catmandu-inspired Fix language to assist in these mappings. A full list Fix functions is available at https://github.com/metafacture/metafacture-documentation/blob/master/Fix-function-and-Cookbook.md#functions. +Many data conversions need a mapping from one field to another field plus optional conversions of the data inside these fields. Metafacture provides the transformation module `fix` that uses the Catmandu-inspired Fix language to assist in these mappings. See the [full list of Fix functions](/docs/fix/Fix-functions-and-Cookbook.html#functions). Fixes can be provided inline as text argument of the fix module in the Flux script, or as a pointer to a Fix script. A Fix script groups one or more fixes in a file. diff --git a/docs/fix/Fix-User-Guide.md b/docs/fix/Fix-User-Guide.md index 109aa12..fc7814a 100644 --- a/docs/fix/Fix-User-Guide.md +++ b/docs/fix/Fix-User-Guide.md @@ -10,7 +10,7 @@ nav_order: 1 This document provides an introduction to the Metafacture Fix language (short: Metafix or Fix). The Fix language for Metafacture is introduced as an alternative to configuring data transformations with Metamorph. Inspired by Catmandu Fix, Metafix processes metadata not as a continuous data stream but as discrete records. ## Part of a metafacture worflow -Metafacture Fix is a transformation module that can be used in a [Flux Workflow](/Flux-User-Guide.md), for this you have to use this in your pipeline: +Metafacture Fix is a transformation module that can be used in a [Flux Workflow](/docs/flux/Flux-User-Guide.html), for this you have to use this in your pipeline: Flux-Example: ```PERL @@ -90,7 +90,7 @@ do Bind(params,…) end ``` -Find here a [list of all functions, selectors, binds and conditionals](/Fix-function-and-Cookbook.md). +Find here a [list of all functions, selectors, binds and conditionals](//docs/fix/s-and-Cookbook.html). ## Addressing Pieces of Data: FIX-Path and the record structure in FIX diff --git a/docs/fix/Fix-function-and-Cookbook.md b/docs/fix/Fix-functions-and-Cookbook.md similarity index 100% rename from docs/fix/Fix-function-and-Cookbook.md rename to docs/fix/Fix-functions-and-Cookbook.md diff --git a/docs/fix/fix.md b/docs/fix/fix.md index de6fbf5..63e36ce 100644 --- a/docs/fix/fix.md +++ b/docs/fix/fix.md @@ -13,7 +13,7 @@ If you are using **Metafacture as a Java library**, just create a Metafix object The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](/Fix-User-Guide.md). -See [here a list for all available FIX functions and a cookbook for using fix](/Fix-function-and-Cookbook.md). +See [here a list for all available FIX functions and a cookbook for using fix](//docs/fix/Fix-functions-and-Cookbook.html). > [!NOTE] > PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file diff --git a/docs/flux/Flux-User-Guide.md b/docs/flux/Flux-User-Guide.md index f4b83c7..d5f9387 100644 --- a/docs/flux/Flux-User-Guide.md +++ b/docs/flux/Flux-User-Guide.md @@ -51,6 +51,7 @@ This sets the variable `var1` to the value 'value1' and `var2` to the value 'val ## Writing Flux files The following snippet shows a simple flux file: + ```c //declare variables default file = FLUX_DIR + "10.marc21"; @@ -65,8 +66,9 @@ file | write("stdout") ; ``` + In the first section [variables](#variables) are declared, in the second, we [define the flow](#flow-definitions). -A flow is a combination of different [FLUX commands. Here is a list to all available Flux-Commands.](https://github.com/metafacture/metafacture-documentation/blob/master/flux-commands.md) +A flow is a combination of different [FLUX commands. Here is a list to all available Flux-Commands.](/docs/flux/flux-commands.html) Linebreaks are optional, but help concerning readability. One can add comments with `//`. Semicolons `;` mark the end of a variable assignment or flow definition. @@ -90,7 +92,7 @@ The syntax for defining flows takes its cues from bash pipes. Commands are conca Some commands take a constructor argument. It is provided within brackets: `command("arg")`. Furthermore, some commands have named options. These are set as follows `command(optionname="arg1",annotheroption="arg2")` or with constructor argument: `command("arg",option="arg2")`. -To learn about the available options of a command, execute Flux without arguments - it will list all available commands, including options. Or simply have a look at the [list of available FLUX commands.](https://github.com/metafacture/metafacture-documentation/blob/master/flux-commands.md) +To learn about the available options of a command, execute Flux without arguments - it will list all available commands, including options. Or simply have a look at the [list of available FLUX commands.](/flux-commands.md) To some commands the entire environment can be given as an argument. This is done with the `*` character: `fix("tranformation.fix", *)`. In this case Metafix gains access to all variable assignments made in Flux. @@ -98,7 +100,7 @@ To some commands the entire environment can be given as an argument. This is don Note that unlike shell pipes, the data flowing between Flux commands is _typed_. This means that only commands with matching signatures can be combined. Commands expect a certain input and provide a certain output like: `StreamReceiver, `Object`, `Reader` and others. -To lookup the signatures, again: execute Flux without arguments or see: [[Metafix-User-Guide#parameters-to-metafix-definitions]]). It will list all available commands, including signatures. Or simply have a look at the [list of available FLUX commands.](https://github.com/metafacture/metafacture-documentation/blob/master/flux-commands.md) +To lookup the signatures, again: execute Flux without arguments or see: [[Metafix-User-Guide#parameters-to-metafix-definitions]]). It will list all available commands, including signatures. Or simply have a look at the [list of available FLUX commands.](/docs/flux/flux-commands.html) ### Variables Variables are always Strings and can be concatenated with the `+` operator. Escape sequences follow the Java String conventions: `\n`=line break, `\t`=tab, `\\`=\, `\u0024`=unicode character, etc. @@ -113,16 +115,16 @@ Flux supports single line C/Java-style comments: `//comment`. ## Overview of the commands and some examples -1. Have a look at the [List of available FLUX commands](https://github.com/metafacture/metafacture-documentation/blob/master/flux-commands.md) or execute the flux without arguments to get a short help text along with a list of all registered commands. This is the list of FLUX commands mentioned already above. -2. There are several example flux files along with sample data in the folder `examples/`: https://github.com/metafacture/metafacture-core/tree/master/metafacture-runner/src/main/dist/examples +1. Have a look at the [List of available FLUX commands](/flux-commands.md) or execute the flux without arguments to get a short help text along with a list of all registered commands. This is the list of FLUX commands mentioned already above. +2. There are several example flux files along with sample data in the repo folder `examples/`: [https://github.com/metafacture/metafacture-core/tree/master/metafacture-runner/src/main/dist/examples](https://github.com/metafacture/metafacture-core/tree/master/metafacture-runner/src/main/dist/examples) _________________________ -# For developers: +## For developers: > [!NOTE] > Coding in JAVA. -## Adding new Commands +### Adding new Commands Add your class and a descriptive flux shortcut to `flux-commands.properties`. This file acts as a lookup table for flux commands. Use the proper file, i.e. the one residing in the same module where your newly created class resides. If you have e.g. created a class in the module `metafacture-biblio`, you add the flux-command to https://github.com/metafacture/metafacture-core/blob/master/metafacture-biblio/src/main/resources/flux-commands.properties. Recompile. That's all to add a command. diff --git a/docs/flux/flux.md b/docs/flux/flux.md index 2ae2cf0..9bd6e69 100644 --- a/docs/flux/flux.md +++ b/docs/flux/flux.md @@ -9,6 +9,6 @@ has_children: true Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used as a command line. To use Flux you may download the binary distribution of Metafacture. -For more information on how to use Flux, see the [Flux User Guide](/Flux-User-Guide.md). +For more information on how to use Flux, see the [Flux User Guide](/docs/flux/Flux-User-Guide.html). -See [here a list for all available FLUX-Commands](/flux-commands.md). \ No newline at end of file +See [here a list for all available FLUX-Commands](/docs/flux/flux-commands.html). \ No newline at end of file diff --git a/docs/java-integration/Framework-User-Guide.md b/docs/java-integration/Framework-User-Guide.md index 278e0fc..e987add 100644 --- a/docs/java-integration/Framework-User-Guide.md +++ b/docs/java-integration/Framework-User-Guide.md @@ -8,7 +8,7 @@ nav_order: 1 # Framework User Guide > [!NOTE] ->Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/Flux-User-Guide.md). +>Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/docs/flux/Flux-User-Guide.html). This page explains how to create a Metafacture objects and how to assemble them to form a processing pipeline. We use as an example a simple pipeline containing a Metafix instance. diff --git a/docs/java-integration/java-integration.md b/docs/java-integration/java-integration.md index 517432e..772d082 100644 --- a/docs/java-integration/java-integration.md +++ b/docs/java-integration/java-integration.md @@ -12,4 +12,4 @@ has_children: true The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. -For more information see the [Framework User Guide](/Framework-User-Guide.md). \ No newline at end of file +For more information see the [Framework User Guide](/docs/java-integration/Framework-User-Guide.html). \ No newline at end of file diff --git a/index.md b/index.md index 9cd651c..2ed31ce 100644 --- a/index.md +++ b/index.md @@ -10,7 +10,7 @@ permalink: / Metafacture is a toolkit for processing semi-structured data with a focus on library metadata. It provides a versatile set of tools for reading, writing and transforming data. Metafacture can be used as a stand-alone application via CLI or as a Java library in other applications. There is also a playground where you can test workflows. -[Have a look here for a quick intro into metafacture.](./MF-in-5-min.md) +[Have a look here for a quick intro into metafacture.](./docs/MF-in-5-min.html) This is the central place for the documentation about Metafacture. @@ -31,5 +31,5 @@ Deciding which parts are relevant to you depends on the way you are using Metafa > [!NOTE] > No Java-Code is necessary!!! -While working with the playground or the command line you only need [Flux](#flux) and the transformation module [Fix](#fix). -Have a look here for [Getting started](/Getting-Started.md). +While working with the playground or the command line you only need [Flux](/docs/flux/flux.html) and the transformation module [Fix](/docs/fix/fix.html). +Have a look here for [Getting started](/docs/Getting-Started.html). From d0fe9a507da83551759dff029818167ecd83a874 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Thu, 28 Mar 2024 14:37:35 +0100 Subject: [PATCH 08/29] Fix link --- docs/MF-in-5-min.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MF-in-5-min.md b/docs/MF-in-5-min.md index cfe7bfe..b844c70 100644 --- a/docs/MF-in-5-min.md +++ b/docs/MF-in-5-min.md @@ -179,6 +179,6 @@ The 245 field with its subfields of each MARC record is mapped to the title fiel The `retain` Fix function keeps only the title field in the output. (In contrast to Catmandu there are no special marc or pica fixes since the internal handling of records and elements is more generic. Also the internal serialization of MARC is not as complex as in Catmandu.) -Now you should be ready to [get started](./Getting-Started.md). +Now you should be ready to [get started](/docs/Getting-Started.html). (Note: This mini introduction to Metafacture is inspired by the mini introduction to Catmandu here: https://metacpan.org/dist/Catmandu/view/lib/Catmandu/Introduction.pod) From 99971ae68cb4436b918bc01857b2bcb100c695c2 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Thu, 28 Mar 2024 14:58:31 +0100 Subject: [PATCH 09/29] Adjust some search options --- _config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 8b964f8..dec85c6 100644 --- a/_config.yml +++ b/_config.yml @@ -25,4 +25,8 @@ last_edit_timestamp: true # show or hide edit time - page must have `last_modifi last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html # Custom colors, see _sass/color_schemes/metafacture.scss -color_scheme: metafacture \ No newline at end of file +color_scheme: metafacture + +# see https://just-the-docs.github.io/just-the-docs/docs/search/#search-granularity +search.heading_level: 6 +search.previews: 6 \ No newline at end of file From c3448311d8706082fbc4e109cda398db3ed4ce17 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Thu, 28 Mar 2024 15:08:59 +0100 Subject: [PATCH 10/29] Update _config.yml --- _config.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index dec85c6..53f50c9 100644 --- a/_config.yml +++ b/_config.yml @@ -28,5 +28,6 @@ last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https:/ color_scheme: metafacture # see https://just-the-docs.github.io/just-the-docs/docs/search/#search-granularity -search.heading_level: 6 -search.previews: 6 \ No newline at end of file +search: + heading_level: 6 + previews: 6 From 123d229f25152c13185ef6f7a2037eb8d0b30581 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Thu, 28 Mar 2024 15:14:35 +0100 Subject: [PATCH 11/29] Update index.md Missing part for deciding which part of the documentation is relevant for you. --- index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/index.md b/index.md index 2ed31ce..b841e7c 100644 --- a/index.md +++ b/index.md @@ -33,3 +33,8 @@ Deciding which parts are relevant to you depends on the way you are using Metafa While working with the playground or the command line you only need [Flux](/docs/flux/flux.html) and the transformation module [Fix](/docs/fix/fix.html). Have a look here for [Getting started](/docs/Getting-Started.html). + + +## Framework for Java integration/development + +If you plan to use Metafacture as a Java library or if you wish to add commands to Flux. You should get familar with the [Framework](#framework). From cfc200d07a810bd2ff0ad9cc03cb910c2ff417e6 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Tue, 2 Apr 2024 08:33:27 +0200 Subject: [PATCH 12/29] Add transparent logo --- assets/images/metafacture_small.png | Bin 14450 -> 24792 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/images/metafacture_small.png b/assets/images/metafacture_small.png index b409ae82beb3c2c00797c30c23a138fc03f3a754..c0a990d219bbe506e0723e41cc13dee33963e8fc 100644 GIT binary patch literal 24792 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 OLf%U%NR*2i2LB(zaTEst From e59f6b9a24e80dbf4988dbf25c458daa36fbfcff Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Tue, 2 Apr 2024 16:29:00 +0200 Subject: [PATCH 13/29] Change url from Phu2 to metafacture --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 53f50c9..7ef59e9 100644 --- a/_config.yml +++ b/_config.yml @@ -2,10 +2,10 @@ title: Metafacture Documentation description: This is the central place for the documentation about Metafacture. theme: just-the-docs -url: https://Phu2.github.io/metafacture-documentation +url: https://metafacture.github.io/metafacture-documentation aux_links: - Metafacture Documentation on Github: https://github.com/Phu2/metafacture-documentation + Metafacture Documentation on Github: https://github.com/metafacture/metafacture-documentation # Set a path/url to a logo that will be displayed instead of the title logo: "/assets/images/metafacture_small.png" From 6cb778d4ab64cbc144ced95e35609ef77dc5bee0 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Tue, 2 Apr 2024 16:32:35 +0200 Subject: [PATCH 14/29] Delete workflow file as create or update workflow is not allowed using personal access token --- .github/workflows/jekyll.yml | 64 ------------------------------------ 1 file changed, 64 deletions(-) delete mode 100644 .github/workflows/jekyll.yml diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml deleted file mode 100644 index 61cb2f0..0000000 --- a/.github/workflows/jekyll.yml +++ /dev/null @@ -1,64 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["master"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Ruby - uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0 - with: - ruby-version: '3.1' # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - cache-version: 0 # Increment this number if you need to re-download cached gems - - name: Setup Pages - id: pages - uses: actions/configure-pages@v4 - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" - env: - JEKYLL_ENV: production - - name: Upload artifact - # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@v3 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 From d3b6a634e26496b5fb10f051aadec30c90a511c7 Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Wed, 3 Apr 2024 10:09:38 +0200 Subject: [PATCH 15/29] Add Gemfile --- Gemfile | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Gemfile diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..d5810e3 --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +source 'https://rubygems.org' + +gem "jekyll", "~> 4.3.3" # installed by `gem jekyll` +# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2 + +gem "just-the-docs", "0.8.1" # pinned to the current release +# gem "just-the-docs" # always download the latest release From 6be8781bd9a5543dfcf1c9f791b39ec2b192fc09 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Wed, 3 Apr 2024 11:30:34 +0200 Subject: [PATCH 16/29] Change callout for notes #28 --- docs/fix/fix.md | 2 +- docs/flux/Flux-User-Guide.md | 2 +- docs/java-integration/Framework-User-Guide.md | 4 ++-- docs/java-integration/java-integration.md | 4 ++-- index.md | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/fix/fix.md b/docs/fix/fix.md index 63e36ce..087f940 100644 --- a/docs/fix/fix.md +++ b/docs/fix/fix.md @@ -15,5 +15,5 @@ The transformation itself is declared in a fix-object which can be a file. For m See [here a list for all available FIX functions and a cookbook for using fix](//docs/fix/Fix-functions-and-Cookbook.html). -> [!NOTE] +{: .note } > PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file diff --git a/docs/flux/Flux-User-Guide.md b/docs/flux/Flux-User-Guide.md index d5f9387..1049fe6 100644 --- a/docs/flux/Flux-User-Guide.md +++ b/docs/flux/Flux-User-Guide.md @@ -121,7 +121,7 @@ Flux supports single line C/Java-style comments: `//comment`. _________________________ ## For developers: -> [!NOTE] +{: .note } > Coding in JAVA. ### Adding new Commands diff --git a/docs/java-integration/Framework-User-Guide.md b/docs/java-integration/Framework-User-Guide.md index e987add..b38e079 100644 --- a/docs/java-integration/Framework-User-Guide.md +++ b/docs/java-integration/Framework-User-Guide.md @@ -7,8 +7,8 @@ nav_order: 1 # Framework User Guide -> [!NOTE] ->Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/docs/flux/Flux-User-Guide.html). +{: .note } +> Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/docs/flux/Flux-User-Guide.html). This page explains how to create a Metafacture objects and how to assemble them to form a processing pipeline. We use as an example a simple pipeline containing a Metafix instance. diff --git a/docs/java-integration/java-integration.md b/docs/java-integration/java-integration.md index 772d082..1d64011 100644 --- a/docs/java-integration/java-integration.md +++ b/docs/java-integration/java-integration.md @@ -7,8 +7,8 @@ has_children: true ## Framework for Java integration/development -> [!NOTE] ->Relevant for developers +{: .note } +> Relevant for developers The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. diff --git a/index.md b/index.md index b841e7c..aed69b8 100644 --- a/index.md +++ b/index.md @@ -16,7 +16,7 @@ This is the central place for the documentation about Metafacture. Metafacture comprises three main parts: **Framework**, **Flux** and one of the **Transformation-Modules Fix and Morph**. It can be extended with modules. -> [!NOTE] +{: .note } > With regard to the Transformation-Modules this documentation focusses on Fix instead of MORPH. If you want to find out more about MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). @@ -28,7 +28,7 @@ Deciding which parts are relevant to you depends on the way you are using Metafa ## Using Metafacture via playground or CLI -> [!NOTE] +{: .note } > No Java-Code is necessary!!! While working with the playground or the command line you only need [Flux](/docs/flux/flux.html) and the transformation module [Fix](/docs/fix/fix.html). From 75959f83578665edc685b06e3549bf9f6b4d9384 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Wed, 3 Apr 2024 11:45:34 +0200 Subject: [PATCH 17/29] Adjust note callout #28 --- docs/fix/fix.md | 2 +- docs/flux/Flux-User-Guide.md | 2 +- docs/java-integration/Framework-User-Guide.md | 2 +- docs/java-integration/java-integration.md | 2 +- index.md | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/fix/fix.md b/docs/fix/fix.md index 087f940..63e277d 100644 --- a/docs/fix/fix.md +++ b/docs/fix/fix.md @@ -16,4 +16,4 @@ The transformation itself is declared in a fix-object which can be a file. For m See [here a list for all available FIX functions and a cookbook for using fix](//docs/fix/Fix-functions-and-Cookbook.html). {: .note } -> PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file +PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file diff --git a/docs/flux/Flux-User-Guide.md b/docs/flux/Flux-User-Guide.md index 1049fe6..2b1779d 100644 --- a/docs/flux/Flux-User-Guide.md +++ b/docs/flux/Flux-User-Guide.md @@ -122,7 +122,7 @@ _________________________ ## For developers: {: .note } -> Coding in JAVA. +Coding in JAVA. ### Adding new Commands Add your class and a descriptive flux shortcut to `flux-commands.properties`. This file acts as a lookup table for flux commands. Use the proper file, i.e. the one residing in the same module where your newly created class resides. If you have e.g. created a class in the module `metafacture-biblio`, you add the flux-command to https://github.com/metafacture/metafacture-core/blob/master/metafacture-biblio/src/main/resources/flux-commands.properties. diff --git a/docs/java-integration/Framework-User-Guide.md b/docs/java-integration/Framework-User-Guide.md index b38e079..462b862 100644 --- a/docs/java-integration/Framework-User-Guide.md +++ b/docs/java-integration/Framework-User-Guide.md @@ -8,7 +8,7 @@ nav_order: 1 # Framework User Guide {: .note } -> Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/docs/flux/Flux-User-Guide.html). +Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/docs/flux/Flux-User-Guide.html). This page explains how to create a Metafacture objects and how to assemble them to form a processing pipeline. We use as an example a simple pipeline containing a Metafix instance. diff --git a/docs/java-integration/java-integration.md b/docs/java-integration/java-integration.md index 1d64011..f41c51f 100644 --- a/docs/java-integration/java-integration.md +++ b/docs/java-integration/java-integration.md @@ -8,7 +8,7 @@ has_children: true ## Framework for Java integration/development {: .note } -> Relevant for developers +Relevant for developers The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. diff --git a/index.md b/index.md index aed69b8..ceb2204 100644 --- a/index.md +++ b/index.md @@ -17,7 +17,7 @@ This is the central place for the documentation about Metafacture. Metafacture comprises three main parts: **Framework**, **Flux** and one of the **Transformation-Modules Fix and Morph**. It can be extended with modules. {: .note } -> With regard to the Transformation-Modules this documentation focusses on Fix instead of MORPH. If you want to find out more about MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). +With regard to the Transformation-Modules this documentation focusses on Fix instead of MORPH. If you want to find out more about MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). Our goal with this repo is to collaboratively create comprehensive documentation on Metafacture in the [issue tracker](https://github.com/culturegraph/metafacture-documentation/issues?q=). Feel free to open issues not only for bugs or enhancements, but also questions about Metafacture usage, or to share your experiences. We hope that over time, in that way we can create useful tutorials, how-tos, and collect good practices for using Metafacture. @@ -29,7 +29,7 @@ Deciding which parts are relevant to you depends on the way you are using Metafa ## Using Metafacture via playground or CLI {: .note } -> No Java-Code is necessary!!! +No Java-Code is necessary!!! While working with the playground or the command line you only need [Flux](/docs/flux/flux.html) and the transformation module [Fix](/docs/fix/fix.html). Have a look here for [Getting started](/docs/Getting-Started.html). From 6c1659c26d68df1c06e9e22e38487b7a6d99478d Mon Sep 17 00:00:00 2001 From: Phu Tu Date: Wed, 3 Apr 2024 12:17:27 +0200 Subject: [PATCH 18/29] Configure callouts --- _config.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/_config.yml b/_config.yml index 7ef59e9..56e96df 100644 --- a/_config.yml +++ b/_config.yml @@ -31,3 +31,21 @@ color_scheme: metafacture search: heading_level: 6 previews: 6 + +# Callouts, see https://just-the-docs.com/docs/configuration/#callouts +callouts_level: quiet # or loud +callouts: + highlight: + color: yellow + important: + title: Important + color: blue + new: + title: New + color: green + note: + title: Note + color: purple + warning: + title: Warning + color: red \ No newline at end of file From fbb9576748a77ccac0ac5c97c5e400bef22841c7 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Tue, 9 Apr 2024 21:33:45 +0200 Subject: [PATCH 19/29] Update Fix-functions-and-Cookbook.md Bring the documentation to status of Fix Release 1.0.0 https://github.com/metafacture/metafacture-fix/releases/tag/1.0.0 --- docs/fix/Fix-functions-and-Cookbook.md | 74 +++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/docs/fix/Fix-functions-and-Cookbook.md b/docs/fix/Fix-functions-and-Cookbook.md index 02745ae..58acb51 100644 --- a/docs/fix/Fix-functions-and-Cookbook.md +++ b/docs/fix/Fix-functions-and-Cookbook.md @@ -5,7 +5,7 @@ parent: Fix nav_order: 2 --- -This page is a replication of the passage of the Fix Readme.md. +This page is a replication of the passage [Fix Functions and Cookbook](https://github.com/metafacture/metafacture-fix?tab=readme-ov-file#functions-and-cookbook) of the Fix Readme.md. Status: [Fix Release 1.0.0](https://github.com/metafacture/metafacture-fix/releases/tag/1.0.0) ## Functions and cookbook @@ -73,6 +73,8 @@ Does nothing. It is used for benchmarking in Catmandu. nothing() ``` +[Example in Playground](https://metafacture.org/playground/?example=nothing) + ##### `put_filemap` Defines an external map for [lookup](#lookup) from a file or a URL. Maps with more than 2 columns are supported but are reduced to a defined key and a value column. @@ -81,6 +83,8 @@ Defines an external map for [lookup](#lookup) from a file or a URL. Maps with mo put_filemap("", "", sep_char: "\t") ``` +[Example in Playground](https://metafacture.org/playground/?example=put_filemap) + The separator (`sep_char`) will vary depending on the source file, e.g.: | Type | Separator | @@ -110,6 +114,8 @@ put_map("", ) ``` +[Example in Playground](https://metafacture.org/playground/?example=put_map) + ##### `put_rdfmap` Defines an external RDF map for lookup from a file or an HTTP(S) resource. @@ -121,6 +127,8 @@ put_rdfmap("", "", target: "") put_rdfmap("", "", target: "", select_language: "") ``` +[Example in Playground](https://metafacture.org/playground/?example=put_rdfmap) + ##### `put_var` Defines a single global variable that can be referenced with `$[]`. @@ -129,6 +137,8 @@ Defines a single global variable that can be referenced with `$[]` put_var("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=put_var) + ##### `put_vars` Defines multiple global variables that can be referenced with `$[]`. @@ -140,6 +150,8 @@ put_vars( ) ``` +[Example in Playground](https://metafacture.org/playground/?example=put_vars) + #### Record-level functions ##### `add_field` @@ -150,6 +162,8 @@ Creates a field with a defined value. add_field("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=add_field) + ##### `array` Converts a hash/object into an array. @@ -184,6 +198,8 @@ end call_macro(""[, ...]) ``` +[Example in Playground](https://metafacture.org/playground/?example=call_macro) + ##### `copy_field` Copies a field from an existing field. @@ -192,6 +208,9 @@ Copies a field from an existing field. copy_field("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=copy_field) + + ##### `format` Replaces the value with a formatted (`sprintf`-like) version. @@ -224,6 +243,9 @@ Moves a field from an existing field. Can be used to rename a field. move_field("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=move_field) + + ##### `parse_text` Parses a text into an array or hash of values. @@ -255,6 +277,8 @@ paste("my.string", "~Hi", "a", "~how are you?") # "my.string": "Hi eeny how are you?" ``` +[Example in Playground](https://metafacture.org/playground/?example=paste) + ##### `print_record` Prints the current record as JSON either to standard output or to a file. @@ -304,6 +328,8 @@ Removes a field. remove_field("") ``` +[Example in Playground](https://metafacture.org/playground/?example=remove_field) + ##### `rename` Replaces a regular expression pattern in subfield names of a field. Does not change the name of the source field itself. @@ -312,6 +338,8 @@ Replaces a regular expression pattern in subfield names of a field. Does not cha rename("", "", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=rename) + ##### `retain` Deletes all fields except the ones listed (incl. subfields). @@ -320,6 +348,8 @@ Deletes all fields except the ones listed (incl. subfields). retain(""[, ...]) ``` +[Example in Playground](https://metafacture.org/playground/?example=retain) + ##### `set_array` Creates a new array (with optional values). @@ -329,6 +359,8 @@ set_array("") set_array("", ""[, ...]) ``` +[Example in Playground](https://metafacture.org/playground/?example=set_array) + ##### `set_field` Creates (or replaces) a field with a defined value. @@ -368,6 +400,8 @@ Deletes empty fields, arrays and objects. vacuum() ``` +[Example in Playground](https://metafacture.org/playground/?example=vacuum) + #### Field-level functions ##### `append` @@ -378,6 +412,8 @@ Adds a string at the end of a field value. append("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=append) + ##### `capitalize` Upcases the first character in a field value. @@ -386,6 +422,8 @@ Upcases the first character in a field value. capitalize("") ``` +[Example in Playground](https://metafacture.org/playground/?example=capitalize) + ##### `count` Counts the number of elements in an array or a hash and replaces the field value with this number. @@ -402,6 +440,8 @@ Downcases all characters in a field value. downcase("") ``` +[Example in Playground](https://metafacture.org/playground/?example=downcase) + ##### `filter` Only keeps field values that match the regular expression pattern. Works only with array of strings/repeated fields. @@ -418,6 +458,8 @@ Flattens a nested array field. flatten("") ``` +[Example in Playground](https://metafacture.org/playground/?example=flatten) + ##### `from_json` Replaces the string with its JSON deserialization. @@ -452,6 +494,8 @@ Options: isbn(""[, to: ""][, verify_check_digit: ""][, error_string: ""]) ``` +[Example in Playground](https://metafacture.org/playground/?example=isbn) + ##### `join_field` Joins an array of strings into a single string. @@ -460,6 +504,8 @@ Joins an array of strings into a single string. join_field("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=join_field) + ##### `lookup` Looks up matching values in a map and replaces the field value with this match. [External files](#put_filemap), [internal maps](#put_map) as well as [RDF resources](#put_rdfmap) can be used. @@ -527,6 +573,8 @@ Adds a string at the beginning of a field value. prepend("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=prepend) + ##### `replace_all` Replaces a regular expression pattern in field values with a replacement string. Regexp capturing is possible; refer to capturing groups by number (`$`) or name (`${}`). @@ -535,6 +583,8 @@ Replaces a regular expression pattern in field values with a replacement string. replace_all("", "", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=replace_all) + ##### `reverse` Reverses the character order of a string or the element order of an array. @@ -553,6 +603,8 @@ sort_field("", reverse: "true") sort_field("", numeric: "true") ``` +[Example in Playground](https://metafacture.org/playground/?example=sort_field) + ##### `split_field` Splits a string into an array and replaces the field value with this array. @@ -561,6 +613,8 @@ Splits a string into an array and replaces the field value with this array. split_field("", "") ``` +[Example in Playground](https://metafacture.org/playground/?example=split_field) + ##### `substring` Replaces a string with its substring as defined by the start position (offset) and length. @@ -598,6 +652,8 @@ Deletes whitespace at the beginning and the end of a field value. trim("") ``` +[Example in Playground](https://metafacture.org/playground/?example=trim) + ##### `uniq` Deletes duplicate values in an array. @@ -606,6 +662,9 @@ Deletes duplicate values in an array. uniq("") ``` +[Example in Playground](https://metafacture.org/playground/?example=uniq) + + ##### `upcase` Upcases all characters in a field value. @@ -614,6 +673,8 @@ Upcases all characters in a field value. upcase("") ``` +[Example in Playground](https://metafacture.org/playground/?example=upcase) + ##### `uri_encode` Encodes a field value as URI. Aka percent-encoding. @@ -645,6 +706,8 @@ if end ``` +[Example in Playground](https://metafacture.org/playground/?example=reject) + ### Binds #### `do list` @@ -657,6 +720,8 @@ do list(path: "") end ``` +[Example in Playground](https://metafacture.org/playground/?example=do_list) + Only the current element is accessible in this case (as the root element). When specifying a variable name for the current element, the record remains accessible as the root element and the current element is accessible through the variable name: @@ -667,6 +732,8 @@ do list(path: "", "var": "") end ``` +[Example in Playground](https://metafacture.org/playground/?example=do_list_with_var) + #### `do list_as` Iterates over each _named_ element of an array (like [`do list`](#do-list) with a variable name). If multiple arrays are given, iterates over the _corresponding_ elements from each array (i.e., all elements with the same array index, skipping elements whose arrays have already been exhausted). @@ -700,6 +767,8 @@ do once() end ``` +[Example in Playground](https://metafacture.org/playground/?example=do_once) + In order to execute multiple blocks only once, tag them with unique identifiers: ```perl @@ -736,6 +805,8 @@ end call_macro(""[, ...]) ``` +[Example in Playground](https://metafacture.org/playground/?example=do_put_macro) + ### Conditionals Conditionals start with `if` in case of affirming the condition or `unless` rejecting the condition. @@ -871,4 +942,3 @@ Executes the functions if/unless the field value does not match the regular expr ##### `str_match` Executes the functions if/unless the string matches the regular expression pattern. - From d199d789117fba3971ded859d74bb73dcfc8035c Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Fri, 19 Apr 2024 14:00:53 +0200 Subject: [PATCH 20/29] Update MF-in-5-min.md (#42) --- docs/MF-in-5-min.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/MF-in-5-min.md b/docs/MF-in-5-min.md index b844c70..f3f7428 100644 --- a/docs/MF-in-5-min.md +++ b/docs/MF-in-5-min.md @@ -167,12 +167,12 @@ retain("title", "id") | as-records | decode-marc21 | fix("titles.fix") -| encode-csv +| encode-csv(includeHeader="true") | print ; ``` -[Example in Playground](https://metafacture.org/playground/?flux=%22https%3A//raw.githubusercontent.com/metafacture/metafacture-core/master/metafacture-runner/src/main/dist/examples/read/marc21/10.marc21%22%0A%7C+open-http%0A%7C+as-lines%0A%7C+decode-marc21%0A%7C+fix%28transformationFile%29%0A%7C+encode-csv%0A%7C+print%0A%3B&transformation=set_array%28%22title%22%29%0Acopy_field%28%22245%3F%3F.%3F%22%2C%22title.%24append%22%29%0Ajoin_field%28%22title%22%29%0Acopy_field%28%22001%22%2C%22id%22%29%0Aretain%28%22title%22%2C+%22id%22%29) +[Example in Playground](https://metafacture.org/playground/?flux=%22https%3A//raw.githubusercontent.com/metafacture/metafacture-tutorial/main/data/sample.marc21%22%0A%7C+open-http%0A%7C+as-lines%0A%7C+decode-marc21%0A%7C+fix%28transformationFile%29%0A%7C+encode-csv%28includeheader%3D%22true%22%29%0A%7C+print%0A%3B&transformation=set_array%28%22title%22%29%0Acopy_field%28%22245%3F%3F.%3F%22%2C%22title.%24append%22%29%0Ajoin_field%28%22title%22%29%0Acopy_field%28%22001%22%2C%22id%22%29%0Aretain%28%22title%22%2C+%22id%22%29) In the example above marc data is converted to a csv file. The 245 field with its subfields of each MARC record is mapped to the title field. From 2864245bedc11707bc17c2136e66ca7b8fae08fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20B=C3=BClte?= Date: Wed, 24 Apr 2024 14:13:39 +0200 Subject: [PATCH 21/29] Update README.md for new format #28 --- README.md | 65 +++++-------------------------------------------------- index.md | 2 +- 2 files changed, 6 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 317b894..8ad39d9 100644 --- a/README.md +++ b/README.md @@ -2,71 +2,16 @@ # Metafacture Documentation -Metafacture is a toolkit for processing semi-structured data with a focus on library metadata. It provides a versatile set of tools for reading, writing and transforming data. Metafacture can be used as a stand-alone application via CLI or as a Java library in other applications. There is also a playground where you can test workflows. +Metafacture is a toolkit for processing semi-structured data with a focus on library metadata +For the documentation see: http://metafacture.github.io/metafacture-documentation/ -[Have a look here for a quick intro into metafacture.](./MF-in-5-min.md) +This repo is the central place for the documentation about Metafacture that we render using the jekyll template [Just the docs](https://github.com/just-the-docs/just-the-docs). -This is the central place for the documentation about Metafacture. - -Metafacture comprises three main parts: **Framework**, **Flux** and one of the **Transformation-Modules Fix and Morph**. It can be extended with modules. +The content pages can be found [here](/docs/) > [!NOTE] > With regard to the Transformation-Modules this documentation focusses on Fix instead of MORPH. If you want to find out more about MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). -Our goal with this repo is to collaboratively create comprehensive documentation on Metafacture in the [issue tracker](https://github.com/culturegraph/metafacture-documentation/issues?q=). Feel free to open issues not only for bugs or enhancements, but also questions about Metafacture usage, or to share your experiences. We hope that over time, in that way we can create useful tutorials, how-tos, and collect good practices for using Metafacture. - -__________________ - -Deciding which parts are relevant to you depends on the way you are using Metafacture: - -## Using Metafacture via playground or CLI - -> [!NOTE] -> No Java-Code is necessary!!! - -While working with the playground or the command line you only need [Flux](#flux) and the transformation module [Fix](#fix). -Have a look here for [Getting started](/Getting-Started.md). - -## Framework for Java integration/development - -If you plan to use Metafacture as a Java library or if you wish to add commands to Flux. You should get familar with the [Framework](#framework). - -__________________ - -## FLUX - -Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used as a command line. To use Flux you may download the binary distribution of Metafacture. - -For more information on how to use Flux, see the [Flux User Guide](/Flux-User-Guide.md). - -See [here a list for all available FLUX-Commands](/flux-commands.md). - -__________________ - -## FIX - -Metafix is a domain specific language for metadata transformation based on Catmandu FIX. The FIX object performing the transformation is used as part of a processing pipeline. - -If you are using **Metafacture with CLI or Playground** and therefore the Flux scripting language to build and run pipelines, use the `fix` command in your FLUX-Pipeline. - -If you are using **Metafacture as a Java library**, just create a Metafix object and add it to your pipeline (see also the [Framework User Guide](#framework)). - -The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](/Fix-User-Guide.md). - -See [here a list for all available FIX functions and a cookbook for using fix](/Fix-function-and-Cookbook.md). - -> [!NOTE] -> PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). - -__________________ - -## Framework - -> [!NOTE] ->Relevant for developers - -The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. - -For more information see the [Framework User Guide](/Framework-User-Guide.md). +Our goal with this repo is to collaboratively create comprehensive documentation on Metafacture in the [issue tracker](https://github.com/metafacture/metafacture-documentation/issues?q=). Feel free to open issues not only for bugs or enhancements, but also questions about Metafacture usage, or to share your experiences. We hope that over time, in that way we can create useful tutorials, how-tos, and collect good practices for using Metafacture. diff --git a/index.md b/index.md index ceb2204..5dbead6 100644 --- a/index.md +++ b/index.md @@ -20,7 +20,7 @@ Metafacture comprises three main parts: **Framework**, **Flux** and one of the * With regard to the Transformation-Modules this documentation focusses on Fix instead of MORPH. If you want to find out more about MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). -Our goal with this repo is to collaboratively create comprehensive documentation on Metafacture in the [issue tracker](https://github.com/culturegraph/metafacture-documentation/issues?q=). Feel free to open issues not only for bugs or enhancements, but also questions about Metafacture usage, or to share your experiences. We hope that over time, in that way we can create useful tutorials, how-tos, and collect good practices for using Metafacture. +Our goal with this repo is to collaboratively create comprehensive documentation on Metafacture in the [issue tracker](https://github.com/metafacture/metafacture-documentation/issues?q=). Feel free to open issues not only for bugs or enhancements, but also questions about Metafacture usage, or to share your experiences. We hope that over time, in that way we can create useful tutorials, how-tos, and collect good practices for using Metafacture. __________________ From 59f489568595a3f02a78dbab698cc10c1849a49a Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Mon, 6 May 2024 10:39:28 +0200 Subject: [PATCH 22/29] Update Getting-Started.md --- docs/Getting-Started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Getting-Started.md b/docs/Getting-Started.md index 2faa073..644af9d 100644 --- a/docs/Getting-Started.md +++ b/docs/Getting-Started.md @@ -8,7 +8,7 @@ nav_order: 2 ## Playground -The easiest way to get started with Metafacture is the Playground. Take a look at the [first example](https://metafacture.org/playground/?flux=PG_DATA%0A%7Cas-lines%0A%7Cdecode-formeta%0A%7Cfix%0A%7Cencode-xml%28rootTag%3D%22collection%22%29%0A%7Cprint%0A%3B&fix=move_field%28_id%2C+id%29%0Amove_field%28a%2C+title%29%0Apaste%28author%2C+b.v%2C+b.n%2C+%27~aus%27%2C+c%29%0Aretain%28id%2C+title%2C+author%29&data=1%7Ba%3A+Faust%2C+b+%7Bn%3A+Goethe%2C+v%3A+JW%7D%2C+c%3A+Weimar%7D%0A2%7Ba%3A+R%C3%A4uber%2C+b+%7Bn%3A+Schiller%2C+v%3A+F%7D%2C+c%3A+Weimar%7D&active-editor=fix) and run it by pressing the !["Process"](https://metafacture.org/img/process.png) button. Check out the other examples (first button, !["Load Examples"](https://metafacture.org/img/load-exmples.png)) for different input sources, transformations, and output formats. +The easiest way to get started with Metafacture is the Playground. Take a look at the [first example](https://metafacture.org/playground/?example=encode-xml) and run it by pressing the !["Process"](https://metafacture.org/img/process.png) button. Check out the other examples (first button, !["Load Examples"](https://metafacture.org/img/load-exmples.png)) for different input sources, transformations, and output formats. For commands available in the Flux, see [the Flux commands documentation](/docs/flux/flux-commands.html). From 0f5224505c81c0c2114aea4d239a09e0ea5cd57b Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Mon, 6 May 2024 10:52:18 +0200 Subject: [PATCH 23/29] Update Documentation-Maintainer-Guide.md --- docs/Documentation-Maintainer-Guide.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Documentation-Maintainer-Guide.md b/docs/Documentation-Maintainer-Guide.md index faddeca..1f517f0 100644 --- a/docs/Documentation-Maintainer-Guide.md +++ b/docs/Documentation-Maintainer-Guide.md @@ -37,7 +37,7 @@ The option's name is produced by cutting away the "set" from the methods name, l "BatchSize" which is then lowercased. The parameter of this option is generated from the parameter type of the method - here an "int"eger. -## how to publish flux-commands.md +## how to publish docs/flux/flux-commands.md If you have updated some of these annotations, say "description", and these changes are merged into the master branch, generate a new flux-commands.md like this: @@ -50,6 +50,8 @@ $ flux.sh > flux-commands.md ``` Open the generated flux-commands.md and remove some boilerplate at the beginning of the -file manually. Save it, copy it here, commit and push. +file manually. Add the naviagtion part of the page, save it, copy it [here](https://github.com/metafacture/metafacture-documentation/blob/28-use-jekyll-theme/docs/flux/flux-commands.md), commit and push. + + The [publishing process will be automated with an github action](https://github.com/metafacture/metafacture-core/issues/368). From 38bb8d866e229b2ec553dfdc759da49d41f50679 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Mon, 6 May 2024 10:55:22 +0200 Subject: [PATCH 24/29] Update Documentation-Maintainer-Guide.md --- docs/Documentation-Maintainer-Guide.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/Documentation-Maintainer-Guide.md b/docs/Documentation-Maintainer-Guide.md index 1f517f0..b17d62b 100644 --- a/docs/Documentation-Maintainer-Guide.md +++ b/docs/Documentation-Maintainer-Guide.md @@ -6,9 +6,9 @@ nav_order: 8 # Maintainer Guide -## how to change flux-commands.md +## how to change [docs/flux/flux-commands.md](https://github.com/metafacture/metafacture-documentation/blob/28-use-jekyll-theme/docs/flux/flux-commands.md) -The entries in flux-commands.md describe the usage of commands used by flux. +The entries in [docs/flux/flux-commands.md](https://github.com/metafacture/metafacture-documentation/blob/28-use-jekyll-theme/docs/flux/flux-commands.md) describe the usage of commands used by flux. flux-commands.md is fully automatically generated. To make this happen one has to fill in the proper annotations in the correponding java classes. E.g. @@ -37,7 +37,7 @@ The option's name is produced by cutting away the "set" from the methods name, l "BatchSize" which is then lowercased. The parameter of this option is generated from the parameter type of the method - here an "int"eger. -## how to publish docs/flux/flux-commands.md +## how to publish [docs/flux/flux-commands.md](https://github.com/metafacture/metafacture-documentation/blob/28-use-jekyll-theme/docs/flux/flux-commands.md) If you have updated some of these annotations, say "description", and these changes are merged into the master branch, generate a new flux-commands.md like this: @@ -53,5 +53,4 @@ Open the generated flux-commands.md and remove some boilerplate at the beginning file manually. Add the naviagtion part of the page, save it, copy it [here](https://github.com/metafacture/metafacture-documentation/blob/28-use-jekyll-theme/docs/flux/flux-commands.md), commit and push. - The [publishing process will be automated with an github action](https://github.com/metafacture/metafacture-core/issues/368). From 1a4ef58f9496916174c10330e51ca2bb066e7215 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Tue, 21 May 2024 16:40:28 +0200 Subject: [PATCH 25/29] Apply suggestions from code review by @fsteeg #28 Co-authored-by: Fabian Steeg --- docs/Getting-Started.md | 10 +++++----- docs/MF-in-5-min.md | 4 ++-- docs/fix/Fix-User-Guide.md | 4 ++-- docs/fix/fix.md | 8 ++++---- docs/flux/Flux-User-Guide.md | 8 ++++---- docs/flux/flux.md | 6 +++--- docs/java-integration/Framework-User-Guide.md | 2 +- docs/java-integration/java-integration.md | 2 +- index.md | 6 +++--- 9 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/Getting-Started.md b/docs/Getting-Started.md index 644af9d..87efb6e 100644 --- a/docs/Getting-Started.md +++ b/docs/Getting-Started.md @@ -10,11 +10,11 @@ nav_order: 2 The easiest way to get started with Metafacture is the Playground. Take a look at the [first example](https://metafacture.org/playground/?example=encode-xml) and run it by pressing the !["Process"](https://metafacture.org/img/process.png) button. Check out the other examples (first button, !["Load Examples"](https://metafacture.org/img/load-exmples.png)) for different input sources, transformations, and output formats. -For commands available in the Flux, see [the Flux commands documentation](/docs/flux/flux-commands.html). +For commands available in the Flux, see [the Flux commands documentation](flux/flux-commands.html). -For functions and usage of the Fix, see [the Fix functions and cookbook](/docs/fix/Fix-functions-and-cookbook.html). +For functions and usage of the Fix, see [the Fix functions and cookbook](fix/Fix-functions-and-cookbook.html). -For next steps get familar with [FLUX](/docs/flux/Flux-User-Guide.html) and [FIX](/docs/fix/Fix-User-Guide.html). And try out some Metafacture workflows. +For next steps get familar with [FLUX](flux/Flux-User-Guide.html) and [FIX](fix/Fix-User-Guide.html). And try out some Metafacture workflows. ## Command line @@ -27,7 +27,7 @@ To get started, you can export a workflow from the Playground (last button, !["E To set up IDE support for editing your Flux and Fix files, see [the IDE extensions page](https://metafacture.org/ide-extensions/index.html). -For next steps get familar with [FLUX](/docs/flux/Flux-User-Guide.html) and [FIX](/docs/fix/Fix-User-Guide.html). And try out some Metafacture workflows. +For next steps get familar with [FLUX](flux/Flux-User-Guide.html) and [FIX](fix/Fix-User-Guide.html). And try out some Metafacture workflows. ## Using Metafacture as a Java library @@ -58,4 +58,4 @@ To use Fix you would declare `metafix` instead of `metafacture-io` as in the exa Occasionally, we publish snapshot builds on [Sonatype OSS Repository](https://oss.sonatype.org/index.html#nexus-search;gav~org.metafacture~~~~~kw,versionexpand). The version number is derived from the branch name. Snapshot builds from the master branch always have the version `master-SNAPSHOT`. We also provide sometimes pre releases as github packages. -If you plan to use Metafacture as a Java library or if you wish to add commands to Flux you should get familar with the [Framework](/docs/java-integration/Framework-User-Guide.html). +If you plan to use Metafacture as a Java library or if you wish to add commands to Flux you should get familar with the [Framework](java-integration/Framework-User-Guide.html). diff --git a/docs/MF-in-5-min.md b/docs/MF-in-5-min.md index f3f7428..146ef58 100644 --- a/docs/MF-in-5-min.md +++ b/docs/MF-in-5-min.md @@ -93,7 +93,7 @@ $ cat yaml2json.flux ## FIX LANGUAGE -Many data conversions need a mapping from one field to another field plus optional conversions of the data inside these fields. Metafacture provides the transformation module `fix` that uses the Catmandu-inspired Fix language to assist in these mappings. See the [full list of Fix functions](/docs/fix/Fix-functions-and-Cookbook.html#functions). +Many data conversions need a mapping from one field to another field plus optional conversions of the data inside these fields. Metafacture provides the transformation module `fix` that uses the Catmandu-inspired Fix language to assist in these mappings. See the [full list of Fix functions](fix/Fix-functions-and-Cookbook.html#functions). Fixes can be provided inline as text argument of the fix module in the Flux script, or as a pointer to a Fix script. A Fix script groups one or more fixes in a file. @@ -179,6 +179,6 @@ The 245 field with its subfields of each MARC record is mapped to the title fiel The `retain` Fix function keeps only the title field in the output. (In contrast to Catmandu there are no special marc or pica fixes since the internal handling of records and elements is more generic. Also the internal serialization of MARC is not as complex as in Catmandu.) -Now you should be ready to [get started](/docs/Getting-Started.html). +Now you should be ready to [get started](Getting-Started.html). (Note: This mini introduction to Metafacture is inspired by the mini introduction to Catmandu here: https://metacpan.org/dist/Catmandu/view/lib/Catmandu/Introduction.pod) diff --git a/docs/fix/Fix-User-Guide.md b/docs/fix/Fix-User-Guide.md index fc7814a..2c188e1 100644 --- a/docs/fix/Fix-User-Guide.md +++ b/docs/fix/Fix-User-Guide.md @@ -10,7 +10,7 @@ nav_order: 1 This document provides an introduction to the Metafacture Fix language (short: Metafix or Fix). The Fix language for Metafacture is introduced as an alternative to configuring data transformations with Metamorph. Inspired by Catmandu Fix, Metafix processes metadata not as a continuous data stream but as discrete records. ## Part of a metafacture worflow -Metafacture Fix is a transformation module that can be used in a [Flux Workflow](/docs/flux/Flux-User-Guide.html), for this you have to use this in your pipeline: +Metafacture Fix is a transformation module that can be used in a [Flux Workflow](../flux/Flux-User-Guide.html), for this you have to use this in your pipeline: Flux-Example: ```PERL @@ -90,7 +90,7 @@ do Bind(params,…) end ``` -Find here a [list of all functions, selectors, binds and conditionals](//docs/fix/s-and-Cookbook.html). +Find here a [list of all functions, selectors, binds and conditionals](Fix-functions-and-Cookbook.html). ## Addressing Pieces of Data: FIX-Path and the record structure in FIX diff --git a/docs/fix/fix.md b/docs/fix/fix.md index 63e277d..2932393 100644 --- a/docs/fix/fix.md +++ b/docs/fix/fix.md @@ -9,11 +9,11 @@ Metafix is a domain specific language for metadata transformation based on Catma If you are using **Metafacture with CLI or Playground** and therefore the Flux scripting language to build and run pipelines, use the `fix` command in your FLUX-Pipeline. -If you are using **Metafacture as a Java library**, just create a Metafix object and add it to your pipeline (see also the [Framework User Guide](#framework)). +If you are using **Metafacture as a Java library**, create a Metafix object and add it to your pipeline (see also the [Framework User Guide](../java-integration/Framework-User-Guide.html)). -The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](/Fix-User-Guide.md). +The transformation itself is declared in a fix-object which can be a file. For more information on how to declare transformations see [Metafix User Guide](Fix-User-Guide.html). -See [here a list for all available FIX functions and a cookbook for using fix](//docs/fix/Fix-functions-and-Cookbook.html). +See [here a list for all available FIX functions and a cookbook for using fix](Fix-functions-and-Cookbook.html). {: .note } -PS: There is also the transformation modul MORPH. Have a look at[ the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the german cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file +PS: There is also the transformation module MORPH. Have a look at [the old documentation](https://github.com/metafacture/metafacture-core/wiki/Metamorph-User-Guide) and the German cookbook by [Swissbib](https://swissbib.gitlab.io/metamorph-doku/). \ No newline at end of file diff --git a/docs/flux/Flux-User-Guide.md b/docs/flux/Flux-User-Guide.md index 2b1779d..e681a3b 100644 --- a/docs/flux/Flux-User-Guide.md +++ b/docs/flux/Flux-User-Guide.md @@ -68,7 +68,7 @@ file ``` In the first section [variables](#variables) are declared, in the second, we [define the flow](#flow-definitions). -A flow is a combination of different [FLUX commands. Here is a list to all available Flux-Commands.](/docs/flux/flux-commands.html) +A flow is a combination of different FLUX commands. [Here is a list of all available Flux-Commands.](flux-commands.html) Linebreaks are optional, but help concerning readability. One can add comments with `//`. Semicolons `;` mark the end of a variable assignment or flow definition. @@ -92,7 +92,7 @@ The syntax for defining flows takes its cues from bash pipes. Commands are conca Some commands take a constructor argument. It is provided within brackets: `command("arg")`. Furthermore, some commands have named options. These are set as follows `command(optionname="arg1",annotheroption="arg2")` or with constructor argument: `command("arg",option="arg2")`. -To learn about the available options of a command, execute Flux without arguments - it will list all available commands, including options. Or simply have a look at the [list of available FLUX commands.](/flux-commands.md) +To learn about the available options of a command, execute Flux without arguments - it will list all available commands, including options. Or simply have a look at the [list of available FLUX commands.](flux-commands.html) To some commands the entire environment can be given as an argument. This is done with the `*` character: `fix("tranformation.fix", *)`. In this case Metafix gains access to all variable assignments made in Flux. @@ -100,7 +100,7 @@ To some commands the entire environment can be given as an argument. This is don Note that unlike shell pipes, the data flowing between Flux commands is _typed_. This means that only commands with matching signatures can be combined. Commands expect a certain input and provide a certain output like: `StreamReceiver, `Object`, `Reader` and others. -To lookup the signatures, again: execute Flux without arguments or see: [[Metafix-User-Guide#parameters-to-metafix-definitions]]). It will list all available commands, including signatures. Or simply have a look at the [list of available FLUX commands.](/docs/flux/flux-commands.html) +To lookup the signatures, again: execute Flux without arguments or see: [[Metafix-User-Guide#parameters-to-metafix-definitions]]). It will list all available commands, including signatures. Or simply have a look at the [list of available FLUX commands.](flux-commands.html) ### Variables Variables are always Strings and can be concatenated with the `+` operator. Escape sequences follow the Java String conventions: `\n`=line break, `\t`=tab, `\\`=\, `\u0024`=unicode character, etc. @@ -115,7 +115,7 @@ Flux supports single line C/Java-style comments: `//comment`. ## Overview of the commands and some examples -1. Have a look at the [List of available FLUX commands](/flux-commands.md) or execute the flux without arguments to get a short help text along with a list of all registered commands. This is the list of FLUX commands mentioned already above. +1. Have a look at the [list of available FLUX commands](flux-commands.html) or execute the flux without arguments to get a short help text along with a list of all registered commands. This is the list of FLUX commands mentioned already above. 2. There are several example flux files along with sample data in the repo folder `examples/`: [https://github.com/metafacture/metafacture-core/tree/master/metafacture-runner/src/main/dist/examples](https://github.com/metafacture/metafacture-core/tree/master/metafacture-runner/src/main/dist/examples) _________________________ diff --git a/docs/flux/flux.md b/docs/flux/flux.md index 9bd6e69..9e5993e 100644 --- a/docs/flux/flux.md +++ b/docs/flux/flux.md @@ -7,8 +7,8 @@ has_children: true # FLUX -Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used as a command line. To use Flux you may download the binary distribution of Metafacture. +Flux is a scripting language to easily build and run processing pipelines. No Java programming is necessary - it's used on the command line. To use Flux you may download the binary distribution of Metafacture. -For more information on how to use Flux, see the [Flux User Guide](/docs/flux/Flux-User-Guide.html). +For more information on how to use Flux, see the [Flux User Guide](Flux-User-Guide.html). -See [here a list for all available FLUX-Commands](/docs/flux/flux-commands.html). \ No newline at end of file +See [here a list for all available FLUX-Commands](flux-commands.html). \ No newline at end of file diff --git a/docs/java-integration/Framework-User-Guide.md b/docs/java-integration/Framework-User-Guide.md index 462b862..18b8102 100644 --- a/docs/java-integration/Framework-User-Guide.md +++ b/docs/java-integration/Framework-User-Guide.md @@ -8,7 +8,7 @@ nav_order: 1 # Framework User Guide {: .note } -Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](/docs/flux/Flux-User-Guide.html). +Relevant for Java developers. For using metafacture without Java Code see the [FLUX user guide](../flux/Flux-User-Guide.html). This page explains how to create a Metafacture objects and how to assemble them to form a processing pipeline. We use as an example a simple pipeline containing a Metafix instance. diff --git a/docs/java-integration/java-integration.md b/docs/java-integration/java-integration.md index f41c51f..a98103c 100644 --- a/docs/java-integration/java-integration.md +++ b/docs/java-integration/java-integration.md @@ -12,4 +12,4 @@ Relevant for developers The framework includes the interfaces and abstract classes which form the foundation of the data processing pipelines. This part of Metafacture is only relevant for you if you plan to use Metafacture as a Java library or if you wish to add pipe elements to Flux. -For more information see the [Framework User Guide](/docs/java-integration/Framework-User-Guide.html). \ No newline at end of file +For more information see the [Framework User Guide](Framework-User-Guide.html). \ No newline at end of file diff --git a/index.md b/index.md index 5dbead6..91855cf 100644 --- a/index.md +++ b/index.md @@ -31,10 +31,10 @@ Deciding which parts are relevant to you depends on the way you are using Metafa {: .note } No Java-Code is necessary!!! -While working with the playground or the command line you only need [Flux](/docs/flux/flux.html) and the transformation module [Fix](/docs/fix/fix.html). -Have a look here for [Getting started](/docs/Getting-Started.html). +While working with the playground or the command line you only need [Flux](docs/flux/flux.html) and the transformation module [Fix](docs/fix/fix.html). +Have a look here for [Getting started](docs/Getting-Started.html). ## Framework for Java integration/development -If you plan to use Metafacture as a Java library or if you wish to add commands to Flux. You should get familar with the [Framework](#framework). +If you plan to use Metafacture as a Java library or if you wish to add commands to Flux. You should get familar with the [Framework](docs/java-integration/Framework-User-Guide.html). From 893c7be70b7c092078577b68d72363fcc50c61b1 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Wed, 22 May 2024 12:29:10 +0200 Subject: [PATCH 26/29] Update Fix-functions-and-Cookbook.md --- docs/fix/Fix-functions-and-Cookbook.md | 147 +++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/docs/fix/Fix-functions-and-Cookbook.md b/docs/fix/Fix-functions-and-Cookbook.md index 58acb51..240fd49 100644 --- a/docs/fix/Fix-functions-and-Cookbook.md +++ b/docs/fix/Fix-functions-and-Cookbook.md @@ -65,6 +65,8 @@ Options: include(""[, ...]) ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+include+{") + ##### `nothing` Does nothing. It is used for benchmarking in Catmandu. @@ -75,6 +77,8 @@ nothing() [Example in Playground](https://metafacture.org/playground/?example=nothing) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+nothing+{") + ##### `put_filemap` Defines an external map for [lookup](#lookup) from a file or a URL. Maps with more than 2 columns are supported but are reduced to a defined key and a value column. @@ -102,6 +106,8 @@ Options: - `key_column`: Defines the column to be used for keys. Uses zero index. (Default: `0`) - `value_column`: Defines the column to be used for values. Uses zero index. (Default: `1`) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+put_filemap+{") + ##### `put_map` Defines an internal map for [lookup](#lookup) from key/value pairs. @@ -116,6 +122,8 @@ put_map("", [Example in Playground](https://metafacture.org/playground/?example=put_map) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+put_map+{") + ##### `put_rdfmap` Defines an external RDF map for lookup from a file or an HTTP(S) resource. @@ -129,6 +137,8 @@ put_rdfmap("", "", target: "", select_lang [Example in Playground](https://metafacture.org/playground/?example=put_rdfmap) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+put_rdfmap+{") + ##### `put_var` Defines a single global variable that can be referenced with `$[]`. @@ -139,6 +149,8 @@ put_var("", "") [Example in Playground](https://metafacture.org/playground/?example=put_var) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+put_var+{") + ##### `put_vars` Defines multiple global variables that can be referenced with `$[]`. @@ -152,6 +164,8 @@ put_vars( [Example in Playground](https://metafacture.org/playground/?example=put_vars) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+put_vars+{") + #### Record-level functions ##### `add_field` @@ -164,6 +178,8 @@ add_field("", "") [Example in Playground](https://metafacture.org/playground/?example=add_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+add_field+{") + ##### `array` Converts a hash/object into an array. @@ -179,6 +195,8 @@ array("foo") # {"name":"value"} => ["name", "value"] ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+array+{") + ##### `call_macro` Calls a named macro, i.e. a list of statements that have been previously defined with the [`do put_macro`](#do-put_macro) bind. @@ -200,6 +218,8 @@ call_macro(""[, ...]) [Example in Playground](https://metafacture.org/playground/?example=call_macro) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+call_macro+{") + ##### `copy_field` Copies a field from an existing field. @@ -210,6 +230,7 @@ copy_field("", "") [Example in Playground](https://metafacture.org/playground/?example=copy_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+copy_field+{") ##### `format` @@ -221,6 +242,8 @@ Replaces the value with a formatted (`sprintf`-like) version. format("", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+format+{") + ##### `hash` Converts an array into a hash/object. @@ -235,6 +258,8 @@ hash("foo") # ["name", "value"] => {"name":"value"} ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+hash+{") + ##### `move_field` Moves a field from an existing field. Can be used to rename a field. @@ -245,6 +270,7 @@ move_field("", "") [Example in Playground](https://metafacture.org/playground/?example=move_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+move_field+{") ##### `parse_text` @@ -256,6 +282,8 @@ Parses a text into an array or hash of values. parse_text("", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+parse_text+{") + ##### `paste` Joins multiple field values into a new field. Can be combined with additional literal strings. @@ -279,6 +307,8 @@ paste("my.string", "~Hi", "a", "~how are you?") [Example in Playground](https://metafacture.org/playground/?example=paste) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+paste+{") + ##### `print_record` Prints the current record as JSON either to standard output or to a file. @@ -312,6 +342,8 @@ print_record(destination: "record-%2$s.json", id: "001", pretty: "true") print_record(destination: "record-%03d.json.gz", header: "After transformation: ") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+print_record+{") + ##### `random` Creates (or replaces) a field with a random number (less than the specified maximum). @@ -320,6 +352,8 @@ Creates (or replaces) a field with a random number (less than the specified maxi random("", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+random+{") + ##### `remove_field` Removes a field. @@ -330,6 +364,8 @@ remove_field("") [Example in Playground](https://metafacture.org/playground/?example=remove_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+remove_field+{") + ##### `rename` Replaces a regular expression pattern in subfield names of a field. Does not change the name of the source field itself. @@ -340,6 +376,8 @@ rename("", "", "") [Example in Playground](https://metafacture.org/playground/?example=rename) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+rename+{") + ##### `retain` Deletes all fields except the ones listed (incl. subfields). @@ -350,6 +388,8 @@ retain(""[, ...]) [Example in Playground](https://metafacture.org/playground/?example=retain) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+retain+{") + ##### `set_array` Creates a new array (with optional values). @@ -361,6 +401,8 @@ set_array("", ""[, ...]) [Example in Playground](https://metafacture.org/playground/?example=set_array) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+set_array+{") + ##### `set_field` Creates (or replaces) a field with a defined value. @@ -369,6 +411,8 @@ Creates (or replaces) a field with a defined value. set_field("", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+set_field+{") + ##### `set_hash` Creates a new hash (with optional values). @@ -378,6 +422,8 @@ set_hash("") set_hash("", "subfieldName": ""[, ...]) ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+set_hash+{") + ##### `timestamp` Creates (or replaces) a field with the current timestamp. @@ -392,6 +438,8 @@ Options: timestamp(""[, format: ""][, timezone: ""][, language: ""]) ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+timestamp+{") + ##### `vacuum` Deletes empty fields, arrays and objects. @@ -402,6 +450,8 @@ vacuum() [Example in Playground](https://metafacture.org/playground/?example=vacuum) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+vacuum+{") + #### Field-level functions ##### `append` @@ -414,6 +464,8 @@ append("", "") [Example in Playground](https://metafacture.org/playground/?example=append) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+append+{") + ##### `capitalize` Upcases the first character in a field value. @@ -424,6 +476,8 @@ capitalize("") [Example in Playground](https://metafacture.org/playground/?example=capitalize) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+capitalize+{") + ##### `count` Counts the number of elements in an array or a hash and replaces the field value with this number. @@ -432,6 +486,8 @@ Counts the number of elements in an array or a hash and replaces the field value count("") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+count+{") + ##### `downcase` Downcases all characters in a field value. @@ -442,6 +498,8 @@ downcase("") [Example in Playground](https://metafacture.org/playground/?example=downcase) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+downcase+{") + ##### `filter` Only keeps field values that match the regular expression pattern. Works only with array of strings/repeated fields. @@ -450,6 +508,8 @@ Only keeps field values that match the regular expression pattern. Works only wi filter("", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+filter+{") + ##### `flatten` Flattens a nested array field. @@ -460,6 +520,8 @@ flatten("") [Example in Playground](https://metafacture.org/playground/?example=flatten) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+flatten+{") + ##### `from_json` Replaces the string with its JSON deserialization. @@ -472,6 +534,8 @@ Options: from_json(""[, error_string: ""]) ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+from_json+{") + ##### `index` Returns the index position of a substring in a field and replaces the field value with this number. @@ -480,6 +544,8 @@ Returns the index position of a substring in a field and replaces the field valu index("", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+index+{") + ##### `isbn` Extracts an ISBN and replaces the field value with the normalized ISBN; optionally converts and/or validates the ISBN. @@ -496,6 +562,8 @@ isbn(""[, to: ""][, verify_check_digit: ""][, [Example in Playground](https://metafacture.org/playground/?example=isbn) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+isbn+{") + ##### `join_field` Joins an array of strings into a single string. @@ -506,6 +574,8 @@ join_field("", "") [Example in Playground](https://metafacture.org/playground/?example=join_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+join_field+{") + ##### `lookup` Looks up matching values in a map and replaces the field value with this match. [External files](#put_filemap), [internal maps](#put_map) as well as [RDF resources](#put_rdfmap) can be used. @@ -565,6 +635,8 @@ lookup("path.to.field", "map-name", __default: "NA") lookup("path.to.field", "map-name", print_unknown: "true", destination: "unknown.txt") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+lookup+{") + ##### `prepend` Adds a string at the beginning of a field value. @@ -575,6 +647,8 @@ prepend("", "") [Example in Playground](https://metafacture.org/playground/?example=prepend) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+prepend+{") + ##### `replace_all` Replaces a regular expression pattern in field values with a replacement string. Regexp capturing is possible; refer to capturing groups by number (`$`) or name (`${}`). @@ -585,6 +659,8 @@ replace_all("", "", "") [Example in Playground](https://metafacture.org/playground/?example=replace_all) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+replace_all+{") + ##### `reverse` Reverses the character order of a string or the element order of an array. @@ -593,6 +669,8 @@ Reverses the character order of a string or the element order of an array. reverse("") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+reverse+{") + ##### `sort_field` Sorts strings in an array. Alphabetically and A-Z by default. Optional numerical and reverse sorting. @@ -605,6 +683,8 @@ sort_field("", numeric: "true") [Example in Playground](https://metafacture.org/playground/?example=sort_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+sort_field+{") + ##### `split_field` Splits a string into an array and replaces the field value with this array. @@ -615,6 +695,8 @@ split_field("", "") [Example in Playground](https://metafacture.org/playground/?example=split_field) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+split_field+{") + ##### `substring` Replaces a string with its substring as defined by the start position (offset) and length. @@ -623,6 +705,8 @@ Replaces a string with its substring as defined by the start position (offset) a substring("", "", "") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+substring+{") + ##### `sum` Sums numbers in an array and replaces the field value with this number. @@ -631,6 +715,8 @@ Sums numbers in an array and replaces the field value with this number. sum("") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+sum+{") + ##### `to_json` Replaces the value with its JSON serialization. @@ -644,6 +730,8 @@ Options: to_json(""[, pretty: ""][, error_string: ""]) ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+to_json+{") + ##### `trim` Deletes whitespace at the beginning and the end of a field value. @@ -654,6 +742,8 @@ trim("") [Example in Playground](https://metafacture.org/playground/?example=trim) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+trim+{") + ##### `uniq` Deletes duplicate values in an array. @@ -664,6 +754,7 @@ uniq("") [Example in Playground](https://metafacture.org/playground/?example=uniq) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+uniq+{") ##### `upcase` @@ -675,6 +766,8 @@ upcase("") [Example in Playground](https://metafacture.org/playground/?example=upcase) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+upcase+{") + ##### `uri_encode` Encodes a field value as URI. Aka percent-encoding. @@ -694,6 +787,8 @@ E.g.: uri_encode("path.to.field", plus_for_space:"false", safe_chars:"") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+uri_encode+{") + ### Selectors #### `reject` @@ -708,12 +803,16 @@ end [Example in Playground](https://metafacture.org/playground/?example=reject) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixMethod.java+"+reject+{") + ### Binds #### `do list` Iterates over each element of an array. In contrast to Catmandu, it can also iterate over a single object or string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixBind.java+"+list+{") + ```perl do list(path: "") ... @@ -738,6 +837,8 @@ end Iterates over each _named_ element of an array (like [`do list`](#do-list) with a variable name). If multiple arrays are given, iterates over the _corresponding_ elements from each array (i.e., all elements with the same array index, skipping elements whose arrays have already been exhausted). +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixBind.java+"+list_as+{") + ```perl do list_as(element_1: ""[, ...]) ... @@ -769,6 +870,8 @@ end [Example in Playground](https://metafacture.org/playground/?example=do_once) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixBind.java+"+once+{") + In order to execute multiple blocks only once, tag them with unique identifiers: ```perl @@ -807,6 +910,8 @@ call_macro(""[, ...]) [Example in Playground](https://metafacture.org/playground/?example=do_put_macro) +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixBind.java+"+put_macro+{") + ### Conditionals Conditionals start with `if` in case of affirming the condition or `unless` rejecting the condition. @@ -843,36 +948,52 @@ end Executes the functions if/unless the field contains the value. If it is an array or a hash all field values must contain the string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+all_contain+{") + ##### `any_contain` Executes the functions if/unless the field contains the value. If it is an array or a hash one or more field values must contain the string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+any_contain+{") + ##### `none_contain` Executes the functions if/unless the field does not contain the value. If it is an array or a hash none of the field values may contain the string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+none_contain+{") + ##### `str_contain` Executes the functions if/unless the first string contains the second string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+str_contain+{") + #### `equal` ##### `all_equal` Executes the functions if/unless the field value equals the string. If it is an array or a hash all field values must equal the string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+all_equal+{") + ##### `any_equal` Executes the functions if/unless the field value equals the string. If it is an array or a hash one or more field values must equal the string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+any_equal+{") + ##### `none_equal` Executes the functions if/unless the field value does not equal the string. If it is an array or a hash none of the field values may equal the string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+none_equal+{") + ##### `str_equal` Executes the functions if/unless the first string equals the second string. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+str_equal+{") + #### `exists` Executes the functions if/unless the field exists. @@ -880,6 +1001,7 @@ Executes the functions if/unless the field exists. ```perl if exists("") ``` +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+exists+{") #### `in` @@ -887,6 +1009,8 @@ Executes the functions if/unless the field value [is contained in](https://perld _Also aliased as [`is_contained_in`](#is_contained_in)._ +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+in+{") + #### `is_contained_in` _Alias for [`in`](#in)._ @@ -895,22 +1019,32 @@ _Alias for [`in`](#in)._ Executes the functions if/unless the field value is an array. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_array+{") + #### `is_empty` Executes the functions if/unless the field value is empty. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_empty+{") + #### `is_false` Executes the functions if/unless the field value equals `false` or `0`. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_false+{") + #### `is_hash` _Alias for [`is_object`](#is_object)._ +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_hash+{") + #### `is_number` Executes the functions if/unless the field value is a number. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_number+{") + #### `is_object` Executes the functions if/unless the field value is a hash (object). @@ -921,24 +1055,37 @@ _Also aliased as [`is_hash`](#is_hash)._ Executes the functions if/unless the field value is a string (and not a number). +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_string+{") + #### `is_true` Executes the functions if/unless the field value equals `true` or `1`. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+is_true+{") + + #### `match` ##### `all_match` Executes the functions if/unless the field value matches the regular expression pattern. If it is an array or a hash all field values must match the regular expression pattern. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+all_match+{") + ##### `any_match` Executes the functions if/unless the field value matches the regular expression pattern. If it is an array or a hash one or more field values must match the regular expression pattern. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+any_match+{") + ##### `none_match` Executes the functions if/unless the field value does not match the regular expression pattern. If it is an array or a hash none of the field values may match the regular expression pattern. +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+none_match+{") + ##### `str_match` Executes the functions if/unless the string matches the regular expression pattern. + +[Java Code](https://github.com/search?type=code&q=repo:metafacture/metafacture-fix+path:FixConditional.java+"+str_match+{") From 264ff3db077e13f30baac581241d355d8d26db4f Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Wed, 22 May 2024 14:14:46 +0200 Subject: [PATCH 27/29] Apply suggestions from code review Co-authored-by: Fabian Steeg --- docs/Getting-Started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Getting-Started.md b/docs/Getting-Started.md index 87efb6e..466c94f 100644 --- a/docs/Getting-Started.md +++ b/docs/Getting-Started.md @@ -12,7 +12,7 @@ The easiest way to get started with Metafacture is the Playground. Take a look a For commands available in the Flux, see [the Flux commands documentation](flux/flux-commands.html). -For functions and usage of the Fix, see [the Fix functions and cookbook](fix/Fix-functions-and-cookbook.html). +For functions and usage of the Fix, see [the Fix functions and cookbook](fix/Fix-functions-and-Cookbook.html). For next steps get familar with [FLUX](flux/Flux-User-Guide.html) and [FIX](fix/Fix-User-Guide.html). And try out some Metafacture workflows. @@ -25,7 +25,7 @@ To use Metafacture as a command-line tool, download the latest metafix-runner fr To get started, you can export a workflow from the Playground (last button, !["Export Workflow"](https://metafacture.org/img/export.png)). -To set up IDE support for editing your Flux and Fix files, see [the IDE extensions page](https://metafacture.org/ide-extensions/index.html). +To set up IDE support for editing your Flux and Fix files, see [the IDE extensions page](https://metafacture.org/ide-extensions.html). For next steps get familar with [FLUX](flux/Flux-User-Guide.html) and [FIX](fix/Fix-User-Guide.html). And try out some Metafacture workflows. From 0c5ea55bcbe43b32c919560e1a625826687b1cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20B=C3=BClte?= Date: Wed, 22 May 2024 14:29:55 +0200 Subject: [PATCH 28/29] Adjust License linking #28 --- docs/LICENSE => LICENSE | 0 _config.yml | 9 +++++++-- docs/LICENSE.md | 27 --------------------------- 3 files changed, 7 insertions(+), 29 deletions(-) rename docs/LICENSE => LICENSE (100%) delete mode 100644 docs/LICENSE.md diff --git a/docs/LICENSE b/LICENSE similarity index 100% rename from docs/LICENSE rename to LICENSE diff --git a/_config.yml b/_config.yml index 56e96df..40a01cd 100644 --- a/_config.yml +++ b/_config.yml @@ -7,6 +7,11 @@ url: https://metafacture.github.io/metafacture-documentation aux_links: Metafacture Documentation on Github: https://github.com/metafacture/metafacture-documentation +# External navigation links +nav_external_links: + - title: LICENSE + url: https://github.com/metafacture/metafacture-core/blob/master/LICENSE + # Set a path/url to a logo that will be displayed instead of the title logo: "/assets/images/metafacture_small.png" favicon_ico: "/assets/images/favicon.ico" @@ -18,7 +23,7 @@ favicon_ico: "/assets/images/favicon.ico" back_to_top: true back_to_top_text: "Back to top" -footer_content: "Metafacture Documentation is maintained by the Open infrastructure team of hbz." +footer_content: 'Metafacture Documentation is maintained by the Open infrastructure team of hbz.' # Footer last edited timestamp last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter @@ -48,4 +53,4 @@ callouts: color: purple warning: title: Warning - color: red \ No newline at end of file + color: red diff --git a/docs/LICENSE.md b/docs/LICENSE.md deleted file mode 100644 index 3d56621..0000000 --- a/docs/LICENSE.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default -title: LICENSE -nav_order: 9 ---- - -MIT License - -Copyright (c) 2022 just-the-docs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. From 035c82f9a8ba3159852fad60ca8990efd7318606 Mon Sep 17 00:00:00 2001 From: TobiasNx <61879957+TobiasNx@users.noreply.github.com> Date: Wed, 22 May 2024 14:35:24 +0200 Subject: [PATCH 29/29] Apply suggestions from code review Co-authored-by: Fabian Steeg --- docs/MF-in-5-min.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MF-in-5-min.md b/docs/MF-in-5-min.md index 146ef58..38c2e0d 100644 --- a/docs/MF-in-5-min.md +++ b/docs/MF-in-5-min.md @@ -181,4 +181,4 @@ The `retain` Fix function keeps only the title field in the output. (In contrast Now you should be ready to [get started](Getting-Started.html). -(Note: This mini introduction to Metafacture is inspired by the mini introduction to Catmandu here: https://metacpan.org/dist/Catmandu/view/lib/Catmandu/Introduction.pod) +(Note: This mini introduction to Metafacture is inspired by the mini [introduction to Catmandu](https://metacpan.org/dist/Catmandu/view/lib/Catmandu/Introduction.pod))