|!Punctuation|!Location|!Function|\n|{{{@@...@@}}}|surrounding text|@@highlighted text@@|\n|{{{//...//}}}|surrounding text|//italicized text//|\n|{{{==...==}}}|surrounding text|==strikethrough text==|\n|{{{''...''}}}|surrounding text|''boldfaced text''|\n|{{{__...__}}}|surrounding text|__underlined text__|\n|{{{[[text|url]]}}}|around text/url pair|[[text|http://gri.gallaudet.edu/]] link to url|\n|{{{ {...} }}}|''__tripled__'' surrounding text|{{{in-line literal text}}}|\n|{{{ {...} }}}|''__tripled__'' surrounding ''__lines__''|literal block|\n|{{{<<<}}}|surrounding ''__lines__''|blockquotes|\n|{{{!}}}|at start of line|subheading|\n|{{{|...|...|}}}|line sectioned by vertical bars|table row|\n|{{{!}}}|in a table|!table heading|\n|{{{----}}}|alone on line|horizontal rule|\n|{{{*}}}|at start of line|bulleted list item|\n|{{{#}}}|at start of line|numbered list item|\nsource: Kevin Cole, January 2007
TTiddlyWiki uses Wiki style markup, a way of lightly "tagging" plain text so it can be transformed into HTML. Edit this Tiddler to see samples.\n\n! Header Samples\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n\n! Unordered Lists:\n* Lists are where it's at\n* Just use an asterisk and you're set\n** To nest lists just add more asterisks...\n***...like this\n* The circle makes a great bullet because once you've printed a list you can mark off completed items\n* You can also nest mixed list types\n## Like this\n\n! Ordered Lists\n# Ordered lists are pretty neat too\n# If you're handy with HTML and CSS you could customize the [[numbering scheme|http://www.w3schools.com/css/pr_list-style-type.asp]]\n## To nest, just add more octothorpes (pound signs)...\n### Like this\n* You can also\n** Mix list types\n*** like this\n# Pretty neat don't you think?\n\n! Tiddler links\nTo create a Tiddler link, just use mixed-case WikiWord, or use [[brackets]] for NonWikiWordLinks. This is how the GTD style [[@Action]] lists are created. \n\nNote that existing Tiddlers are in bold and empty Tiddlers are in italics. See CreatingTiddlers for details.\n\n! External Links\nYou can link to [[external sites|http://google.com]] with brackets. You can also LinkToFolders on your machine or network shares.\n\n! Images\nEdit this tiddler to see how it's done.\n[img[http://img110.echo.cx/img110/139/gorilla8nw.jpg]]\n\n!Tables\n|!th1111111111|!th2222222222|\n|>| colspan |\n| rowspan |left|\n|~| right|\n|colored| center |\n|caption|c\n\nFor a complex table example, see PeriodicTable.\n\n! Horizontal Rules\nYou can divide a tiddler into\n----\nsections by typing four dashes on a line by themselves.\n\n! Blockquotes\n<<<\nThis is how you do an extended, wrapped blockquote so you don't have to put angle quotes on every line.\n<<<\n>level 1\n>level 1\n>>level 2\n>>level 2\n>>>level 3\n>>>level 3\n>>level 2\n>level 1\n\n! Other Formatting\n''Bold''\n==Strike==\n__Underline__\n//Italic//\nSuperscript: 2^^3^^=8\nSubscript: a~~ij~~ = -a~~ji~~\n@@highlight@@\n@@color(green):green colored@@\n@@bgcolor(#ff0000):color(#ffffff):red colored@@\n
GRANTBOT
A tool to assist in developing Grants
Type the text for 'New Tiddler'
Type the text for 'New Tiddler'
TitlePage\n
The Grantbot is a tool to assist the terminally disorganized in writing grant proposals.
FundingSources\n
Grants exist in society as a way to "feed back" capitol from very profitable activities to less profitable activities. The grant elements could be considered as follows:\n* Givers - \n* Receivers - \n* Beneficiary - Those Who Benefit\n\nGrant activities or goals can encompass:\n* Direct Support of Beneficiary\n* Facilities supporting Beneficiaries\n* Research or Development supporting Beneficiaries\n\n
Methods\n
Reports\n
Future\n
Budget\n
[[overview]]\n
# [[Summary]]\n# [[Introduction]]\n# [[Problem or Need|ProblemNeed]]\n# [[Development]]\n# [[FundingSources]]\n# [[Methods]]\n# [[Reports]]\n# [[Future]]\n# [[Budget]]\n
''The Code''\nThe Code is written within the [["Visual Bash"|http://docbox.flint.com:8081/visual.bash]] framework, and thus the [["source code"|http://docbox.flint.com:8081/visual.bash#chello.sh]], obviously in bash is available at that site.\nDevelopment should continue using this tool chain, but could be adapted for use on other Wiki type platforms.\n''Architecture''\nThe program [["chello.sh|http://docbox.flint.com:8081/visual.bash#chello.sh]] is designed to "breathe". It exhales zope, and now we are working on making chello.sh inhale the zope and exhale an [[OpenDocument Text|https://en.wikipedia.org/wiki/OpenDocument]] format draft document. In an ideal world this breathing capability would continue in that the [[OpenDocument Text|https://en.wikipedia.org/wiki/OpenDocument]] output could subsequently be inhaled back into the [[tiddle|https://en.wikipedia.org/wiki/TiddlyWiki]]. The first part of this, the exhale will be accomplished using a [[python program|PythonODF]]\n\nThe xml manipulation is currently located in the bash script [[mswf.sh|http://docbox.flint.com:8081/visual.bash#mswf.sh]].\nThis may use a form of [[Content Assembly Mechanisim|http://en.wikipedia.org/wiki/Content_Assembly_Mechanism]]. More about this from Red Hat Development [[bash based xml CAM|http://developerblog.redhat.com/2013/12/05/xml-editing-bash-script/]]\n\n''Modules''\nAs of Wednesday, February 11, 2015, the following modules are part of the back end:\n* [[chello.sh|]] - Main module\n* [[mswf.sh]] - Dealing with the Microsoft Word Filter.\n* [[pycs.sh]] - Stub to make a content.xml\n* [[diyc.sh]] - Stub to check pyx parenthesis\n\n\n[[Fun with XML|XMLbasics]]\n\nMaybe [[Report Lab|http://www.reportlab.com/docs/reportlab-userguide.pdf]]\n\nThe code is being modified as [[jchello.sh]] to allow it to be operated using [[nodejs|http://docbox.flint.com:8081/nodejs]]
This is what a typical slug will look like:\n{{{\n<text:list-item>\n<text:h text:style-name="Heading_20_1" text:outline-level="1">Summary</text:h>\n</text:list-item>\n</text:list>\n<text:p text:style-name="Standard">Could end up on web...</text:p>\n}}}\nSOURCE:file:///home/flint/grantsmanship/test/content.xml\n\n\n''Research''\nhttp://books.evc-cit.info/odbook/ch03.html\nhttp://en.wikipedia.org/wiki/OpenDocument_technical_specification\n\n* content.xml cannot be duplicated into an obe file\n* content.xml can be pretty printed with {{{xmlstarlet fo content.xml > test.xml}}}\n\n[[How to open and close ODT|http://www.jejik.com/articles/2010/03/how_to_correctly_create_odf_documents_using_zip/]]
Here is how we are going to do this...\n''Two different processes''\n# construct the document\n# populate the document\n\n* First Option (not done yet)\n## Make a tmp directory, or mount it as a zipped file system.\n## grab the context.xml file \n\nmaybe use xmlstartlet\n[[xmlstarlet - command line XML toolkit|http://xmlstar.sourceforge.net/doc/UG/ch03.html]]\n[[xmlstarlet Documentation|http://xmlstar.sourceforge.net/doc/UG/index.html]]\n[[Edit with xmlstarlet|http://stackoverflow.com/questions/1554143/bash-script-to-edit-xml-file]]\n\nNote you cannot add directories to an odt file without breaking it...\n\n''Tools:''\nxmlcopyeditor - if I can just figure out how to use it.\n\nCoding results:\n[[mswf.sh - ODT manager|http://docbox.flint.com:8081/visual.bash#mswf.sh]]\n[[pycs.sh - Bull In China Shop approach to content.xml|http://docbox.flint.com:8081/visual.bash#pycs.sh]]\n\n''Objective:''\nEncapsulate using discrete code segments, an splice them from the inside out. So far we have contained in pycs.sh three componenets:\n* header.pyx\n* body.pyx\n* footer.pyx\nThe construction of body.pyx shall involve combinations of the following:\nThe elements of body.pyx are:\n* title.pyx\n* numsubs.pyx\nThus numsubs.pyx is built from the following:\nThe elements of numsub are:\n* subtitle.pyx\n* text.pyx\n* numsub.pyx\n* text.pyx\n\nThe trick in splicing these PYX elements together is to splice without newlines on comments. \nNote you can eliminate the following:\n{{{\ngrep -v Axml:id body.pyx \n}}}\nappears to hurt nothing, on the other hand when you eliminate\n{{{\ngrep -v "Atext:style-name W" \n}}}\nData remains valid but you loose your heading numbers...
\n* [[OASIS Open Document Documentation|http://books.evc-cit.info/odbook/book.html]]\n* [[Stackoverflow Answer|http://stackoverflow.com/questions/4017886/how-to-convert-odt-to-doc-rtf-without-openoffice-org]]\n* [[Converter How To|http://www.oooninja.com/2008/01/convert-openxml-docx-etc-in-linux-using.html]]\n* [[Ubuntu/Debian ODF options|ODFoptionsUbuntu]]
''01/20/15 A quick search of the Debian/ubuntu options.''\napt-cache search odf \nsisu-markup-samples - document markup examples for sisu, publish and search framework\naccessodf - Transitional package for accessodf to libreoffice-accessodf\ncalligrastage - presentation program for the Calligra Suite\ndocbook2odf - XSLT based conversions from docbook to Oasis Open Document (openoffice.org)\nlibaccessodf-java - library for checking accessibility in ODF/ODT documents using Libreoffice\nlibodfgen-0.0-0 - library to generate ODF documents\nlibodfgen-dev - library to generate ODF documents -- development\nlibopenoffice-oodoc-perl - module for working with Open Document Format files\nlibreoffice-accessodf - Libreoffice extension to check accessibility of ODF documents\nlive-manual-odf - Debian Live Documentation (odf)\nloook - Search strings in ODF documents\npython-odf - Odfpy aims to be a complete API for OpenDocument in Python.\nsisu - documents - structuring, publishing in multiple formats and search\n
Type the text for 'New Tiddler'
\n[[Good Information Source|http://www.w3schools.com/xml/xml_syntax.asp]]\n[[Ars Technica Article|http://arstechnica.com/information-technology/2005/11/linux-20051115/2/]]\n[[PYXie|http://www.xml.com/pub/a/2000/03/15/feature/index.html]]\n[[Is xPath the answer?|http://en.wikipedia.org/wiki/XPath#Examples]]\n
PYX is \n# the object that the Catholic Host is maintained in, and \n# A way of abstracting [[XML |http://www.ibm.com/developerworks/library/x-matters17/]]. \nI am seeking a definitive source of valid pyx prefixes... Here is what I have:\n\n| {{{PYX prefix character}}} | {{{XmlNodeType value}}} |\n| ( |{{{Element}}} |\n| ) |{{{EndElement}}} |\n| A |{{{Attribute}}} |\n| - |{{{Text}}} |\n| ? |{{{ProcessingInstruction}}} |\n| C |{{{Comment}}} |\n| "" |{{{No Op}}} |\n| \st |{{{Ignore line}}} |\n\n''Comment about comments''\nComments appear to be preserved within content in either the xml or pyx state. Use this to check:\n{{{\nxmlstarlet pyx test5/content.xml |grep -i ^C\n}}}\n\nNote that a character creeped in:\n{{{\n-n\n-\sn\n}}}\nIt appears to be a line feed and is not important most of the time, it is important here:\n{{{\nAoffice:version 1.2\n-\sn \n(office:scripts\n)office:scripts \n}}}\nbut can be omitted in other places.\n\nSadly spaces after words can be important.\n\nNote difference between odf and odt format!!!\n\nThey save differently.\n
Excellent you are rotated. ODT is PYX inside?\nRobert\n • \n53 mins\nNo, ODT contains a file called content.xml. This is essentially a mindfuck. You do this:\nxmlstarlet pyx testd1/content.xml > content.pyx\nYou can then validate the content.pyx with this:\nxmlstarlet depyx content.pyx > contentn.xml; xmlstarlet val contentn.xml\n49 mins\nPaul Flint\nRobert Melton\nbut, why? \ncan't you just parse the XML directly? \nRobert\n • \n48 mins\nso the Lather Rinse Repeat (lrr) is you fuck with the content.pyx, balidating as you go, stick it back in the zip and you have moded your document.\nback in the zip as content.xml\n47 mins\nPaul Flint\nRobert Melton\nBut, I don't grasp the value of the XML -> PYX -> XML steps at all\n\nYour goal is to change the content right? \nRobert\n • \n11 mins\nIndeed you can, but it is a challenge to use unix "bird call" tools (awk, grep sed, etc) to fuck with xml. It much simpler to use bird calls with pyx!\nBTW an excellent question.\n9 mins\nPaul Flint\nRobert Melton\nI never heard them called bird call unitils\nbut, I suspect might not be worth it -- just crack open Go and mangle that content\nRobert\n • \n6 mins\ntry it. Take a document, save as odt. unzip into a directory, take the content.xml and convert it into content.pyc (in another directory, btw) now fuck with the pyc, but check validity. when done convert back into content.xml re zip and open in word or libre office.\n6 mins\nPaul Flint\nRobert Melton\nThat sounds like 11 steps too many\nI already wrote code to do this in .docx (same thing) \nXML files in ZIP files\nRobert\n • \n6 mins\nI am interested...\n5 mins\nPaul Flint\nRobert Melton\nfor resume generation (for Sane Resume)\nthe core problem in a language like Go really isn't that hard\nunzipping is a few lines of code\nslurping in xml is a few lines of code\nwriting xml is a few lines of code\nrezipping is a few lines of code\nit really isn't taht brutal a task\nit is annoying, but not challenging if you know what I mean\nkinda "grunt work" ish\nRobert\n • \n4 mins\nIndeed you are correct, but realize that the problem is code or tool agnostic, a program that does this in (of all things :^) bash is in progress here:\nhttp://docbox.flint.com:8081/visual.bash#mswf.sh\nI wanted to find a better way.\n2 mins\nPaul Flint\nRobert Melton\n*blink* -- you monster!\nhehe\nabusing poor bash like that\nRobert\n • \n2 mins\nMelton, you make me feel proud!!!!\n1 min\nPaul Flint\nIf a man only knows bash he bash-es everything!\n1 min\nPaul Flint\nRobert Melton\nSend a message...\n
The whole secret to this output stream is to generate Open Document Text ([[ODT|ODTchangeProcess]]). Since ODT is encapsulated Extended Meta Language ([[XML|https://en.wikipedia.org/wiki/XML]]), which we translate into ([[PYX|http://www.ibm.com/developerworks/library/x-matters17/]]) it is necessary to assemble or splice together lines of data \n\nCompares content.xml like this:\n{{{\nxmlstarlet pyx ~/grantsmanship/test/content.xml > content.pyx; xmlstarlet pyx ~/grantsmanship/test2/content.xml > content2.pyx ;diff -y ./content.pyx ./content2.pyx | less -N\n}}}\n
Un-numbered Headings\n{{{\nC Un-numbered heading\n(text:h\nAtext:outline-level 2\nAtext:style-name Heading_20_2\n-Un-Numbered Heading \n)text:h\n}}}\n\n\nBody Text element for PYX\n{{{\n(text:p\nAtext:style-name Text_20_body\n(text:span\nAtext:style-name T3\n- ASCII Text\n)text:span\n)text:p\n}}}\n\n\nIs the answer to use [[awk|http://ferd.ca/awk-in-20-minutes.html]] to modify and apply slugs?
These are the header and footer slugs for generating odt:\n\n''header.pyx''\n{{{\n(office:document-content\nAxmlns:office urn:oasis:names:tc:opendocument:xmlns:office:1.0\nAxmlns:style urn:oasis:names:tc:opendocument:xmlns:style:1.0\nAxmlns:text urn:oasis:names:tc:opendocument:xmlns:text:1.0\nAxmlns:table urn:oasis:names:tc:opendocument:xmlns:table:1.0\nAxmlns:draw urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\nAxmlns:fo urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\nAxmlns:xlink http://www.w3.org/1999/xlink\nAxmlns:dc http://purl.org/dc/elements/1.1/\nAxmlns:meta urn:oasis:names:tc:opendocument:xmlns:meta:1.0\nAxmlns:number urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\nAxmlns:svg urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\nAxmlns:chart urn:oasis:names:tc:opendocument:xmlns:chart:1.0\nAxmlns:dr3d urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\nAxmlns:math http://www.w3.org/1998/Math/MathML\nAxmlns:form urn:oasis:names:tc:opendocument:xmlns:form:1.0\nAxmlns:script urn:oasis:names:tc:opendocument:xmlns:script:1.0\nAxmlns:ooo http://openoffice.org/2004/office\nAxmlns:ooow http://openoffice.org/2004/writer\nAxmlns:oooc http://openoffice.org/2004/calc\nAxmlns:dom http://www.w3.org/2001/xml-events\nAxmlns:xforms http://www.w3.org/2002/xforms\nAxmlns:xsd http://www.w3.org/2001/XMLSchema\nAxmlns:xsi http://www.w3.org/2001/XMLSchema-instance\nAxmlns:rpt http://openoffice.org/2005/report\nAxmlns:of urn:oasis:names:tc:opendocument:xmlns:of:1.2\nAxmlns:xhtml http://www.w3.org/1999/xhtml\nAxmlns:grddl http://www.w3.org/2003/g/data-view#\nAxmlns:officeooo http://openoffice.org/2009/office\nAxmlns:tableooo http://openoffice.org/2009/table\nAxmlns:drawooo http://openoffice.org/2010/draw\nAxmlns:calcext urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\nAxmlns:loext urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\nAxmlns:field urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\nAxmlns:formx urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\nAxmlns:css3t http://www.w3.org/TR/css3-text/\nAoffice:version 1.2\n(office:scripts\n)office:scripts\n(office:font-face-decls\n(style:font-face\nAsvg:font-family FreeSans\nAstyle:font-family-generic swiss\nAstyle:name FreeSans1\n)style:font-face\n(style:font-face\nAsvg:font-family 'Liberation Serif'\nAstyle:font-family-generic roman\nAstyle:font-pitch variable\nAstyle:name Liberation Serif\n)style:font-face\n(style:font-face\nAsvg:font-family 'Times New Roman'\nAstyle:font-family-generic roman\nAstyle:font-pitch variable\nAstyle:name Times New Roman\n)style:font-face\n(style:font-face\nAsvg:font-family Arial\nAstyle:font-family-generic swiss\nAstyle:font-pitch variable\nAstyle:name Arial\n)style:font-face\n(style:font-face\nAsvg:font-family 'Droid Sans Fallback'\nAstyle:font-family-generic system\nAstyle:font-pitch variable\nAstyle:name Droid Sans Fallback\n)style:font-face\n(style:font-face\nAsvg:font-family FreeSans\nAstyle:font-family-generic system\nAstyle:font-pitch variable\nAstyle:name FreeSans\n)style:font-face\n)office:font-face-decls\n(office:automatic-styles\n(style:style\nAstyle:family paragraph\nAstyle:list-style-name L3\nAstyle:name P1\nAstyle:parent-style-name Heading_20_2\n(style:text-properties\nAofficeooo:paragraph-rsid 00176519\n)style:text-properties\n)style:style\n(style:style\nAstyle:family paragraph\nAstyle:list-style-name L3\nAstyle:name P2\nAstyle:parent-style-name Heading_20_2\n(style:text-properties\nAofficeooo:paragraph-rsid 00176519\nAofficeooo:rsid 00176519\n)style:text-properties\n)style:style\n(style:style\nAstyle:family paragraph\nAstyle:list-style-name L3\nAstyle:name P3\nAstyle:parent-style-name Heading_20_2\n(style:paragraph-properties\nAstyle:auto-text-indent false\nAfo:margin-left 0.5in\nAfo:margin-right 0in\nAfo:text-indent -0.25in\n)style:paragraph-properties\n(style:text-properties\nAofficeooo:paragraph-rsid 00176519\nAofficeooo:rsid 00176519\n)style:text-properties\n)style:style\n(style:style\nAstyle:family text\nAstyle:name T1\n(style:text-properties\nAofficeooo:rsid 00176519\n)style:text-properties\n)style:style\n(text:list-style\nAstyle:name L1\n(text:list-level-style-number\nAtext:level 1\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.5in\nAfo:margin-left 0.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 2\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.75in\nAfo:margin-left 0.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 3\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1in\nAfo:margin-left 1in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 4\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.25in\nAfo:margin-left 1.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 5\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.5in\nAfo:margin-left 1.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 6\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.75in\nAfo:margin-left 1.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 7\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2in\nAfo:margin-left 2in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 8\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.25in\nAfo:margin-left 2.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 9\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.5in\nAfo:margin-left 2.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 10\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.75in\nAfo:margin-left 2.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n)text:list-style\n(text:list-style\nAstyle:name L2\n(text:list-level-style-number\nAtext:level 1\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.5in\nAfo:margin-left 0.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 2\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.75in\nAfo:margin-left 0.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 3\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1in\nAfo:margin-left 1in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 4\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.25in\nAfo:margin-left 1.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 5\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.5in\nAfo:margin-left 1.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 6\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.75in\nAfo:margin-left 1.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 7\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2in\nAfo:margin-left 2in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 8\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.25in\nAfo:margin-left 2.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 9\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.5in\nAfo:margin-left 2.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 10\nAstyle:num-format 1\nAstyle:num-suffix .\nAtext:style-name Numbering_20_Symbols\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.75in\nAfo:margin-left 2.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n)text:list-style\n(text:list-style\nAstyle:name L3\n(text:list-level-style-number\nAtext:level 1\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.5in\nAfo:margin-left 0.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 2\nAtext:level 2\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.75in\nAfo:margin-left 0.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 3\nAtext:level 3\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1in\nAfo:margin-left 1in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 4\nAtext:level 4\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.25in\nAfo:margin-left 1.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 5\nAtext:level 5\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.5in\nAfo:margin-left 1.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 6\nAtext:level 6\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.75in\nAfo:margin-left 1.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 7\nAtext:level 7\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2in\nAfo:margin-left 2in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 8\nAtext:level 8\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.25in\nAfo:margin-left 2.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 9\nAtext:level 9\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.5in\nAfo:margin-left 2.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:display-levels 10\nAtext:level 10\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix \n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2.75in\nAfo:margin-left 2.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n)text:list-style\n(text:list-style\nAstyle:name L4\n(text:list-level-style-number\nAtext:level 1\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAfo:margin-left -0.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 2\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 3\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.25in\nAfo:margin-left 0.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 4\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.5in\nAfo:margin-left 0.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 5\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 0.75in\nAfo:margin-left 0.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 6\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1in\nAfo:margin-left 1in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 7\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.25in\nAfo:margin-left 1.25in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 8\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.5in\nAfo:margin-left 1.5in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 9\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 1.75in\nAfo:margin-left 1.75in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n(text:list-level-style-number\nAtext:level 10\nAstyle:num-format 1\nAstyle:num-prefix \nAstyle:num-suffix .\n(style:list-level-properties\nAtext:list-level-position-and-space-mode label-alignment\n(style:list-level-label-alignment\nAtext:label-followed-by listtab\nAtext:list-tab-stop-position 2in\nAfo:margin-left 2in\nAfo:text-indent -0.25in\n)style:list-level-label-alignment\n)style:list-level-properties\n)text:list-level-style-number\n)text:list-style\n)office:automatic-styles\n(office:body\n(office:text\n}}}\n\n''footer.pyx''\n{{{\nC closing time\n)office:text\n)office:body\n)office:document-content\n}}}
{{{\nC Title\n}}}\n\n{{{\nC Numbered Item\n}}}\n\n{{{\nC Numbered Item\n}}}\n\n{{{\nC Numbered Item\n}}}\n\n{{{\nC Text Slug\n(text:p\nAtext:style-name Text_20_body\n)text:p\n(text:p\nAtext:style-name Text_20_body\n(text:span\nAtext:style-name T1\n-Body text. \n(text:s\n)text:s\n)text:span\n-Nothing Yet...\n)text:p\n}}}
galax-doc - XQuery implementation with static typing - documentation\ngalax-extra - XQuery implementation with static typing - utilities\ngalaxd - XQuery implementation with static typing - network servers\n\nbasex - XML database and XPath/XQuery processor\nxacobeo - XPath (XML Path Language) visualizer\nxgrep - grep-like utility for XML files\nxml-twig-tools - Command line tools for processing XML documents\nxmlcopyeditor - fast, free, validating XML editor\nxmlcopyeditor-dbg - fast, free, validating XML editor - debug\nxmlstarlet - command line XML toolkit\nxqilla - XQuery and XPath 2.0 command line interpreter
\njchello.sh very much a work in progress...\n{{{\n#!/bin/bash\n# pflint Fri 30 Jan 2015 04:04:36 PM EST \n# setup bug worked \n# \n# Grant Generator for nodejs\nversion="0.001"\n#\n#\n#* function help - Help function for template basic help goes here\nfunction help(){\n# clear;\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version; uroot #debug \ncat $0 | grep '^## ' | sed -e 's/##//'\n# echo "This is the help function"\n## *****DOCUMENTATION*****\n## You get this when you put in the wrong number or type of arguments...\n## The name of this program is chello.sh, a tiddle based proposal generator.\n## This is released under GPL I\n## The syntax is:\n## - chello.sh sett <Tiddle URL> <UID> <PASS> - \n## sets the name of the tiddlewiki you want to work on \n## - chello.sh showt - shows the name of the \n## tiddlewiki you are currently working on \n## - chello.sh maket <PROJNAME> - makes a <PROJNAME> \n## - chello.sh remt <PROJNAME> - removes a <PROJNAME>\n## - chello.sh settt <TITLE> - sets title in tiddle \n## - chello.sh setst <STITLE> - sets sub-title in tiddle\n## - chello.sh overview - generates and overview, sets it as default\n## - chello.sh dlt - downloads relevant tiddles\n## - chello.sh dtp - downloads default tiddler\n## in all of these, Output is delivered to the screen...\n## *** NOTE *** This program need not be run as root!\n##\n## For structure information type "grep '^\s#\s*' chello.sh"\n## :^)\n## (C) P Flint, Barre Open Systems Institute Liscensed under GPLI\n##\n# *****Documentation Loop ends here the rest is function******\n#\n} # Test: chello.sh\n#\n#* function hhelp - Help function outputs html\nfunction hhelp(){\n# clear;\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #d ; uroot \n#debug \ncat $0 | grep '^#h ' | sed -e 's/#h//' | while read line; do echo "<P> ""$line" "</P> "; done\n# echo "This is the help function"\n#h *****DOCUMENTATION*****\n#h You get this when you put in the wrong number or type of arguments...\n#h The name of this program is chello.sh, a tiddle based proposal generator.\n#h This is released under GPL I\n#h The syntax is:\n#h - &lt base url &gt/sett <Tiddle URL> <UID> <PASS> - \n#h sets the name of the tiddlewiki you want to work on \n#h - &lt base url &gt/showt - shows the name of the \n#h tiddlewiki you are currently working on \n#h - &lt base url &gt/maket <PROJNAME> - makes a <PROJNAME> \n#h - &lt base url &gt/remt <PROJNAME> - removes a <PROJNAME>\n#h - &lt base url &gt/settt <TITLE> - sets title in tiddle \n#h - &lt base url &gt/setst <STITLE> - sets sub-title in tiddle\n#h - &lt base url &gt/overview - generates and overview, sets it as default\n#h - &lt base url &gt/dlt - downloads relevant tiddles\n#h - &lt base url &gt/dtp - downloads default tiddler\n#h in all of these, Output is delivered to the screen...\n#h *** NOTE *** This program need not be run as root!\n#h\n#h For structure information type "grep '^\s#\s*' chello.sh"\n#h :^)\n#h (C) P Flint, Barre Open Systems Institute Liscensed under GPLI\n#h\n# *****Documentation Loop ends here the rest is function******\n#\n} # Test: chello.sh\n# next lines run ballisticly\n#* hold environment\nS=$PWD\n# echo "This is the path "$S\n# debug\n#\n# Define files to be used\n#* function ch4ps - checks and reports on what you need.\nfunction ch4ps(){\n#d echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n#* check location of vital files and programs, sanity check\nrm -rf need > /dev/null\nfor prog in curl expect cadaver xmlstarlet git # debug banana\ndo\n # echo $prog\n isit=$(which $prog)\n # echo $isit \n if [ ! -f "$isit" ];\n then\n echo $prog >> need\n #debug echo "Type \s"sudo apt-get install $prog\s" to fix this."\n #debug spause\n # exit 0\n fi\ndone\n# clear\necho "<P> Welcome to $0! </P>"\necho "<P> Missing programs:</P>"\n if [ -f need ];\n then\n echo " This program needs the following program(s) to be installed on this system."\n cat need |while read line; do echo -e \s\st" - " $line; done\n echo " If you want them installed please logon as root (sudo $0) and they will install"\n exit 0 # breaks you out of loop..\n else\n echo "<P> &nbsp &nbsp None... Things look good!</P>"\n fi\n#\necho "end of check" | htmlize\n} # Test:\n#\n#\n#* function instg - # installs extra software if you are root, installs all the good stuff\nfunction instg(){\necho "<P> This is the \s""$FUNCNAME"\s" function in "$0" version "$version"</P>" #debug\nif [ "$(id -u)" = "0" ] && [ -f need ]; then\n echo "You are root and you are about to install the following:" 1>&2\n cat need |while read line; do echo -e \s\st" - " $line; done\n read -p "Hit enter to continue and install..." an\n #debug\n cat need |while read line; do apt-get install $line; done\n #debug cat need |while read line; do echo -e \s\st" - " $line; done\nfi\nrm -rf need\n#debug exit 0 # breaks you out of loop...\n} # Test:\n# \n# qualify user\n# uid="" ; if [ "$uid" == "" ]; then echo "Set user id!"; exit; fi\n# passwd="" ; if [ "$passwd" == "" ]; then echo "Set user passwd!"; exit; fi\n# echo "Check if you are root"\n# uroot()\n# exit\n#\n# next lines run ballisticly\n#debug \ninstg # installs extra software if you are root\nch4ps # checks and reports on what you need.\n# above runs ballisticly\n#\n#* function dummy - Rename and fill stuff in between braces\nfunction dummy(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test:\n#\n#\n#* function sett - sets the name and logon for tiddlewiki you want to work on\nfunction sett(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nrm -rf ss\ntiddleurl=$var2;uid=$var3;pass=$var4\n#\necho -e " TiddleURL is\st"$tiddleurl \necho -e " UID is \st"$uid\necho -e " PASS is \st"$pass\n#\ntouch ss\necho $tiddleurl >> ss\necho $uid >> ss\necho $pass >> ss\n#\nspause\n} # Test: ./chello.sh sett one two three\n#\n#\n#* function htmlize - Rename and fill stuff in between braces\nfunction htmlize(){\n#d echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\necho "<P> This is the \s""$FUNCNAME"\s" function in "$0" version "$version"<P>" #debug\n} # Test:\n\n#\n#* function showt - shows the name for tiddlewiki you are currently working on\nfunction showt(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nIFS=$'\sn' ss=($(cat ss))\n# [[ ${ss[1]} = $name ]] && echo "${a[$i]}"\ntiddleurl=${ss[0]};\nuid=${ss[1]};\npass=${ss[2]}\nproj=${ss[3]}\n#\necho -e " TiddleURL is\st"$tiddleurl \necho -e " UID is \st"$uid\necho -e " PASS is \st"$pass\necho -e " PROJECT is \st"$proj\n#\n#debug spause\n} # Test: ./chello.sh showt\n#\n#* function maket <PROJNAME> - makes a <PROJNAME> in the current tiddlewiki\nfunction maket(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\nshowt > /dev/null\n#debug spause\n# packs expect and sends it out...\n# \n# From this line to EOF is the code to export\n# note slash escapes (\s\s)\nread -d '' String <<"EOF"\n#!/usr/bin/expect -f\nset tiddleurl [lindex $argv 0]\nset user [lindex $argv 1]\nset pass [lindex $argv 2]\nset proj [lindex $argv 3]\n# puts "Argument data:\sn";\n# puts "user: $user";\n# puts "pass: $pass";\n# puts "proj: $proj";\n# puts "tiddleurl: $tiddleurl";\n# check...\nif { $user == "" || $pass == "" || $tiddleurl == "" || $proj == "" } {\n puts "Usage: <user> <pass> <tiddleurl> <proj> n"\n exit 1\n}\nspawn /usr/bin/cadaver http://$tiddleurl/\nexpect "Username:"\nsend "$user\s\sn"\nexpect "Password:"\nsend "$pass\s\sn"\nexpect "dav:"\nsend "copy ZiddlyWiki $proj\s\sn"\nexpect "dav:"\nsend "quit\s\sn"\nEOF\necho "this is the project "$var2\necho $var2 >> ss\necho "$String" > doit.exp\nchmod +x doit.exp\n# debug \n./doit.exp $tiddleurl $uid $pass $var2 | grep succeeded\n#debug > /dev/null\nrm -rf doit.exp\n#\n} # Test: ./chello.sh maket banana\n#\n#* function remt <PROJNAME> - removes a <PROJNAME> in the current tiddlewiki\nfunction remt(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\nshowt > /dev/null\n#debug spause\n# packs expect and sends it out...\n# \n# From this line to EOF is the code to export\n# note slash escapes (\s\s)\nread -d '' String <<"EOF"\n#!/usr/bin/expect -f\nset tiddleurl [lindex $argv 0]\nset user [lindex $argv 1]\nset pass [lindex $argv 2]\nset proj [lindex $argv 3]\nspawn /usr/bin/cadaver http://$tiddleurl/\nexpect "Username:"\nsend "$user\s\sn"\nexpect "Password:"\nsend "$pass\s\sn"\nexpect "dav:"\nsend "rmcol $proj\s\sn"\nexpect "dav:"\nsend "quit\s\sn"\nEOF\n# echo "this is the project "$var2\necho "$String" > doit.exp\nchmod +x doit.exp\n# debug \n./doit.exp $tiddleurl $uid $pass $var2 | grep succeeded\n#debug > /dev/null\n#debug \n#debug \nrm -rf doit.exp\n#\n# remove the project name from secret squirrel fle\n\n} # Test:\n#\n#\n#* function settt - sets the name of the title tiddle \nfunction settt(){\n# curl -T banana.title http://the:end@docbox.flint.com:1980/banana/tiddlers/SiteTitle\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nshowt > /dev/null\necho $var2 > proj.title\ncurl -T proj.title http://$uid:$pass@$tiddleurl/$proj/tiddlers/SiteTitle\nrc=$?; if [[ $rc != 0 ]]; then echo "error"; exit $rc; fi\necho $rc; \nspause\n} # Test:\n#\n#* function setst - sets the name of the sub-title tiddle \nfunction setst(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# curl -T banana.title http://the:end@docbox.flint.com:1980/banana/tiddlers/SiteTitle\nshowt > /dev/null\necho $var2 > proj.stitle\ncurl -T proj.stitle http://$uid:$pass@$tiddleurl/$proj/tiddlers/SiteSubtitle\nrc=$?; if [[ $rc != 0 ]]; then echo "error"; exit $rc; fi\necho $rc; \nspause\n} # Test:\n#\n#\n#* function mktdl - creates an indivitual tiddle \nfunction mktdl(){\n#debug \nshowt > /dev/null\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\ntiddle=$var2\necho "Making "$tiddle\necho $tiddle > $proj.$tiddle\ncurl -T proj.$tiddle http://$uid:$pass@$tiddleurl/$proj/tiddlers/$tiddle\nrc=$?; if [[ $rc == 0 ]]; then echo "tiddle "$tiddle" made."; exit $rc; fi\necho $rc; \nspause\n} # Test:\n#\n#* function popgp - populates the grant proposal \nfunction popgp(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nshowt # > /dev/null\n#debug spause\nfor tiddle in TitlePage Summary Introducion FundingSources ProblemNeed Methods Reports Future Budget\ndo\n echo "making "$tiddle\n echo $tiddle > $proj.$tiddle\n curl -T $proj.$tiddle http://$uid:$pass@$tiddleurl/$proj/tiddlers/$tiddle\ndone\n#debug spause\n} # Test: chello.sh popgp\n#\n#* function overview - creates the overview tiddle and populates it\nfunction overview(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nshowt > /dev/null\n#\npopgp #make categories\n#\n# make DefaultTiddlers file...\ntiddle=DefaultTiddlers\nttopic=overview\necho "making "$ttopic\nrm -rf $proj.$tiddle\necho "[["overview"]]" >> $proj.$tiddle\ncurl -T $proj.$tiddle http://$uid:$pass@$tiddleurl/$proj/tiddlers/$tiddle\necho "OK uploaded"\nrc=$?; if [[ $rc == 0 ]]; then echo "tiddle "$tiddle" made."; fi\necho $rc; \n# spause\n#\n# make the overview file\ntiddle=overview\necho "Starting to make "$proj.$tiddle\nrm -rf $proj.$tiddle\nfor ttopic in TitlePage Summary Introducion FundingSources ProblemNeed Methods Reports Future Budget\ndo\n echo "making "$ttopic\n echo "# [["$ttopic"]]" >> $proj.$tiddle\ndone\n#\necho "Uploading "$proj.$tiddle\ncurl -T $proj.$tiddle http://$uid:$pass@$tiddleurl/$proj/tiddlers/$tiddle\nrc=$?; if [[ $rc == 0 ]]; then echo "tiddle "$tiddle" made."; exit $rc; fi\necho $rc; \n# echo "Uploaded "$proj.$tiddle\necho "Erasing all files begining with "$proj"."\necho "This includes: "\nls -alt $proj.*\nspause\nrm -rf $proj.*\n# echo $tiddle\n#\n} # Test: chello.sh\n#\n#* function dlt - Download relevant tiddles\nfunction dlt(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nspause\nread -d '' String <<"EOF"\n#!/usr/bin/expect -f\nset tiddleurl [lindex $argv 0]\nset user [lindex $argv 1]\nset pass [lindex $argv 2]\nset proj [lindex $argv 3]\nspawn /usr/bin/cadaver http://$tiddleurl/\nexpect "Username:"\nsend "$user\s\sn"\nexpect "Password:"\nsend "$pass\s\sn"\nexpect "dav:"\nsend "cd $proj\s\sn"\nexpect "dav:"\nsend "cd tiddlers\s\sn"\nexpect "dav:"\nsend "ls\s\sn"\nexpect "dav:"\nsend "quit\s\sn"\nEOF\necho "this is the project "$proj\necho "$String" > doit.exp\nchmod +x doit.exp\n# debug \n./doit.exp $tiddleurl $uid $pass $proj | grep "^ " > slug.dir\nsed 's/^ //g' slug.dir | # Pipe throught filters\n grep -vi "Basic_Editing" | # \n grep -vi "FormattingInstructions" > $proj.dir \ncat $proj.dir\n#| grep succeeded\n#debug > /dev/null\n#\n#debug \nspause\n} # Test:\n#\n#* function dlr - Rename and fill stuff in between braces\nfunction dlr(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#debug \nshowt > /dev/null\n# debug\nn=1\ncurl -s http://$uid:$pass@$tiddleurl/$proj/tiddlers/overview |tr -d "# [[" | tr -d "]]"| while read line;\ndo\necho -e $n"\st"$line\n((n++))\ndone\n} # Test:bin/chello.sh dlr (assume that ss is right)\n#\n#\n######################################STANDARD AND MAYBE USEFUL FUNCTIONS BELOW\n#\n#\n#* function uroot - Checks to see if you are root\nfunction uroot(){\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n echo "This script does not need to run as root but that's OK as you are not root" 1>&2\nfi\n} # Test:~flint/bin/chello.sh uroot\n#\n#\n#* function spause - A simple tarry...\nfunction spause(){\n # -t sets time\n # read -t $pt -p "$*" ans\n read -p "Hit enter to continue..." ans\n echo $ans\n}\n#\n#*###################################### MAIN ENTRY POINT AND COMPOUND CASE\n#\n# echo "chello.sh v"$version" starts"\n#* Evaluator Routine\n# Note the evaluator allows for many cases and error checking...\n# ARGS=$# # carries the number of args into the functions...\nif [ "$#" -eq "4" ] && [ "$1" = "sett" ]; then ARGS="4"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "showt" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "maket" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "remt" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "settt" ]; then ARGS="2"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "setst" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "popgp" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "mktdl" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dlt" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dlr" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "overview" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dummy" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "uroot" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "spause" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "hhelp" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "htmlize" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "help" ]; then ARGS="9"; fi\n# this tests the evaluator...\n#debug echo $#" "$1" "$2" "$3" "$ARGS ;spause \n# typical cases, be careful to make your own...\ncase "$ARGS" in\n# "0") clear; $1="help"; exit 1;; # got nothing, display help and go\n "0") $1="help"; exit 1;; # got nothing, display help and go\n "1") $1 ;; # run the command\n "2") var2=$2; $1 ;; # run the command with an argument\n "3") var3=$3; var2=$2; $1 ;; # run the command with two arguments\n "4") var4=$4; var3=$3; var2=$2; $1 ;; # run the command with three arguments\n "5") prompt=$2; $1 ;; # run the command with a different argument\n "6") time=$3; prompt=$2; $1 ;; # run the command with two different arguments\n "7") defvbl; $1 ;; # run the command and default variables\n "8") var2=$2; $1 ;; # run the command and settle variables\n "9") var3=$3; var2=$2; $1 ;; # run the command and settle variables\n *) cat $0 | grep '^## '| sed -e 's/##//'; exit 1;; # Anything else run help and exit...\n# *) clear; cat $0 | grep '^## '| sed -e 's/##//'; exit 1;; # Anything else run help and exit...\nesac # End main loop. To TEST:\n#\n# echo " ";\necho "On "$(date +%F\s %r) $0" version "$version" stops"\n#debug echo "That's all folks!!"\n#\n#debug rm -rf ss # removes super secret data file\n#* restore environment\ncd "$S"\n}}}
Maybe this is better than the [[bash way|ODTchangeProcess]]\n\n[[Linux Journal Article|http://www.linuxjournal.com/article/9347]] too damn basic...\n[[Ideological Python ODT|http://www.opendocumentformat.org/developers/]]\n[[odfpy|https://pypi.python.org/pypi/odfpy]] anyone?\n[[Colin Clark uses bash|http://www.linuxjournal.com/article/9319?page=0,1]]\n[[OASIS|https://www.oasis-open.org/standards#opendocument]] is useless.\n[[relatorio|https://pypi.python.org/pypi/relatorio]] na...maybe?\n* [[Invoice example|https://code.google.com/p/python-relatorio/wiki/QuickExample]]\n\n[[Installing relatorio|http://installion.co.uk/ubuntu/saucy/universe/p/python-relatorio/install/index.html]]\n
Genshi is simply incomprehensible\n\n|!Reference HTML|! Description|\n|[[Search for Genshi |https://www.google.com/search?client=ubuntu&channel=fs&q=Genshi+directives&ie=utf-8&oe=utf-8]]||\n|[[Genshi |http://genshi.edgewall.org/wiki/Documentation/xml-templates.html]]||\n|[[Genshi |http://genshi.edgewall.org/wiki/Documentation/templates.html]]||\n|[[Genshi |http://genshi.edgewall.org/wiki/GenshiRecipes]]||
\n[[opfpy|http://opendocumentfellowship.com/projects/odfpy]]\n[[examples|http://mashupguide.net/1.0/html/ch17s04.xhtml]]
Raymond Yee's prodigious guide on [[mashups|http://mashupguide.net/1.0/html/]], continues to amaze and astound.\nI will be working the examples such as the "rosetta stone" program in the front, which I call [[4test.py]]. This demonstrates that we can output the document in odt using python.\n\nYou need [[pycurl|http://pycurl.sourceforge.net/doc/quickstart.html]] to transfer files.
\nThis currently works almost as a rosetta stone:\n{{{\n#!/usr/bin/env python\n# -*- coding: UTF-8 -*-\n# from __future__ import unicode_literals\n# odfpy_gen_example.py\n# http://mashupguide.net/1.0/html/ch17s04.xhtml\n\n"""\n\n Description: This program used odfpy to generate a simple ODF text document\n odfpy: http://opendocumentfellowship.com/projects/odfpy\n documentation for odfpy: http://opendocumentfellowship.com/files/api-for-odfpy.odt\n\n"""\n# import sys\nfrom odf.opendocument import OpenDocumentText\nfrom odf.style import Style, TextProperties, ParagraphProperties, ListLevelProperties, FontFace, TableCellProperties\nfrom odf.text import P, H, A, S, Section, List, ListItem, ListStyle, ListLevelStyleBullet, ListLevelStyleNumber, ListLevelStyleBullet, Span\nfrom odf.text import Note, NoteBody, NoteCitation\nfrom odf.office import FontFaceDecls\nfrom odf.table import Table, TableColumn, TableRow, TableCell\nfrom odf.draw import Frame, Image\n\n# fname is the path for the output file\n# fname= r'test_odfpy_gen_example.odt';\nfname='test_odfpy_gen_example.odt'\n#fname='D:\sDocument\sPersonalInfoRemixBook\sexamples\sch17\sodfpy_gen_example.odt'\n\n# instantiate an ODF text document (odt)\ntextdoc = OpenDocumentText()\n\n\n## Styles\n\n# styles\n"""\n<style:style style:name="Standard" style:family="paragraph" style:class="text"/>\n<style:style style:name="Text_20_body" style:display-name="Text body"\nstyle:family="paragraph"\nstyle:parent-style-name="Standard" style:class="text">\n<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0835in"/>\n</style:style>\n"""\n\ns = textdoc.styles\n\nStandardStyle = Style(name="Standard", family="paragraph")\n##StandardStyle.addAttribute('class','text')\ns.addElement(StandardStyle)\n\nTextBodyStyle = Style(name="Text_20_body",family="paragraph", parentstylename='Standard', displayname="Text body")\n##TextBodyStyle.addAttribute('class','text')\nTextBodyStyle.addElement(ParagraphProperties(margintop="0in", marginbottom="0.0835in"))\ns.addElement(TextBodyStyle)\n\n# font declarations\n"""\n<office:font-face-decls>\n <style:font-face style:name="Arial" svg:font-family="Arial"\n style:font-family-generic="swiss"\n style:font-pitch="variable"/>\n </office:font-face-decls>\n"""\n\ntextdoc.fontfacedecls.addElement((FontFace(name="Arial",fontfamily="Arial",fontfamilygeneric="swiss",fontpitch="variable")))\n\n# Automatic Style\n\n# P1\n"""\n<style:style style:name="P1" style:family="paragraph"\n style:parent-style-name="Standard"\n style:list-style-name="L1"/>\n"""\nP1style = Style(name="P1", family="paragraph", parentstylename="Standard", liststylename="L1")\ntextdoc.automaticstyles.addElement(P1style)\n\n# L1\n"""\n<text:list-style style:name="L1">\n <text:list-level-style-bullet text:level="1"\n text:style-name="Numbering_20_Symbols"\n style:num-suffix="." text:bullet-char="•">\n <style:list-level-properties text:space-before="0.25in"\n text:min-label-width="0.25in"/>\n <style:text-properties style:font-name="StarSymbol"/>\n </text:list-level-style-bullet>\n</text:list-style>\n"""\nL1style=ListStyle(name="L1")\n# u'\su2022' is the bullet character (http://www.unicode.org/charts/PDF/U2000.pdf)\nbullet1 = ListLevelStyleBullet(level="1", stylename="Numbering_20_Symbols", numsuffix=".", bulletchar=u'\su2022')\nL1prop1 = ListLevelProperties(spacebefore="0.25in", minlabelwidth="0.25in")\nbullet1.addElement(L1prop1)\nL1style.addElement(bullet1)\ntextdoc.automaticstyles.addElement(L1style)\n\n# P6\n"""\n <style:style style:name="P6" style:family="paragraph"\n style:parent-style-name="Standard"\n style:list-style-name="L5"/>\n"""\n\nP6style = Style(name="P6", family="paragraph", parentstylename="Standard", liststylename="L5")\ntextdoc.automaticstyles.addElement(P6style)\n\n# L5\n"""\n<text:list-style style:name="L5">\n <text:list-level-style-number text:level="1"\n text:style-name="Numbering_20_Symbols"\n style:num-suffix="." style:num-format="1">\n <style:list-level-properties text:space-before="0.25in"\n text:min-label-width="0.25in"/>\n </text:list-level-style-number>\n</text:list-style>\n"""\n\nL5style=ListStyle(name="L5")\nnumstyle1 = ListLevelStyleNumber(level="1", stylename="Numbering_20_Symbols", numsuffix=".", numformat='1')\nL5prop1 = ListLevelProperties(spacebefore="0.25in", minlabelwidth="0.25in")\nnumstyle1.addElement(L5prop1)\nL5style.addElement(numstyle1)\ntextdoc.automaticstyles.addElement(L5style)\n\n# T1\n"""\n <style:style style:name="T1" style:family="text">\n <style:text-properties fo:font-style="italic" style:font-style-asian="italic"\n style:font-style-complex="italic"/>\n </style:style>\n"""\nT1style = Style(name="T1", family="text")\nT1style.addElement(TextProperties(fontstyle="italic",fontstyleasian="italic", fontstylecomplex="italic"))\ntextdoc.automaticstyles.addElement(T1style)\n\n# T2\n"""\n<style:style style:name="T2" style:family="text">\n <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold"\n style:font-weight-complex="bold"/>\n </style:style>\n"""\nT2style = Style(name="T2", family="text")\nT2style.addElement(TextProperties(fontweight="bold",fontweightasian="bold", fontweightcomplex="bold"))\ntextdoc.automaticstyles.addElement(T2style)\n\n# T5\n"""\n <style:style style:name="T5" style:family="text">\n <style:text-properties fo:color="#ff0000" style:font-name="Arial"/>\n </style:style>\n"""\nT5style = Style(name="T5", family="text")\nT5style.addElement(TextProperties(color="#ff0000",fontname="Arial"))\ntextdoc.automaticstyles.addElement(T5style)\n\n\n# table\n"""\n <style:style style:name="Tableau1.A1" style:family="table-cell">\n <style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>\n"""\nTAB_style = Style(name="Table", family="table-cell")\nTAB_style.addElement(TableCellProperties(border="0.05pt solid #000000"))\ntextdoc.automaticstyles.addElement(TAB_style)\n\n\n\n# now construct what goes into <office:text>\n\nh=H(outlinelevel=1, text='Purpose (Heading 1)')\ntextdoc.text.addElement(h)\np = P(text="The following sections illustrate various possibilities in ODF Text",stylename='Text_20_body')\ntextdoc.text.addElement(p)\n\ntextdoc.text.addElement(H(outlinelevel=2,text='A simple series of paragraphs (Heading 2)'))\ntextdoc.text.addElement(P(text="This section contains a series of paragraphs.", stylename='Text_20_body'))\ntextdoc.text.addElement(P(text="This is a second paragraph.",stylename='Text_20_body'))\ntextdoc.text.addElement(P(text="And a third paragraph.", stylename='Text_20_body'))\n\ntextdoc.text.addElement(H(outlinelevel=2,text='A section with lists (Heading 2)'))\ntextdoc.text.addElement(P(text="Elements to illustrate:"))\n\n# add the first list (unordered list)\ntextList = List(stylename="L1")\nitem = ListItem()\nitem.addElement(P(text='hyperlinks', stylename="P1"))\ntextList.addElement(item)\n\nitem = ListItem()\nitem.addElement(P(text='italics and bo ld text', stylename="P1"))\ntextList.addElement(item)\n\nitem = ListItem()\nitem.addElement(P(text='lists (ordered and unordered)', stylename="P1"))\ntextList.addElement(item)\n\ntextdoc.text.addElement(textList)\n\n# add the second (ordered) list\n\ntextdoc.text.addElement(P(text="How to figure out ODF"))\n\ntextList = List(stylename="L5")\n#item = ListItem(startvalue=P(text='item 1'))\nitem = ListItem()\nitem.addElement(P(text='work out the content.xml tags', stylename="P5"))\ntextList.addElement(item)\n\nitem = ListItem()\nitem.addElement(P(text='work styles into the mix', stylename="P5"))\ntextList.addElement(item)\n\nitem = ListItem()\nitem.addElement(P(text='figure out how to apply what we learned to spreadsheets and presentations', stylename="P5"))\ntextList.addElement(item)\n\ntextdoc.text.addElement(textList)\n\n# A paragraph with bold, italics, font change, and hyperlinks\n"""\n <text:p>The <text:span text:style-name="T1">URL</text:span> for <text:span\n text:style-name="T5">Flickr</text:span> is <text:a xlink:type="simple"\n xlink:href="http://www.flickr.com/"\n >http://www.flickr.com</text:a>. <text:s/>The <text:span\n text:style-name="T2"\n >API page</text:span> is <text:a xlink:type="simple"\n xlink:href="http://www.flickr.com/services/api/"\n >http://www.flickr.com/services/api/</text:a></text:p>\n"""\np = P(text='The ')\n# italicized URL\ns = Span(text='URL', stylename='T1')\np.addElement(s)\np.addText(' for ')\n# Flickr in red and Arial font\np.addElement(Span(text='Flickr',stylename='T5'))\np.addText(' is ')\n# link\nlink = A(type="simple",href="http://www.flickr.com", text="http://www.flickr.com")\np.addElement(link)\np.addText('. The ')\n# API page in bold\ns = Span(text='API page', stylename='T2')\np.addElement(s)\np.addText(' is ')\nlink = A(type="simple",href="http://www.flickr.com/services/api",text="http://www.flickr.com/services/api")\np.addElement(link)\n\ntextdoc.text.addElement(p)\n\n# add the table\n"""\n<table:table-column table:number-columns-repeated="3"/>\n"""\n\n\nsection = Section(name="section1")\ntextdoc.text.addElement(section)\nline = A(type="simple", href="", text="\s<hr>")\np=P()\np.addElement(line)\n\ntextdoc.text.addElement(p)\n\ntextdoc.text.addElement(H(outlinelevel=1,text='A Table (Heading 1)'))\n\ntable = Table(name="Table 1")\n\ntable.addElement(TableColumn(numbercolumnsrepeated="3"))\n\n# first row\ntr = TableRow()\ntable.addElement(tr)\n\ntc = TableCell(valuetype="string", stylename="Table")\ntc.addElement(P(text='Website'))\ntr.addElement(tc)\n\ntc = TableCell(valuetype="string")\ntc.addElement(P(text='Description'))\ntr.addElement(tc)\n\ntc = TableCell(valuetype="string")\ntc.addElement(P(text='URL'))\ntr.addElement(tc)\n\n# second row\ntr = TableRow()\ntable.addElement(tr)\n\n\n\ntc = TableCell(valuetype="string")\ntc.addElement(P(text='Flickr', stylename="Table"))\ntr.addElement(tc)\ntc = TableCell(valuetype="string")\ntc.addElement(P(text='A social photo sharing site'))\ntr.addElement(tc)\ntc = TableCell(valuetype="string")\n\nlink = A(type="simple",href="http://www.flickr.com", text="http://www.flickr.com")\np = P()\np.addElement(link)\ntc.addElement(p)\n\ntr.addElement(tc)\n\n# third row\ntr = TableRow()\ntable.addElement(tr)\ntc = TableCell(valuetype="string")\ntc.addElement(P(text='Google Maps'))\ntr.addElement(tc)\ntc = TableCell(valuetype="string")\ntc.addElement(P(text='An online map'))\ntr.addElement(tc)\ntc = TableCell(valuetype="string")\n\nlink = A(type="simple",href="http://maps.google.com", text="http://maps.google.com")\np = P()\np.addElement(link)\ntc.addElement(p)\ntr.addElement(tc)\n\ntextdoc.text.addElement(table)\n\n# paragraph with footnote\n\n"""\n <text:h text:outline-level="1">Footnotes (Heading 1)</text:h>\n <text:p>This sentence has an accompanying footnote.<text:note text:id="ftn0"\n text:note-class="footnote">\n <text:note-citation>1</text:note-citation>\n <text:note-body>\n <text:p text:style-name="Footnote">You are reading a footnote.</text:p>\n </text:note-body>\n </text:note>\n <text:s text:c="2"/>Where does the text after a footnote go?</text:p>\n"""\n\ntextdoc.text.addElement(H(outlinelevel=1,text='Footnotes (Heading 1)'))\np = P()\ntextdoc.text.addElement(p)\np.addText("This sentence has an accompanying footnote.")\nnote = Note(id="ftn0", noteclass="footnote")\np.addElement(note)\nnote.addElement(NoteCitation(text='1'))\nnotebody = NoteBody()\nnote.addElement(notebody)\nnotebody.addElement(P(stylename="Footnote", text="You are reading a footnote."))\np.addElement(S(c=2))\np.addText("Where does the text after a footnote go?")\n\n# Insert the photo\n\n"""\n <text:h text:outline-level="1">An Image</text:h>\n <text:p>\n <draw:frame draw:name="graphics1" text:anchor-type="paragraph"\n svg:width="5in"\n svg:height="6.6665in" draw:z-index="0">\n <draw:image xlink:href="Pictures/campanile_fog.jpg" xlink:type="simple"\n xlink:show="embed"\n xlink:actuate="onLoad"/>\n </draw:frame>\n </text:p>\n"""\n\ntextdoc.text.addElement(H(outlinelevel=1,text='An Image'))\np = P()\ntextdoc.text.addElement(p)\n# add the image\n# img_path is the local path of the image to include\n# img_path = r'..\sdata\simg\smetadator.png';\n#flint\nimg_path = r'/home/flint/grantsmanship/odfpy/admin05t.png';\n#img_path = 'D:\sDocument\sPersonalInfoRemixBook\sexamples\sch17\scampanile_fog.jpg'\nhref = textdoc.addPicture(img_path)\nf = Frame(name="graphics1", anchortype="paragraph", width="5in", height="6.6665in",zindex="0")\np.addElement(f)\nimg = Image(href=href, type="simple", show="embed", actuate="onLoad")\nf.addElement(img)\n\n\n\n# save the document\ntextdoc.save(fname)\n\n}}}
|!Reference HTML|! Description|\n|[[Google Search |https://www.google.com/search?client=ubuntu&channel=fs&q=AttributeError%3A+Element+instance+has+no+attribute+%27addAttribute%27&ie=utf-8&oe=utf-8#q=odfpy_gen_example.py&channel=fs&start=0]]||\n|[[Linuxjournal article (uses bash:^) |http://www.linuxjournal.com/article/9319?page=0,5]]||\n|[[Linuxjournal article |http://www.linuxjournal.com/article/9347?page=0,3]]||\n|[[ODF Developers |http://www.opendocumentformat.org/developers/]]||\n|[[Docutils |http://docutils.sourceforge.net/docs/user/odt.html]]||\n|[[Relatorio |https://code.google.com/p/python-relatorio/wiki/IndepthIntroduction]]|Nah...|\n|[[Relatorio |https://code.google.com/p/python-relatorio/wiki/QuickExample]]|Nah...|\n|[[Pro Web 2.0 Mashups |http://mashupguide.net/1.0/html/pr02s04.xhtml#d0e420]]||\n|[[Mashup |http://blog.mashupguide.net/]]||\n|[[Mashup |http://mashupguide.net/1.0/html/ch17s04.xhtml]]||\n|[[Mashup |http://blog.mashupguide.net/page/2/]]||\n|[[Mashup |http://mashupguide.net/1.0/html/ch17s04.xhtml]]||\n|[[Author of Mashup |https://www.linkedin.com/profile/view?id=2875725&authType=name&authToken=iz8s&recipientID=2875725&inmCategory=CONSULTING]]||\n|[[Issue with Unicode |https://www.python.org/dev/peps/pep-0263/]]||\n|[[Google Mashup Editor |http://googlemashupeditor.blogspot.com/2009/01/from-mashup-editor-to-app-engine.html?showComment=1232005740000#c2317530692676025065]]||\n|[[Github |https://raw.githubusercontent.com/Guts/Metadator/master/test/test_odf_genexample.py]]||\n|[[Google Search ODF |https://www.google.com/search?client=ubuntu&channel=fs&q=python+open+documentation&ie=utf-8&oe=utf-8#channel=fs&q=python+open+document+format]]||\n|[[py-tools |https://code.google.com/p/py-odftools/]]||\n|[[Linux Journal |http://www.linuxjournal.com/article/9347?page=0,3]]||\n|[[OASIS |https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office]]||\n|[[OASIS |https://www.oasis-open.org/committees/documents.php?wg_abbrev=office]]||\n|[[Genshi |https://www.google.com/search?client=ubuntu&channel=fs&q=Genshi+directives&ie=utf-8&oe=utf-8]]||\n|[[Genshi |http://genshi.edgewall.org/wiki/Documentation/xml-templates.html]]||\n|[[Genshi |http://genshi.edgewall.org/wiki/Documentation/templates.html]]||\n|[[Genshi |http://genshi.edgewall.org/wiki/GenshiRecipes]]||\n|[[Nulledge |http://nullege.com/codes/search/odf.opendocument.OpenDocumentText]]|Kinda cool |\n
{{{\n#!/bin/bash\n# Wed 21 Jan 2015 07:17:44 AM EST Microsoft Word Filter for Grant Generator \n# Note change in evaluation of ARG!\n# \nversion="0.04"\n#\n# next lines run ballisticly\n#* hold environment\nS=$PWD\n# echo "This is the path "$S\n#t\n#* check location of vital files and programs, sanity check\nfor prog in curl expect cadaver xmlstarlet git unoconv # debug banana xsltproc\ndo\n# echo $prog\nisit=$(which $prog)\n# echo $isit \nif [ ! -f "$isit" ]\nthen\n echo "This program needs $prog which is not installed on this system."\n echo "Type \s"sudo apt-get install $prog\s" to fix this."\n exit 0\nfi\ndone\n#\n# Define files to be used\n# \n# qualify user\n# uid="" ; if [ "$uid" == "" ]; then echo "Set user id!"; exit; fi\n# passwd="" ; if [ "$passwd" == "" ]; then echo "Set user passwd!"; exit; fi\n# echo "Check if you are root"\n# uroot()\n# exit\n#\n# above runs ballisticly\n#\n#* function help - Help function for template basic help goes here\nfunction help(){\nclear;\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version; uroot #debug \ncat $0 | grep '^## ' | sed -e 's/##//'\n# echo "This is the help function"\n## *****DOCUMENTATION*****\n## You get this when you put in the wrong number or type of arguments...\n## The name of this program is mswf.sh, a tiddle based proposal generator.\n## This is released under GPL I\n## The syntax is:\n## - mswf.sh ounzip <folder> <filename> - Blows open an odf\n## - mswf.sh ozip <folder> <filename> - makes odf \n## - mswf.sh val <folder> validates content.of xml\n## - mswf.sh inst <folder> <filename> - puts filename in content.\n## - mswf.sh tpyx <folder> <destfn.odt> <target.pyx> tests content.xml\n## - mswf.sh gpyx <folder> <filename.pyx> gets pyx out as filename.pyx \n## - mswf.sh pdfit <filename>.odt converts to filename.pdf, tests\n## - mswf.sh \n## in all of these, Output is delivered to the screen...\n## *** NOTE *** This program need not be run as root!\n##\n## For structure information type "grep '^\s#\s*' mswf.sh"\n## :^)\n## (C) P Flint, Barre Open Systems Institute Liscensed under GPLI\n##\n# *****Documentation Loop ends here the rest is function******\n#\n} # Test: mswf.sh\n#\n#* function dummy - Rename and fill stuff in between braces\nfunction dummy(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test:\n#\n#\n#* function ounzip - ounzip <folder> <filename> - Blows open an odf.\nfunction ounzip(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\ndrnme=$var2 #debug; echo "Directory is "$drnme\nfname=$var3 #debug; echo "File is "$fname\n#\nrm -rf $drnme > /dev/null\nmkdir $drnme\n#debug echo "Change to this directory"\ncd $drnme\n#debug echo "Expand the file"\nunzip ../$fname > /dev/null\n#debug \nspause\n} # Test: \n#\n#\n#* function ozip - ozip <folder> <filename> - makes odf \nfunction ozip(){\n# note that ozip is a reserved word, so do not use it as a function name...\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\ndrnme=$var2; echo "Directory is "$drnme\nfname=$var3; echo "File is "$fname\n#debug spause\n#\n# change to this directory \ncd $drnme\npwd\n#debug spause\n#\n#debug echo "Make the mimetype"\nzip -0 -X ../$fname mimetype\n#debug echo "Add the rest of the xml"\nzip -r ../$fname * -x mimetype\n#debug spause\ncd ..\nlibreoffice $fname\n} # Test: mswf.sh ozip test1 test6.odt\n#\n#* function val - <folder> validates content.xml\nfunction val(){\n#debug echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\n#debug\nfname=$var2\n#debug ; echo -n "File is "$fname\nxmlstarlet val $fname\n#debug spause\n} # Test: .mswf.sh val test1.xml\n#\n#* function pdfit - get content.xml as pyx\nfunction pdfit(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\nfname=$var2; echo "fname is "$fname\n#debug spause\nunoconv -f pdf $fname.odt # convert to pdf\nls -alt $fname.pdf\n#debug spause\nevince $fname.pdf\n} # Test:\n#\n#* function csow - content mamipulator\nfunction csow(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nxmlstarlet depyx content.pyx > testd1/content.xml; \nxmlstarlet val testd1/content.xml|while read line; do echo $line; done\nxmlstarlet depyx content.pyx > contentn.xml; xmlstarlet val contentn.xml\n} # Test:\n#\n#\n#* function tpyx - tests content.xml \nfunction tpyx(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\ndrnme=$var2; echo "Directory is "$drnme\nfname=$var3; echo "fname is "$fname\nfnami=$var4; echo "fnami is "$fnami\n#debug spause\n#\nxmlstarlet depyx $fnami > $drnme/content.xml \nxmlstarlet val $drnme/content.xml\nspause\nozip\n# $|while read line; do echo $line; done\n} # Test:\n#\n#* function gpyx - get content.xml as pyx\nfunction gpyx(){\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n#\ndrnme=$var2; echo "Directory is "$drnme\nfname=$var3; echo "fname is "$fname\n# fnami=$var4; echo "fnami is "$fnami\n#debug spause\nxmlstarlet pyx $drnme/content.xml > ./$fname\n} # Test:\n#\n######################################STANDARD AND MAYBE USEFUL FUNCTIONS BELOW\n#\n#\n#* function uroot - Checks to see if you are root\nfunction uroot(){\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n echo "This script does not need to run as root but that's OK as you are not root" 1>&2\n exit 1\nfi\n} # Test:~flint/bin/mswf.sh uroot\n#\n#\n#* function spause - A simple tarry...\nfunction spause(){\n # -t sets time\n # read -t $pt -p "$*" ans\n read -p "Hit enter to continue..." ans\n echo $ans\n}\n#\n#\n#\n#*###################################### MAIN ENTRY POINT AND COMPOUND CASE\n#\n# echo "mswf.sh v"$version" starts"\n#* Evaluator Routine\n# the evaluator must have 1 argument \n# Note the evaluator allows for many cases and error checking...\n# ARGS=$# # carries the number of args into the functions...\nif [ "$#" -eq "3" ] && [ "$1" = "ounzip" ]; then ARGS=$# ; fi\nif [ "$#" -eq "3" ] && [ "$1" = "ozip" ]; then ARGS=$# ; fi\nif [ "$#" -eq "2" ] && [ "$1" = "val" ]; then ARGS=$# ; fi\nif [ "$#" -eq "2" ] && [ "$1" = "remt" ]; then ARGS=$# ; fi\nif [ "$#" -eq "2" ] && [ "$1" = "unzipt" ]; then ARGS=$# ; fi\nif [ "$#" -eq "4" ] && [ "$1" = "tpyx" ]; then ARGS=$# ; fi\nif [ "$#" -eq "1" ] && [ "$1" = "popgp" ]; then ARGS=$# ; fi\nif [ "$#" -eq "3" ] && [ "$1" = "gpyx" ]; then ARGS=$# ; fi\nif [ "$#" -eq "2" ] && [ "$1" = "pdfit" ]; then ARGS=$# ; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dummy" ]; then ARGS=$# ; fi\nif [ "$#" -eq "1" ] && [ "$1" = "uroot" ]; then ARGS=$# ; fi\nif [ "$#" -eq "1" ] && [ "$1" = "spause" ]; then ARGS=$# ; fi\nif [ "$#" -eq "1" ] && [ "$1" = "help" ]; then ARGS=$# ; fi\n# this tests the evaluator...\n#debug echo $#" "$1" "$2" "$3" "$ARGS ;spause \n# typical cases, be careful to make your own...\ncase "$ARGS" in\n "0") clear; $1="help"; exit 1;; # got nothing, display help and go\n "1") $1 ;; # run the command\n "2") var2=$2; $1 ;; # run the command with an argument\n "3") var3=$3; var2=$2; $1 ;; # run the command with two arguments\n "4") var4=$4; var3=$3; var2=$2; $1 ;; # run the command with three arguments\n "5") prompt=$2; $1 ;; # run the command with a different argument\n "6") time=$3; prompt=$2; $1 ;; # run the command with two different arguments\n "7") defvbl; $1 ;; # run the command and default variables\n "8") var2=$2; $1 ;; # run the command and unziple variables\n "9") var3=$3; var2=$2; $1 ;; # run the command and unziple variables\n *) clear; cat $0 | grep '^## '| sed -e 's/##//'; exit 1;; # Anything else run help and exit...\nesac # End main loop. To TEST:\n#\n# echo " ";\n#debug echo "On "$(date +%F\s %r) $0" version "$version" stops"\n#debug echo "That's all folks!!"\n#\n#debug rm -rf ss # removes super secret data file\n#* restore environment\ncd "$S"\n}}}
After taking a course in [["Grantsmanship"|http://docbox.flint.com:8081/grantsmanship]] it became clear that this art form might benefit from the use of a tool to help organize and focus the grant writing effort.\n
[[Bind a macro to a key|https://forum.openoffice.org/en/forum/viewtopic.php?f=74&t=12882]]\n[[Microsoft on outline style|https://msdn.microsoft.com/en-us/library/ff532885%28v=office.12%29.aspx]]\n[[using format outline|http://blog.worldlabel.com/2012/outlining-in-libreoffice-writer.html]]\n[[Linux World on Office Automation|http://www.linux-magazine.com/Issues/2008/96/OpenOffice-Automation]]\n\nThe Gotcha with LibreOffice Macros\n\n''If a dialog is opened, the command to open the dialog is likely to be generated. Any work done inside the dialog is not usually recorded. Examples include macro organization dialogs, inserting special characters, and similar types of dialogs. Other possible problems using the macro recorder include things such as inserting a formula, setting user data, setting filters in Calc, actions in database forms, and exporting a document to an encrypted PDF file. You never know for certain what will work unless you try it, however. The actions from the search dialog are properly captured, for example.''\n\nIn our case this line is the problem:\n{{{\nrem ----------------------------------------------------------------------\ndispatcher.executeDispatch(document, ".uno:BulletsAndNumberingDialog", "", 0, Array())\n}}}\n\n[[SOURCE|https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&uact=8&ved=0CD4QFjAE&url=https%3A%2F%2Fwiki.documentfoundation.org%2Fimages%2F8%2F87%2F0113GS3-GettingStartedWithMacros.odt&ei=j68eVeryNcHDggTW4oPoAQ&usg=AFQjCNEsQBJTitUOe-YycoNIJTQeWSyw3A&sig2=DztY5cw7JQpyWR4w5wIycQ&bvm=bv.89947451,d.eXY]]\n\n[[Auto Close Dialog Box|http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/Star_OpenOffice/Q_27957151.html]]
Is this the answer?\n\n[[uno overview|https://wiki.openoffice.org/wiki/Python_as_a_macro_language]]\n[[Python Macro in Libre office|https://tmtlakmal.wordpress.com/2013/08/11/a-simple-python-macro-in-libreoffice-4-0/]]\n\nPython Macros Live Here:\n{{{\n/usr/lib/libreoffice/share/Scripts/python\n}}}
mkw.py\n\n{{{\n#!/usr/bin/env python\n# -*- coding: UTF-8 -*-\n# from __future__ import unicode_literals\n# odfpy_gen_example.py\n# https://joinup.ec.europa.eu/sites/default/files/eb/d7/74/api-for-odfpy.odt\n#\nfrom odf.opendocument import OpenDocumentText\nfrom odf.style import Style, TextProperties\nfrom odf.text import H, P, Span\nfrom odf import text\n# curl stuff source:http://pycurl.sourceforge.net/doc/quickstart.html\nimport pycurl\nfrom StringIO import StringIO\n#\n# open ss and reads the secrets\nf = open('ss', 'r')\n# read ss file into ss variable:\nss = f.read().split('\sn')\n#d print ss[0] # url\nprint ss[1] # uid\nprint ss[2] # pass\nprint ss[3] # proj\n#\n# makes the url\nurl = 'http://'+ss[1]+':'+ss[2]+'@'+ss[0]+'/'+ss[3]+'/tiddlers/'\n#d print url\n#\ndef ttiiw(url,section,level):\n# function ttiiw(url,section) takes the tiddle information of the section and places it in \n# word using opdy\n location = url+section\n #d print "The URL is: ",url\n #d print "the location is: ",location\n #d print "The section is: ",section \n buffer = StringIO()\n c = pycurl.Curl()\n c.setopt(c.URL, location) #actually reads the data\n c.setopt(c.WRITEDATA, buffer)\n c.perform()\n c.close()\n #\n body = buffer.getvalue()\n #d print(body)\n # prints elements\n textdoc.text.addElement(H(outlinelevel=level,id="true",text=section))\n p = P(text=body)\n textdoc.text.addElement(p)\n return section+" Done"\n#\nbuffer = StringIO()\nc = pycurl.Curl()\n# c.setopt(c.URL, 'http://the:end@docbox.flint.com:1980/Windham/tiddlers/Summary')\nc.setopt(c.URL, url)\nc.setopt(c.WRITEDATA, buffer)\nc.perform()\nc.close()\n#\nbody = buffer.getvalue()\ntextdoc = OpenDocumentText()\n# Styles\ns = textdoc.styles\nh1style = Style(name="Heading 1", family="paragraph")\nh1style.addElement(TextProperties(attributes={'fontsize':"24pt",'fontweight':"bold" }))\ns.addElement(h1style)\n# Next style\n# An automatic style\nboldstyle = Style(name="Bold", family="text")\nboldprop = TextProperties(fontweight="bold")\nboldstyle.addElement(boldprop)\ntextdoc.automaticstyles.addElement(boldstyle)\n# Text\n#\n# first header\nh=H(outlinelevel=1, stylename=h1style, text="Nothing Yet...")\ntextdoc.text.addElement(h)\n# next line\np = P(text="Table of Contents. ")\ntextdoc.text.addElement(p)\n# graph with bold in it\np = P(text="New stuff. ")\nboldpart = Span(stylename=boldstyle, text="TITLE ")\np.addElement(boldpart)\np.addText("Other Stuff.")\ntextdoc.text.addElement(p)\n#\n# auto-element \nmsection = ["TitlePage", "Summary", "Introduction", "FundingSources", "ProblemNeed", "Methods", "Reports", "Future", "Budget" ]\nfor w in msection:\n print ttiiw(url,w,2)\n#\n# implicit element\ntextdoc.text.addElement(H(outlinelevel=3,id="true",text='Test'))\np = P(text="Testing 123.")\ntextdoc.text.addElement(p)\n# http://nullege.com/codes/show/src@o@d@odfpy-0.9.6@tests@testtext.py/31/odf.text.SoftPageBreak\n# textdoc = OpenDocumentText()\n#spb = text.SoftPageBreak()\n#textdoc.text.addElement(spb)\n#\n# implicit element\ntextdoc.text.addElement(H(outlinelevel=3,id="true",text='Test'))\np = P(text="Testing 123.")\ntextdoc.text.addElement(p)\n#\n#\n#\ntextdoc.save("1mkw.odt")\n}}}\n\n{{{\nrm 1mkw.odt; bin/mkw.py; libreoffice 1mkw.odt\n}}}
Flint is an idiot for not adding this\n\n{{{sudo apt-get install curl expect cadaver xmlstarlet python-odf unoconv}}}\n
[[POD|http://appyframework.org/pod.html]]
[[installing sphnx|http://sphinx-doc.org/install.html]]\n\nTest of installation:\n{{{\nwhich sphinx-quickstart\n}}}\n\n[[Documentation|http://sphinx-doc.org/tutorial.html]]
\nThis seems to work:\n\n|!Reference HTML|! Description|\n|[[reference|https://www.google.com/search?client=ubuntu&channel=fs&q=zope+spreadsheet&ie=utf-8&oe=utf-8]]||\n|[[Udell Byte 2001 |http://jonudell.net/bytecols/2001-03-07.html]]| Tested up to second example|\n|[[Udell Byte 2001 |http://jonudell.net/bytecols/2001-03-14.html]]||\n\n[[Test 1|http://docbox.flint.com:8081/cybertauqua/sheet]]\n[[Test 2|http://docbox.flint.com:8081/cybertauqua/sheet1]]\n\nNote in zope properties, a float type must be assigned a value, say 0...
''10 April 2016''\n\nCould python-docx be the [[answer?|https://automatetheboringstuff.com/chapter13/]] specifically the chapter on python-docx search for the words "Word Documents" or download and modify as [[detailed here|http://www.thesitewizard.com/html-tutorial/link-to-specific-line-or-paragraph.shtml]]\n* [[Python-docx|https://python-docx.readthedocs.org/en/latest/]]\n* [[Bloggery |http://blogory.org/python-text-processing-libraries]]\n\n|!Reference HTML|! Description|\n|[[Master TOC |http://docbox.flint.com:8081/mtoc]]||\n|[[Grantbot |http://docbox.flint.com:8081/grantbot]]||\n|[[Automate Boring 13 |https://automatetheboringstuff.com/chapter13/]]||\n|[[Automate Boring |https://automatetheboringstuff.com/chapter13/#calibre_link-119]]||\n|[[Python docx read |https://python-docx.readthedocs.org/en/latest/]]||\n|[[automate stuff |https://www.nostarch.com/automatestuff/]]||\n|[[Google Search |https://www.google.com/search?client=ubuntu&channel=fs&q=KeyError%3A++%22no+style+with+name%22&ie=utf-8&oe=utf-8]]||\n|[[Stack Overflow |http://stackoverflow.com/questions/31013454/add-content-to-existing-docx-with-python-docx]]||\n|[[Python docx read the docs |http://python-docx.readthedocs.org/en/latest/user/styles-using.html]]||\n|[[Python docx read the docs |http://python-docx.readthedocs.org/en/latest/user/styles-using.html]]||\n
Type the text for '19 September 2016'\n\n* [[Spinx|http://www.sphinx-doc.org/en/stable/]]\n* [[Video Tutorials Spinx|https://www.youtube.com/results?search_query=sphinx+python]]\n* [[Restructured Text Primer|http://www.sphinx-doc.org/en/stable/rest.html]]\n* [[Good intro video|https://www.youtube.com/watch?v=eWNiwMwMcr4#t=1748.86277]]
Type the text for '19 September 2016'\n\nKJ Coles's initialization\n\n{{{\nWritten by Kevin Cole <kjcole@ubuntu.com> 2013.01.27\n\nThis is a typical run for how to initialize a new Sphinx document:\n\n$ sphinx-quickstart\n> Root path for the documentation [.]: <...>\n> Separate source and build directories (y/N) [n]: y\n> Name prefix for templates and static dir [_]:\n> Project name: <...>\n> Author name(s): <...>\n> Project version (?.?.0): 1.0\n> Project release (0.0.?) [1.0]:\n> Source file suffix [.rst]:\n> Name of your master document (without suffix) [index]:\n> Do you want to use epub builder (y/N) [n]: y\n> autodoc: automatically insert docstrings from modules (y/N) [n]:\n> doctest: automatically test code snippets in doctest blocks (y/N) [n]:\n> intersphinx: link btwn Sphinx documentation of different projects (y/N) [n]:\n> todo: write "todo" entries that can be shown or hidden on build (y/N) [n]: y\n> coverage: checks for documentation coverage (y/N) [n]: y\n> pngmath: include math, rendered as PNG images (y/N) [n]: y\n> mathjax: include math, rendered in the browser by MathJax (y/N) [n]: y\nNote: pngmath and mathjax cannot be enabled at the same time.\npngmath has been deselected.\n> ifconfig: conditional inclusion of content based on config values (y/N) [n]:\n> viewcode: links to source code of documented Python objects (y/N) [n]:\n> Create Makefile (Y/n) [y]:\n> Create Windows command file (Y/n) [y]:\n\nCreating file <...>/source/conf.py.\nCreating file <...>/source/index.rst.\nCreating file <...>/Makefile.\nCreating file <...>/make.bat.\n\nFinished: An initial directory structure has been created.\n\nYou should now populate your master file <...>/source/index.rst and\ncreate other documentation source files. Use the Makefile to build the\ndocs, like so:\n\n make builder\n\nwhere "builder" is one of the supported builders, e.g. html, latex or\nlinkcheck.\n______________________________________________________________________________\n\nEdit the conf.py file and change the theme and remove the sidebar:\n\n$ cd <...>/source\n$ emacs -nw conf.py\n\n# Last modified by Kevin Cole <kjcole@ubuntu.com> 2010.12.27\n#\n# 2010.12.27 KJC - Changed the html_theme from 'default' to 'sphinxdoc'\n# 2010.12.27 KJC - Removed the sidebar\n...\nhtml_theme = 'sphinxdoc'\n...\nhtml_theme_options = {'nosidebar': 'true'}\n______________________________________________________________________________\n\nCopy the files from ./common to <...>/source/\n\nThese currently include:\n\n * isonum.txt for including non-ASCII characters like the copyright\n symbol (C)\n\n * copyright.rst - Jeff Elkner's simple explanation of the Free\n Document License (FDL)\n\n * fdl-1.3.rst - the actual Free Document License\n\nNote the include and |copy| in fdl-1.3.rst for including special characters:\n\n .. include:: isonum.txt\n\n Copyright |copy| \n______________________________________________________________________________\n\n}}}