FC18: maisdoc fixed nav link reset bug in pages and sub concepts
This commit is contained in:
parent
0e16c50571
commit
663b927bdb
7 changed files with 77 additions and 36 deletions
|
|
@ -157,7 +157,7 @@ public class FCDocWriter {
|
|||
doc.setDescription("FourCorner 18 bit text encoding format.");
|
||||
doc.setDocAbout("FourCorner Indexes\nThe World Of Words™");
|
||||
doc.createDocCopyright("𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡𑀪𑀸𑀕", "תשפ״ה"); // use hebrew quotation mark, the interweb uses latin which break unicode rendering
|
||||
doc.setDocPageSubTitle("FC18-Alpha1");
|
||||
doc.setDocPageSubTitle("FC18-Alpha2");
|
||||
doc.addMetaKeywordAll(List.of("FC18", "documentation", "four-corner", "china", "MSX4"));
|
||||
doc.setNoFrameAllName("All cake slices");
|
||||
doc.setFrameNavOverviewPrintParent(true);
|
||||
|
|
@ -252,7 +252,7 @@ public class FCDocWriter {
|
|||
}
|
||||
|
||||
private MaisDocNode createNodeKanjiDict(String version) {
|
||||
return new MaisDocNode(kanjiDict, "jis_x_0" + version, "JIS X 0" + version, "Kanji JIS X 0" + version);
|
||||
return new MaisDocNode(kanjiDict, "jis_x_0" + version, "JIS X 0" + version, "Reference Kanji JIS X 0" + version);
|
||||
}
|
||||
|
||||
private MaisDocNode createNodeKanjiDictLiteral(KanjiDictLiteral literal, String kuTen) {
|
||||
|
|
|
|||
|
|
@ -23,13 +23,15 @@
|
|||
package love.distributedrebirth.nx01.mushroom.mais.fc18.print;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.x4o.fc18.FourCornerUnicodeDisplay;
|
||||
import org.x4o.fc18.cake2.FourCornerDotCake;
|
||||
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
||||
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
|
||||
import org.x4o.fc18.zion7.FourCornerZion7Candlelier;
|
||||
import org.x4o.fc18.zion7.FourCornerZionStenoGrapher;
|
||||
import org.x4o.fc18.zion7.flame4.FCFlameNumberTaste;
|
||||
import org.x4o.maisdoc.flake.MaisDocContentCss;
|
||||
import org.x4o.maisdoc.flake.MaisDocContentWriter;
|
||||
import org.x4o.maisdoc.model.MaisDocPage;
|
||||
|
|
@ -47,7 +49,7 @@ import org.x4o.sax3.io.ContentCloseable;
|
|||
public class FCDocPageWriterNCR implements MaisDocPageWriter, FCDocSegmentWriter {
|
||||
|
||||
public static MaisDocPage createDocPage() {
|
||||
return new MaisDocPage("overview-ncr","NCR","Overview of all (6 bit) NCR1632 fractions.",new FCDocPageWriterNCR());
|
||||
return new MaisDocPage("overview-ncr","NCR","Overview of some New Counting Rods numbers.",new FCDocPageWriterNCR());
|
||||
}
|
||||
|
||||
// TODO: write adult NCR too here
|
||||
|
|
@ -56,7 +58,7 @@ public class FCDocPageWriterNCR implements MaisDocPageWriter, FCDocSegmentWriter
|
|||
public void writePageContent(MaisDocWriteEvent<MaisDocPage> e) throws IOException {
|
||||
MaisDocContentWriter writer = e.getWriter();
|
||||
try (ContentCloseable content = writer.docPageContent()) {
|
||||
try (ContentCloseable table = writer.docTable(FourCornerDotCake.FC_RATIONAL2304_BANK.nameSpec().replaceAll("BANK", "baklava"), null, MaisDocContentCss.overviewSummary)) {
|
||||
try (ContentCloseable table = writer.docTable(FourCornerDotCake.FC_RATIONAL2304_BANK.nameSpec().replaceAll("BANK", "number"), null, MaisDocContentCss.overviewSummary)) {
|
||||
writeTableBoxHeaderNumeric(writer, 28);
|
||||
writePIN(writer);
|
||||
}
|
||||
|
|
@ -81,9 +83,11 @@ public class FCDocPageWriterNCR implements MaisDocPageWriter, FCDocSegmentWriter
|
|||
continue;
|
||||
}
|
||||
List<Integer> piNum = new ArrayList<>();
|
||||
//piNum.addAll(FCDotDEC2701DashPX0.ESC68_NCR.baklavaPointSequence()); // TODO: use write for 18 bit NCR
|
||||
piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + t);
|
||||
piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + i);
|
||||
FourCornerZion7Candlelier steno = FourCornerZionStenoGrapher.writerFC18(piNum);
|
||||
FCFlameNumberTaste taste = FCFlameNumberTaste.NUMBER_POSITIVE;
|
||||
BigInteger numerator = BigInteger.valueOf(1 + t);
|
||||
BigInteger denominator = BigInteger.valueOf(1 + i);
|
||||
steno.strobeNumberChocoPigRational(taste, taste, numerator, denominator);
|
||||
String char18Str = FourCornerUnicodeDisplay.text().render(piNum);
|
||||
StringBuilder buf = new StringBuilder();
|
||||
for (int c : char18Str.codePoints().toArray()) {
|
||||
|
|
|
|||
|
|
@ -50,31 +50,44 @@ import love.distributedrebirth.nx01.mushroom.mais.fc18.TDocCakeSlice;
|
|||
*/
|
||||
public class FCDocSegmentWriterCake implements FCDocSegmentWriter {
|
||||
|
||||
private static final String[] FC_FEATURES = new String[] {
|
||||
private static final String[] FC6_FEATURES = new String[] {
|
||||
"True pure six bit enterprice mainframe numeric letter system",
|
||||
"Super pattern graphic renderable with optional kerning",
|
||||
"Real UPPERCASE only character set",
|
||||
"Zero nummeric letters",
|
||||
"Supports HolyC sand worms in your text for undefined octal data",
|
||||
"Render structural space with a percentage pastor",
|
||||
"Group nun lines up to 8 repeating structures",
|
||||
"Inline base2 lego: 16,32,64,128,256,512,1024,2048 bit blocks",
|
||||
"Inline base2 signed: 16,32,64,128,256,512,1024,2048 integer",
|
||||
"Inline base8 lego: 18,36,72,144,288,576,1152,2304 bit blocks",
|
||||
"Inline base8 choco: 18,36,72,144,288,576,1152,2304 tasteful number",
|
||||
"Defined external escape sequence model",
|
||||
"(TODO) VT-06 terminal control for CDC1604(1960) 6 bit main frames",
|
||||
};
|
||||
private static final String[] FC6P_FEATURES = new String[] {
|
||||
"(TODO) Adds unified russian/greek and brascii candy letters",
|
||||
"Block your display candy for text user interfaces",
|
||||
"Has underscored letters to migrate EBCDIC(1963) APL code from z/OS",
|
||||
};
|
||||
private static final String[] FC18_FEATURES = new String[] {
|
||||
"Text format design to write computer code and abstract file/resource names",
|
||||
"Code from chinees child can be extended by indian child or spanish child in local local",
|
||||
//"VT-06 terminal control for CDC1604(1960) 6 bit main frames",
|
||||
"Has underscored letters to migrate EBCDIC(1963) APL code from z/OS",
|
||||
"Program with (local) words not with lettersssss",
|
||||
"New Counting Rods, 1152 bit fractions with two 576 bit numbers",
|
||||
"Use datagrams for decimals/octals/hex/bits to render in monkey language",
|
||||
"Supports HolyC sand worms in your text for undefined octal data",
|
||||
"Embed 21 bit unicode for 6/8 and 18 bit computers",
|
||||
"The lower 6/8 bit part is pattern graphic renderable with optional kerning",
|
||||
"Contains the BIP0039(2013) keyword encoding too",
|
||||
"Render on 6 bit(baklave point) or 8(muffin point) bit as KANJI + BraSCII + PIE",
|
||||
"Inline number grams for decimals/octals/hex/bits to render in monkey language",
|
||||
"Inline choco pig rational 2304 bit number",
|
||||
"Inline choco pig decicmal 2304 bit number",
|
||||
"Inline choco pig float 2304 bit number",
|
||||
"Inline choco pig chopped 2304 bit number",
|
||||
"(TODO) Render on 6 bit(baklave point) as KANJI + BraSCII + PIE(-rom)",
|
||||
"Render with 21 bit unicode(code point) + fonts drawings",
|
||||
"Render on 18 bit(cake point) with 72 bit unicode4D drawings"
|
||||
"(TODO) Render on 18 bit(cake point) with 72 bit unicode4D drawings"
|
||||
};
|
||||
|
||||
private static final String[] FC_TODO = new String[] {
|
||||
"DOC: Add all needed info into word/pie/pages doc",
|
||||
"Write rules; no candy(0x3F3--) for grown up computer languages",
|
||||
"Finish ESC sequences",
|
||||
"Add doctype for 6,8,18 AND allow candy AND XDBX/etc",
|
||||
"Add binary XML support, maybe also doc tags and MD structure",
|
||||
"Move APL candy to PIE towers",
|
||||
"Replace APL with BraSCII 0xC0++ candies",
|
||||
"Fillup PIE math symbol candy towers",
|
||||
"Fillup languages in CLK9P word cake (in all human languages)",
|
||||
"Request new 'Japanese Industrial Standard X 0214', Add full CJK,BraSCII++,PIE",
|
||||
|
|
@ -100,10 +113,30 @@ public class FCDocSegmentWriterCake implements FCDocSegmentWriter {
|
|||
@MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 20)
|
||||
public void writeFeatureListing(MaisDocWriteEvent<MaisDocNode> event) throws IOException {
|
||||
MaisDocContentWriter writer = event.getWriter();
|
||||
writer.printCharacters("Features;");
|
||||
writer.printCharacters("FC6;");
|
||||
try (ContentCloseable content = writer.docPageContent()) {
|
||||
try (ContentCloseable ul = writer.printTag(Tag.ul)) {
|
||||
for (String feature : FC_FEATURES) {
|
||||
for (String feature : FC6_FEATURES) {
|
||||
try (ContentCloseable li = writer.printTag(Tag.li, "", null, "circle")) {
|
||||
writer.printCharacters(feature);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
writer.printCharacters("FC6_PLUS;");
|
||||
try (ContentCloseable content = writer.docPageContent()) {
|
||||
try (ContentCloseable ul = writer.printTag(Tag.ul)) {
|
||||
for (String feature : FC6P_FEATURES) {
|
||||
try (ContentCloseable li = writer.printTag(Tag.li, "", null, "circle")) {
|
||||
writer.printCharacters(feature);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
writer.printCharacters("FC18;");
|
||||
try (ContentCloseable content = writer.docPageContent()) {
|
||||
try (ContentCloseable ul = writer.printTag(Tag.ul)) {
|
||||
for (String feature : FC18_FEATURES) {
|
||||
try (ContentCloseable li = writer.printTag(Tag.li, "", null, "circle")) {
|
||||
writer.printCharacters(feature);
|
||||
}
|
||||
|
|
@ -115,7 +148,7 @@ public class FCDocSegmentWriterCake implements FCDocSegmentWriter {
|
|||
@MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 1)
|
||||
public void writeIntro(MaisDocWriteEvent<MaisDocNode> event) throws IOException {
|
||||
MaisDocContentWriter writer = event.getWriter();
|
||||
writer.printCharacters("Four corner is 18 bit text encoding for 144 bit computers.");
|
||||
writer.printCharacters("Four corner is 18 bit text encoding for 6 bit and 144 bit computers.");
|
||||
}
|
||||
|
||||
@MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 100)
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public interface FourCornerZion7Candlelier extends FourCornerZion7Bereshit {
|
|||
/// An choco pig floating point number. (4+1+283+2016)
|
||||
void strobeNumberChocoPigFloat(FCFlameNumberTaste taste, boolean bias, BigInteger exponent, BigInteger mantissa);
|
||||
|
||||
/// An choped pig point number. (4+1148+1152)
|
||||
/// An chopped pig point number. (4+1148+1152)
|
||||
void strobeNumberChocoPigChoped(FCFlameNumberTaste taste, BigInteger quake, BigInteger fraction);
|
||||
// XDBX18: doom.wad uses (ARM) Q16.16 which is equal to the real (Texas) Q15.16 (because doom map like E2M3 = 6 bit float)
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ import org.x4o.fc18.zion7.flame4.FCFlameNumberSparklerSmoke;
|
|||
///
|
||||
/// @author Willem Cazander
|
||||
/// @version 1.0 Jan 09, 2025
|
||||
public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs {
|
||||
public class FourCornerZionStenoLexer {
|
||||
|
||||
private final static FourCornerZionStenoLexerFire CLEAN_FIRE = new FourCornerZionStenoLexerFire.Adapter() {};
|
||||
private final static FourCornerZionStenoLexerSmoke CLEAN_SMOKE = new FourCornerZionStenoLexerSmoke.Adapter() {};
|
||||
|
|
@ -64,7 +64,7 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
|
|||
private final boolean handlerEscape;
|
||||
private final FourCornerZion7Candlelier handler;
|
||||
private final FourCornerZion7TempleScrolls handlerTempleScrolls;
|
||||
private final int numberBank[] = new int[NCR_BANK_SIZE];
|
||||
private final int numberBank[] = new int[FourCornerZionStenoPetroglyphs.NCR_BANK_SIZE];
|
||||
private List<Integer> input;
|
||||
private int inputIndex = 0;
|
||||
private int currLine = 0;
|
||||
|
|
@ -249,8 +249,8 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
|
|||
}
|
||||
|
||||
private void numberBankReset() {
|
||||
for (int i = NCR_BANK_SIZE - NCR_ONE; i >= NCR_ZERO; i--) {
|
||||
numberBank[i] = NCR_ZERO;
|
||||
for (int i = FourCornerZionStenoPetroglyphs.NCR_BANK_SIZE - FourCornerZionStenoPetroglyphs.NCR_ONE; i >= FourCornerZionStenoPetroglyphs.NCR_ZERO; i--) {
|
||||
numberBank[i] = FourCornerZionStenoPetroglyphs.NCR_ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -268,7 +268,7 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
|
|||
|
||||
private BigInteger numberBankReadBigPaged(int bankBits, int bankPageBegin) {
|
||||
BigInteger result = BigInteger.ZERO;
|
||||
for (int i = bankPageBegin; i >= NCR_ZERO; i--) {
|
||||
for (int i = bankPageBegin; i >= FourCornerZionStenoPetroglyphs.NCR_ZERO; i--) {
|
||||
int bankValue = numberBank[i];
|
||||
result = result.add(BigInteger.valueOf(bankValue).shiftLeft(i * bankBits));
|
||||
}
|
||||
|
|
@ -276,15 +276,15 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
|
|||
}
|
||||
|
||||
private BigInteger numberBankReadBig8(int bankPageBegin) {
|
||||
return numberBankReadBigPaged(NCR_BANK8_BITS, bankPageBegin);
|
||||
return numberBankReadBigPaged(FourCornerZionStenoPetroglyphs.NCR_BANK8_BITS, bankPageBegin);
|
||||
}
|
||||
|
||||
private BigInteger numberBankReadBig9(int bankPageBegin) {
|
||||
return numberBankReadBigPaged(NCR_BANK9_BITS, bankPageBegin);
|
||||
return numberBankReadBigPaged(FourCornerZionStenoPetroglyphs.NCR_BANK9_BITS, bankPageBegin);
|
||||
}
|
||||
|
||||
private BigInteger numberBankReadBig12(int bankPageBegin) {
|
||||
return numberBankReadBigPaged(NCR_BANK12_BITS, bankPageBegin);
|
||||
return numberBankReadBigPaged(FourCornerZionStenoPetroglyphs.NCR_BANK12_BITS, bankPageBegin);
|
||||
}
|
||||
|
||||
abstract static private class StenoScanner implements FourCornerZionStenoPetroglyphs {
|
||||
|
|
|
|||
|
|
@ -214,6 +214,8 @@ public class MaisDoc {
|
|||
|
||||
public MaisDocConcept findConceptChildByNode(MaisDocNode node) {
|
||||
Class<?> objClass = node.getUserData().getClass();
|
||||
return findConceptByClass(objClass);
|
||||
/*
|
||||
Class<?> parentClass = null;
|
||||
if (node.getParent()!=null) {
|
||||
parentClass = node.getParent().getUserData().getClass();
|
||||
|
|
@ -229,6 +231,7 @@ public class MaisDoc {
|
|||
}
|
||||
}
|
||||
return null;
|
||||
*/
|
||||
}
|
||||
|
||||
public List<MaisDocRemoteClass> getRemoteClasses() {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ public class MaisDocNavLink {
|
|||
setHref(href);
|
||||
setTitle(title);
|
||||
setText(text);
|
||||
setResetHref(resetHref);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue