{"id":38601988,"url":"https://github.com/rosmord/jsesh","last_synced_at":"2026-01-17T08:34:27.076Z","repository":{"id":37385057,"uuid":"111090962","full_name":"rosmord/jsesh","owner":"rosmord","description":"The JSesh hieroglyphic editor","archived":false,"fork":false,"pushed_at":"2025-12-03T10:57:18.000Z","size":41845,"stargazers_count":70,"open_issues_count":31,"forks_count":23,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-01-10T22:05:33.195Z","etag":null,"topics":["egyptology","hieroglyphs","wordprocessor"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rosmord.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"licenseheader.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-17T10:30:15.000Z","updated_at":"2026-01-10T18:06:24.000Z","dependencies_parsed_at":"2022-09-14T21:22:21.027Z","dependency_job_id":"6c63907b-ddd2-4e5d-a565-659de7cade56","html_url":"https://github.com/rosmord/jsesh","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/rosmord/jsesh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosmord%2Fjsesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosmord%2Fjsesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosmord%2Fjsesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosmord%2Fjsesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rosmord","download_url":"https://codeload.github.com/rosmord/jsesh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rosmord%2Fjsesh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28343745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T16:14:38.383Z","status":"ssl_error","status_checked_at":"2026-01-12T16:14:34.289Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["egyptology","hieroglyphs","wordprocessor"],"created_at":"2026-01-17T08:34:26.556Z","updated_at":"2026-01-17T08:34:27.060Z","avatar_url":"https://github.com/rosmord.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSesh sources\nWelcome to JSesh sources! \n\n**Java 11**\n\n\nJSesh is a Java hieroglyphic editor \ndeveloped by Serge Rosmorduc (serge.rosmorduc@qenherkhopeshef.org)\n\nJSesh developpers :\n- Serge J.-P. Thomas : most of the fonts\n- Serge Rosmorduc : almost all the code, a few glyphs in the fonts\n- Wayne Collins (CVS, ant improvement)\n\n\nLicences for the various libraries used by JSesh can be found in resources/licenses\n\n## Source Content \nContains the following folders and modules:\n\n### Maven modules for JSesh\n\n#### Libraries\n\ncodeDumper\n\n* cupAndlex: bundle with CUP and LEX. Probably usable for other projects as a maven MOJO; those are used to parse Manuel de Codage files;\n* cupruntime: the runtime for CUP;\n* jhotdrawfw: the \"application framework\" part of JHOTDRAW 7, adapted from [JHotDraw 7 by Walter Randelshofer](https://www.randelshofer.ch/oop/jhotdraw/);\n* jsesh: the main jsesh library;\n* jseshGlyphs: the main hieroglyphic font;\n* jseshLabels: the labels for menus, buttons, etc. in Jsesh all in one place to ease translation of the software;\n* jseshSearch: the search module;\n* jseshTests: various small softwares used to check JSesh runs correctly. Only interesting if you develop JSesh.\n* prepareJSeshRelease: software to prepare JSesh for release (mostly to copy stuff in the right place and create index of signs);\n* qenherkhopeshefUtils: sundry utilities to help writing JSesh and Swing softwares. Some are outdated (the guiFramework has been replaced by jHotdraw);\n* signInfoAppli: the editor for sign information.\n\n#### Softwares\n\n* jseshAppli: the main application for JSesh;\n\n* jsesh-installer : everthing related to  JSesh installation.\n\n* codeDumper : a small software to create a dump of JSesh files, \n  as simple lists of codes.\n\n## Things removed from JSesh\n\n- All demonstrations for programmers have moved to the project [jseshDemos](https://github.com/rosmord/jseshDemos);\n- utilities softwares belongs to the project [jseshUtils](https://github.com/rosmord/jseshUtils);\n- the texts are available in [MDC-texts](https://github.com/rosmord/MDC-texts) (but there is a copy of them in JSesh).\n\n\n#### Weird compilation behaviour\n\nI have just lost a few hours because JSesh wasn't compiling correctly anymore. It seems that the problem was\ndue to some IDE project files with a wrong path (in particular, with a wrong path regarding to the generated files.\n\nIf you have the following behaviour :\n\n- initial compile is ok, and build files from the CUP and JFlex folder ;\n- further builds complain that `MDCParse` doesn't exist\n\nit might be worthwhile deleting `.classpath` and `.project` files in your JSesh folder, and trying again.\n\n\n## Files and Folders not part of the general maven architecture\n\n* README.md : this file\n* TODO.md : ok, a TODO file\n* comments: various text files I keep about JSesh, \n    and some unused code (unformal tests and \n    proof-of-concept)\n\n## Working with eclipse:\n\nThere seems to be a problem with the eclipse plugin for maven regarding generated sources:\nthe \"jsesh\" maven module will report missing classes in eclipse.\n\nA quick fix:\n\n* import the JSesh-all project in eclipse (import maven project)\n* open the jsesh module, and, on the pom.xml file, select \"run as/maven package\".\n    This will create the missing files\n* then, you need to add the corresponding folders to the jsesh eclipse project as \"source folders\".\n\n    * In the jsesh module, open target/generated sources\n\t* Then right click on target/generated sources/cup, and select the menu entry \"build path/use as source folder\".\n\t\tdo the same for the target/generated sources/lex folder.\n\t\t\nThat's it.\n\n## Working with VSCode\n\nInteraction between VSCode and Maven is not that easy (again, because of generated files). I'm not sure I will spend the time to do it.\n\n\n\n## Building distributions\n\nDue to changes in Java distribution and on Windows and Mac OS X as platform \n(with a strong bias against software not distributed through their respective\nstores), the previous java-only distribution system has changed.\n\nJSesh will now embed its own version of Java\n\n\nThe files here are used in the last, non-automated phase of building a\nJSesh distribution. \n\nI will probably try to automate everything at some point, this being said.\n\n### Updating data\n\nThis is only done if you are in charge of updating the JSesh text base or the JSesh sign base.\nThat is, you most probably don't need to do it.\n\nTo update the JSesh external data, go to the `utils` folder and type :\n\n~~~bash\nant -f copyData.xml\n~~~\n\n\n------------------------------------\n### Building a Mac Distribution:\n\nbuild the whole project: \"mvn install\".\n\n1. all files are in jsesh-installer/target/mac. cd there.\n\n5. Ensure main.sh is executable in both apps (JSesh.app and SignInfo.app)\n~~~\n$ find . -name main.sh -exec chmod a+x {} \\;\n~~~\n\n3. build a jre for JSesh (check if your path is correct before).\n\n~~~\n$ cd JSesh.app/Contents\n$ MODULES=java.base,java.desktop,java.naming,java.prefs,java.sql\n$ jlink -G -c --no-header-files --no-man-pages --add-modules  $MODULES --output jre\n~~~\n  (we should identify why on earth java.sql is needed. This being said, it's very small,\n   so no harm done.)\n\n\n6. Check if JSesh and SignInfo are functional (they should start if you double click on them).\n\n7. make a package (.pkg) using the application \"Packages\" by Stéphane Sudre.\n    A config file is provided : JSesh-dist.pkgproj.\n\n\n#### For Java 11 distributions\n\nA branch of JSesh is being developped to use Java 11. What I currently do is :\n\n- get sure the PATH is correct (includes the jdk for java 11, and not a former one);\n- get sure JAVA_HOME is correct (it's used by Maven).\n\nOnce JSesh is built, I have played with `jdeps` and `jlinks` to create the correct jre.\n\nI go to folder `jsesh-installer/target/mac/JSesh-7.5.0-SNAPSHOT/JSesh.app/Contents/lib`, and\nI build a shell script for jdeps:\n~~~sh\nJARS=bcmail-jdk14-138.jar:....:signInfoAppli-7.5.0-SNAPSHOT.jar:swing-layout-1.0.3.jar\njdeps --ignore-missing-deps --list-deps -cp $JARS jseshAppli-7.5.0-SNAPSHOT.jar\n~~~\nwhere JARS is made from all jars in the folder. There are some missing dependencies related to mail, but JSesh doesn't use \nmail, so it's not an issue.\n\nIt gives me the list of modules needed by JSesh:\n~~~\n   java.base\n   java.datatransfer\n   java.desktop\n   java.logging\n   java.naming\n   java.prefs\n   java.sql\n   java.xml\n~~~\n\nI use this list to build and run the following script:\n~~~sh\nMODULES=java.base,java.datatransfer,java.desktop,java.logging,java.naming,java.prefs,java.sql,java.xml\njlink --no-header-files --no-man-pages --add-modules  $MODULES --output jre\n~~~\n\nThe resulting jre folder should be placed in Contents. The corresponding JRE is 75M large, which is smaller than the\njre for 1.8 which was included in JSesh previously. This is not yet the master version, as I need to fix bugs.\n\n------------------------------------\n\n### Windows distribution (modern)\n\n\n\n1. copy the files from target/windows into a Windows machine\n2. copy a 64 bit JRE in the JSesh folder on Windows. Ensure it's named \"jre\".\n3. start lauch4J and use the jsesh-bundler.xml file. It should create JSesh.exe in the JSesh folder.\n4. same for the file signInfo-bundler.xml\n5. run Inno Setup on jsesh-inno.iss. **Generate a new ID for the build before building.**\n\n- *Note : we will probably use jlink as above to generate the JRE*\n- **Important** : check if launch4j wants a JDK or a 64bit executable.\n\nAn easy way to find a good JRE for Java is to install the previous version of JSesh, and to get the JRE there.\n\n\n------------------------------------\n\n### Windows distribution (obsolete)\n\n1. copy the files from target/windows into a Windows machine\n2. copy a 32 bit JRE in the JSesh folder on Windows. Ensure it's named \"jre\".\n3. start lauch4J and use the jsesh-bundler.xml file. It should create JSesh.exe in the JSesh folder.\n4. same for the file signInfo-bundler.xml\n5. run Inno Setup on jsesh-inno.iss. Generate a new ID for the build before building.\n\n- *Note : we will probably use jlink as above to generate the JRE*\n- **Important** : check if launch4j wants a JDK or a 64bit executable.\n\n## Starting JSesh a different language for menus...\n\nThis should obviously move to a menu. But meanwhile:\n\nJSesh chooses the menu languages depending on your computer setting. Sometimes, you might want a different language than the one used by your computer. For instance, as most of the tutorials, discusssions, etc. are in English, you might want to swich to the English version of JSesh.\n\nTo do this, you currently need to start JSesh on the command line, which is a bit technical.\n\nThe command would be :\n\n    java -Duser.language=en -jar jseshAppli-7.8.1-SNAPSHOT.jar\n\n(replace \"en\" by the two-letters code for your language)\n\n## Note about github distribution (for personnal use mainly)\n\nTo get the number of downloads for version 7.2.0 :\n\n~~~~~~~~~~~~~\ncurl -i https://api.github.com/repos/rosmord/jsesh/releases/11259307\n~~~~~~~~~~~~~\n\nRemove the last number for all releases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frosmord%2Fjsesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frosmord%2Fjsesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frosmord%2Fjsesh/lists"}