Markdown Converter
Agent skill for markdown-converter
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Zekr is an open-source, cross-platform Quran study application built with Java and SWT. It provides Quranic text display, translations, search capabilities, audio recitation, and bookmarking features with support for 17+ languages.
Build Tool: Apache Ant
Common Commands:
# Build the project (extracts source from dist/zekr-src.jar, compiles, and creates dist/zekr.jar) ant dist # Compile only ant compile # Generate JavaDoc ant javadoc # Run the application ant run # Clean build artifacts ant clean
Important: The source code is distributed as
dist/zekr-src.jar and is extracted to build/src/ during the build process. Compiled classes are placed in build/classes/, and the final JAR is created at dist/zekr.jar.
Linux/Unix:
./zekr.sh
Direct Java execution:
java -Xms20m -Xmx128m -cp "lib/*:dist/zekr.jar" net.sf.zekr.ZekrMain
The main package is
net.sf.zekr with key subpackages:
net.sf.zekr.ZekrMain - Application entry pointnet.sf.zekr.engine.search - Lucene-based search with multi-language stemming and query parsingnet.sf.zekr.engine.audio - Audio playback engine for online/offline recitations with cachingnet.sf.zekr.engine.template - Velocity template rendering with custom resource loadersnet.sf.zekr.engine.i18n - Internationalization and multi-language supportnet.sf.zekr.engine.data - Quranic data structures (Sura, Aya, revelation data)net.sf.zekr.engine.bookmark - XML-based bookmark management with import/exportnet.sf.zekr.ui - SWT-based user interface componentsnet.sf.zekr.engine.config - Configuration management using Apache Commons Configurationnet.sf.zekr.engine.log - Custom Log4j implementation
- All application resources organized by type:res/
- Application configuration filesconfig/
config.properties - Main runtime settings (UI, audio, search, network)search-info.properties - Multi-language search configuration (stop words, diacritics)shortcut.xml - Keyboard shortcuts with RTL supportlib/logger.properties - Log4j configuration (rolling file appender, 400KB limit)lib/velocity.properties - Velocity template engine settings
- Quranic text and metadatatext/
quran/ - Quran text files (quran-simple.txt, quran-uthmani.txt from Tanzil)trans/ - Translation packages (.trans.zip files)metadata/ - Quran metadata in 15+ languages (sura names, properties)index/ - Lucene search indices (quran/, trans/)
- Recitation metadataaudio/
.properties files for each reciter with URL templates for streaming
- UI themes and presentationui/
theme/ - Multiple themes (sky/, uthman-taha/)
*.vm - Velocity templates (page.vm, search-result.vm, aya-result.vm)css/ - Stylesheets (common-style.css, screen-style.css, print-style.css)theme.properties - Font, color, layout configurationjs/ - JavaScript libraries (jQuery, custom scripts)
- Internationalization fileslang/
- Bookmark managementbookmark/
bookmarks.xml - Default bookmark collectiontemplate/ - Bookmark templates and XSLT export
- Icons and graphicsimage/
- Main configuration with Velocity variable support:config.properties
- Dynamic path resolution:resource-path.properties
{1} placeholder for user workspace directory
- Search engine configuration:search-info.properties
http://server/path/%1$03d%2$03d.mp3 (sura/aya)ZekrFileResourceLoader)dist/zekr-src.jar to build/src/build/classes/.properties files copied as resourcesdist/zekr.jarlib/ directory at runtimeAll JARs are located in the
lib/ directory:
Core Libraries:
Lucene Search:
Apache Commons:
Audio:
Platform-Specific:
.properties files in res/audio/res/ui/theme/ with Velocity templates and CSSres/lang/.trans.zip files in res/text/trans/-Xms20m)-Xmx128m)lib/ directory for SWT native bindings-Dorg.eclipse.swt.browser.XULRunnerPath for custom Firefox/XULRunner