Coder Social home page Coder Social logo

rosmord / jsesh Goto Github PK

View Code? Open in Web Editor NEW
51.0 11.0 19.0 39.56 MB

The JSesh hieroglyphic editor

Shell 0.03% Java 86.01% HTML 2.04% MATLAB 0.02% Yacc 0.25% Lex 0.22% C 1.33% CSS 0.01% Inno Setup 0.04% Rich Text Format 10.06%
egyptology hieroglyphs wordprocessor

jsesh's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jsesh's Issues

Doesn't open with error.

I tried to download latest version of JSesh and run it but it gave me a error and it doesn't open. I reinstalled but still happening. I'm putting the error log file here:
errorinfo.txt
What's problem?

Bug for uppercase translitteration

When trying to type an uppercase translitteration letter, there is a bug if the letter is the first one of a translitterated text. I.E. "wꜣḥ Ptḥ" will be correctly rendered, whereas "Ptḥ" alone will not.

The problem seems that the "^" which is supposed to mark uppercase translitterated letters in MdC is added after the letter and not before in this case.

Bug for the "group explode feature"

In my dev version, the group explode feature only works if the groups to explode are selected. In theory, it should work also on the previous group if no selection exists.

Speed up "limited length" search

The current search is slow when a length limit is set. Speed it up.

Done: the length limit is now no longer set on the whole result, but on the skipped parts.

JSesh imported glyphs should be reloaded when the content of the hieroglyphic folder is modified

Currently (due to old limitations in Java file processing), JSesh is not aware of direct changes in the hieroglyphic folder where you can put your own hieroglyphs as SVG files.

That is, JSesh will reload signs if you have the hieroglyphic folder pointing to another place on your hard drive ; it will also
load glyphs if you try to use a glyph which hasn't been loaded yet. However, if you have already a sign in memory, and
you replace the file, JSesh won't notice it until it is restarted.

It's usually not a problem, but now that Java can listen to changes in a folder, I could improve it.

A bug in screen refresh

This bug is currently mostly a problem if you use JSesh as a library for your own softwares.

If I do the following in a method:

     editor.getWorkflow().setMDCCode("");     
     editor.getWorkflow().insertElement(g); // g is some kind of element...

The final view which is computed doesn't clear the previous view properly.

Add "rounded enclosure" cartouche-like construct

JSesh support for the MdC 88 <F-...-> construct is... well below what would be expected. Basically it needs to be written correctly.

Meanwhile, the Rosette project has added to its own dialect of the MdC a construct which allows rounded enclosures. It's quite nice for foreign countries, in particular. I should add it at some point.

Cleanup the drawing preference system

The current drawing preference system is a mess.

  • as far as text layout goes, it's cumbersome (changing the size of the overall text is difficult)

  • the drawingPreference object itself is both mutable and shared between some instances of editors. We should make it easier to use.

How to render documents from the command line?

Hi. Thanks for maintaining jsesh over the years. It's been a very valuable tool!

For our reading group, I'd like to be able to render .gly files to a particular image format from the command line, so we can automate construction of documents. I see that there's a SimpleBitmap demo, and I've gotten that to work, but I'd prefer SVG output, and can I can't get the SVGExportDemo to work at all:

$ mvn package
   [...]
$ java -cp jsesh/target/jsesh-7.5.5.jar:jseshGlyphs/target/jseshGlyphs-7.5.5.jar:cupAndlex/target/cupAndlex-7.5.5.jar:qenherkhopeshefUtils/target/qenherkhopeshefUtils-7.5.5.jar:jseshDemos/target/jseshDemos-7.5.5.jar jsesh.demo.SimpleBitmap
$ file example.png 
example.png: PNG image data, 117 x 473, 8-bit/color RGB, non-interlaced

but

