organized project development and requirements

This commit is contained in:
sa 2022-09-03 23:00:38 -04:00
parent 4519a712fd
commit a7972b0f64
4 changed files with 84 additions and 46 deletions

11
md-gemtext-outline.txt Normal file
View File

@ -0,0 +1,11 @@
takes the output of md-lint to generate gemtext
TEXT DECORATIONS
-for text decorations like italics, bold, underline
surround with chars like /word/ *word* _word_
LINKS
-use gemtext specific linking syntax
CODE
-put code into ```preformatted text```

8
md-html-outline.txt Normal file
View File

@ -0,0 +1,8 @@
take pieces of other md-to-HTML converters from
github to save development time.
TEXT DECORATIONS
-for text decorations like italics, bold, underline
-HTML use <i> <b> <u> tags
-Gemtext surround with chars like /word/ *word* _word_

33
md-lint-outline.txt Normal file
View File

@ -0,0 +1,33 @@
Convert a standard mardown file into the subset of markdown
that can be used to generate gemtext and comparable HTML.
HEADINGS
-round markdown's six headings into gemtext's 3
-h1 = h1
-h2 = h3
-h3 = h3
-h4 = h5
-h5 = h5
-h6 = h5
ORDERED LISTS
-convert to plain text ordered lists
TABLES
-convert tables into ASCII art tables
-put in ```preformatted text```
-a certain size limit will need to be created
-generator should throw a warning
CODE
-code highlighting should work for HTML
-use ```preformatted text``` for gemtext
LINKS
-links should be moved to a list below the paragraph they are found in
-in their place the text of the link should be kept in the paragraph
with a reference number like [1] or [22]
-the numbers should not repeat in each page
IMAGES
-handle like links

View File

@ -1,55 +1,41 @@
features
-convert a subset of markdown into html and gemini files
-images not supported
-tables converted to ascii tables for gemtext and html
-put in ```blockquotes```
-for code highlighting should work for HTML
-for code use ```block quotes``` for gemtext
-for text decorations like italics, bold, underline
-HTML use <i> <b> <u> tags
-Gemtext surround with chars like /word/ *word* _word_
Overview:
-inline links are referenced using reference numbers [1] and are
listed below each paragraph. A full list of all links/references
are displayed at the bottom. This scheme will work for both HTML
and gemini
example:
Implementing RC5 in Lua presented some minor challenges. Lua
likes to start its data structures at index 1, whereas C starts
at an index of 0. Converting the pseudocode from the paper [1]
to start counting at 1 instead of 0 took a little time, however
once you get used to the Lua way [2] things become pretty easy
to understand.
md-lint.lua converts all files in the markdown/ directory into a
subset of md capable of being translated into comparable gemtext
and HTML. The output is fed into gemtext-gen.lua and html-gen.lua
to generate format specific documents.
[1] paper
[2] Lua way
html-gen.lua will take pieces of other md-to-HTML converters from
github to save development time.
-generate site map
gemtext-gen.lua will likely need to be developed mostly from scratch.
the whole process of generating a site will be done with a main program
that orchestrates the process of converting the files in the markdown/
directory into the correct HTML and gemtext files in the HTML/ and
gemini/ directories.
the src/ directory will contain the lua programs and the folders for
the HTML and gemini specific configs. These would include format
specific headers and footers that would be manually written and
added to all generated documents of that type. For example in your
src/html-config/header.html you may want to include a link to a
CSS style sheet. And a CSS style sheet would also be kept in the
html-config/ directory
any content that cant be represented as text can be linked to on the
generated site. Files like images and pdfs are stored in the files/
directory and sorted by file extension into folders.
organized into three directories
ssg-lua/
src/
html-config/
gemini-config/
markdown/
html/
gemini/
first develop the markdown to gemtext program
second write the markdown to html program
gemtext has 3 headings
#
##
###
markdown has 6. round 2 to 3. and round 4 and 6 to 5.
gemtext supports unordered lists
* item
* item
convert ordered lists to unordered lists before compiling to HTML and gemtext
gemtext links look like this
=> https://example.com A cool website
=> gopher://example.com An even cooler gopherhole
=> gemini://example.com A supremely cool Gemini capsule
=> sftp://example.com
files/
images/
pdfs/
archives/