{"id":18974480,"url":"https://github.com/m7a/bo-ial","last_synced_at":"2026-02-24T05:45:19.216Z","repository":{"id":164554569,"uuid":"640019019","full_name":"m7a/bo-ial","owner":"m7a","description":"Information and Links is a customizable home page with links and search functions","archived":false,"fork":false,"pushed_at":"2024-07-30T18:53:40.000Z","size":146,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-02T13:17:01.181Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m7a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.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}},"created_at":"2023-05-12T19:23:02.000Z","updated_at":"2024-07-30T18:53:43.000Z","dependencies_parsed_at":"2024-04-28T20:41:08.021Z","dependency_job_id":null,"html_url":"https://github.com/m7a/bo-ial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/m7a/bo-ial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-ial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-ial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-ial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-ial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m7a","download_url":"https://codeload.github.com/m7a/bo-ial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-ial/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261749307,"owners_count":23203999,"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","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":[],"created_at":"2024-11-08T15:15:13.454Z","updated_at":"2025-10-24T05:41:25.130Z","avatar_url":"https://github.com/m7a.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\nsection: 32\nx-masysma-name: ial\ntitle: Ma_Sys.ma Information and Links\ndate: 2023/05/07 17:57:36\nlang: en-US\nauthor: [\"Linux-Fan, Ma_Sys.ma (Ma_Sys.ma@web.de)\"]\nkeywords: [\"ial\", \"d5man2\", \"information\", \"links\", \"documentation\", \"offline\"]\nx-masysma-version: 1.6.x\nx-masysma-website: https://masysma.net/32/ial.xhtml\nx-masysma-repository: https://www.github.com/m7a/bo-ial\nx-masysma-copyright: (c) 2023 Ma_Sys.ma \u003cinfo@masysma.net\u003e\n---\nIntroduction\n============\n\nMa_Sys.ma _Information and Links_ (IAL) is a set of scripts and an XHTML page\ntemplate that allows locally downloading API documentation. This documentation\nand other URLs can then be linked from a single home page.\n\nThis can be a more structured approach than having tons of bookmarks or\nsearching documentation online all of the time. Since IAL consists of files\nexternal to the web browser, its contents can be synchronized across devices and\nbrowsers. It is also possible to host it on a web server in order to locally\nprovide commonly needed API documentation and links.\n\nIAL consists of two main components:\n\n 1. _XHTML Template_:\n    A page template is provided that can be used as a “homepage” for all the\n    collected documentation. The page consists of multiple search boxes\n    (for Internet and local searches respectively) and “boxes” into which links\n    can be placed. These links can point to local documentation or websites.\n 2. _Scripts_:\n    Scrips are provided for downloading API documentations from the respective\n    vendors as HTML files that can be stored locally. Additionally, the scripts\n    contain code to extract relevant keywords from the downloaded HTML. These\n    keywords are then stored in a JSON file (`script.js`) along with links to\n    the respective matching pages. Including these `script.js` files from the\n    IAL home page enables a keyword-based search to search the documentation.\n\nThe idea is that these components provide a framework that users can take as\nan example that can be customized to fit their own uses.\n\n## Alternatives\n\nAs documentation is often available online, there is less and less need for\nthe functionality provided by _Information and Links_. A software that also\nfocuses on offlince documentation searching can be found at\n\u003chttps://zealdocs.org/\u003e.\n\nGetting Started with the Example Content\n========================================\n\nIf you want to try out what IAL can look and feel like, this section describes\na quick way to set it up to “display something”. If you want to take the most\nout of it, consider reading the remainder of the documentation here to find out\nwhat the different parts are supposed to mean.\n\nAdditionally, note that all the scripts are unlikely to work on Windows OSes\nnatively. Consider running them in WSL, Docker or a Linux VM if you are\nusing Windows.\n\n 1. Clone the `co-artifact` repository and the `bo-ial` repository.\n\n~~~\ngit clone https://github.com/m7a/bo-ial.git\ngit clone https://github.com/m7a/co-maartifact.git\ncd bo-ial\n~~~\n\n 2. Download some documentation\n\n~~~bash\n./pages_ant.sh      # requires a Debian-based OS, skip if not available\n./pages_erlang.sh\n./pages_java.sh     # requires a Debian-based OS, skip if not available\n./pages_php.sh\n./pages_posix.sh\n~~~\n\n 3. Instantiate the template\n\n~~~\nxmlstarlet tr --xinclude remove_containers.xsl index.xhtml \u003e index_with_includes_resolved.xhtml\n~~~\n\n 4. Open page `index_with_includes_resolved.xhtml` in a web browser to show the\n    example IAL page.\n\n![Result of performing the steps as described -- a minimal working IAL 1.6 instance](ial_att/scr_example.png)\n\nAs you can see in the screenshot, the icons are not automatically provided by\nthe scripts. If you want them to display correctly, you need to download them\nfrom external sources like e. g. Wikipedia or the sources' homepages.\n\nThe XHTML Template for IAL 1.6\n==============================\n\nThe XHTML page template can be found in file `index.xhtml` in the repository.\nIt consists of a page structure, stylesheet and script. The template contains\nXInclude links to files `primary.xml`, `boxes.xml` and `scripts.xml`.\n\nThe idea behind these separate files is to separate presentation and contents,\nThe `index.xhtml` template can be left unmodified for a consistent presentation\nand all the contents can be supplied through the three external XML files.\nWeb browsers and servers do not normally resolve the XInclude directives. Hence\nin order to make use of the template, the XInclude links need to be resolved\nexplicitly. To do this, a dedicated XML tool like e.g. `xmlstarlet` can be used\ne. g. as shown under _Instantiate the template_ above.\n\nUsers are of course free to modify the template directly and need not make use\nof the XInclude structure proposed here. It is possible to directly include\nthe contents in the respective sections of the `index.xhtml` by replacing the\nXInclude with the content of interest. Staying with the XInclude scheme\nsimplifies pulling a new `index.xhtml` from the repository later, though.\n\n## `primary.xml` -- Links to Primary Documentation\n\nThis file is intended to collect links to “primary” (by choice of the user)\npieces of documentation. The template expects there to be a list of links\nwith icons, but users are of course free to deviate.\n\nIf one were to link Ant, Erlang, Java, PHP and POSIX pages from this\nfile, the associated `primary.xml` could e. g. look as follows:\n\n~~~xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!-- primary.xml --\u003e\n\u003cdiv id=\"primary_links\" xmlns=\"http://www.w3.org/1999/xhtml\"\u003e\n\t\u003ca href=\"ant/cnt/index.html\"\u003e\u003cimg src=\"icons/ant.gif\"/\u003e\u003c/a\u003e\n\t\u003ca href=\"erlang/doc/index.html\"\u003e\u003cimg src=\"icons/erlang.svg\"/\u003e\u003c/a\u003e\n\t\u003ca href=\"java/api/index.html\"\u003e\u003cimg src=\"icons/java.svg\"/\u003e\u003c/a\u003e\n\t\u003ca href=\"php/php-chunked-xhtml/index.html\"\u003e\u003cimg src=\"icons/php.svg\"/\u003e\u003c/a\u003e\n\t\u003ca href=\"posix/susv4-2018/index.html\"\u003e\u003cimg src=\"icons/posix.svg\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n~~~\n\n## `boxes.xml` -- Link Collections in Boxes\n\nTo be a useful homepage, IAL tries to crunch as many links into the space as\nreasonable. To achieve some structure, it allows categorizing the links into\n_boxes_. The structuring of the boxes is entirely left to the user. By default,\nIAL expects the boxes to contain a title as `\u003ch2\u003e` tag and links in unsorted\nlists which are then rendered as two columns by the CSS.\n\nHere is an example which adds two boxes containing some Ma_Sys.ma-related links\nand useful webtools respectively:\n\n~~~xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!-- boxes.xml --\u003e\n\u003cmasysma:boxes xmlns:masysma=\"https://masysma.net/32/ial.xhtml\"\n\t\t\t\t\txmlns=\"http://www.w3.org/1999/xhtml\"\u003e\n\u003cdiv class=\"box\"\u003e\n\t\u003ch2\u003eMa_Sys.ma Links\u003c/h2\u003e\n\t\u003chr/\u003e\n\t\u003cul\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://masysma.net\"\u003emasysma.net\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://github.com/m7a\"\u003egithub.com\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://gitlab.com/masysma\"\u003egitlab.com\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://stackoverflow.com/users/11959417/linux-fan\"\u003estackoverflow.com\u003c/a\u003e\u003c/li\u003e\n\t\u003c/ul\u003e\n\t\u003cul\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://news.ycombinator.com/from?site=masysma.net\"\u003ehn masysma.net\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.reddit.com/search/?q=site%3Amasysma.net\"\u003ereddit masysma.net\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://yellowlab.tools/result/gh3o7ao6bg\"\u003eYellowlab Pagespeed\u003c/a\u003e\u003c/li\u003e\n\t\u003c/ul\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"box\"\u003e\n\t\u003ch2\u003eWebtools\u003c/h2\u003e\n\t\u003chr/\u003e\n\t\u003cul\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://geographiclib.sourceforge.io/cgi-bin/GeoConvert\"\u003eMGRS https://is.gd/utmmgrs\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.koordinaten-umrechner.de/decimal/51.000000,10.000000?karte=OpenStreetMap\u0026amp;zoom=8\"\u003eKoordinaten-Umrechner GUI\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://is.gd/index.php\"\u003eis.gd\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://hashtoolkit.com/\"\u003eMD5 Red\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://detexify.kirelabs.org/classify.html\"\u003eDetexify LaTeX Symbol\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.gls-pakete.de/sendungsverfolgung\"\u003eGLS Tracking\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.timeanddate.de/datum/arbeitstage-zaehler?d1=01\u0026amp;m1=09\u0026amp;y1=2018\u0026amp;d2=12\u0026amp;m2=10\u0026amp;y2=2018\u0026amp;ti=on\u0026amp;ach=3\"\u003eArbeitstagezähler\u003c/a\u003e\u003c/li\u003e\n\t\u003c/ul\u003e\n\t\u003cul\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.ean-search.org/\"\u003eEAN Search\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.blocklayer.com/graph-paper\"\u003ePrintable Graph Paper\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://incompetech.com/graphpaper/weightedgrid/\"\u003eFree Online Graph Paper\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://myapps.taec.toshiba.com/myapps/admin/jsp/webrma/addRequest1NoLogin.jsp?Action=NEW\"\u003eTOSHIBA Check Warranty\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://cryptii.com/pipes/Tt2AJQ\"\u003eInteger Encoder\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.bryanbraun.com/after-dark-css/\"\u003eScreensavers\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://gcc.godbolt.org/\"\u003eGCC Godbolt\u003c/a\u003e\u003c/li\u003e\n\t\t\u003cli\u003e\u003ca href=\"https://www.thistothat.com/index.shtml\"\u003eThis to That (Glue Advice)\u003c/a\u003e\u003c/li\u003e\n\t\u003c/ul\u003e\n\u003c/div\u003e\n\u003c/masysma:boxes\u003e\n~~~\n\nNote the enclosing `masysma:boxes` element which is required as XML does not\nsupport multiple root elements per document. This tag is not used in the\noutput XHTML as it is removed by the `remove_containers.xsl` stylesheet as\nprovided in the repository.\n\n## `scripts.xml` -- Providing Database Contents for Keyword Searches\n\nIAL's search feature works by keeping a map of all keys and associated URLs\nin memory (in the web browser). JavaScript functions in the template homepage\nare provided to process this data in the form of JavaScript Objects (similar to\nJSON). The scripts generate `script.js` files which are ready for being included\ninto the home page by suitable `\u003cscript\u003e` tags. For example, `scripts.xml` can\nlook as follows:\n\n~~~xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!-- scripts.xml --\u003e\n\u003cmasysma:scripts xmlns:masysma=\"https://masysma.net/32/ial.xhtml\"\n\t\t\t\t\txmlns=\"http://www.w3.org/1999/xhtml\"\u003e\n\t\u003cscript type=\"text/javascript\" src=\"ant/script.js\"\u003e\u003c/script\u003e\n\t\u003cscript type=\"text/javascript\" src=\"erlang/script.js\"\u003e\u003c/script\u003e\n\t\u003cscript type=\"text/javascript\" src=\"java/script.js\"\u003e\u003c/script\u003e\n\t\u003cscript type=\"text/javascript\" src=\"php/script.js\"\u003e\u003c/script\u003e\n\t\u003cscript type=\"text/javascript\" src=\"posix/script.js\"\u003e\u003c/script\u003e\n\u003c/masysma:scripts\u003e\n~~~\n\nUser Interface and Navigation\n=============================\n\nThe IAL UI concept is a hybrid of VIM-like keybindings and a standard\n„clickable” GUI. Links can be clicked just like one expects from any (X)HTML\npage.\n\nAdditionally, the search input fields can be activated by mouse and a search\ntext can be entered. In order to open the results, just press [ENTER].\n\nThe categories next to the search bars in the boxes can be clicked to toggle\nresults from this category appearing. By default, all categories are enabled.\n\nThe keybindings are as follows:\n\nKey    Meaning\n-----  -----------------------------------------------------------------------\nENTER  Open search result (if in a search box) or selected link otherwise\nDOWN   Move cursor to the next link (INSERT/navigate in search results)\nUP     Move cursor to the previous link (INSERT/navigate in search results)\nESC    Switch to NORMAL mode (i.e. keys get the meaning as per the rows below:\n`i`    Focus the “Online”/“Google” search box\n`a`    Focus the “Docs” search box\n`o`    Focus the “Archive” search box\n`h`    Move cursor to the previous box\n`j`    Move cursor to the next link\n`k`    Move cursor to the previous link\n`l`    Move cursor to the next box\n\nIf you are using an extension like Vimium, VimFX or such to provide VIM-style\nkeybindings for the web browser, it may be sensible to disable them for the\nIAL page since it implements its own (likely conflicting) keyboard navigation.\n\nScripts\n=======\n\nThe scripts are used to download pieces of information and generate `script.js`\nfiles containing the relevant metadata in a format that IAL can use. The typical\nstructure of each script is as follows:\n\n 1. Download an archive with the documentation data.\n 2. Extract this archive.\n 3. From the extracted files, rename and keep only the relevant subdirectories.\n 4. Generate a list of entries in `script.js` format from the files.\n\nThe first two steps are usually handled by an invocation of\n[maartifact(11)](../11/maartifact.xhtml)  which downloads from various sources\nand keeps local copies of the original data.\n\nThe following scripts are provided in the repository:\n\nScript             Downloads From                        Target Directory\n-----------------  ------------------------------------  ----------------\n`pages_ada.php`    Debian `ada-reference-manual-2012`    `ada`\n`pages_ant.sh`     Debian `ant-doc`                      `ant`\n`pages_erlang.sh`  Debian `erlang-doc`                   `erlang`\n`pages_jargon.sh`  URL `http://catb.org/jargon/...`      `jargon`\n`pages_java.sh`    Debian `openjdk-11-doc`               `java`\n`pages_php.sh`     URL `https://www.php.net/distr...`    `php`\n`pages_posix.sh`   URL `https://pubs.opengroup.org/...`  `posix`\n\nArchivebox Integration\n======================\n\nArchivebox \u003chttps://archivebox.io/\u003e is a tool that creates and manages offline\ncopies of (single) websites. To this end it serves a similar function like IAL,\nalbeit with a different focus.\n\nBoth of the tools can be integrated because the script `pages_archivebox.sql`\ncan be used to read ArchiveBox' database and create a suitable `script.js` for\ninclusion into IAL. The script is a polyglot that can be either used as a\nquery against the database or executed from the shell in order to invoke this\nquery in a given archivebox database.\n\nThe “Archive” box in IAL can then be used to search within the Archivebox links\nand [ENTER] leads to the page as captured in Archivebox.\n\nThe URL to prepend to Archivebox links is currently hardcoded to\n`http://127.0.0.1:7994/archive` but can be changed in `pages_archivebox.sql`\nas needed.\n\nAdditionally, the integration supports certain tags to be present in the\nArchivebox archive and assigns different “priorities” to them. This is necessary\nsince IAL only supports a single category per entry whereas Archivebox entries\ncan have any number of tags. The tag with the lowest priority is assigned as\ncategory when viewed in IAL (other tags are discarded).\n\nThe following shows this as an excerpt from the script.\nSmaller numbers mean higher priorities.\n\n~~~sql\n-- pages_archivebox.sql lines 26-29\nINSERT INTO masysma_tag_priorities (name, prio) VALUES\n\t('alpha',       10), ('primary',     20), ('fun',         40),\n\t('swrec',       40), ('gam',         40), ('dcf77',       40),\n\t('book',        50);\n-- ...\n~~~\n\nAs one can see, the following tags are currently recognized by IAL:\n\nTag        Description\n---------  -------------------------------------------------------\n`alpha`    noteworthy primary sources of information\n`primary`  less important primary sources of information\n`fun`      fun entries\n`swrec`    software recommendations\n`gam`      entries about games\n`dcf77`    entries about clocks\n`book`     entries about books or containing the content of a book\n\nUsers can either make use of these tags or define their own priorities in the\nscript in order to declare which of the archivebox results should appear under\ntheir on category in IAL.\n\nData Format of `script.js`\n==========================\n\nThe `script.js`-files look as follows:\n\n~~~javascript\nial_add_data([\n\t{ id: \"posix\", box: \"doc\", title: \"a64l()\", link: \"posix/susv4-2018/functions/a64l.html\", primary: [\"a64l()\"], secondary: [] },\n\t{ id: \"posix\", box: \"doc\", title: \"abort()\", link: \"posix/susv4-2018/functions/abort.html\", primary: [\"abort()\"], secondary: [] },\n\t/* ... */\n]);\n~~~\n\nI.e.: There is always a call to `ial_add_data` to add the data to IAL's memory.\nThis function takes a list of objects with the following properties:\n\nProperty     Type            Description\n---------    --------------  -----------------------------------------------\n`id`         String          Specifies the category of the entry.\n`box`        `doc` | `abx`   Specifies the box to associate this entry to.\n`title`      String          Display name of the entry.\n`link`       String          Link to open on pressing [ENTER] on this entry.\n`primary`    List\\\u003cString\u003e   Strings to match for searching (prefixes).\n`secondary`  List\\\u003cString\u003e   Alternate strings to match for searching.\n\nThe `primary` list is only matched in terms of prefixes whereas the `secondary`\nmatches appear in the results if the search box contains a substring of the\n`secondary` keyword. In the search results, all `primary` results appear first,\nfollowed by all matches from `secondary` entries.\n\nRecommended default values: `box: \"doc\", secondary: []`.\n\nExample Makefile and Systemd User Service\n=========================================\n\nTo automatically keep the generated file in sync with the changes made to the\nXML files and also to Archivebox databases, a `Makefile` alongside with\nSystemd user services is provided in directory `example`.\n\nCreate a directory to store your copy of IAL into (e.g.\n`/data/main/130_archivebox/ial`) and place all the customized XML files\n(`boxes.xml`, `scripts.xml`, `primary.xml`) there alongside a copy of\n`index.xhtml` under the name `tpl.xml` and a copy of the `Makefile`.\n\nI.e. in terms of shell commands this might look as follows\n\n\tcp example/ialupdate.*               ~/.config/systemd/user\n\tcp example/Makefile index.xhtml      /data/main/130_archivebox/ial\n\tcp boxes.xml primary.xml scripts.xml /data/main/130_archivebox/ial\n\nThe systemd user services can be installed by copying them to\n`~/.config/systemd/user` and then enabling them through systemd, e.g.\n\n\tsystemctl --user daemon-reload\n\tsystemctl --user enable ialupdate.service\n\tsystemctl --user enable ialupdate.timer\n\nThe `ialupdate.service` file needs to be edited to point to the target directory\nof the IAL to update:\n\n~~~ini\n# ialupdate.service\n[Unit]\nDescription=Ma_Sys.ma IAL Update\n\n[Service]\nType=oneshot\nExecStart=make -C /data/main/130_archivebox/ial\n\n[Install]\nWantedBy=default.target\n~~~\n\nIn the `Makefile`, let `ARCHIVEBOX` point to the location of your Archivebox\ninstallation's directory containing the file `index.sqlite3`.\n\n~~~makefile\n# Makefile\nMDVL_CI_PHOENIX_ROOT = /data/main/120_mdvl_rr\nIAL_SRC              = $(MDVL_CI_PHOENIX_ROOT)/bo-ial\nARCHIVEBOX           = ../data\n\nall: archivebox/script.js index.xhtml\n\narchivebox/script.js: $(ARCHIVEBOX)/index.sqlite3 $(IAL_SRC)/pages_archivebox.sql\n\t$(IAL_SRC)/pages_archivebox.sql $(ARCHIVEBOX)/index.sqlite3\n\nindex.xhtml: tpl.xhtml $(IAL_SRC)/remove_containers.xsl\n\txmlstarlet tr --xinclude $(IAL_SRC)/remove_containers.xsl tpl.xhtml \\\n\t\t\t\t\t\t\t\t\u003e index.xhtml\n\ntpl.xhtml: $(IAL_SRC)/index.xhtml\n\tcp $\u003c $@\n~~~\n\nLicense\n=======\n\nSince meaningful IAL deployments are likely to mix proprietary data with the\nrepository contents, IAL is released under a permissive CC0-1.0 license except\nfor the Ma_Sys.ma logo and icon. See `LICENSE.txt` for the CC0-1.0 license\ninformation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Fbo-ial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm7a%2Fbo-ial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Fbo-ial/lists"}