1 = Roadmap = 2 3 Some future objectives for the software. 4 5 == HTML Parsing == 6 7 Parsing of HTML fragments would be done to permit translation into the Moin 8 document tree. This would then allow round-trip conversion: 9 10 ########## A graph showing the process is given below... 11 12 {{{#!graphviz 13 //format=svg 14 //transform=notugly 15 digraph htmlparsing { 16 node [shape=box,fontsize="13.0",fontname="sans-serif",tooltip="The MoinLight architecture"]; 17 edge [tooltip="The MoinLight architecture"]; 18 rankdir=LR; 19 20 moin [label="Moin content",shape=folder,style=filled,fillcolor=cyan]; 21 22 subgraph { 23 rank=same; 24 moinparser [label="Moin parser"]; 25 moinserialiser [label="Moin serialiser"]; 26 } 27 28 subgraph { 29 rank=same; 30 tree1 [label="Document tree",shape=folder,style=filled,fillcolor=cyan]; 31 tree2 [label="Document tree",shape=folder,style=filled,fillcolor=cyan]; 32 } 33 34 subgraph { 35 rank=same; 36 htmlserialiser [label="HTML serialiser"]; 37 htmlparser [label="HTML parser"]; 38 } 39 40 html [label="HTML content",shape=folder,style=filled,fillcolor=cyan]; 41 42 moin -> moinparser -> tree1 -> htmlserialiser -> html -> htmlparser -> tree2 -> moinserialiser -> moin; 43 } 44 }}} 45 46 ######## 47 48 Pages could be retained for storage in Moin format, presented in a Web browser 49 in HTML, edited using HTML editing controls, and then converted back for 50 storage. 51 52 In order to maintain various details of the original document, additional 53 annotations would be employed in the generated HTML. Such annotations would 54 appear within `class` attribute values, encoding details of the original 55 content such as indentation, padding and other aspects of that content which 56 are superfluous or inappropriate to the core HTML representation of the 57 document, but which can be interpreted in order to restore the form of the 58 original document. 59 60 == Configuration Files == 61 62 Instead of configuring the conversion [[Metadata|metadata]] programmatically 63 or using command line options with the [[moinconvert]] tool, it would be 64 useful to be able to define settings in configuration files. 65 66 == Externally Available Extensions == 67 68 Currently, the extensions (macros, themes, parsers, and so on) available to 69 MoinLight are defined within the `moinformat` package. However, it should be 70 possible to define extra extensions that reside in other locations. 71 72 == Themed Output for Extensions == 73 74 Macros and other extensions should be able to provide specific theme resources 75 that are referenced in page output and bundled in the deployed content. 76 77 == Pragmas and Directives == 78 79 In order to adjust the handling and display of content, these features of Moin 80 should be supported, with the ability to define handlers. 81 82 == Section Numbering == 83 84 Effectively taking table of contents numbering, headings should be numbered if 85 requested. 86 87 == Variables and Wikidicts == 88 89 These features of Moin should be supported since they permit convenient 90 customisation of content. 91 92 == Macros == 93 94 === Include === 95 96 This macro has proven useful in Moin to combine page content. To support it 97 usefully, it must interact sensibly with tables of contents, perhaps requiring 98 adjustments to the table of contents macro to avoid such tables appearing on 99 included pages, also causing top-level tables to reference sections in the 100 included pages. 101 102 === Table of Contents === 103 104 Building on the ability to be able to provide its own stylesheet resources, 105 the macro should also support expandable entries, perhaps using form controls 106 so that a concise, single-level table of contents can be shown and expanded as 107 necessary.