-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Profiling/conditional text configuration #46
Comments
You understood perfectly, we had novice users adding in the Preferences page for DITA for example a non-existing profiling attribute called "version" and then complain that it is marked as an error in the topic after they apply the attribute to an element. So the profiling attributes described here need to be a subset of the profiling attributes allowed by the vocabulary. Your suggestion for the message is very good, I will add an issue to change the current message. My only complaint is that when translated to languages like German such a message might be very long and cover a large part of the dialog where is appears. Maybe we could only add the first sentence to the dialog with a "More details" link which shows a dialog with a complete description. So what's your take on this? Funny thing is that we also had users define such a profiling attribute entry in the Preferences for attributes which belong to the DITA vocabulary but are not profiling attributes like for example "outputclass". They knew they could not filter content based on it. But what they actually wanted was an easy way to edit the attribute using the "Edit Profiling Attributes" dialog which is more user-friendly than the Attributes view.
I understand.
Yes, when the user shows the "Edit Profiling Attributes" dialog for a certain element right now we do not check if that element allows on it the profiling attributes that the dialog can set. We have the means to check this but we do not do this, it might get complicated when the user selects multiple elements and decides to set common profiling attributes on all of them.
The DITA Subject Scheme Map defined in the root map always takes priority to impose profiling attribute names and values. So if it exists it overwrites everything in the Oxygen Profiling Preferences. As you saw our User's Manual has a Subject Scheme Map defining values for "product" and those values are used when the user is edited the attribute either in the Attributes view or in the "Edit Profiling Attributes" dialog. |
I agree on using just the first sentence with a link to more. I actually structured the two sentences with the idea in mind that the UI might only have room for the first one. I think some users will get it from the first sentence, while others will need the second (and some will need still more). Unfortunately, there are some ideas that are just too complex, or too contrary to the user's expectations, to be fully explained in the interface. Understanding where the boundaries are between DITA markup, DITA processing, and an Editors interface capabilities is really hard, especially for people who are used to an all-in-one application like Word or FrameMaker. I get people wanting an easier way to enter attributes. I have often wished that the attributes dialog would pop up more like the attributes view. I really want to be able to see at a glance what attributes are available, which are required, which have values already, and I want to be able to add and edit them without having to use the mouse. Forms provide the most general solution to this, but it would be nice to have something more generic as well. I'll document the other information in the config topic. |
On further experimentation, in 16.1 I find the following:
Given this, it actually seems impractical to develop your own styles and colors. All you can really do effectively is change the colors applies to the defaults or those loaded via a DITAVAL file. Perhaps the New button should go away until there is full functionality to add, edit, and display custom colors and styles? |
One observation about your changes to the user's manual:
We have to keep in mind that Oxygen can be used to edit multiple XML vocabularies, some of the users using the preferences page or reading the user guide do not know what DITA is. Maybe the phrase could be something like "If you are using the DITA XML vocabulary, the DITA Subject Scheme...." |
Right. I will amend accordingly. Any thoughts on the difficulties of actually creating colors and styles for other attributes? |
I will start fresh, we had an internal talk about this this morning. I think I said something stupid earlier about the Subject Scheme being used to control the styling in the "Colors and Styles" page. So the thread is about the Oxygen Preferences->"Editor / Edit modes / Author / Profiling/Conditional Text / Colors and Styles" page which can be used to assign various font variants and colors to elements which have certain profiling attributes with a certain value. This particular page has a tree table with two categories: "Defined attribute values" and "Other". Then we have the "Other" section. This section serves the following purposes:
I added a bug and we will work to also add a "Delete" button to the "New/Edit/Clear Style" buttons group allowing you to delete this extra entry. The "Delete" button will be disabled when you select entries from the first category.
|
Thanks, I think I was getting confused between the two dialogs myself. I'll go back and review everything about both of them and bring it up to date with the information you have provided. |
Okay, I was definitely getting confused between the two dialogs. I'm not sure if that is a result of working on them separately or if there is an inherent confusion here. I think maybe the New button on the colors and styles page is confusing, as it suggests that you can add a new attribute/value pair here when really you can't. However, I am finding the whole setting really confusing now. Here is what I have tried: I went into the subject schema and added an new value for product: <subjectdef keys="editorWombats">
<topicmeta>
<navtitle>Wombat Editor</navtitle>
</topicmeta>
</subjectdef> When I do this, the new value shows up in the Edit Profiling Attributes dialog: But it does not show up in the Conditional text settings: That, by itself is confusing. Then I tried adding a value through the conditional text settings: This value immediately shows up in the colors and styles list and I can add a style for it (but the wombatEditor value does not show up and I can't style it): This value will not show up in Edit Profiling Attributes dialog, and it will raise an validation error if you enter it by hand. However, the defined style will be applied to it: It is obvious enough why if you understand how validation works, but this will be really confusing to someone who comes from a FrameMaker or Word background. Then, based on the information above, I want into the colors and styles dialog and hit New. When I started to create a new entry, I found that the new value I introduced in the subject schema was pre-populated in the list: This raises two questions:
But I also have a larger question. The profiling/conditional text preferences page in the userGuide project is populated with the values of the product variable, but it seems like this is incidental to the fact that the same values are defined in the subject schema. So Oxygen is not really using these values to do profiling in the editor. Maybe the only reason they are the same is that they were imported from the DITAVal files or entered by hand at some point. In effect, as you said, they are being ignored in the presence of the subject schema. But really, they are not. They are not being ignored, because the colors and styles settings are based on these values, not on the subject schema values. So when Author applies profiling to an element, it is drawing the list of legal values from the subject schema and the list of colors and styles from what is defined in the dialog, even though it is just coincidence that the names are the same. If you wanted to have the color and style definitions match those in the subject schema, you would have to do through the "other" list. If I've got this right, it is going to be pretty hard to explain. Basically, it seems to me that in the presence of a subject schema file, these dialogs should be populated from the subject schema file and the add/edit/delete buttons should be disabled. I'm also not entirely sure about what the "Import from DITAVAL" button does. Does it do a one time import from a DITAVAL file, or does it create a connection to the DITAVAL file so that if the DITAVAL file changed, the list here would change automatically. I suspect the former, but that is inconsistent with how the subject schema influences the Edit Profiling Attributes dialog. |
One other thought. Should this setting perhaps be a doctype specific setting (under Document Type Associations) rather than a global setting? The settings are all doctype specific. |
Just realized that there is an Import from DITAVAL button in the same position on both pages. I think this may have contributed to my getting confused between the two pages. It seems odd that you would have to do the import twice. If you are importing from a DITAVAL file that defines colors and styles, why not do that in one step? This would not prevent the user from redefining the styles for themselves. |
A number of outstanding issues remain relating to issue #46. The current content does not fully describe the behavior as I currently understand it.
One more thought occurs to me. Based on the use cases I am aware of, there does not seem to be a real need for the "other" section or the New button on the colors and styles page, because you could always add other attributes on the profiling/conditional text page, which would add them to the colors and styles page automatically. Or is there a use case I am missing? |
Mark, you got everything about right. Please see some more answers/details below:
A Preferences page can contain either global settings or settings loaded from the current project. I intended this feature of obtaining controlled profiling attributes and values from the Subject Scheme Map as a feature which can perfectly replace the settings globally defined in the "Profiling/Conditional Text" preferences page in the "Profiling Attributes" list.
So for these the user needs to edit the corresponding preferences pages.
When you add a new style mapping (Document Type, attribute name, attribute value triplet) in the Other section of the " Colors and Styles" preferences page it usually is added because the user has a Subject Scheme map and because of this he did not make changes to the "Profiling/Conditional Text->Profiling Attributes" list. So those entered attribute names and values will not be defined in the parent page.
For our user manual, the "Profiling/Conditional Text" preferences page is also saved at project level with the same values which are defined in the Subject Scheme Map. It is redundant but it was probably done so that in the "Colors and Styles" Preferences the values would appear on the spot.
Yes.
For the "Profiling/Conditional Text" page the list of Profiling Attributes and values will be detected from the DITAVAL (without being self-synchronized with the DITAVAL changes).
We have an opened issue that a document type configuration should be able to come with a predefined list of profiling attributes, sets and styles. So maybe in the future, when you will edit a document type located in the "Document Type Association" preferences page, you will have these two additional pages there.
As far as I know the main idea is that a preferences page should not influence another preferences page. It's like your changing some setting in one page and another page which you cannot see is also changed. We also wanted to split the "Colors and Styles" in a separate page because we considered that maybe the styling colors are more of an user-specific option and its parent page contains more group-specific options which should remain fixed in the workgroup.
Indeed you could also add the attributes defined in the Subject Scheme in the "Profiling/Conditional Text" page. It's kind of redundant but it achieves the same purpose. |
I certainly understand the problem with the volatility of subject schema maps. The problem, of course, is that the user will still want to style them, and currently the feature to do that is both hard to find, hard to understand, and hard to use -- particularly because the interface ties it to a function that is being silently ignored when a subject schema map is present.
But the same volatility problem applies here as it does for the definition of the values themselves. This makes things very confusing, because on Profiling/Conditional Text->Profiling Attributes" you have a list of profiling attributes at the top that is being ignored, and a list of profiling condition sets at the bottom that is being used. I would recommend moving the profiling condition sets onto a separate preferences page to reduce the confusion here. You could then put a label on the Profiling/Conditional Text->Profiling Attributes page that clearly says, "Profiling attributes defined here are ignored when a DITA Subject Schema map is present in the active DITA map."
Yes, but in fact that is exactly what happens now, because if you add an attribute on the Profiling Attributes page, it is immediately added to the list on the Colors and Styles page. Perhaps the thing to do would be to break that connection so that nothing is added to the colors and styles page by default. Then add three import buttons to that page:
In effect, this makes all the definitions "other" in the sense that the settings are not synchronized with profiling attributes defined anywhere else. This could be an advantage, since currently if you remove a profiling attribute, its corresponding colors and styles definition gets deleted (and has to be created again from scratch if you put it back). Having colors and styles defined for attributes that are not currently active does no harm. This would get rid of the need for a New button and give you a single consistent list that is easier to understand.
Have you given any thought to installing frameworks in the user's home directory by default rather than the install directory? Or maybe mirroring the framework structure in both places so that any modifications the user makes to the framework are stored in the home directory (which is read first). That way modifications could be made without creating a complete copy of the original framework, and could be preserved across upgrades. Essentially this would mean storing deltas to the defaults the way you do with preferences. |
* dev: Editing configuration topics for clarity Fixing some of the mess I made related to issue #46 Addressing issue #47 -- mathflow support in Eclipse Addressing Radu's point from issue #46 Editing preference topics for clarity Updating profiling colors and styles config Editing preferences topics for clarity
Hi Mark, I think the best way to see these is that the options provide some defaults. If the root DITA map (the map that provides the editing context for topics) specifies values for profiling attributes with a subject scheme map then oXygen will use those instead of what is specified in the options. There is a similar situation with a default schema that can be specified at the framework level, but oXygen will use the schema specified in the document instead, if a reference to a DTD or schema is present in the document. Best Regards, |
Okay, I can describe it that way. |
A few questions/issue with this.
I'm not entirely sure what that means. My guess is that it means that Oxygen does not check to see if the attribute you define here actually occurs in your schema. It just inserts it. (It will, of course, report a validation error on the result.) If so, both the interface and the docs could make this much clearer by saying something like:
"Only define profiling attributes here that actually exist in your schema. This feature does not add profiling support to XML vocabularies that do not have it already."
(The second sentence is addressing what I'm guessing was the misunderstanding that led to these warnings being inserted in the first place.)
Of course, if this is not what it means, then it should say something else.
The text was updated successfully, but these errors were encountered: