{"id":17432085,"url":"https://github.com/0mp/rarian","last_synced_at":"2025-09-11T11:39:00.828Z","repository":{"id":82149039,"uuid":"302046785","full_name":"0mp/rarian","owner":"0mp","description":"Documentation metadata library based on the proposed Freedesktop.org spec.","archived":false,"fork":false,"pushed_at":"2024-11-29T10:08:25.000Z","size":873,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T01:15:26.541Z","etag":null,"topics":["freedesktop","gnome","rarian"],"latest_commit_sha":null,"homepage":"https://rarian.freedesktop.org/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0mp.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-07T13:34:24.000Z","updated_at":"2024-11-29T10:08:30.000Z","dependencies_parsed_at":"2023-03-01T02:30:53.395Z","dependency_job_id":null,"html_url":"https://github.com/0mp/rarian","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/0mp/rarian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0mp%2Frarian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0mp%2Frarian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0mp%2Frarian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0mp%2Frarian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0mp","download_url":"https://codeload.github.com/0mp/rarian/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0mp%2Frarian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274627009,"owners_count":25320322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["freedesktop","gnome","rarian"],"created_at":"2024-10-17T08:24:03.709Z","updated_at":"2025-09-11T11:39:00.771Z","avatar_url":"https://github.com/0mp.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"License\n-------\n\nRarian is distributed under the GPL v2.0 (or later) license.  Please see the\nCOPYING file for full details.\n\nIn addition, this package contains source code from the tinyxml project\n(www.sourceforge.net/projects/tinyxml).  These files can be found in\nthe util directory and have names beginning with \"tiny\".  For their license\nterms, please refer to the indivual files.\n\nAbout Rarian\n-----------\n\nRarian is designed to be a replacement for scrollkeeper.  It is\ncurrently undergoing heavy development.  As of writing, rarian can be\ninstalled in place of scrollkeeper and everything will work okay (as\nfar as my testing indicates)\n\nThe package consists of several things:\n\n* The librarian library\n  - This builds a list of available meta data files and allows access to these.\n\n* The rarian-sk-update script\n  - This is compatible with the scrollkeeper-update script that's required to\n    be run when installing new omf files.  It converts the omf files into new-\n    style scrolls\n\n* The rarian-sk-migrate program\n  - Takes in a directory full of omf's, reads and parses them and spews out\n    an equivalent scroll file.  You probably don't want to use this directly.\n    Instead, copy the omf directory to you're standard omf dir and run the\n    update script.\n\n* The rarian-example program\n  - Shows off what librarian is capable of.  Prints a nice list of all\n    available documents found by the library.\n\n* Misc. rarian-sk-* scripts\n  - These emulate various functions of scrollkeeper as needed to\n    maintain backwards-compatibility.\n\nThis package (the library part, at least) is based on the proposed Freedesktop\nHelp System spec.  The latest version of this spec can be found in the \"help\"\nsubdirectory of this package.\n\nFor major changes in 0.5 and above, please see the NEWS file.\n\nMajor Changes in 0.4\n--------------------\n\nLots of changes in this version.  I'll try and list as many as I can:\n* Change most things to support the spec.\n  - Use $XDG_DATA_DIRS and $XDG_DATA_HOME to find scroll files\n  - Use $LANGUAGE to decide which language to use\n  - Scan recursively through subdirs to pick up scrolls\n  - Allow locale-specific files to reside in $DIR/LOCALE/LC.  Prioritise them\n  - Handle document sections.  Allow docs to have as many sections as they want\n  - Remove the rubbish config file stuff\n  - Rename lots of key types\n  - Add support for lots more key types\n  - Handle URI and file paths properly\n* Remove previous migration script\n* Replace with update script which tracks changes (in\n  $OUTPUT_DIR/.rarian-update-mtimes)\n* Remove limit of 1024 chars per line\n* make calls to init implicit in operations\n* Add example of a Mallard Meta Data file, defining several sections, which\n  are spread across 1 document file and 1 section file\n* Fix a boatload of memory leaks\n* Added TODO to see what needs done\n* Add copy of spec to compare against\n\nMajor Changes in 0.3\n--------------------\n\nOnly 1 really: Rarian can now be installed.  If the right configure\noptions are used.  By default, it doesn't use the installation code\nstuff, it still relies on the uninstalled version.  Look in the\n\"Running it\" section for how to get it installed etc.  A config file\nis also generated which tells Rarian where to look for scrolls.  It\nhas a magic variable, HOME, which makes rarian look in the current\nuser's home directory.  Each path takes precedence over the older\nones.  If a scroll file is found in two paths, the one later in the\nconfig will replace the version found previously.\n\nOr better explanation:\nConfig file specifies: /usr/share/rarian HOME/share/rarian\nBoth have copies of beanstalk manual scroll.  The only version that'll be\nreported is the one in HOME/share/rarian\n\n\nMajor Changes in 0.2\n--------------------\n\n* Scrolls are now translated in-file\n* All scrolls in data/sk-import are handled in the library init (but not\nrecursively)\n* Add support for series_id and type in the Scroll struct\n* New and improved migration script - faster, cope with translations.  It works\n on the assumption that all files of the form \u003centry\u003e-\u003clang\u003e.omf are\n translations and any other \u003centry\u003es are from different docs.\n\nRunning it\n----------\n\nIn uninstalled (safe) mode\n--------------------------\n\nTo try it out, run\n./configure \u0026\u0026 make\nfrom the command line, in the top-level directory.  Then:\nchmod u+x utils/rarian-sk-update\n./util/rarian-sk-update -o /usr/share/omf -r ./data/sk-import\n\nwill make a temporary migration of all scrollkeeper omf files in\n/usr/share/omf.  The scrolls can be found in data/sk-import.  If you're omf\nfiles are not stored in /usr/share/omf, you need to edit the -o option to the\ncorrect path.\n\nIf this step fails for some reason, fix the problem (if possible), let me know\nwhat went wrong and re-run the script.\n\nOnce that's done, you can run:\n./util/rarian-example\nto build the in-memory index and iterate through, printing out each manuals\nfilename.\n\nYou can change the language used by changing the LANGUAGE environment variable:\nLANGUAGE=es ./util/rarian-example\nwill print out the Spanish manuals.  If a document doesn't have a translation,\nthe default is to fall back to the C locale and use that (the same as\nscrollkeeper works), hence you'll see a lot of English in that list.\n\nYou can also specify multiple fallback languages by specifying them in $LANGUAGE\nusing colon seperation:\nLANGUAGE=es:de:en_GB\n(\"C\" locale will always be used as a final fallback).\n\nIn installed (unsafe) mode\n--------------------------\n\nTo get Rarian in an installed mode, the configure flag '--enable-installed' must\nbe used.  On top of this, there are the usual options (prefix etc.)\nthat can be used.  By default, when installed, it'll try converting the\n\u003cprefix\u003e/share/omf directory to scrolls stored in \u003cprefix\u003e/share/rarian.  This\ncan be changed using\n--with-convert-dir=/path/to/current/omfs\n\nAll the programs / scripts get installed (rarian-example,\nrarian-sk-migrate and rarian-sk-update).  To test, run the rarian-example with\n(or without) the LANGUAGE environmental variable set.  The update script can\nalso be used at any point using:\nrarian-sk-update\nWithout any options, this will convert the covnert-dir specified during\nconfiguration.  To convert a different directory, use\nrarian-sk-update -o \u003cpath/to/omfs\u003e\nYou can also regenerate all scroll files using the\n--clean-index\nparameter for the update script.\nTo put the resulting scroll files in a different location (i.e. not\n\u003cprefix\u003e/share/help), use the parameter:\n-r \u003cpath/to/resultant/dir\u003e\n\nTimings\n-------\n\nThe following times are from my test-runs.  They are all run with warm cache.\nI've not run them with cold cache for various reasons.\n\nRunning update script to create a new, clean index:\nreal    0m9.302s\nreal    0m6.003s\nreal    0m6.076s\n\nRunning update script when nothing has changed:\nreal    0m3.757s\nreal    0m3.688s\n\nRunning rarian-example:\n(between 0 and 6 languages specified in LANGUAGES)\nreal    0m0.040s\nreal    0m0.039s\nreal    0m0.035s\n\nWhat's next?\n-----------\n\nPlease see the TODO file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0mp%2Frarian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0mp%2Frarian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0mp%2Frarian/lists"}