#10637: Implement sage -sws2rst
------------------------------------------------------------+---------------
Reporter: nthiery | Owner:
jason, mpatel, was
Type: enhancement | Status:
needs_review
Priority: major | Milestone:
sage-5.7
Component: notebook | Resolution:
Keywords: ReST, worksheet | Work issues:
answer questions, math formatting, lists, maybe absolute paths?
Report Upstream: Workaround found; Bug reported upstream. | Reviewers:
Nicolas ThiƩry, Jason Grout, Karl-Dieter Crisman, Jason Bandlow, John Palmieri
Authors: Pablo Angulo, Karl-Dieter Crisman | Merged in:
Dependencies: #11080, #11459 | Stopgaps:
------------------------------------------------------------+---------------
Comment (by kcrisman):
> The notebook comes with an editor (`tinyMCE`, or what is it's name?),
and I think sws2rst should be able to work with what is produced by the
editor.
Well, I don't think that arbitrary stuff should be. For instance, we
currently ignore 3D graphics.
> > Indentation I'm not sure about. Whitespace doesn't count; you should
really be using some formatting for that,
>
> I used the editor in the notebook. Shouldn't that be fine?
Yes, in principle, but I'm not sure we can support every single feature of
TinyMCE, an upstream project.
> > I think - not exactly user error, but probably not something one could
design around. What does the ''original'' worksheet have there (in its
html version)? What that looks like would have a big impact on it.
> When I click on the "text" link, I see
> {{{
> <p><span style="text-decoration: underline;"><strong><span style="font-
size: x-large;">Outline</span></strong></span></p>
> <p><strong>Use existing base classes</strong></p>
> <p style="padding-left: 30px;">There are sub-classes of <span style
="font-family: arial,helvetica,sans-
serif;">sage.structure.parent.Parent</span> resp. of <span style="font-
family: arial,helvetica,sans-serif;">sage.structure.element.Element</span>
that will help you a lot. Inheriting from these classes is essential for
using Sage's coercion system.</p>
> <p style="padding-left: 30px;">Arithmetic operations should be
implemented by <span style="text-decoration: underline;"><em>single
underscore</em></span> methods, such as <span style="font-family:
arial,helvetica,sans-serif;">_add_, _mul_</span>.</p>
> <p><strong>Turn your parent structure into an object of a
category</strong></p>
> <p style="padding-left: 30px;">Declare the category during
initialisation - Your parent structure will inherit further useful methods
and consistency tests.</p>
> <p><strong>Provide your parent structure with an element
class</strong></p>
> <p style="padding-left: 30px;">Assign to it an attribute called
"Element" - The elements will inherit further useful methods from the
category.</p>
> <p style="padding-left: 30px;">In addition, some basic conversions will
immediately work.</p>
> <p><strong>Implement further conversions<br /></strong></p>
> <p style="padding-left: 30px;">Never override a parent's __call__
method! Provide <span style="font-family: arial,helvetica,sans-
serif;">_element_constructor_</span> instead.</p>
> <p><strong>Declare coercions</strong></p>
> <p style="padding-left: 30px;">If a conversion happens to be a morphism,
you may consider to turn it into a coercion. It will then
<em>implicitly</em> be used in arithmetic operations.</p>
> <p><strong><span style="text-decoration: underline;">Advanced
coercion:</span> Define construction functors for your parent
structure</strong></p>
> <p style="padding-left: 30px;">Sage will automatically create new
parents for you when needed, by some kind of "pushout" construction.</p>
> <p><strong>Run the automatic test suites</strong></p>
> <p style="padding-left: 30px;">Each method should be documented and
provide a doc test (we are not giving examples here). In addition, any
method defined for a category should be supported by a test method that is
executed when running the test suite.</p>
> }}}
> So, that's what is produced by the editor.
Hopefully Pablo can answer this.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10637#comment:118>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.