aboutsummaryrefslogtreecommitdiffhomepage
path: root/readme.org
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2015-10-20 18:52:12 -0400
committerRalph Amissah <ralph@amissah.com>2015-10-20 22:13:25 -0400
commit4b0c115b58211dcc063bcd09f8fe122e558b92ce (patch)
treeb60e38935a4f5fbd723c13a5035d952976c851bf /readme.org
parentupdate minor (diff)
literate programming introduced, tangle not yet run
Diffstat (limited to 'readme.org')
-rw-r--r--readme.org372
1 files changed, 372 insertions, 0 deletions
diff --git a/readme.org b/readme.org
new file mode 100644
index 0000000..600adc8
--- /dev/null
+++ b/readme.org
@@ -0,0 +1,372 @@
+#+OPTIONS: ^:nil _:nil#+OPTIONS: ^:nil _:nil
+#+PRIORITIES: A F E
+* sdp :sdp:
+** debug :debug:
+ objects
+ header
+ heading
+ poem verse ocn
+
+** tasks :tasks:
+*** sisu_loop.d
+**** TODO [#A] header extraction (make instructions & metadata)
+***** metadata
+title & author heading
+***** make
+****** header make: search and replace
+****** auto-identify structure from make instructions
+****** auto-number headings, with starting level as instructed in header make
+**** markup
+***** para markers: extract (hash store) & clean (remove from text)
+place in hash
+ heading level, numeric
+ indent info, numeric: first, rest
+ bullet, bool
+issue representing complex structures, consider using bits of json!
+string h = "{ \"heading_level\": \"A\" }";
+string para_attrib = "{ \"indent_first\": 0, \"indent_rest\": 0, \"bullet\": false }";
+# string s = "{
+# \"indent_first\": 0,
+# \"indent_rest\": 0,
+# \"bullet\": false,
+# \"name\": "",
+# \"tags\": "",
+# \"digest\": "",
+# }";
+string para_attrib = "{
+ \"indent_first\": 0,
+ \"indent_rest\": 0,
+ \"bullet\": false,
+}";
+string obj_ids = "{
+ \"name\": \"\",
+ \"tags\": \"\",
+ \"digest\": \"\",
+}";
+string obj_lv = "{
+ \"markup\": \"\", // [A-D1-4] lv
+ \"num_markup\": 0, // [0-7] ln
+ \"num_collapsed\": 0, // [0-7] lc
+}";
+string obj_citation = "{
+ \"ocn\": 0, //
+ \"on\": true, //
+}";
+
+***** structure as json?
+odv
+osp
+node
+parent
+
+you could keep ocn info (bool & number?) this way, consider
+
+also clean
+ block markers
+ book index!
+***** inline markup of text for subsequent processing
+regex substitution
+search and replace inline ascii markup with less ambiguous utf-8 markers
+****** footnotes count/number
+**** TODO [#B] endnotes/ footnotes for doc objects other than paragraphs & headings various forms of grouped text
+**** TODO [#C] ocn (on & off)
+**** TODO [#B] headings
+***** heading numbering?
+
+***** segment naming & id tags
+
+**** TODO [#B] backmatter
+***** book index
+clean from object, store under separate key
+consider json
+****** TODO [#B] book index sort
+ sort algorithm currently sorts A-Za-z need Aa-Zz
+ also main terms references need to follow main term ... placed under _a which is not always sorted first
+***** bibliography
+identify and store under separate hash
+consider using json to structure
+***** glossary
+identify and store under separate hash?
+**** DONE [#B] composite documents
+import files
+
+<< path_to/file.sst
+
+*** cleanup
+
+*** ranges & node structure info: structure information (levels, ranges & relationships)
+**** heading pointers
+***** headings_array heading pointer
+***** data_abstration_array heading pointer
+**** ocn
+**** heading
+***** markup level [A-D1-4]
+***** collapsed level [0-7]
+**** parent
+***** heading markup level [A-D1-4]
+***** heading ocn
+**** range, heading & children (till next heading of same level or higher (close level mark))
+***** array range (x..y)
+includes sub headings and non-heading objects till next heading
+debate whether to use relative or absolute values (i.e. array points)
+***** ocn range (x..y)
+
+NodeStructureMetadata see node_jstr
+abstract_doc: obj_att\|node_jstr\|node
+emitter: ObjAttrib
+heading_pointer
+*** misc
+**** temporarily turn off ocn
+
+--~# ---# --+#
+
+~# & -#
+
+**** parent & children
+heading parent & children
+paragraph parent
+
+**** dir (read using dlang lib)
+**** how to deal with complex data structures?
+try hashes with json
+
+**** read files
+***** config
+***** make
+** compile :compile:
+ [[http://www.dprogramming.com/tutorial.php][tutorial]]
+ [[http://www.dprogramming.com/tutorial.php#newusers][tutorial new users]]
+*** rdmd
+rdmd --build-only --chatty -d-debug sdp.d
+rdmd -d-debug sisu_ref0.d ../markup/test0.sst
+
+VER='sdp2' && rdmd --build-only --chatty lib/${VER}/sdp.d
+
+*** dmd :dmd:
+dmd -de -w -unittest -debug sdp.d
+
+VER='sdp2'
+dmd -debug -of./bin/${VER} lib/${VER}/sdp.d
+VER='sdp2' && dmd -debug=checkdoc -of./bin/${VER} lib/${VER}/sdp.d
+
+VER='2' && dmd -debug=checkdoc -debug=summary -of./bin/sdp${VER} lib/sdp${VER}/sdp.d
+
+*** ldc2 :ldc:
+ldc2 -d-debug=checkdoc -d-debug=summary -of=./bin/sdp lib/sdp/sdp.d
+
+ldc2 -de -w -unittest -d-debug sdp.d
+
+VER='2' && ldc2 -d-debug=checkdoc -d-debug=summary -of=./bin/sdp${VER} ./lib/sdp${VER}/sdp.d
+
+VER='2' && ldc2 -unittest -d-debug=summary -of=./bin/sdp${VER} lib/sdp${VER}/sdp.d
+VER='2' && ldc2 -d-debug=checkdoc -d-debug=summary -of=./bin/sdp${VER} lib/sdp${VER}/sdp.d
+VER='2' && ldc2 -d-debug=checkdoc -d-debug=summary -of=./bin/sdp${VER} lib/sdp${VER}/sdp.d
+
+VER='sdp2' && ldc2 -d-debug=objects -d-debug=summary -of=./bin/${VER} lib/${VER}/sdp.d
+
+VER='sdp0'
+VER='sdp1'
+VER='sdp2'
+VER='sdp3'
+VER='sdp'
+ldc2 -d-debug -of=./bin/sisu_${VER} lib/${VER}/sdp.d
+ldc2 -d-debug -of=./bin/sisu_${VER} lib/${VER}/sdp.d
+ldc2 -d-debug=heading -of=./bin/sisu_${VER} lib/${VER}/sdp.d
+ldc2 -d-debug=objects -of=./bin/sisu_${VER} lib/${VER}/sdp.d
+
+VER='sdp2' && ldc2 -d-debug=objects -d-debug=summary -of=./bin/sdp lib/${VER}/sdp.d
+
+// VER='2' && ldc2 -unittest -d-debug=insert -d-debug=objects -d-debug=headings -d-debug=summary -d-debug=checkdoc -d-debug=subheader -of=./bin/sdp${VER} lib/sdp${VER}/sdp.d
+
+**** remove later
+binbuild="sdp1"; ldc2 -d-debug ./${binbuild}.d && time ./${binbuild} markup/test0.sst
+binbuild="sdp1"; gdc -fdebug -o ./${binbuild} ./${binbuild}.d && time ./${binbuild} markup/test0.sst
+
+binbuild="sdp2"
+ldc2 -release ./${binbuild}.d && time ./${binbuild} markup/test0.sst
+
+#cd lib
+#ldc2 -d-debug -of=../bin/sdp0 sdp/sdp.d
+
+*** gdc :gdc:
+ [[http://wiki.dlang.org/GDC/Using_GDC][Using GDC]]
+copy/symlink deps, and then "*.d **/*.d"
+
+gdc -o ./bin/sdp0 lib/sdp.d
+VER='sdp2' &&
+gdc -o ./bin/${VER} lib/${VER}/sdp.d
+
+VER='sdp2' && gdc-5 -o ./bin/${VER} ./lib/${VER}/sdp.d
+
+VER='sdp2' && gdc-5 -o ./bin/${VER} ./lib/${VER}/sdp.d ./lib/${VER}/*.d
+
+# VER='sdp2' && gdc -o -d-debug=objects -d-debug=summary -of=./bin/${VER} lib/${VER}/sdp.d
+
+# check flags
+# VER='sdp2' && gdc-5 -I. -O3 -fPIC -c -o ./bin/${VER} ./lib/${VER}/sdp.d
+
+**** remove later
+binbuild="sdp1"
+ldc2 -d-debug ${binbuild}.d && time ${binbuild} markup/test0.sst
+gdc -fdebug -o ${binbuild} ${binbuild}.d && time ${binbuild} markup/test0.sst
+
+// gdc -release -o ./${binbuild} ./${binbuild}.d && time ./${binbuild} markup/test0.sst
+
+**** bug
+
+[http://forum.dlang.org/thread/mailman.284.1442659522.22025.digitalmars-d-learn@puremagic.com?page=3]
+
+[http://www.mail-archive.com/digitalmars-d-learn@puremagic.com/msg61467.html]
+
+??
+[https://github.com/Dicebot/Arch-PKGBUILDs/blob/master/gdc/folders.diff]
+from
+[https://www.mail-archive.com/d.gnu@puremagic.com/msg03844.html]
+
+[https://www.mail-archive.com/digitalmars-d-learn@puremagic.com/msg61470.html]
+
+*** run :run:
+
+sdp0 markup/test0.sst
+
+~utils/d/bin/sdp0 filename.sst
+~utils/d/bin/sdp1 filename.sst
+
+cd markup
+sdp0 test0.sst
+
+*** compile notes
+**** ldc
+import path[0] = /usr/include/d/ldc
+import path[1] = /usr/include/d
+**** gdc
+gdmd -help
+import path[0] = /usr/include/d/4.9/x86_64-linux-gnu
+import path[1] = /usr/include/d/4.9
+**** dmd (non-free) install arch?
+**** issues
+
+** notes :notes:
+**** read file
+char[][] markup_sourcefile_content = split(cast(char[])read(fn_src), rgx_line_delimiter);
+char[][] markup_sourcefile_content = markupSourceLineArray(markupSourceString(fn_src));
+*** build
+
+** book index
+// [http://forum.dlang.org/post/k8of07$1bgu$1@digitalmars.com]
+// [http://forum.dlang.org/post/dfyowpjhdaemhxhepfmk@forum.dlang.org]
+ // recast ---
+ // ocns ; sub ; main
+ string[][string][string] bookindex;
+ // as ---
+ // ocns ; sub ; main
+ string[]string[][string][] bookindex_the;
+ // with sorted main & sub
+
+// vim ./lib/sdp2/sisu_*.d
+// vim **/sdp2/sisu_*.d
+
+// emacs **/sdp2/sisu_*.d &
+// emacs ./lib/sdp2/sisu_*.d &
+
+** bugs :bugs:
+ok
+time ~dlang/bin/sdp2 --html --no-assert en/[a-eg-z]*
+not ok
+time ~dlang/bin/sdp2 --html --no-assert en/free_for_all.peter_wayner.sst en/gpl3.fsf.sst
+works if:
+ poems removed from gpl3;
+ biblio removed from free for all
+time ~dlang/bin/sdp2 --html --no-assert en/free_for_all.peter_wayner.sst en/gpl2.fsf.sst en/gpl3.fsf.sst
+time ~dlang/bin/sdp2 --html --no-assert en/[fg]*
+time ~dlang/bin/sdp2 --html --no-assert en/[a-z]*
+leaving out free_for_all seems to make it ok
+time ~dlang/bin/sdp2 --html --no-assert en/[a-eg-z]*
+leaving out any two bibliography entries within free_for_all appears to fix the problem!
+
+works in dmd not in ldc2
+
+**** Error in `/home/ralph/grotto/repo/git.repo/utils/d/bin/sdp2': corrupted double-linked list: 0x00000008b905b310 ***
+in free_for_all bibliography first instance FatBrain ref
+gets stuck after:
+en/free_for_all.peter_wayner.sst
+** desc :desc:
+*** process files
+.sst (text) regular
+.ssm (master) contains either .sst or .ssi
+.ssi (insert) processed within .ssm (or called into a .ssm by another .ssi)
+*** header
+**** metadata
+**** make (@make:)
+cover_image
+home_button_image
+home_button_text
+footer
+headings
+num_top
+breaks
+substitute
+bold
+italics
+emphasis
+texpdf_font
+css
+
+*** structure
+document structure is determined by headings of different levels
+headings must either
+(a) be explicitly marked as such, or
+(b) given by a regex (in the appropriate make header) that allows the program determine headings within text
+types of heading:
+**** document separators (A-D)
+level A is the title
+**** text headings (1-4)
+**** header make heading regex
+***** heading levels
+****** markup level [A-D1-4]
+****** markup level numbers [0-7] or [1-8]
+****** collapsed level numbers [0-7] or [1-8]
+****** nodes
+****** json search segments? chapter equivalent, decide
+***** switches, ocn on off (dummy header)
+*** object attributes
+types of object:
+**** headings (document structure objects)
+***** level
+***** segment name
+***** numbering
+**** paragraphs
+**** blocks
+types of block object:
+***** group
+***** block
+***** poem (verse)
+***** code
+***** table
+***** quote
+***** TODO alt?
+*** paragraph attributes
+types of paragraph attribute:
+**** indent
+***** paragraph (1 - 9)
+***** first line level (1 - 9), & subsequent text level (1 - 9)
+indent (first, rest), bullet
+**** bullets
+*** inline text (paragraph) attributes
+bold, italics, emphasis, superscript, substcript, strike, add, monospace, footnote (number them)
+types of text (within paragraph) attribute:
+**** bold
+**** italics
+**** emphasis
+**** underscore
+**** strike
+**** superscript
+**** subscript
+** package
+*** dub
+ against dub:
+ [[http://forum.dlang.org/post/hmdyrzbbhbcgqwqznqwz@forum.dlang.org][against dub]]
+** dlang general
+*** books
+ [[http://wiki.dlang.org/Bookshttp://wiki.dlang.org/Books][D books]]
+ [[http://ddili.org/ders/d.en/index.html][programming in D]]