$ java -cp jsesh/target/jsesh-7.5.5.jar:jseshGlyphs/target/jseshGlyphs-7.5.5.jar:cupAndlex/target/cupAndlex-7.5.5.jar:qenherkhopeshefUtils/target/qenherkhopeshefUtils-7.5.5.jar:jseshDemos/target/jseshDemos-7.5.5.jar jsesh.demo.SVGExportDemo
Error: Unable to initialize main class jsesh.demo.SVGExportDemo
Caused by: java.lang.NoClassDefFoundError: org/qenherkhopeshef/graphics/utils/DoubleDimensions

I see other places in the code reference org.qenherkhopeshef.swingUtils.DoubleDimensions instead, so maybe this demo needs updating? There's a similar problem with org.qenherkhopeshef.graphics.svg.SVGGraphics2D that I haven't been able to resolve.

Overall, I'd just like a way to use jsesh to create images from the command line, but I was trying to rework one of the demos toward this end. I have some coding experience, but I've never used java much, so I'd appreciate any suggestions you might have on how to develop this.

Make the hieroglyphic "palette" a standard window

The Hieroglyphic palette always stands on top of other JSesh windows. This is annoying. It should pop up on top
when opened from the menus, but it should be possible to move standard JSesh windows above it, especially when you have a small screen.

Improve the group editor

The group editor is now fixed (it had been broken for scaling and rotating). But it lacks a number of useful functions,
for instance to align signs, or to distribute them. Its architecture could also be improved.

Add a Javascript API for users to extend JSesh

Using Java to modify/customise JSesh requires a good deal of Computer Science knowledge. However, a significant number of users are probably able to write a bit of Javascript.

Proposing a reasonably simple API in JSesh might allow simple, yet useful customisation of the software. Nothing would
be done automatically, to avoid security issues.

The way I see it :

  • a startup script could be set up by users, with access to menus and the like. It would enable one to add custom menu entries and shortcuts.
  • it would be possible to load and run a javascript file for automation purposes too (like batch-processing of a JSesh file).

Add a way to choose the user interface language

