Re: patch xslt
Stephane Bonhomme <[email protected]> Mon, 24 Nov 2003 23:37:33 +0100
| Newsgroups | gmane.editors.mlview.devel |
|---|---|
| Message-ID | <[email protected]> |
Le lun 24/11/2003 à 20:15, Dodji Seketeli a écrit : > Hi Stephane, > > I have applied the patch in my tree and it looks fine ;) > I have just made some smallish modifications like renaming the > mlview_xslt_*** functions that are in mlview-xslt-utils.c so that > they comply with the object oriented function naming scheme, e.g: > mlview_xslt_utils_*** . > Np, I should have done it before sending the patch. > Apart from that, I noticed that the xslt transformation > does not handle the the xslt:directive yet. > I am okay to commit this in the CVS HEAD right now though. > xslt support in mlview does not handle xslt:include for stylesheets that are loaded in the editor (it works for applying "external" stylesheets using the "browse" button). To support xsl:include (and other file-system related feature) we need to think about a context for applying stylesheet, some clues are specific to the interactive environment (some included files may have been loaded and modified in the editor while other may not be). I do prefer take the time of thinking to that before implementing anything. We certainly need a XsltStylesheet class that extends xmlDocument to handle the context of tranformations. > The only problem is that given the flow of bug reports (and fixes) we have > had since the 0.6.1, I was thinking about releasing a 0.6.2 (a bugfix release) > this week. This release would include your experimental xslt support if I > commit it in HEAD. > A am basically okay with this idea and I would to know how you feel > about it. I'm ok about committing it in HEAD as an experimental feature, the sooner it will be publicly released, the more it will be tested. Of course I will support this code and propose interesting enhancements around xsl transformations. > > Other people on the list are free to give their opinion too ;) > Other people on the list are encouraged to give their opinion too ;) Stephane. > > Wishing you all the best, > > Dodji. > > On Mon, Nov 24, 2003 at 07:22:33AM +0100, Stephane Bonhomme wrote: > > Hi everebody > > > > Here is a patch that makes mlview link with libxslt from gnome and > > allows user to apply xslt transformations in mlview. > > > > greetings, have fun > > > > Stephane. > > > > -- > > Stéphane Bonhomme - Formations, Conseil et Réalisations > > Ingénierie Documentaire - Technologies Web - Logiciels Libres > > [email protected] - http://perso.wanadoo.fr/s.bonhomme > > 04 76 17 09 40 / 06 88 57 27 08 > > > > > ? src/mlview-xslt-utils.c > > ? src/mlview-xslt-utils.h > > Index: configure.in > > =================================================================== > > RCS file: /cvs/gnome/mlview/configure.in,v > > retrieving revision 1.48 > > diff -r1.48 configure.in > > 22a23 > > > LIBXSLT_VERSION=1.0.33 > > 29a31 > > > AC_SUBST(LIBXSLT_VERSION) > > 97a100,104 > > > dnl checking for libxslt > > > dnl ******************************* > > > PKG_CHECK_MODULES(LIBXSLT,[libxslt >= $LIBXSLT_VERSION]) > > > > > > dnl ******************************* > > 128,129c135,136 > > < MLVIEW_LIBS="$LIBXML2_LIBS $LIBGLADE2_LIBS $LIBGNOMEUI2_LIBS" > > < MLVIEW_CFLAGS="$LIBXML2_CFLAGS $LIBGLADE2_CFLAGS $LIBGNOMEUI2_CFLAGS" > > --- > > > MLVIEW_LIBS="$LIBXML2_LIBS $LIBXSLT_LIBS $LIBGLADE2_LIBS $LIBGNOMEUI2_LIBS" > > > MLVIEW_CFLAGS="$LIBXML2_CFLAGS $LIBXSLT_CFLAGS $LIBGLADE2_CFLAGS $LIBGNOMEUI2_CFLAGS" > > 157c164 > > < if test "x$USER" = "xdodji" -o "x$MLVIEW_DEVEL" = "xon" ; then > > --- > > > if test "x$USER" = "waloo_" -o "x$MLVIEW_DEVEL" = "xon" ; then > > Index: src/Makefile.am > > =================================================================== > > RCS file: /cvs/gnome/mlview/src/Makefile.am,v > > retrieving revision 1.29 > > diff -r1.29 Makefile.am > > 55c55,57 > > < mlview-icon-tree.h > > --- > > > mlview-icon-tree.h \ > > > mlview-xslt-utils.c \ > > > mlview-xslt-utils.h > > Index: src/mlview-app.c > > =================================================================== > > RCS file: /cvs/gnome/mlview/src/mlview-app.c,v > > retrieving revision 1.55 > > diff -r1.55 mlview-app.c > > 512a513,526 > > > apply_xslt_cb (GtkWidget * a_menu_item, > > > MlViewAppContext * a_context) > > > { > > > MlViewEditor *editor; > > > > > > g_return_if_fail (a_context != NULL); > > > g_return_if_fail (a_menu_item != NULL); > > > > > > editor = mlview_app_context_get_element (a_context, > > > "MlViewEditor"); > > > mlview_xslt_transform_document_interactive (editor) ; > > > } > > > > > > static void > > 673a688,694 > > > > > > GNOMEUIINFO_SEPARATOR, > > > > > > GNOMEUIINFO_ITEM (N_("Apply XSLT..."), > > > N_ > > > ("transform document using xslt stylesheet"), > > > apply_xslt_cb, NULL), > > Index: src/mlview-editor.c > > =================================================================== > > RCS file: /cvs/gnome/mlview/src/mlview-editor.c,v > > retrieving revision 1.63 > > diff -r1.63 mlview-editor.c > > 34a35 > > > #include "mlview-xslt-utils.h" > > 181a183,184 > > > static GList *build_doc_list_from_hashtable (GHashTable * a_docs); > > > > > 780a784,793 > > > static GList * > > > build_doc_list_from_hashtable (GHashTable * a_docs) > > > { > > > GList *result = NULL; > > > > > > g_hash_table_foreach (a_docs, > > > (GHFunc) add_hash_key_to_list, > > > &result); > > > return result; > > > } > > 1148a1162,1180 > > > *Getter of the glist of opened docs > > > *#MlViewXMLDocument * > > > * > > > *@param a_this the current instance of #MlViewEditor. > > > *@return a GList* of #MlViewXMLDocument, taht the caller > > > * is responsble to free > > > */ > > > GList * > > > mlview_editor_get_list_open_doc (MlViewEditor * a_this) > > > { > > > GList *docs = NULL; > > > > > > docs = build_doc_list_from_hashtable > > > (PRIVATE (a_this)->mlview_xml_docs); > > > > > > return docs; > > > } > > > > > > /** > > 2305a2338,2366 > > > } > > > > > > > > > /** > > > *Applies a XSLT stylesheet to the current document > > > *displaying a dialog for xslt selection and opens > > > *the transformation resulting document in the editor > > > *@param a_this the current instance of #MlViewEditor. > > > * > > > */ > > > gint > > > mlview_xslt_transform_document_interactive (MlViewEditor *a_this) > > > { > > > MlViewXMLDocument *src_doc = NULL; > > > MlViewXMLDocument *xsl_doc = NULL; > > > MlViewXMLDocument *res_doc = NULL; > > > > > > g_return_val_if_fail (a_this != NULL, -1); > > > g_return_val_if_fail (MLVIEW_IS_EDITOR (a_this), -1); > > > g_return_val_if_fail (PRIVATE (a_this) != NULL, -1); > > > > > > src_doc = mlview_editor_get_cur_doc (a_this); > > > xsl_doc = mlview_xslt_select_xsl_doc (a_this); > > > if (xsl_doc != NULL) { > > > res_doc = mlview_xslt_transform_document(src_doc, xsl_doc); > > > mlview_xml_document_unref(xsl_doc); > > > if (res_doc != NULL) > > > mlview_editor_create_new_view_on_document (a_this, res_doc, MLVIEW_XML_DOC_TREE_VIEW); > > > } > > Index: src/mlview-editor.h > > =================================================================== > > RCS file: /cvs/gnome/mlview/src/mlview-editor.h,v > > retrieving revision 1.30 > > diff -r1.30 mlview-editor.h > > 115a116,117 > > > GList *mlview_editor_get_list_open_doc (MlViewEditor * a_this); > > > > > 218a221 > > > gint mlview_xslt_transform_document_interactive (MlViewEditor *a_this); > > > > _______________________________________________ > Mlview-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/mlview-list -- Stéphane Bonhomme - Formations, Conseil et Réalisations Ingénierie Documentaire - Technologies Web - Logiciels Libres [email protected] - http://perso.wanadoo.fr/s.bonhomme 04 76 17 09 40 / 06 88 57 27 08