Changes
0.19.0
- new provider
de.wwu.scdh.teilsp.extensions.LabelledEntriesSparql
for labelled entries from a SPARQL query over a graph from RDF files - new provider
de.wwu.scdh.teilsp.extensions.LabelledEntriesSparqlEndpoint
for labelled entries from a SPARQL query over an endpoint
0.18.0
- new editing action for
<rs>
(referring string)- choose
@type
- choose
@ref
(or@key
) from a set of values (persons, places,
etc.) based on the@type
value
- choose
- transformation scenario for updating config file from default config
file: add required properties
0.17.1
- added editing atoms
move.caret.after.current
and
move.caret.before.current
for moving the caret (point) outside the
current element. These editing atoms can be used by downstream
frameworks.
0.17.0
- added
sel.tag
action for selecting analytical or interpretative
tags - improved markup generation for the annotation action: Keep the
endID
for the<span>
, if the end anchor is replaced with
it. This is generally wanted when the annotation is used in a way
similar to an internal double-end-point apparatus encoding.
0.16.4
- fix descriptor file (see issue #9)
0.16.3
- support Oxygen 26 (see issue #8)
- git release tags are now the single source of truth for version numbers
0.16.1
- fix CI pipeline
0.16.0
- compatiblity with Oxygen 25
- provide framework compiled for different versions of Oxygen
- do not use XML catalog from the editor in the
LabelledEntriesXSLT
andLabelledEntriesXSLTWithContext
providers- This was required due to API changes in Saxon 11, which ships with
Oxygen 25. We gain compatiblity with Oxygen 25.
- This was required due to API changes in Saxon 11, which ships with
- restructured code base into a multi modules project
- removed dependency on
ediarum.jar
- changed license to MIT
0.15.0
- new XPath extension function
obt:current-element
obt:current-element(url as xs:string) as node()*
- takes URL of a document and returns the node where the caret
is located if the document is currently edited - works in text mode as well as in author mode
- handy to transform only the part (paragraph, section, page, etc.)
which is currently being edited
- schema attribute editor
- added to contextual menu
- added info about the current element to the editor dialog
- added its icon
0.14.2
- fixed issue #6
- fixed incorrect argument description reported by a reviewer of a
proposal for the TEI 2022 conference.
0.14.1
- experimental dialog
de.wwu.scdh.teilsp.ui.FilteringListSelectDialog
- introduces filtering based on event list
- does not yet scroll to the selected item
0.14.0
- new list dialog for selecting singelton or multiple values
- new plugins for generating labelled entries
de.wwu.scdh.teilsp.extensions.LabelledEntriesXSLT
for generating
labelled entries via XSLT. This plugin does not get the current
editing context.de.wwu.scdh.teilsp.extensions.LabelledEntriesXSLTWithContext
for
generating labelled entries via XSLT. This plugin passes the
document node and an XPath expression, that identifies the currently
edited node, as stylesheet parameters.- the URI resolvers are passed to these plugins so that XML
catalogs are in force.
- the URI resolvers are passed to these plugins so that XML
de.wwu.scdh.teilsp.extensions.LabelledEntryCSV
for generating
labelled entries from CSV data.- CSV data may be in a variety of formats: CSV, TDF, Excel,
numerous database outfile formats
- CSV data may be in a variety of formats: CSV, TDF, Excel,
de.wwu.oxbytei.extensions.SchemaAttributeValuesProvider
for
generating suggestions for attribute values from the XML schema- this was added to the default configuration and activated
everywhere
- this was added to the default configuration and activated
LabelledEntry
is an interface now- see
de.wwu.scdh.teilsp.extensions.LabelledEntryImpl
for an
implementation LabelledEntryWithColumns
is an extension of this interface for
future implementations of column views etc.
- see
0.13.1
- plugin
de.wwu.scdh.teilsp.extensions.LabelledEntriesXQuery
calls a
function from XQuery script, not the whole script. This makes
developing and debugging XQuery much easier.- The name of the function is configurable (local name, prefix and
namespace), defaults to
Q{http://scdh.wwu.de/oxbytei}generate-entries
. - The arity of the function must be 0.
- The return value must be
map(xs:string, xs:string)*
.
- The name of the function is configurable (local name, prefix and
0.13.0
- changes of API:
- introduced
IConfigurablePlugin
for plugins that get
context-sensitive config from the config file ILabelledEntriesProvider
andISelectionDialog
are derived from
this new interface nowILabelledEntriesProvider
gets the current editing context now via
setup(...)
- configurable plugins are required to provide a method to describe
their configuration arguments now - introduced a common loader for configurable plugins
- introduced
- made
de.wwu.scdh.teilsp.services.extensions.ArgumentDescriptor
a
polymorphic interface andArgumentDescriptorImpl
an implementation
of it- this makes evaluating, getting and converting arguments for plugins
from the configuration super straight forward
- this makes evaluating, getting and converting arguments for plugins
- introduced
de.wwu.scdh.teilsp.extensions.LabelledEntriesXQuery
, a
provider for labelled entries which produces its collection via
XQuery
0.12.0
- added selection dialogs
- added editable combo box
de.wwu.scdh.teilsp.ui.EditableComboBoxDialog
as default dialog - multiple select through check boxes:
de.wwu.scdh.teilsp.ui.CheckBoxSelectDialog
- setup for
@wit
- setup for
- singleton select through combo box:
de.wwu.scdh.teilsp.ui.ComboBoxSelectDialog
- added editable combo box
- change of API
ISelectDialog
- make
ISelectionDialog
an SPI interface and load dialogs as
plugins which are configured through plugin config for arbitrary
editing contexts - removed oXygen-specific classes
- split
doUserInteraction
intodoUserInteraction()
and
getSelection()
in order to make UI writing simple, because
otherwise we would need a loop to wait for user interaction to
finish. - split
init()
intoinit()
andsetup()
so that we can call
init()
from SPI loader - pass icon URL into dialog
- moved to package
de.wuu.scdh.teilsp.ui
which contains UI code
which does not need anything from oXygen - old dialog classes are still in place and work as before
- make
- added generic schema attribute editor which uses the above
configurable dialogs - configuration
- added some basic config for dialogs
0.11.0
- added
ExpandingDeleteElementOperation
which does the same as the
builtinDeleteElementOperation
but expands editor variables in the
arguments. - fixed the logger for
InsertAnchorOperation
0.10.0
- user action for generating IDs on a configurable portion of the
document using the TEI P5 framework's "Generate IDs" action.- portion defaults
/*
, i.e. the whole document
- portion defaults
- new plugin that provides labelled entries directly from the config
file, where they are defined in a CSV-like manner - transformation scenario that identifies broken XIncludes and adds a
fallback if not present
0.9.6
- fixed issue #5: removed single quotes in selection texts which
interfere with the string generated for theask
editor variable
0.9.5
- add user action for inserting XInclude
- enable selection of bibliographic reference in other contexts
0.9.4
- make the actions for inserting an apparatus entry simpler by
splitting them up - make the actions for making annotations simpler and more
configurable by splitting them up
0.9.3
- fix issue #4: Text from enclosed elements was duplicated for
e.g. the lemma of an apparatus entry. This was fixed. - make annotate action more generic by removing the part for selecting
an analytic category- chosing an analytic category and putting it to a target (text node
or an attribute) should be an other action and it is simple to
configure this in the plugin system
- chosing an analytic category and putting it to a target (text node
- improve reproduction of referenced text
- do not reproduce variant readings
- to not reproduce processing instructions
- use this in
analytic
mode for persons, places etc., too
0.9.2
- Bug fix: An apostrophe (ASCII 0x27) in the labels or values
generated by the plugin system was breaking the selection
dialogue. (issue #3) This was fixed.
0.9.1
- try to fix lookup of the config file on windows, issue #1
PS. This actually fixed #1
0.9.0
- New actions for managing anchor based markup:
- I) find annotations e.g. an external
<app>
or a<span>
that
reference the text at the caret, and let the user choose which one
she wants to move to - II) highlight (select) the span of text referenced by an
annotation, e.g. an external<app>
or<span>
- I) find annotations e.g. an external
- These actions greatly simplify the navigation and orientation in
anchor based markup. - Both actions are configurable.
- push referenced text through XSLT when making an
<app>
or an<span>
- the template can easily be replaced by user through an XML catalog
- current features: remove notes, replace caesura and verse break
with common signs
- annotate action is more configurable now:
- configure which attribute to write to, default is
@ana
- configure whether or not to reproduce referenced text
- configure an element to keep the reproduced text in
- configure which attribute to write to, default is
- added a simple rollback mechanism for the cancel event in user
actions- this results in a rollback to the previous editor state, no
changes by half-done action chains
- this results in a rollback to the previous editor state, no
0.8.5
- fixed a bug in the calculation of the XPath of the current element or
the anchors' container
0.8.4
- introduced
SelectReferencedOperation
for selecting a portion of
the currently edited document that is references by a markup
element, e.g. an external apparatus entry- an example use case is in oXbytao
PS: this action has been moved to oXbytei in 0.9.0
0.8.3
- introduced
InsertAnchorOperation
for inserting single anchors - introduced
${anchorId}
editor variable to get the xml ID of the
last anchor generated withInsertAnchorOperation
0.8.2
- enabled framework inheritance
- Please, have a look at oXbytao
for an example!
- Please, have a look at oXbytao
- re-arranged menus and toolsbars
0.8.1
- fixed a bug in analytic markup style
- make generated IDs customizable through redirection to an xsl
library by an XML catalog:- redirect
oxbytei/xsl/generate-id.xsl
to your own implementation
- redirect
- added regression tests based on XSpec for all markup styles added in
0.8.0 - use XSpec 1.6 and Saxon 10.2 for testing XSLT 3.0
0.8.0
- flexible markup for persons, places and bibliographic references:
- markup styles available:
- aggregative: Wrap user selection into an element, if the start
and end point are on the same parent node. Otherwise wrap each
text nodes in the selection into its own element and link them
with@next
and@prev
. - analytic: Insert empty anchors with IDs at the start and end
point of the user selection and add a<span from="#startId" to="#endId">
into the next following<spanGrp>
. The element tag
is put into the<span>
. The selected text is repeated in it. - spanTo: Insert an empty anchor at the end of the user
selection and a tag to the start point, that has
@spanTo="#endId"
. - restricted-aggregative: Wrap text nodes in the user selection
into<seg>
elements, put IDs on them and add an empty
aggragative tag at the selection's end point with@select="#id1 id2 ... idN"
.
- aggregative: Wrap user selection into an element, if the start
- Whitespace-only text nodes are not wrapped in aggregative and
restricted-aggregative style in order to avoid invalid markup when
annotating over paragraph or verse boundaries. This can be turned
off. - configurable through the configuration file
0.7.1
- expand editor variables in the config file
- this only works in author mode
- thus, no editor variables are used in the default config file
0.7.0
- introduced
${teilspProp(property.name)}
editor variable, which is
expanded to the property namedproperty.name
in the config file - load an extension state listener and register the new oXbytei editor
variable resolver
0.6.1
- default configuration:
- put apparatus entry in external double end-point attached variant
encodings into the next following<listApp>
- put apparatus entry in external double end-point attached variant
- added
de.wwu.scdh.oxbytei.NoOperation
author mode operation that
does nothing at all. - unified the editing steps for adding a new apparatus entry by using
NoOperation
. - do not use a recursive action for the appratus any more
- include the framework for editing the configuration file into the
package and ship it with oXbytei
0.6.0
- author mode action for adding an apparatus entry
- user selection goes to the lemma
- caret is placed into the reading
- ask for witness of reading
- all variant encodings, but external location-referenced
- select witness based on
sourceDesc/listWit//witness
0.5.0
- new author mode operation for surrounding the user selection with
empty anchor elements with IDs- per default it uses oXygen's
${id}
editor variable, to produce
@xml:id
s - But the ID can be calculated by an XPath expression from the
document, too.
- per default it uses oXygen's
- new author mode operation for a) surrounding the user selection with
empty anchor elements with IDs and b) then performing an XSLT
operation- This is very cool because it let's us produce complicated
interlinked markup with just one click. - It will be the heart of annotation, double-end attached apparatus
etc.
- This is very cool because it let's us produce complicated
- added new author mode action for annotations of overlapping structures
- inserts anchors with
start_id
andend_id
- inserts an
<span from="#start_id" to="#end_id">
to a<spanGrp>
in the backmatter per default config - adds
@ana
with a value select from provider suggestions to the
<span>
.
- inserts anchors with
0.4.6
- changed inheritance hierarchy for author mode operations:
SelectAttributeValueOperation
does not extend
AbstractOperation
any more, but theChangeAttributeOperation
from oXygen. So we needn't implement the real operation on the
document any more.- The code of the old
AbstractOperation
has been moved to a class
that can be used for composition:SelectLabelledEntryInteraction
now calls the plugin loader and does the user interaction. The
code is much better encapsulated this way.
- new author mode operation for annotating bibliographic references
and linking them to a bibliography - removed the
<prefixDef>
condition from author mode actionsq
0.4.5
- Changes to the API:
- The signature of the init method of ILabelledEntriesProvider has
changed. - It takes the document's DOM node now.
- The signature of the init method of ILabelledEntriesProvider has
- The logic of the plugin loader for loading plugins for the current
editing context has been moved from oxbytei to teilsp - Document DOM nodes of the currently edited document are now passed
through from oXygen to the plugins. This speeds things up and
reflects changes in them that have not been saved to disk yet. - The redundant class ...commons.Resolver has been removed.
- The name of the one and only author mode operation has changed to
SelectAttributeValueOperation, because there is nothing specific for
<prefixDef>
in there any more. - A utility class for making an XPath object has been added as a
convenience tool regarding different implementations of the document
DOM node, that is passed around:XPathUtil
.
0.4.4
- deploy descriptor file on pages in separate action
0.4.3
- fixed link to package in the package descriptor file
- added index.html for github pages
0.4.2
- fixed github workflow for making releases
v0.4.1
- added logging through slf4j
v0.4.0
- added a schema manager filter that suggests attribute values
according to labelled entries from plugins in text mode - added an attribute condition in the config file
v0.3.2
- send debugging message to stderr and to an exception window when no
labelled items are found for the action. It prints the used
providers and the arguments, they are configured with - plugin config
- moved default config file from
samples
toconfig
folder - moved XPath for getting
<prefixDef>
from arguments section to
conditions section, because it's not an argument of the plugin,
but evaluated by the editor
- moved default config file from
- removed the matching of @Ident of
<prefixDef>
from the activation
XPath in the author mode action, because these made to much
assumptions
v0.3.1
- made selection dialogue configurable through author mode action xml
- changed API for selection dialogs to handle multiple selection
- reflected these changes in the wrappers around the oxygen dialog and
the ediarum dialog - discovered bugs in these dialogs and documented them in the wrappers
- moved reusable code to abstract base class AbstractOperation
- saw some problems with protected fields of this base class
- Should abstract base classed be used to share state?
v0.3.0
- generate selections from
<prefixDef>
through configurable Java
plugins - we can now put everything but the activation context into a
configuration file. So we do not need no hardcoding of assumptions
into frameworks any more. - use oXygen's
${ask(...)}
user dialog from within Java - Actions based on new Java actions:
- link.person
- link.place
v0.2.0
- added transformation scenario for updating the header by merging in
information from a central header file
v0.1.0
- Changed the license to GPL v3
- Because it is more satisfing to write free software than writing
only os software. And it's better for the community to have
free software. - Because GPLed ediarum.jar is bundled within the framework.
- Because it is more satisfing to write free software than writing
- A java implementation of an author mode action component for
selecting an item from a referatory (personography, bibliography,
geography, etc.) defined inprefixDef
was added. It provides a
mechanism for adding plugins for reference providers, like local
norm data or global norm data. - an implementation of such a plugin which provides selection items
generated from an XML file. It is configured with XPaths, to access
the items, their keys (IDs) and make a label displayed in selection
dialogues. - general classes have been sourced to the java namespace
de.wwu.scdh.teilsp
which serves as a germ for a TEI LSP server. - added an author mode action for selecting a place from a geographic
referatory- it makes is a recursively defined action
- stop at adding
@ref
attribute in context ofplaceName
- start with surrounding a selection
- stop at adding
- it makes is a recursively defined action
v0.0.6
- fixed the assembled package: The root directory does not contain the
Version number any more, now.- This makes rewriting file lookup by xml catalogues much more
simple. - This allows us to rename the samples directory.
- This makes rewriting file lookup by xml catalogues much more
v0.0.5
- fixed descriptor file
v0.0.4
- renamed framework to oXbytei
v0.0.3
- added regression testing to sel.language author mode action
v0.0.2
- added regression testing for complicated XPath expressions contained
in author mode actions
v0.0.1
- New author mode action for setting
@xml:lang
from the set of
languages registered in the header
teiHeader/profileDesc/langUsage
.