Find Jobs
Hire Freelancers

Project: Write a parser and writer for a new structure text format targetted at non-programmers

$20-100 USD

Cancelado
Publicado hace más de 19 años

$20-100 USD

Pagado a la entrega
Please contact me at: , or AIM me at JJBigThoughts Please bid your hourly rate (say $15/hour) and specify the anticipated hours required to finish the project. Senior Executive Summary Write a parser and writer for a new structure text format targetted at non-programmers Executive Summary Elegant Technologies Structured Text (ETST) is yet another structured text initiative to create a structured text format, but this one is being specifically designed to be used by non-programmers. The intended uses are: 1 a default text format for non-programmers, so when writing copy for a web site using Microsoft Word, they can created their own basic formatting. 2 a human readable format to store formatted text, such as when entered via rich html client (aka WYSIWYG in-browser editors) on a website, like earthlink’s webmail client, instead of storing in, say, RTF or HTML. See the uploaded file for more details. This will problably require at least three classes, and they must be changable intermingling at run-time (see the Design Pattern 'Builder'). If you are not familiar with the term "Design Pattern", then this project probably isn't right for you. I'll provide a some test files before program kick-off. Please allow some time for refinement. You have have to record total hours worked record them at the end of each week on our phpdotproject site - but you will be paid by the job. Please give an estimated total labor hours required to accomplish the job. Links: [login to view URL] [login to view URL] [login to view URL] [login to view URL] The Job: Create a data storage class. Create a reader class that parses text files and inputs data into the storage class. Create a reader class that reads the text string that are stored in a MySQL database and inputs the info into the storage class. Create a class that interfaces with the storage class and translates it to pretty HTML. Create a class that interfaces with the storage class and translates it to a file. You must be able to quickly parse and retrieve 500 pages of text from a text file in less than ½ sec on a Athlon 1.2 Ghz CPU with 512MG ram running Apache 2 and PHP 4.3.9. The code must also run under PHP 5.0 It is also acceptable for the importer code run in Python, but I need a PHP reader. History I recently finished writing a large-ish handbook for the web. I worked with several very knowledgable subject matter experts on the subject, but I was faced with the task of inputting all of their information into a website. The book was going to be about 400 web-pages long, and since everyone was working in their own version of MS Word, I had asked then to write there text in structured text (specifically, Python ReStructured Text, aka RST). I gained a lot of respect for for the structured text community, but this experience, combined with trying to roll out a WIKI, which used a different structured text format, at my company pursuaded me that non-programmers needed something a little simplier. Principles There is only one right way to do things. I don’t want people to get confused. It should always be obvious where the special instructions are. Simplier is better than complex. This language is for writers, not website designers – we aren’t doing anything too special here. All advanced features are encapsulated in '[]'s Authors can generate copy in MS Word 97 through 2003 – perhaps after turning off auto-completion. It shall be implemented in PHP 4.3.9 & 5.0 using known Design Patterns. It shall have PHP 5.0 unit tests. When completed, a one page instruction sheet that neatly fits onto a web page AND a two page PDF cheat sheet, suitable for putting into a manual will be made. The front page will be new users, the back page will a reference for all advanced features. Some standard emoticons and symbol shortcuts will be used. A lot of special formatting, like acronyms, will be left up to custom output classes, and will not be part of the ETST spec. Syntax errors are not possible, except inside brackets ([]). See, I spent a lot of time debugging my RST text. I mean it – I was actually debugging the text. This would have been impossible for a non-programmer. TABS don’t exist, they are treated like five spaces. English only. Sorry, I just don’t enough about other languages. Each formatting addition must be modular so that we can add new stuff in the future. The Spec - Headers - Header 1 (headers levels are designated by the number in dashes “-“ infront of some text) -Header 1 -- Header 2 --Header 2 -- Header 3 ---Header 3 ... ---------- Header 10 ----------Header 10 Headers can optionally have a line of dashes or equal signs under them. They will be ignored, but it makes text files easier to read: -Application Programmer's Interface ===================================== -- Overview --------------------------------------- - Paragraphs A paragraph starts on the next line. Another paragraph begins after an carraige return (this is a paragraph with no extra separation). One or more blank line between paragraphs designates an extra separation between the paragraphs Two blanks lines, like this new paragraph, is no different than the preceeding paragraph. One or more spaces or tabs incidates that this paragraph should be indented. This is another indented paragraph. Here is a third indented paragraph. These will all be indented the same amount. We just care that it was indented. -- Justification Paragraphs are, by default, left justified. You can, however, specify a paragraph to be centered, right justified, or justified. Once specifying a justification for a paragraph, then all subsequent paragraphs have the same formatting. Indenting issues for the first line of a paragraph are ignored for all formatting except left justified paragraphs. Bullets are always left justified >> Here is a right justified paragrapaph. Here is another right justified paragraph. >< Here is a centered paragraph. Here is a justified paragraph << here is a left justified paragraph. Here is a justified paragraph. - Bullets Here are a bunch of bullets. The first level of bullet should be indented. Since it is generally pretty obvious that line starting with a ‘*’ is a bullet, then even if the formatting isn’t perfect, the parser will take its best guess at what the author intended, and must always rewrite the formating correctly. To guess at the author’s formatting, the parser base everything one uninterupted cluster of bullets at a time (a new paragraph breaks a cluster). Determine how many distinct levels of indentation there are, and group by indentation, so, like python, indentation counts. * Here is a bulletted item * Here is a second item *Here is another bullet, and the end of the first bullet cluster. Here is a new paragraph * Here is a bullet. This is the second bullet cluster. (indentation level=1) * Here is an sub bullet because it is indented (indentation level=2) * Here is a sub-sub bullet because it is indented further (indentation level=3) * Here is a sub-sub-sub bullet because it is indented even further (indentation level=5) * Here is a sub-sub bullet. Notice how it nicely lines up with the the bullet two lines above this. (indentation level=3) * Here is a bullet (indentation level=1) * Here is a sub-sub bullet. (indentation level=6) * Here is a sub bullet (indentation level=4) * Here is a sub-sub-sub bullet because (indentation level=7) Now, here is the same cluster of bullets nicely formatted. * Here is a bullet. This is the second bullet cluster. (indentation level=1) * Here is an sub bullet because it is indented (indentation level=2) * Here is a sub-sub bullet because it is indented further (indentation level=3) * Here is a sub-sub-sub bullet because it is indented even further (indentation level=5) * Here is a sub-sub bullet. Notice how it nicely lines up with the the bullet two lines above this. (indentation level=3) * Here is a bullet (indentation level=1) * Here is a sub-sub bullet. (indentation level=6) * Here is a sub bullet (indentation level=4) * Here is a sub-sub-sub bullet because (indentation level=7) -- Numbered Lists For numbered list, the formatting is the same as for bullets, except that instead of a ‘*’, either a number or a ‘#’ can be used. Decorations immediately after the number are ignored and removed when parsed. When it is rewritten, the items are nicely numbered as ‘X. Some text.’ Here are some examples: 1. First, get a chicken 2. Find a big pot 5.) Find a seclude clearing 3 Get a bushel of wheat. # I forget what comes next # some other items (9) lastly, enjoy your meal! These are all legal, and produce the following nicely formatted text. 1. First, get a chicken 2. Find a big pot 3. Find a seclude clearing 4. Get a bushel of wheat. 5. I forget what comes next 6. some other items 7. lastly, enjoy your meal!
ID del proyecto: 9221

Información sobre el proyecto

2 propuestas
Proyecto remoto
Activo hace 19 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos

Sobre este cliente

Bandera de UNITED STATES
Belmont, United States
5,0
18
Forma de pago verificada
Miembro desde nov 7, 2004

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.