Currently, JSesh uses the machine configuration to choose the language for its menus (if the language is supported). Now, some users prefer to use another language (for instance, english, because most tutorials will refer to the english menu names, etc.

JSesh should provide the possibility to change the menu languages on the fly.

TODO : Unicode Export

Add export (copy/paste and save as...) to plain text using Unicode encoding for glyphs too

"Recent document" doesn't work with newly created files

When you have just saved a new JSesh file, you are unable to reload it using "recent document". A link is there, but it won't open the file.

The reason is that JSesh automatically adds the ".gly" suffix to files, and the system responsible for managing the recent document list doesn't know it. Hence, it tries to load the file without the suffix.

It's not a very serious issue : you can still open existing files with the Open menu, and the problem only affects new files. But it obviously needs fixing.

Fix cyclic 'contains' relations

In signs_description.xml:

  • Aa18 is a denoted to contain Aa17, but also vice versa. I think it is clear that Aa17 does not include Aa18.
  • V98 is a denoted to contain V36, but also vice versa. I think it is clear that V98 does not include V36.
  • Y1 is a denoted to contain Y2, but also vice versa. I think it is clear that Y2 does not include Y1.
  • D32 is a denoted to contain D197, but also vice versa. I think it is clear that D197 does not include D32.

Additionally:

  • I64 is a variant of I12, but I would not consider them as 'containing' each other
  • Y4 is the mirror image of Y3, but I would not consider them as 'containing' each other

add an easy way to insert line numbers

The current system for typing line number is somehow tedious.
It would be easy to add a menu entry (and a shortcut) which would:

  1. find the previous line number (if any)
  2. extract the last number it contains (for instance, if it's |2,16-, we would extract the "16"
  3. increment it, combine it with the rest of the previous line indication, and insert it (e.g. |2,17-)

Replace IText with pdfbox ?

JSesh uses an old version of IText for producing pdf, because of license issues (the version used was the last one using the LGPL, if I remember well). PdfBox has a more permissive license.

Cannot paste on Google Docs

Hi Serge and audience!

I know this isn't a Jsesh-specific proble, but is there anyway you are aware of so that one can copy and paste glyph images on a Google Docs document ?
The problem with Google Docs is it currently doesn't let one paste images with Ctrl+V.

Thanks for any tip to workaround this limitation.
Regards,
Carlos

Add new Unicode Egyptian Hieroglyph Format Controls

Unicode 12 has introduced a number of format control for hieroglyphs, and in particular "insertion controls", which are more precise than the current JSesh "ligature" operators.

  • EGYPTIAN HIEROGLYPH INSERT AT TOP START
  • EGYPTIAN HIEROGLYPH INSERT AT BOTTOM START
  • EGYPTIAN HIEROGLYPH INSERT AT TOP END
  • EGYPTIAN HIEROGLYPH INSERT AT BOTTOM END

We should add them to JSesh (perhaps not the Unicode characters themselves, but at least their semantics).

Fix group editor

The current group editor is not very practical when it comes to scaling and rotating. We should improve this...

I label this as a bug because I feel the current system really needs improvement.

TODO : Improved Search

  • search with wildcards (done)
  • search in non-hieroglyphic texts
  • fuzzy sign search (search using sign variants)
  • both on in-file and multifile search
  • full regexp search ? maybe later (the current system would allow it, but I'm not sure the users would use it ?)

Improve sign display in sign palette

the "zoomed" view on a sign in the sign palette has a few problems:

  • the user doesn't control the zoom level. This is quite inconvenient in some cases ;
  • on 5k screens, parts are somehow pixelized.

The user should be able to choose the size of glyphs in the "palette"

With high resolution ("4K" or "Retina") screens, some elements drawn by JSesh appear way too small. The latest versions of JSesh have solved this for plain text, and some hieroglyphic menus can be fixed through a preference option, but currently, the size of elements in the palette is fixed.

The simplest way to do this would probably be to allow the signs' size to be chosen directly in the palette itself.

Make preferences reading more bulletproof

(This is more a memo to myself than a public issue:

  • ensure errors when reading JSesh preferences lead to a usable system anyway
  • add a reset button somewhere to reset all preferences to "factory defaults".

New layout system

Add an enhanced layout system which would allow to have multiple areas with hieroglyphic texts.

Improve SVG Import

The homemade JSesh library for SVG import is small and efficient, but doesn't cover the whole standard. When I decided to use my own code, the reason was :

  • I wanted to keep JSesh as small as possible ;
  • including external libraries was complex at the time.

With maven or, one day, gradle, the second point is not a problem. As to the first, we are in 2021.

Add justification information to lines

Adds the notions of left-aligned, right-aligned, justified lines.
JSesh has currently a temporary system, which is not precise enough. I have been waiting for the moment I would be recoding the graphical layer, but I feel it's important enough to be done sooner.

Error caused by language of OS

The Turkish (may more language) locale often causes issues because it has dotted and dotless I, which thus get uppercased and lowercased differently to most Latin-based alphabets. Fixing this requires specifying a locale in all instances where a string is uppercased or lowercased apart from human interface text.

The point of failure given:

hieroglyphsManager.addTransliteration(sign, transliteration, use, SignValueType.valueOf(type.toUpperCase()));

Originally posted by @Bikenkhet in #34 (comment)

Add full regular language capability to JSesh

I have written a cool library called finitestate which is used for the new Wildcard searches in JSesh.

Now, this library is way more powerful than what is currently available in JSesh. I intend to add a third tab in the search panel. It will be very technical, but some users might like the options it gives.

Add a function to center signs

JSesh can center all small signs on the vertical axis, but it lacks a function to do so for single signs. Currently, one
has to manually add to small spaces around the sign to center, and stack the sign and the spaces.

This can be easily automated, so we need to add a menu entry to this effect.

Add sign decomposition information

For search purposes, some signs, such as V72, or more simply the numeric signs, should be decomposed into their elements,
at least on an optional basis.

We should add for some sign a standard decomposed form (much in the way "é" is decomposed in unicode as e plus acute accent.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.