├── LICENSE ├── README.org ├── almanac.org └── index.html /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- 1 | View the almanac in a browser at: https://alphapapa.github.io/org-almanac/ 2 | 3 | The =almanac.org= file may be viewed in Emacs directly. It may also be viewed from the GitHub repo pages, but some of the links won't work properly, because it's not currently possible to make links that work in both the GitHub renderer and Org's exporter. 4 | -------------------------------------------------------------------------------- /almanac.org: -------------------------------------------------------------------------------- 1 | :PROPERTIES: 2 | :ID: 1066e1aa-552a-487a-b53e-0f6c19af293e 3 | :END: 4 | #+TITLE: org-almanac 5 | #+PROPERTY: logging nil 6 | #+PROPERTY: ATTACH_DIR ~/org/data 7 | #+PROPERTY: ATTACH_DIR_INHERIT t 8 | #+OPTIONS: prop:("author" "published") toc:nil 9 | 10 | # This file is exported to HTML at [[file:~/src/emacs/org-almanac/index.html]]. 11 | 12 | * [#A] Contents 13 | :PROPERTIES: 14 | :TOC: :include siblings :depth 2 :ignore this 15 | :UNNUMBERED: t 16 | :ID: 795ba95a-2ac7-4e17-86d8-d2afe1b12d1f 17 | :END: 18 | :CONTENTS: 19 | - [[#application][Application]] 20 | - [[#blogging][Blogging]] 21 | - [[#bookmarking][Bookmarking]] 22 | - [[#business][Business]] 23 | - [[#database][Database]] 24 | - [[#fitness][Fitness]] 25 | - [[#meta][Meta]] 26 | - [[#games][Games]] 27 | - [[#miscellaneous][Miscellaneous]] 28 | - [[#presentations][Presentations]] 29 | - [[#project-management][Project Management]] 30 | - [[#research][Research]] 31 | - [[#software][Software]] 32 | - [[#studying][Studying]] 33 | - [[#web-publishing][Web Publishing]] 34 | - [[#writing][Writing]] 35 | - [[#configs][Configs]] 36 | - [[#development][Development]] 37 | - [[#building][Building]] 38 | - [[#performance][Performance]] 39 | - [[#documentation][Documentation]] 40 | - [[#community][Community]] 41 | - [[#manual][Manual]] 42 | - [[#tutorials][Tutorials]] 43 | - [[#features][Features]] 44 | - [[#agenda][Agenda]] 45 | - [[#appearance][Appearance]] 46 | - [[#capture][Capture]] 47 | - [[#clocking][Clocking]] 48 | - [[#exporting][Exporting]] 49 | - [[#lists][Lists]] 50 | - [[#tasks][Tasks]] 51 | - [[#people][People]] 52 | - [[#software-0][Software]] 53 | - [[#features-0][Features]] 54 | - [[#libraries][Libraries]] 55 | - [[#miscellaneous-0][Miscellaneous]] 56 | - [[#tools][Tools]] 57 | - [[#tasks-0][Tasks]] 58 | - [[#videos][Videos]] 59 | - [[#tutorials-0][Tutorials]] 60 | :END: 61 | 62 | * Application 63 | :PROPERTIES: 64 | :TOC: :include descendants :depth 1 :local depth 65 | :ID: 472b843b-7332-4770-8af4-5d36b9ace536 66 | :CUSTOM_ID: application 67 | :END: 68 | 69 | On applying Org to various tasks. 70 | 71 | :CONTENTS: 72 | - [[#blogging][Blogging]] 73 | - [[#bookmarking][Bookmarking]] 74 | - [[#business][Business]] 75 | - [[#database][Database]] 76 | - [[#fitness][Fitness]] 77 | - [[#meta][Meta]] 78 | - [[#games][Games]] 79 | - [[#miscellaneous][Miscellaneous]] 80 | - [[#presentations][Presentations]] 81 | - [[#project-management][Project Management]] 82 | - [[#research][Research]] 83 | - [[#software][Software]] 84 | - [[#studying][Studying]] 85 | - [[#web-publishing][Web Publishing]] 86 | - [[#writing][Writing]] 87 | :END: 88 | 89 | ** Blogging :blogging: 90 | :PROPERTIES: 91 | :ID: 32dc57d5-6810-44a5-9887-4f7813b02880 92 | :TOC: :include descendants :depth 2 :local depth 93 | :CUSTOM_ID: blogging 94 | :END: 95 | :LOGBOOK: 96 | - Note taken on [2020-02-13 Thu 01:22] \\ 97 | Originally started [2018-07-31 Tue 19:53]. 98 | :END: 99 | 100 | Using Org to publish a blog. 101 | 102 | :CONTENTS: 103 | - [[#articles][Articles]] 104 | - [[#artur-malabarba-how-i-blog-with-emacs-one-year-of-posts-in-a-single-org-file][Artur Malabarba: How I blog with Emacs: One year of posts in a single Org file]] 105 | - [[#bastian-bechtold-blogging-with-emacs][Bastian Bechtold: Blogging with Emacs]] 106 | - [[#dennis-ogbe-blogging-using-org-mode-and-nothing-else][Dennis Ogbe: Blogging using org-mode (and nothing else)]] 107 | - [[#diego-vicente-blogging-with-emacs-and-emacs-only][Diego Vicente: Blogging with Emacs, and Emacs only]] 108 | - [[#duncan-mac-vicar-p-migrating-from-jekyll-to-org-mode-and-github-actions][Duncan Mac-Vicar P.: Migrating from Jekyll to org-mode and Github Actions]] 109 | - [[#john-louis-del-rosario-blogging-with-orgmode][John Louis Del Rosario: Blogging with Orgmode]] 110 | - [[#marcin-borkowski-org-clive---a-new-org-mode-based-blogging-engine][Marcin Borkowski: Org Clive - a new Org-mode-based blogging engine]] 111 | - [[#nicolas-petton-blogging-with-org-mode][Nicolas Petton: Blogging with org-mode]] 112 | - [[#pierre-neidhardt-a-blog-in-pure-orglisp][Pierre Neidhardt: A blog in pure Org/Lisp]] 113 | - [[#rasmus-pank-roulund-blogging-with-org][Rasmus Pank Roulund: Blogging with Org]] 114 | - [[#seth-j-morabito-emacs-blogging-for-fun-and-profit][Seth J. Morabito: Emacs Blogging for Fun and Profit]] 115 | - [[#stig-brautaset][Stig Brautaset]] 116 | - [[#toon-claes][Toon Claes]] 117 | - [[#tyler-grinn-how-this-blog-works][Tyler Grinn: How this blog works]] 118 | - [[#code][Code]] 119 | - [[#defblog-a-web-siteblog-builder-implemented-as-a-wrapper-around-org-project][defblog: A web site/blog builder, implemented as a wrapper around org-project]] 120 | - [[#org-clive-a-simple-and-minimalistic-org-based-static-weblog-generator][org-clive: A simple and minimalistic Org-based static weblog generator]] 121 | - [[#org-export-head-org-mode-to-blog-exporter-converts-each-header-to-a-different-file][org-export-head: Org mode to blog exporter. Converts each header to a different file]] 122 | - [[#discussions][Discussions]] 123 | - [[#multi-page-sitemaps-for-org-publish--emacs][Multi-page sitemaps for org-publish? : emacs]] 124 | - [[#o-blogging-wih-org-mode][{O} blogging wih org-mode]] 125 | - [[#psa-hugo-users-update-to-hugo-v046-to-get-syntax-highlighted-org-mode-blocks-using-chroma--orgmode][{PSA} Hugo users: Update to Hugo v0.46 to get syntax highlighted Org mode blocks using Chroma : orgmode]] 126 | - [[#examples][Examples]] 127 | - [[#a-scripters-notes-kaushal-modis-blog][A Scripter's Notes (Kaushal Modi's blog)]] 128 | - [[#andrea-giugliano-where-parallels-cross][Andrea Giugliano: Where parallels cross]] 129 | - [[#artur-malabarba-endless-parentheses][Artur Malabarba: Endless Parentheses]] 130 | - [[#duncan-mac-vicar-p][Duncan Mac-Vicar P.]] 131 | - [[#juan-reyero][Juan Reyero]] 132 | - [[#mohamed-aziz-knanis-blog][Mohamed Aziz Knani's blog]] 133 | - [[#nicolas-petton][Nicolas Petton]] 134 | - [[#rasmus-pank-roulund-coffee--coding-chronicles][Rasmus Pank Roulund: Coffee & Coding Chronicles]] 135 | - [[#seth-j-morabito-loom-communications][Seth J. Morabito: Loom Communications]] 136 | - [[#stig-brautaset-0][Stig Brautaset]] 137 | - [[#thibault-marin-personal-website-in-org][Thibault Marin: Personal website in org]] 138 | - [[#toon-claes-write-permission][Toon Claes: Write Permission]] 139 | - [[#two-wrongs][Two Wrongs]] 140 | - [[#tyler-grinn][Tyler Grinn]] 141 | :END: 142 | 143 | *** TODO Articles :articles: 144 | :PROPERTIES: 145 | :CUSTOM_ID: articles 146 | :END: 147 | :LOGBOOK: 148 | - State "TODO" from [2020-02-13 Thu 01:07] 149 | :END: 150 | 151 | + [ ] Link these in [[id:819d2bcb-425b-42c3-9e91-4bffd165e1be][Examples]]. 152 | 153 | **** [[http://endlessparentheses.com/how-i-blog-one-year-of-posts-in-a-single-org-file.html][Artur Malabarba: How I blog with Emacs: One year of posts in a single Org file]] :ATTACH: 154 | :PROPERTIES: 155 | :Attachments: http%3A%2F%2Fendlessparentheses.com%2Fhow-i-blog-one-year-of-posts-in-a-single-org-file.html--ur4XL8.tar.xz 156 | :ID: aa39dad8-5d0f-43df-be2a-98eac35864cc 157 | :author: Artur Malabarba 158 | :published: [2015-06-26 Fri] 159 | :CUSTOM_ID: artur-malabarba-how-i-blog-with-emacs-one-year-of-posts-in-a-single-org-file 160 | :END: 161 | 162 | **** [[https://bastibe.de/2013-11-13-blogging-with-emacs.html][Bastian Bechtold: Blogging with Emacs]] :ATTACH: 163 | :PROPERTIES: 164 | :Attachments: https%3A%2F%2Fbastibe.de%2F2013-11-13-blogging-with-emacs.html--XVMKSd.tar.xz 165 | :ID: 901a9cbf-4ea0-4734-8104-f771d8f55a5b 166 | :author: Bastian Bechtold 167 | :published: [2013-11-13 Wed] 168 | :CUSTOM_ID: bastian-bechtold-blogging-with-emacs 169 | :END: 170 | :LOGBOOK: 171 | - State "TODO" from [2020-02-13 Thu 01:09] 172 | :END: 173 | 174 | **** [[https://ogbe.net/blog/blogging_with_org.html][Dennis Ogbe: Blogging using org-mode (and nothing else)]] :ATTACH: 175 | :PROPERTIES: 176 | :Attachments: https%3A%2F%2Fogbe.net%2Fblog%2Fblogging_with_org.html--F4bLhg.tar.xz 177 | :ID: ebe8c121-7838-412b-b389-c99684095c29 178 | :author: Dennis Ogbe 179 | :published: [2016-02-01 Mon] 180 | :CUSTOM_ID: dennis-ogbe-blogging-using-org-mode-and-nothing-else 181 | :END: 182 | :LOGBOOK: 183 | - State "TODO" from [2020-02-13 Thu 01:09] 184 | :END: 185 | 186 | **** [[https://diego.codes/post/blogging-with-org/][Diego Vicente: Blogging with Emacs, and Emacs only]] :ATTACH: 187 | :PROPERTIES: 188 | :Attachments: https%3A%2F%2Fdiego.codes%2Fpost%2Fblogging-with-org%2F--lHXuQJ.tar.xz 189 | :ID: 3b1158fe-8510-484e-a492-6b3da3d72771 190 | :author: Diego Vicente 191 | :published: [2018-11-01 Thu] 192 | :CUSTOM_ID: diego-vicente-blogging-with-emacs-and-emacs-only 193 | :END: 194 | :LOGBOOK: 195 | - State "TODO" from [2020-02-13 Thu 01:09] 196 | :END: 197 | 198 | **** [[https://duncan.codes/posts/2019-09-03-migrating-from-jekyll-to-org/][Duncan Mac-Vicar P.: Migrating from Jekyll to org-mode and Github Actions]] :ATTACH: 199 | :PROPERTIES: 200 | :Attachments: https%3A%2F%2Fduncan.codes%2Fposts%2F2019-09-03-migrating-from-jekyll-to-org%2F--YjJ9dw.tar.xz 201 | :ID: 935cd6fc-e50d-4400-ae57-12caf4c46fae 202 | :author: Duncan Mac-Vicar P. 203 | :published: [2019-09-03 Tue] 204 | :CUSTOM_ID: duncan-mac-vicar-p-migrating-from-jekyll-to-org-mode-and-github-actions 205 | :END: 206 | 207 | [2019-09-04 Wed 18:54] 208 | 209 | **** [[https://www.john2x.com/blog/blogging-with-orgmode.html][John Louis Del Rosario: Blogging with Orgmode]] :ATTACH: 210 | :PROPERTIES: 211 | :Attachments: https%3A%2F%2Fwww.john2x.com%2Fblog%2Fblogging-with-orgmode.html--O7ap32.tar.xz 212 | :ID: 373d30df-a6e2-4940-9d72-1fb73ef95d06 213 | :author: John Louis Del Rosario 214 | :published: [2016-04-24 Sun] 215 | :CUSTOM_ID: john-louis-del-rosario-blogging-with-orgmode 216 | :END: 217 | :LOGBOOK: 218 | - State "TODO" from [2020-02-13 Thu 01:09] 219 | :END: 220 | 221 | **** [[https://mbork.pl/2023-07-22_Org_Clive_-_a_new_Org-mode-based_blogging_engine][Marcin Borkowski: Org Clive - a new Org-mode-based blogging engine]] 222 | :PROPERTIES: 223 | :published: [2023-07-22 Sat] 224 | :ID: e81b3cba-4de6-4f22-8b74-fc021da39658 225 | :author: Marcin Borkowski 226 | :CUSTOM_ID: marcin-borkowski-org-clive---a-new-org-mode-based-blogging-engine 227 | :END: 228 | 229 | + See also: [[id:7e35cad6-a190-4545-9f36-8a9ea16c8519][org-clive]] 230 | 231 | #+begin_quote 232 | As I said, this is a very simplistic thing (which is precisely what I wanted). You can skim the README in 5-10 minutes, the example blog in another 5-10 minutes, and you can probably study the whole source code in an hour. One of my favorite features (and one of the main reasons I implemented this myself instead of using one of a few existing solutions) is the fact that the whole blog – the content, the HTML templates, CSS, JavaScript – is defined in a single Org mode file. Of course, I made an exception for images and other binary blobs like fonts – technically, you could also have them in the Org file, but I don’t think it is a very practical idea. 233 | 234 | So, try out Org Clive, and drop me a line if you use it in production! Of course, bug reports and merge requests are welcome – feature requests less so, since I don’t want to spend too much time on it (apart of implementing a few things like RSS or page modification dates). 235 | #+end_quote 236 | 237 | **** [[https://nicolas.petton.fr/blog/blogging-with-org-mode.html][Nicolas Petton: Blogging with org-mode]] :ATTACH: 238 | :PROPERTIES: 239 | :Attachments: https%3A%2F%2Fnicolas.petton.fr%2Fblog%2Fblogging-with-org-mode.html--H2EslR.tar.xz 240 | :ID: 7ece4012-81da-40c5-aab6-440f0c11bad4 241 | :author: Nicolas Petton 242 | :published: [2013-10-15 Tue] 243 | :CUSTOM_ID: nicolas-petton-blogging-with-org-mode 244 | :END: 245 | 246 | **** TODO [[https://ambrevar.xyz/blog-architecture/][Pierre Neidhardt: A blog in pure Org/Lisp]] :website:ATTACH: 247 | :PROPERTIES: 248 | :ID: b917cbde-a7e3-45b5-bc42-883f5eb5f444 249 | :Attachments: https%3A%2F%2Fambrevar.xyz%2Fblog-architecture%2F--EzL0J.zip 250 | :author: Pierre Neidhardt 251 | :CUSTOM_ID: pierre-neidhardt-a-blog-in-pure-orglisp 252 | :END: 253 | 254 | [2018-09-03 Mon 02:17] 255 | 256 | **** [[https://pank.eu/blog/blog-setup.html][Rasmus Pank Roulund: Blogging with Org]] :ATTACH: 257 | :PROPERTIES: 258 | :ID: dbc6f377-99a3-434c-a401-88fca6413f3a 259 | :author: Rasmus Pank Roulund 260 | :published: [2016-03-27 Sun] 261 | :Attachments: https%3A%2F%2Fpank.eu%2Fblog%2Fblog-setup.html--E02Rct.tar.xz 262 | :CUSTOM_ID: rasmus-pank-roulund-blogging-with-org 263 | :END: 264 | 265 | **** [[https://loomcom.com/blog/0110_emacs_blogging_for_fun_and_profit.html][Seth J. Morabito: Emacs Blogging for Fun and Profit]] :ATTACH: 266 | :PROPERTIES: 267 | :ID: e35e3361-dbe1-4a4b-ad8c-9ffc009b334e 268 | :Attachments: https%3A%2F%2Floomcom.com%2Fblog%2F0110_emacs_blogging_for_fun_and_profit.html--u6wvc.zip 269 | :author: Seth J. Morabito 270 | :published: [2018-07-12 Thu] 271 | :CUSTOM_ID: seth-j-morabito-emacs-blogging-for-fun-and-profit 272 | :END: 273 | :LOGBOOK: 274 | - State "TODO" from [2020-02-13 Thu 01:09] 275 | :END: 276 | 277 | **** Stig Brautaset 278 | :PROPERTIES: 279 | :author: Stig Brautaset 280 | :CUSTOM_ID: stig-brautaset 281 | :END: 282 | 283 | ***** TODO [[https://github.com/stig/.emacs.d/blob/master/Blogging.org][.emacs.d/Blogging.org at master · stig/.emacs.d · GitHub]] 284 | 285 | ***** TODO [[https://www.brautaset.org/articles/2017/blogging-with-org-mode.html][Blogging with Org mode]] 286 | 287 | ***** TODO [[https://www.brautaset.org/articles/2017/blogging-with-org-mode-update.html][Blogging with Org mode—update!]] 288 | 289 | ***** TODO [[https://www.brautaset.org/articles/2018/org-mode-rss.html][Creating an RSS feed with Org mode]] 290 | 291 | ***** TODO [[https://www.brautaset.org/articles/2016/how-i-blog-this-week.html][How I Blog (This Week)]] 292 | 293 | ***** TODO [[https://www.brautaset.org/articles/2018/creating-index-entry-from-post.html][Linking Org mode blog posts into the index page]] 294 | 295 | **** Toon Claes 296 | :PROPERTIES: 297 | :author: Toon Claes 298 | :CUSTOM_ID: toon-claes 299 | :END: 300 | 301 | Toon's blog has a unique and appealing custom theme. 302 | 303 | ***** TODO [[https://writepermission.com/org-blogging-clickable-headlines.html][Org mode blogging: Clickable headlines]] 304 | :PROPERTIES: 305 | :published: [2018-12-13 Thu] 306 | :END: 307 | 308 | ***** [[https://writepermission.com/org-blogging-rss-feed.html][Org mode blogging: RSS feed]] :ATTACH: 309 | :PROPERTIES: 310 | :Attachments: https%3A%2F%2Fwritepermission.com%2Forg-blogging-rss-feed.html--qVgqZf.tar.xz 311 | :ID: f09e94be-9628-4dbe-a638-b6a972af7d25 312 | :published: [2018-12-30 Sun] 313 | :END: 314 | 315 | ***** TODO [[https://writepermission.com/org-blogging-unfurling-links.html][Org mode blogging: Unfurling links]] 316 | :PROPERTIES: 317 | :published: [2018-12-26 Wed] 318 | :END: 319 | 320 | **** [[https://blog.tygr.info/emacs/blog.html][Tyler Grinn: How this blog works]] 321 | :PROPERTIES: 322 | :author: Tyler Grinn 323 | :CUSTOM_ID: tyler-grinn-how-this-blog-works 324 | :END: 325 | 326 | #+BEGIN_QUOTE 327 | I write in org mode and export to html. The css is written afterwards instead of modifying the export process. This allows me to use the chrome inspector to quickly optimize an element rather than going through a build-and-test cycle. The element attributes ox adds to each html element are descriptive and unique enough to target quite easily with css selectors. 328 | 329 | I also use the org-info-js script to add keybindings, advanced TOC options, and section folding to the website. 330 | 331 | Dark mode is enabled using dark-mode-toggle and css media queries. 332 | 333 | The built html files are synced to my server using Syncthing and I serve the website using Nginx. All this is done using kubernetes on Digital Ocean. The blog, along with all my org files, is backed up daily using kubernetes VolumeSnapshots. 334 | #+END_QUOTE 335 | 336 | *** TODO Code :code: 337 | :PROPERTIES: 338 | :ID: d4e0b37d-b0fc-497d-8e4f-957b115b5d14 339 | :CUSTOM_ID: code 340 | :END: 341 | :LOGBOOK: 342 | - State "TODO" from [2020-02-13 Thu 01:43] 343 | :END: 344 | 345 | **** [[https://github.com/jphmrst/defblog][defblog: A web site/blog builder, implemented as a wrapper around org-project]] 346 | :PROPERTIES: 347 | :author: John Maraist 348 | :CUSTOM_ID: defblog-a-web-siteblog-builder-implemented-as-a-wrapper-around-org-project 349 | :END: 350 | 351 | #+BEGIN_QUOTE 352 | Declare a simple structured blog to be published with org-publish. This package offers an all-Emacs solution to maintaining a web site (except for uploading via rsync, which defblog triggers through org-publish). 353 | #+END_QUOTE 354 | 355 | + [[https://www.reddit.com/r/emacs/comments/pl4ad7/defblog_a_wrapper_around_orgpublish_for_web/][Announcement on Reddit]] 356 | 357 | **** [[https://gitlab.com/mbork_mbork_pl/org-clive][org-clive: A simple and minimalistic Org-based static weblog generator]] 358 | :PROPERTIES: 359 | :author: Marcin Borkowski 360 | :ID: 7e35cad6-a190-4545-9f36-8a9ea16c8519 361 | :CUSTOM_ID: org-clive-a-simple-and-minimalistic-org-based-static-weblog-generator 362 | :END: 363 | 364 | #+begin_quote 365 | Org Clive is an extremely simple static weblog generator written in Emacs Lisp on top of Org mode. 366 | 367 | + Design goals :: 368 | 369 | - it is as simple as possible so that the code can be easily read, understood, extended and modified if necessary, 370 | - it generates a set of static files (HTML and possibly others) ready to be uploaded to a server, 371 | - the structure and content of the resulting weblog is fully controlled from a single Org mode file. 372 | 373 | + Features :: 374 | 375 | - support for links to other pages via CUSTOM_ID, inline images, HTML templates, RSS 376 | - recent pages and a list of all pages 377 | 378 | + Roadmap :: 379 | 380 | - support for modification dates (in addition to publication dates) 381 | - generating/copying only files that have changed since last time 382 | - page aliases (redirects) - maybe 383 | #+end_quote 384 | 385 | + [[id:e81b3cba-4de6-4f22-8b74-fc021da39658][Marcin Borkowski: Org Clive - a new Org-mode-based blogging engine]] 386 | 387 | **** [[https://github.com/itf/org-export-head][org-export-head: Org mode to blog exporter. Converts each header to a different file]] 388 | :PROPERTIES: 389 | :ID: 48caf68d-5b39-4d87-b464-f496c3811dd1 390 | :author: Ivan Tadeu Ferreira Antunes Filho 391 | :CUSTOM_ID: org-export-head-org-mode-to-blog-exporter-converts-each-header-to-a-different-file 392 | :END: 393 | 394 | + [[https://www.reddit.com/r/emacs/comments/9cslij/single_file_blog_in_org_mode/][Single file Blog in org mode : emacs]] 395 | 396 | *** TODO Discussions :discussions: 397 | :PROPERTIES: 398 | :CUSTOM_ID: discussions 399 | :END: 400 | :LOGBOOK: 401 | - State "TODO" from [2020-02-13 Thu 01:43] 402 | :END: 403 | 404 | **** [[https://www.reddit.com/r/emacs/comments/93harh/multipage_sitemaps_for_orgpublish/][Multi-page sitemaps for org-publish? : emacs]] :ATTACH: 405 | :PROPERTIES: 406 | :ID: 39024027-a5b0-4e0d-9fc1-c41db5549c8f 407 | :Attachments: https%3A%2F%2Fwww.reddit.com%2Fr%2Femacs%2Fcomments%2F93harh%2Fmultipage_sitemaps_for_orgpublish%2F--beLTG.zip 408 | :CUSTOM_ID: multi-page-sitemaps-for-org-publish--emacs 409 | :END: 410 | 411 | **** [[https://lists.gnu.org/archive/html/emacs-orgmode/2019-09/msg00282.html][{O} blogging wih org-mode]] 412 | :PROPERTIES: 413 | :CUSTOM_ID: o-blogging-wih-org-mode 414 | :END: 415 | 416 | **** [[https://www.reddit.com/r/orgmode/comments/93nyaw/psa_hugo_users_update_to_hugo_v046_to_get_syntax/e3fmd62/][{PSA} Hugo users: Update to Hugo v0.46 to get syntax highlighted Org mode blocks using Chroma : orgmode]] :website: 417 | :PROPERTIES: 418 | :CUSTOM_ID: psa-hugo-users-update-to-hugo-v046-to-get-syntax-highlighted-org-mode-blocks-using-chroma--orgmode 419 | :END: 420 | 421 | [2018-08-01 Wed 17:27] 422 | 423 | ***** Article 424 | 425 | #+BEGIN_QUOTE 426 | Yours looks so nice! 427 | #+END_QUOTE 428 | 429 | Thanks! 430 | 431 | #+BEGIN_QUOTE 432 | But I'd like mine to work by keeping entries in a single file (or collecting them from multiple files), rather than storing one entry per file. 433 | #+END_QUOTE 434 | 435 | Why "But"? :) I do exactly that i.e. [[https://gitlab.com/kaushalmodi/kaushalmodi.gitlab.io/blob/master/content-org/scripter-posts.org][multiple posts from one Org file]]. Well, not exactly that. I have a mix of one post per file and multiple posts per file. For example, [[https://gitlab.com/kaushalmodi/kaushalmodi.gitlab.io/blob/master/content-org/notes/nim.org][my Nim notes]] ( [[https://scripter.co/notes/nim/][HTML]]) got too out of hand, and won't suit in the above file. So I kept it separate (and same for other notes). 436 | 437 | #+BEGIN_QUOTE 438 | that's possible, but maybe requires custom code. Do you have any thoughts about that? 439 | #+END_QUOTE 440 | 441 | I am not sure which custom code you are referring to (the subtree-to-file and file-to-file export code is part of =ox-hugo=). If you see any of the Org files, they are normal Org files, with adding of /#+hugo../ keywords and /:EXPORT\_HUGO\_../ properties. 442 | 443 | Or, do you mean how to do the same if not planning to use Hugo? 444 | 445 | *** TODO Examples :examples: 446 | :PROPERTIES: 447 | :ID: 819d2bcb-425b-42c3-9e91-4bffd165e1be 448 | :CUSTOM_ID: examples 449 | :END: 450 | :LOGBOOK: 451 | - State "TODO" from [2020-02-13 Thu 01:43] 452 | :END: 453 | 454 | Blogs and personal Web sites published with Org. 455 | 456 | **** TODO [[https://scripter.co/][A Scripter's Notes (Kaushal Modi's blog)]] 457 | :PROPERTIES: 458 | :CUSTOM_ID: a-scripters-notes-kaushal-modis-blog 459 | :END: 460 | 461 | **** [[https://ag91.github.io/][Andrea Giugliano: Where parallels cross]] 462 | :PROPERTIES: 463 | :author: Andrea Giugliano 464 | :CUSTOM_ID: andrea-giugliano-where-parallels-cross 465 | :END: 466 | 467 | Blog published with the inactive project [[https://github.com/sillykelvin/org-page][org-page]]. 468 | 469 | #+BEGIN_QUOTE 470 | Yesterday (or today?) a student, today a software engineer, the day after just a fragment of life. 471 | 472 | I am pulled by curiosity and since I have learned a few useful things, why not to share them? 473 | #+END_QUOTE 474 | 475 | **** [[https://endlessparentheses.com/][Artur Malabarba: Endless Parentheses]] 476 | :PROPERTIES: 477 | :author: Artur Malabarba 478 | :CUSTOM_ID: artur-malabarba-endless-parentheses 479 | :END: 480 | 481 | **** [[https://duncan.codes/][Duncan Mac-Vicar P.]] 482 | :PROPERTIES: 483 | :CUSTOM_ID: duncan-mac-vicar-p 484 | :END: 485 | 486 | **** [[http://juanreyero.com/about/][Juan Reyero]] 487 | :PROPERTIES: 488 | :author: Juan Reyero 489 | :CUSTOM_ID: juan-reyero 490 | :END: 491 | 492 | #+BEGIN_QUOTE 493 | Engineer and programmer, with a PhD in Mechanical Engineering and working at Xaar in Cambridge, UK. Before that I worked at Hewlett Packard's research and development lab since 1996. With over 40 US patents filed, at least 12 of them granted and the rest pending. I am currently working on the data pipeline of a 3D printer. 494 | 495 | My latest personal project is GreaterSkies, selling personalized star charts as a high-quality PDF. You choose the location, date and time, and my Common Lisp engine will create for you a beautiful chart with thousands of stars and the planets as seen from that place and at that time. 496 | #+END_QUOTE 497 | 498 | **** TODO [[http://aziz.tn/blog/2018-07-02-how_do_write_this_website.html][Mohamed Aziz Knani's blog]] 499 | :PROPERTIES: 500 | :CUSTOM_ID: mohamed-aziz-knanis-blog 501 | :END: 502 | 503 | **** [[https://nicolas.petton.fr/][Nicolas Petton]] 504 | :PROPERTIES: 505 | :author: Nicolas Petton 506 | :CUSTOM_ID: nicolas-petton 507 | :END: 508 | 509 | **** [[https://pank.eu/][Rasmus Pank Roulund: Coffee & Coding Chronicles]] 510 | :PROPERTIES: 511 | :author: Rasmus Pank Roulund 512 | :CUSTOM_ID: rasmus-pank-roulund-coffee--coding-chronicles 513 | :END: 514 | 515 | #+BEGIN_QUOTE 516 | I am an economist at the Danish central bank, Nationalbanken, and I recently received a PhD in economics from the European University Institute in Florence. 517 | 518 | I am a supporter of Free Software I contribute to GNU Emacs and in particularly Org mode. 519 | #+END_QUOTE 520 | 521 | **** [[https://loomcom.com/][Seth J. Morabito: Loom Communications]] 522 | :PROPERTIES: 523 | :ID: 5f1d20fd-0ca0-4788-a487-200007752a26 524 | :author: Seth J. Morabito 525 | :CUSTOM_ID: seth-j-morabito-loom-communications 526 | :END: 527 | 528 | See [[id:39024027-a5b0-4e0d-9fc1-c41db5549c8f][Multi-page sitemaps for org-publish? : emacs]]. Also [[id:e35e3361-dbe1-4a4b-ad8c-9ffc009b334e][Emacs Blogging for Fun and Profit]]. 529 | 530 | **** [[https://www.brautaset.org/index.html][Stig Brautaset]] 531 | :PROPERTIES: 532 | :author: Stig Brautaset 533 | :CUSTOM_ID: stig-brautaset-0 534 | :END: 535 | 536 | #+BEGIN_QUOTE 537 | I'm a software engineer based in the north east of England. This is my personal site, and opinions expressed here do not reflect those of my employer. 538 | 539 | I'm originally from the west coast of Norway. I studied electronics, and served as a sonar operator on a submarine during compulsory military service, before moving to London to study AI. I graduated from the University of Westminster in 2003, and have been working primarily as a backend software engineer since. 540 | 541 | I build this website in Emacs' Org mode, which can publish static HTML files. Those I deploy on Amazon S3 behind a CloudFront distribution and a free SSL certificate. 542 | #+END_QUOTE 543 | 544 | **** TODO [[https://thibaultmarin.github.io/blog/posts/2016-11-13-Personal_website_in_org.html][Thibault Marin: Personal website in org]] :ATTACH: 545 | :PROPERTIES: 546 | :Attachments: https%3A%2F%2Fthibaultmarin.github.io%2Fblog%2Fposts%2F2016-11-13-Personal_website_in_org.html--WeXar7.tar.xz 547 | :ID: c004d395-cccf-4585-883d-633f6ce42e79 548 | :CUSTOM_ID: thibault-marin-personal-website-in-org 549 | :END: 550 | 551 | **** [[https://writepermission.com/][Toon Claes: Write Permission]] 552 | :PROPERTIES: 553 | :author: Toon Claes 554 | :CUSTOM_ID: toon-claes-write-permission 555 | :END: 556 | 557 | Toon's blog has a unique and appealing custom theme. 558 | 559 | **** TODO [[https://two-wrongs.com/][Two Wrongs]] 560 | :PROPERTIES: 561 | :CUSTOM_ID: two-wrongs 562 | :END: 563 | 564 | **** [[https://blog.tygr.info/][Tyler Grinn]] 565 | :PROPERTIES: 566 | :author: Tyler Grinn 567 | :CUSTOM_ID: tyler-grinn 568 | :END: 569 | 570 | #+BEGIN_QUOTE 571 | I write in org mode and export to html. The css is written afterwards instead of modifying the export process. This allows me to use the chrome inspector to quickly optimize an element rather than going through a build-and-test cycle. The element attributes ox adds to each html element are descriptive and unique enough to target quite easily with css selectors. 572 | 573 | I also use the org-info-js script to add keybindings, advanced TOC options, and section folding to the website. 574 | 575 | Dark mode is enabled using dark-mode-toggle and css media queries. 576 | 577 | The built html files are synced to my server using Syncthing and I serve the website using Nginx. All this is done using kubernetes on Digital Ocean. The blog, along with all my org files, is backed up daily using kubernetes VolumeSnapshots. 578 | #+END_QUOTE 579 | 580 | ** Bookmarking :bookmarking: 581 | :PROPERTIES: 582 | :CUSTOM_ID: bookmarking 583 | :END: 584 | 585 | On using Org to bookmark Web sites. 586 | 587 | *** Articles :articles: 588 | 589 | **** [[https://karl-voit.at/2014/08/10/bookmarks-with-orgmode/][Karl Voit: UOMF: Managing web bookmarks with Org Mode]] :ATTACH: 590 | :PROPERTIES: 591 | :author: Karl Voit 592 | :published: [2014-08-10 Sun] 593 | :updated: [2019-09-25 Wed] 594 | :Attachments: https%3A%2F%2Fkarl-voit.at%2F2014%2F08%2F10%2Fbookmarks-with-orgmode%2F--o6P1UX.tar.xz 595 | :ID: b39872fc-73a5-4937-a5e8-653ce0b24023 596 | :END: 597 | 598 | *** Discussions :discussions: 599 | 600 | **** [[https://www.reddit.com/r/orgmode/comments/iqp0mf/organizing_web_bookmarks_with_orgmode/][Organizing web bookmarks with Org-mode? : orgmode]] 601 | 602 | ** Business :business: 603 | :PROPERTIES: 604 | :CUSTOM_ID: business 605 | :END: 606 | 607 | On using Org to run a business. 608 | 609 | *** Articles :articles: 610 | 611 | **** [[https://bofh.org.uk/2019/02/25/baking-with-emacs/][Running a bakery on Emacs and PostgreSQL]] 612 | :PROPERTIES: 613 | :published: [2019-02-25 Mon] 614 | :author: Piers Cawley 615 | :END: 616 | 617 | Piers shows how he uses Org captures, Babel, and some custom code to help run his bakery. 618 | 619 | #+BEGIN_QUOTE 620 | Just over a year ago now, I finally opened the bakery I’d been dreaming of for years. It’s been a big change in my life, from spending all my time sat in front of a computer, to spending most of it making actual stuff. And stuff that makes people happy, at that. It’s been a huge change, but I can’t think of a single job change that’s ever made me as happy as this one. 621 | 622 | One of the big changes that came with going pro was that suddenly I was having to work out how much stuff I needed to mix to fill the orders I needed. On the face of it, this is really simple, just work out how much dough you need, then work out what quantities to mix to make that much dough. Easy. You can do it with a pencil and paper. Or, in traditional bakers' fashion, by scrawling with your finger on a floured work bench. 623 | 624 | And that’s how I coped for a few weeks early on. But I kept making mistakes, which makes for an inconsistent product (bread is very forgiving, you have to work quite hard to make something that isn’t bread, but consistency matters). I needed to automate. 625 | #+END_QUOTE 626 | 627 | ** Database :database: 628 | :PROPERTIES: 629 | :CUSTOM_ID: database 630 | :END: 631 | 632 | Using Org files like a database. 633 | 634 | *** Tools :tools: 635 | 636 | **** [[https://orgmode.org/worg/org-contrib/org-collector.html][org-collector]] 637 | 638 | =org-collector= is a library in =org-contrib= that collects headline properties into tables with optional pre-processing. Here's a simple example from its documentation: 639 | 640 | Given the following Org buffer: 641 | 642 | #+BEGIN_SRC org 643 | ,* Spending 644 | 645 | ,** December 646 | :PROPERTIES: 647 | :ID: december 648 | :END: 649 | 650 | ,*** Week 1 651 | 652 | ,**** Grocery Store [2008-12-01 Mon] 653 | :PROPERTIES: 654 | :amount: 56.77 655 | :type: food 656 | :END: 657 | 658 | ,**** Athletic club [2008-12-02 Tue] 659 | :PROPERTIES: 660 | :amount: 75.00 661 | :type: health 662 | :END: 663 | 664 | ,*** Week 2 665 | 666 | ,**** Restaurant [2008-12-08 Mon] 667 | :PROPERTIES: 668 | :amount: 30.67 669 | :type: food 670 | :END: 671 | 672 | #+END_SRC 673 | 674 | A report could be generated like so: 675 | 676 | #+BEGIN_SRC org 677 | ,#+BEGIN: propview :id "december" :conds ((string= TYPE "food")) :cols (ITEM AMOUNT) 678 | | "ITEM" | "amount" | 679 | |----------------------------------+----------| 680 | | "Grocery Store [2008-12-01 Mon]" | 56.77 | 681 | | "Restaurant [2008-12-08 Mon]" | 30.67 | 682 | |----------------------------------+----------| 683 | | | | 684 | ,#+END: 685 | #+END_SRC 686 | 687 | **** [[https://github.com/alphapapa/org-ql][org-ql]] :libraries: 688 | 689 | =org-ql= provides a query language for Org files. It offers two syntax styles: Lisp-like sexps and search engine-like keywords. 690 | 691 | It includes three libraries: The =org-ql= library is flexible and may be used as a backend for other tools. The libraries =org-ql-search= and =helm-org-ql= provide interactive search commands and saved views. 692 | 693 | Here are a few examples of the Lisp-side of the library. See the examples and screenshots on its home page for more information. 694 | 695 | #+BEGIN_SRC elisp 696 | ;; Show an agenda-like view, similar to a “traditional” Org Agenda 697 | ;; with Log Mode turned on. 698 | (org-ql-search (org-agenda-files) 699 | '(or (and (not (done)) 700 | (or (habit) 701 | (deadline auto) 702 | (scheduled :to today) 703 | (ts-active :on today))) 704 | (closed :on today)) 705 | :sort '(date priority todo)) 706 | 707 | ;; Show entries that have any timestamp within the past week. Group by 708 | ;; date using org-super-agenda with the :auto-ts group. 709 | (org-ql-search (org-agenda-files) 710 | '(ts :from -7 :to today) 711 | :title "Recent Items" 712 | :sort '(date priority todo) 713 | :super-groups '((:auto-ts t))) 714 | 715 | ;; If you kept a database of music in an Org file, you could run a 716 | ;; query like this to find tracks composed by Chopin that do not have 717 | ;; their key recorded in the database. 718 | (org-ql-search "~/org/music.org" 719 | '(and (property "genre" "classical") 720 | (property "composer" "Chopin") 721 | (not (property "key")))) 722 | #+END_SRC 723 | 724 | ***** TODO org-ql dynamic block demo 725 | 726 | ** Fitness :fitness: 727 | :PROPERTIES: 728 | :CUSTOM_ID: fitness 729 | :END: 730 | 731 | *** Discussions :discussions: 732 | 733 | **** [[https://www.reddit.com/r/orgmode/comments/i2d75e/tracking_my_diet_with_emacs_and_orgmode/][Tracking my diet with Emacs and org-mode : orgmode]] 734 | 735 | **** [[https://www.reddit.com/r/orgmode/comments/i1z6np/ann_orgcaloriesel_a_package_to_log_your_calorific/][{ANN} Org-Calories.el, a package to log your calorific intake and outake {ALPHA} : orgmode]] 736 | 737 | ** Meta :meta: 738 | :PROPERTIES: 739 | :CUSTOM_ID: meta 740 | :END: 741 | 742 | On applying Org to various tasks (as opposed to a specific task). 743 | 744 | *** Discussions :discussions: 745 | 746 | Discussions about applying Org to various tasks. 747 | 748 | + [[https://www.reddit.com/r/emacs/comments/jjxatm/whats_your_job_whats_your_daily_emacs_workflow/][What's your job? What's your daily emacs workflow? : r/emacs]] 749 | 750 | ** Games :games: 751 | :PROPERTIES: 752 | :CUSTOM_ID: games 753 | :END: 754 | 755 | Including using Org to run role-playing games (RPGs). 756 | 757 | *** Articles :articles: 758 | 759 | **** [[https://takeonrules.com/2020/11/09/using-emacs-while-running-online-games/][Using Emacs While Running Online Games // Take on Rules]] :ATTACH: 760 | :PROPERTIES: 761 | :author: Jeremy Friesen 762 | :published: [2020-11-09 Mon] 763 | :Attachments: https%3A%2F%2Fwww.reddit.com%2Fr%2Femacs%2Fcomments%2Fjr7n56%2Fusing_emacs_while_running_online_games_take_on%2F--RII16i.tar.xz 764 | :ID: 2c4c7b3e-e77d-48b0-8eee-5ceb588be664 765 | :END: 766 | 767 | #+BEGIN_QUOTE 768 | On Sunday mornings, I’ve been facilitating a Stars without Number campaign. You can read about it in my New Vistas in the Thel Sector series. 769 | 770 | While I prefer in-person gaming, I’m coming around to having access to my work tools while running a game. 771 | #+END_QUOTE 772 | 773 | Jeremy explains how he use Org for running his RPGs, including exporting notes for publishing, using Org Roam to maintain a wiki, and some custom Emacs functions that bring in data from other utilities he's written. 774 | 775 | ** Miscellaneous :miscellaneous: 776 | :PROPERTIES: 777 | :CUSTOM_ID: miscellaneous 778 | :END: 779 | 780 | *** [[https://gitlab.com/tygrdev/org-real][org-real: Keep track of real things as Org links]] 781 | :PROPERTIES: 782 | :author: Tyler Grinn 783 | :END: 784 | 785 | #+BEGIN_QUOTE 786 | At an abstract level, what this package does is take a one-dimensional description and render it as a three-dimensional ascii drawing. This is similar to how communicating locations of things in real life works: the knowledgeable party forms a one-dimensional sentence that describes a thing and the receiving party forms a three-dimensional image in their mind. This mental image arranges the nouns from the sentence according to the prepositions surrounding them. 787 | #+END_QUOTE 788 | 789 | + [[https://blog.tygr.info/emacs/org-real.html][Announcement]] 790 | - [[https://www.reddit.com/r/orgmode/comments/pl4dpp/im_releasing_the_alpha_version_of_orgreal_today/][I'm releasing the alpha version of org-real today : orgmode]] 791 | 792 | ** Presentations :presentations: 793 | :PROPERTIES: 794 | :CUSTOM_ID: presentations 795 | :END: 796 | 797 | On using Org to give presentations (e.g. PowerPoint-style). 798 | 799 | *** Tools :tools: 800 | 801 | **** [[https://github.com/takaxp/org-tree-slide][org-tree-slide]] 802 | :PROPERTIES: 803 | :author: Takaaki ISHIKAWA 804 | :END: 805 | 806 | #+BEGIN_QUOTE 807 | The main purpose of this elisp is to handle each tree in an org buffer as a slide by simple narrowing. This emacs lisp is a minor mode for Emacs Org-mode. 808 | 809 | Main features: 810 | 811 | - Live editable presentation 812 | - Fast switching of narrowing/widen 813 | - TODO pursuit with narrowing 814 | - Displaying the current number of slides in mode line 815 | - CONTENT view during a presentation 816 | - Slide-in effect 817 | - Slide header from org file’s header 818 | - Countdown timer 819 | #+END_QUOTE 820 | 821 | ** Project Management :project_management:PIM: 822 | :PROPERTIES: 823 | :CUSTOM_ID: project-management 824 | :END: 825 | 826 | On using Org as a Personal Information Manager to manage projects and one's personal life. 827 | 828 | *** Articles :articles: 829 | 830 | **** [#A] [[http://members.optusnet.com.au/~charles57/GTD/Natural_Project_Planning.html][Charles Cave: Natural Project Planning with org-mode (GTD)]] :ATTACH:GTD: 831 | :PROPERTIES: 832 | :Attachments: http%3A%2F%2Fmembers.optusnet.com.au%2F~charles57%2FGTD%2FNatural_Project_Planning.html--1Tbppy.tar.xz 833 | :ID: 58bab4c9-998f-498c-832a-c88f89ca20b9 834 | :author: Charles Cave 835 | :END: 836 | 837 | **** [[http://cachestocaches.com/2020/3/my-organized-life/][Gregory J. Stein: A Guide to My Organizational Workflow: How to Streamline Your Life]] :website:Emacs:Org:ATTACH: 838 | :PROPERTIES: 839 | :Attachments: http%3A%2F%2Fcachestocaches.com%2F2020%2F3%2Fmy-organized-life%2F--2hDjVP.tar.xz 840 | :ID: c5766d44-86f7-4bfc-b2ed-85d496ad6f12 841 | :author: Gregory J. Stein 842 | :published: [2020-03-22 Sun] 843 | :END: 844 | :LOGBOOK: 845 | CLOCK: [2020-04-26 Sun 01:23]--[2020-04-26 Sun 01:23] => 0:00 846 | :END: 847 | 848 | [2020-04-26 Sun 01:23] 849 | 850 | #+BEGIN_QUOTE 851 | Five years ago, my life exploded in complexity. I had just started a new position in a new field. I was planning my wedding. And my inability to say NO to anyone and everyone had culminated in my serving on the board of three graduate student organizations. Inevitably, cracks began to form, and my finite brain started to lose track of tasks. My calendar was sufficient to ensure that I wouldn't miss meetings, but I would often only prepare for those meetings at the eleventh hour. My productivity and the quality of my work both suffered. Something needed to change. 852 | 853 | This guide is devoted to a discussion of the organizational system that I have honed in the time since.Many of the ideas presented here derive from the Getting Things Done methodology, but adapted and expanded to meet my personal needs. With it, I have found that my time is spent more wisely. Better organization means that I can consciously devote effort where it is needed early on, as opposed to scrambling to keep up, and deliver higher quality work without expending more energy. 854 | 855 | You too can streamline your process. This guide is meant to serve as an example of how you might reorganize your workflow and find order through the chaos of your busy life. Yet different lifestyles have different demands: what works for me may not work as well for you. As such, I do not expect that you will replicate this system in its entirety. Instead, I hope you will take inspiration from my system and use elements of it to build a workflow that works for you. 856 | #+END_QUOTE 857 | 858 | **** [[http://howardism.org/Technical/Emacs/getting-more-boxes-done.html][Howard Abrams: Getting Boxes Done, the Code]] :website:ATTACH: 859 | :PROPERTIES: 860 | :Attachments: http%3A%2F%2Fhowardism.org%2FTechnical%2FEmacs%2Fgetting-more-boxes-done.html--sQibSW.tar.xz 861 | :ID: c867cb2c-dd82-43e7-91aa-78e2839056cd 862 | :author: Howard Abrams 863 | :END: 864 | :LOGBOOK: 865 | CLOCK: [2019-01-31 Thu 03:33]--[2019-01-31 Thu 03:33] => 0:00 866 | :END: 867 | 868 | [2019-01-31 Thu 03:33] 869 | 870 | **** [[http://juanreyero.com/article/emacs/org-teams.html][Juan Reyero: Org-mode tricks for team management]] :ATTACH: 871 | :PROPERTIES: 872 | :Attachments: http%3A%2F%2Fjuanreyero.com%2Farticle%2Femacs%2Forg-teams.html--MJBfnq.tar.xz 873 | :ID: 4c4a8249-baf5-47ec-8c36-b4a381095822 874 | :END: 875 | 876 | [2019-07-24 Wed 18:07] Talks about =org-secretary.el=. 877 | 878 | ***** TODO Add some kind of tag about teams and coordinating with others. 879 | 880 | *** Examples :examples: 881 | 882 | **** [[id:cd12e9d7-8598-4fbe-bab2-57c6929df737][Bernt Hansen: Organize your life in plain text!]] 883 | 884 | **** [[https://www.reddit.com/r/emacs/comments/jmpsdl/continuous_professional_development_record_in/][Continuous Professional Development Record in Emacs]] :ATTACH:discussions: 885 | :PROPERTIES: 886 | :Attachments: cpd.org 887 | :ID: 71428924-28ca-4014-bd90-a12c056e8662 888 | :END: 889 | 890 | falloutphil shows how he uses Org documents to track and report on his Continuous Professional Development (CPD) activities in a structured, efficient way. 891 | 892 | + [[https://raw.githubusercontent.com/falloutphil/Misc/master/cpd.org][His cpd.org file]] 893 | 894 | ** Research :research: 895 | :PROPERTIES: 896 | :ID: 83ad9f9c-692f-48f0-94fb-e4ab8836a9d0 897 | :CUSTOM_ID: research 898 | :END: 899 | 900 | Using Org for research. 901 | 902 | *** Discussions :discussions: 903 | 904 | **** [[https://www.reddit.com/r/orgmode/comments/fvckhr/research_work_flow/][Research work flow : Reddit r/orgmode]] 905 | 906 | [2020-04-06 Mon 06:20] Using Org for reproducible research, writing and translating fiction, and managing references. 907 | 908 | *** Tools :tools: 909 | 910 | **** [[https://github.com/cpitclaudel/esh][esh: Use Emacs to highlight source code listings in LaTeX and HTML documents!]] :LaTeX:exporting:HTML: 911 | :PROPERTIES: 912 | :author: Clément Pit-Claudel 913 | :END: 914 | 915 | #+BEGIN_QUOTE 916 | This programs processes TeX source files, adding syntax-highlighting to the contents of specially-delimited environments and macros. 917 | #+END_QUOTE 918 | 919 | ** Software :software: 920 | :PROPERTIES: 921 | :CUSTOM_ID: software 922 | :END: 923 | 924 | On using Org to write and publish usable software applications (really!). 925 | 926 | *** Tools :tools: 927 | 928 | **** [[https://github.com/tgbugs/orgstrap][orgstrap: Bootstrap an Org file using file local variables]] 929 | 930 | #+BEGIN_QUOTE 931 | orgstrap is a specification and tooling for bootstrapping Org files. 932 | 933 | It allows Org files to describe their own requirements, and define their own functionality, making them self-contained standalone computational artifacts dependent only on Emacs or other implementations of the Org Babel protocol in the future. 934 | 935 | orgstrap works with all versions of Emacs since 24.4 and all versions of Org since 8.2.10. 936 | #+END_QUOTE 937 | 938 | ** Studying :studying: 939 | :PROPERTIES: 940 | :CUSTOM_ID: studying 941 | :END: 942 | 943 | On using Org to study various material. 944 | 945 | *** Discussions :discussions: 946 | 947 | **** [[https://www.reddit.com/r/orgmode/comments/fwmkr8/how_can_i_use_orgmode_in_a_better_way_to_plan_my/][How can I use orgmode in a better way to plan my self study courses? : orgmode]] :Reddit: 948 | 949 | [2020-04-08 Wed 10:26] Some anecdotes, links to videos and other guides, and tips. 950 | 951 | *** Tools :tools: 952 | 953 | **** [[https://github.com/l3kn/org-fc][Org Flashcards (org-fc): Spaced Repetition System]] 954 | 955 | #+BEGIN_QUOTE 956 | Org-fc is a spaced-repetition system for Emacs' org-mode. It allows you to mark headlines in a file as "flashcards", turning pieces of knowledge you want to learn into a question-answer test. These cards are reviewed at regular interval. After each review, a Repetition Spacing Algorithm is used to calculate the next interval based on how well you remembered the contents of the card. 957 | #+END_QUOTE 958 | 959 | ** Web Publishing :web_publishing: 960 | :PROPERTIES: 961 | :CUSTOM_ID: web-publishing 962 | :END: 963 | 964 | On publishing Web sites with Org. 965 | 966 | See also: [[id:32dc57d5-6810-44a5-9887-4f7813b02880][Blogging]]. 967 | 968 | *** Articles :articles: 969 | 970 | **** [[https://gileschamberlin.wordpress.com/2020/02/25/writing-a-new-org-mode-exporter-back-end/][Writing a new org-mode exporter back-end – Imperfect Software]] :ATTACH: 971 | :PROPERTIES: 972 | :Attachments: https%3A%2F%2Fgileschamberlin.wordpress.com%2F2020%2F02%2F25%2Fwriting-a-new-org-mode-exporter-back-end%2F--rVX3P3.tar.xz 973 | :ID: 689bb9d5-4ea0-4770-bff8-b5f443844179 974 | :author: Giles Chamberlin 975 | :END: 976 | 977 | #+BEGIN_QUOTE 978 | I’ve been maintaining a simple static website for my jujutsu club since 1985. For most of that time it was simply hand coded HTML and CSS. I’ve wanted to update the site for a while to give it a more modern look, and to handle mobile devices better. I also wanted to move away from hand-coding the HTML and so was interested by org-mode’s HTML export capacity. 979 | 980 | The HTML exporter backend that ships with org-mode didn’t produce the structure I was looking for, and I found myself spending an age fighting the CSS to try to produce the appearance I was after in a range of browsers. 981 | #+END_QUOTE 982 | 983 | + [[http://jujutsu.org.uk/][Jujutsu in Warborough]] (the site mentioned in the article) 984 | 985 | *** Examples :examples: 986 | 987 | **** [[http://jujutsu.org.uk/][Jujutsu in Warborough]] 988 | :PROPERTIES: 989 | :author: Giles Chamberlin 990 | :END: 991 | 992 | + [[id:689bb9d5-4ea0-4770-bff8-b5f443844179][Writing a new org-mode exporter back-end – Imperfect Software]] 993 | 994 | **** [[https://www.gnuisnotunix.com/recipes/][M-x recipes]] 995 | 996 | #+BEGIN_QUOTE 997 | I've been working on a cookbook using Emacs Org mode, and org-chef to import recipes. I set it up so that I can export to a printable bifold booklet that I can use in the kitchen, and it exports to my website. 998 | #+END_QUOTE 999 | 1000 | *** Libraries :libraries: 1001 | 1002 | **** [[https://github.com/vascoferreira25/ox-tailwind][ox-tailwind: Org-Mode HTML export back-end with Tailwind.css classes]] 1003 | :PROPERTIES: 1004 | :author: Vasco Ferreira 1005 | :ID: 7e312f8f-0090-4054-83d9-a5fa3154a90e 1006 | :END: 1007 | 1008 | #+BEGIN_QUOTE 1009 | This back-end has the purpose of allowing easy customization of the HTML output. Although it is called Tailwind, the only thing that it does is allowing you to customize the classes of the HTML and exporting a more barebones HTML (It does not create as many divs and sections as the normal HTML export back-end). Instead of using Tailwind.css you can just name the classes of the elements and import your own css (or edit ./css/style.css). 1010 | #+END_QUOTE 1011 | 1012 | ** Writing :writing: 1013 | :PROPERTIES: 1014 | :CUSTOM_ID: writing 1015 | :END: 1016 | 1017 | *** Citations :citations: 1018 | :PROPERTIES: 1019 | :ID: 2d289c68-1138-4054-b2b3-845f9151b426 1020 | :END: 1021 | 1022 | **** [[id:b010ff39-f460-46c2-af8b-5118ffddb229][Tools]] 1023 | 1024 | *** Discussions :discussions: 1025 | 1026 | **** [[https://lucidmanager.org/tags/emacs/][Emacs Writing Studio]] 1027 | :PROPERTIES: 1028 | :author: Peter Prevos 1029 | :ID: 2da01239-8d3d-4f92-b4b4-de3a90536d82 1030 | :END: 1031 | 1032 | #+begin_quote 1033 | Emacs Writing Studio is configuration and a series of articles on how authors can use Emacs to publish articles, books, scripts and websites. 1034 | #+end_quote 1035 | 1036 | See also: 1037 | 1038 | + [[id:a0811ad8-46fb-4ae7-8126-5a1cd5e10712][Emacs Writing Studio: (configuration)]] 1039 | + [[https://old.reddit.com/r/emacs/comments/16k2bxe/introducing_emacs_writing_studio/][Introducing Emacs Writing Studio : emacs]] 1040 | 1041 | **** [[https://www.reddit.com/r/emacs/comments/13no4q3/emacswritten_novel_on_the_german_bestseller_list/][Titus Müller on writing a bestselling novel with Org]] 1042 | 1043 | Titus explains how he used Org to write his bestselling novel, /Der letzte Auftrag/, including organizing his work and exchanging versions with the publisher. 1044 | 1045 | **** [[https://www.reddit.com/r/orgmode/comments/fvckhr/research_work_flow/fmhzxmq/][u/Dysyre on using Org to write and research a novel]] 1046 | 1047 | [2020-04-06 Mon 08:06] 1048 | 1049 | #+BEGIN_QUOTE 1050 | Major tasks, such as research, go in a plain list under TODO. They are hyperlinked to the relevant part of the text with #+NAME: comments. For minor stuff, I just use a comment with an arbitrary prefix (tt), so I can easily I-search (C-s, I think. I use evil) for it. I could automate things with capture, but I haven't gotten around to setting it up. 1051 | 1052 | I use priority tags to measure how far a scene is in production, since they are separate from TODO keywords. Any motifs, items, characters, etc. that need to be tracked, I create a tag/property for. I can then use C-c / together with indirect buffers to filter the information. 1053 | #+END_QUOTE 1054 | 1055 | *** Tools :tools: 1056 | 1057 | **** [[http://github.com/rnkn/binder][Binder: minor mode facilitating multi-file writing projects]] 1058 | 1059 | #+BEGIN_QUOTE 1060 | Binder is global minor mode (and associated major modes) to facilitate working on a writing project in multiple files. It is heavily inspired by the binder feature in the macOS writing app Scrivener. The rationale behind working this way is to split a large writing project into much smaller pieces. 1061 | #+END_QUOTE 1062 | 1063 | **** [[https://github.com/pprevos/emacs-writing-studio/][Emacs Writing Studio: configuration for authors]] 1064 | :PROPERTIES: 1065 | :ID: a0811ad8-46fb-4ae7-8126-5a1cd5e10712 1066 | :author: Peter Prevos 1067 | :END: 1068 | 1069 | + See also: [[id:2da01239-8d3d-4f92-b4b4-de3a90536d82][Emacs Writing Studio (articles)]] 1070 | 1071 | #+begin_quote 1072 | Emacs Writing Studio is configuration and a series of articles on how authors can use Emacs to publish articles, books, scripts and websites. 1073 | 1074 | This Emacs configuration stays as close as humanly bearable to Vanilla Emacs. 1075 | 1076 | - Leverages functionality in Emacs 29.1 1077 | - Standard keyboard shortcuts 1078 | - No configuration for developing software 1079 | - Centred around Org mode 1080 | #+end_quote 1081 | 1082 | * Configs :configs: 1083 | :PROPERTIES: 1084 | :TOC: :depth 0 1085 | :CUSTOM_ID: configs 1086 | :END: 1087 | 1088 | Examples of complete Org configurations. 1089 | 1090 | ** [[https://github.com/alphapapa/alpha-org][alpha-org: A powerful Org configuration]] 1091 | 1092 | ** [[http://doc.norang.ca/org-mode.html][Bernt Hansen: Organize your life in plain text!]] 1093 | :PROPERTIES: 1094 | :author: Bernt Hansen 1095 | :ID: cd12e9d7-8598-4fbe-bab2-57c6929df737 1096 | :END: 1097 | :LOGBOOK: 1098 | - State "SOMEDAY" from [2017-07-29 Sat 01:28] 1099 | :END: 1100 | 1101 | *** TO-WATCH [[http://www.youtube.com/watch?v=II-xYw5VGFM][Bernt Hansen's tutorial]] :refile:video: 1102 | :LOGBOOK: 1103 | - State "TO-WATCH" from [2017-07-29 Sat 01:28] 1104 | :END: 1105 | 1106 | *** TO-WATCH [[http://www.youtube.com/watch?v=II-xYw5VGFM][Video of it and "navi-mode"]] :refile:video: 1107 | :LOGBOOK: 1108 | - State "TO-WATCH" from [2017-07-29 Sat 01:28] 1109 | :END: 1110 | 1111 | ** [[https://justin.abrah.ms/dotfiles/emacs.html][Justin Abrahms]] :ATTACH: 1112 | :PROPERTIES: 1113 | :Attachments: https%3A%2F%2Fjustin.abrah.ms%2Fdotfiles%2Femacs.html--Tkr5Fv.tar.xz 1114 | :ID: a7f7bb0f-c0af-4dfb-8266-2b4b2e201b74 1115 | :author: Justin Abrahms 1116 | :END: 1117 | :LOGBOOK: 1118 | - Note taken on [2020-02-12 Wed 16:05] \\ 1119 | Originally captured [2015-09-29 Tue 17:59]. 1120 | :END: 1121 | 1122 | ** [[https://writequit.org/eos/eos-org.html][Lee Hinman: Emacs Operating System (EOS) Org config]] :ATTACH: 1123 | :PROPERTIES: 1124 | :author: Lee Hinman 1125 | :Attachments: https%3A%2F%2Fwritequit.org%2Feos%2Feos-org.html--uVK3nG.tar.xz 1126 | :ID: 9a4223f5-6464-4824-bedc-a2cf5c5f405e 1127 | :END: 1128 | 1129 | + [[https://writequit.org/eos/eos.html][The Emacs Operating System (EOS)]] 1130 | 1131 | * Development :development: 1132 | :PROPERTIES: 1133 | :CUSTOM_ID: development 1134 | :END: 1135 | 1136 | Information about Org development. 1137 | 1138 | ** Building :building: 1139 | :PROPERTIES: 1140 | :CUSTOM_ID: building 1141 | :END: 1142 | 1143 | Information about Building Org. 1144 | 1145 | *** Articles :articles: 1146 | 1147 | **** [[https://scripter.co/building-org-development-version/][Kaushal Modi: Building Org Development version]] :website:ATTACH: 1148 | :PROPERTIES: 1149 | :ID: 18b2d867-1cab-41fa-869a-48a866063f55 1150 | :author: Kaushal Modi 1151 | :Attachments: https%3A%2F%2Fscripter.co%2Fbuilding-org-development-version%2F--dEexlf.tar.xz 1152 | :END: 1153 | 1154 | [2017-09-01 Fri 22:30] Kaushal Modi shared this on the Org list. 1155 | 1156 | ** Performance :performance: 1157 | :PROPERTIES: 1158 | :CUSTOM_ID: performance 1159 | :END: 1160 | 1161 | *** [[https://lists.gnu.org/archive/html/bug-gnu-emacs/2019-04/msg01390.html][Eli Zaretskii: How overlays affect performance]] :discussions:overlays: 1162 | :PROPERTIES: 1163 | :ID: 2b206328-65b7-45e5-99b7-0bad7c13f161 1164 | :END: 1165 | 1166 | [2019-12-13 Fri 08:49] 1167 | 1168 | * Documentation :documentation: 1169 | :PROPERTIES: 1170 | :CUSTOM_ID: documentation 1171 | :END: 1172 | 1173 | Other sources of documentation about Org. 1174 | 1175 | ** Community :community: 1176 | :PROPERTIES: 1177 | :CUSTOM_ID: community 1178 | :END: 1179 | 1180 | Community-provided documentation. 1181 | 1182 | *** [#A] [[http://orgmode.org/worg/][Worg]] :bookmark: 1183 | :PROPERTIES: 1184 | :ID: 90fe0f5b-8ecf-4078-81d1-344c537cdf04 1185 | :END: 1186 | :LOGBOOK: 1187 | CLOCK: [2015-08-29 Sat 15:02]--[2015-08-29 Sat 15:04] => 0:02 1188 | :END: 1189 | 1190 | [2015-08-29 Sat 15:02] There's a lot of good stuff here. 1191 | 1192 | *** [[https://github.com/novoid/org-mode-workshop][Karl Voit: org-mode-workshop]] 1193 | :PROPERTIES: 1194 | :ID: b45b62e8-504f-46e4-b61c-5a62ce208e0f 1195 | :author: Karl Voit 1196 | :END: 1197 | 1198 | [2015-08-23 Sun 19:51] 1199 | 1200 | #+BEGIN_QUOTE 1201 | In November 2012, I was lucky enough to be able to conduct a workshop about Emacs Org-mode at Graz University of Technology, Austria. This repository contains all relevant material I collected and created for this and possible future workshops on this great topic. 1202 | #+END_QUOTE 1203 | 1204 | Includes: 1205 | 1206 | + [[https://github.com/novoid/org-mode-workshop/blob/master/workshop.org][Workshop presentation]] :: Outline of presentation given by Karl. 1207 | + [[https://github.com/novoid/org-mode-workshop/blob/master/featureshow/org-mode-teaser.org][Teaser demo]] :: A large document demonstrating many features of Org. 1208 | 1209 | ** [[https://orgmode.org/manual/][Manual]] :bookmark: 1210 | :PROPERTIES: 1211 | :CUSTOM_ID: manual 1212 | :END: 1213 | 1214 | The official Org manual. 1215 | 1216 | ** Tutorials 1217 | :PROPERTIES: 1218 | :CUSTOM_ID: tutorials 1219 | :END: 1220 | 1221 | *** [[id:536f010e-593f-4f28-b8bd-ae36f4a52db1][Videos]] 1222 | 1223 | * Features :built_in: 1224 | :PROPERTIES: 1225 | :TOC: :include descendants :depth 1 1226 | :CUSTOM_ID: features 1227 | :END: 1228 | 1229 | Information about various built-in features of Org. (Related third-party tools may be linked to in the [[id:83d02c10-af55-4b4b-8025-de7bd7f53364][Software]] section.) 1230 | 1231 | :CONTENTS: 1232 | - [[#agenda][Agenda]] 1233 | - [[#appearance][Appearance]] 1234 | - [[#capture][Capture]] 1235 | - [[#clocking][Clocking]] 1236 | - [[#exporting][Exporting]] 1237 | - [[#lists][Lists]] 1238 | - [[#tasks][Tasks]] 1239 | :END: 1240 | 1241 | ** Agenda :agenda: 1242 | :PROPERTIES: 1243 | :ID: f8f18682-8caf-448d-b096-96356e8eb7e9 1244 | :TOC: :include descendants :depth 2 :local (depth) 1245 | :CUSTOM_ID: agenda 1246 | :END: 1247 | :CONTENTS: 1248 | - [[#articles-0][Articles]] 1249 | - [[#third-party-tools][Third-party Tools]] 1250 | - [[#tips][Tips]] 1251 | - [[#exclude-and-include-tags-in-custom-agenda-commands][Exclude and include tags in custom Agenda commands]] 1252 | - [[#include-inactive-timestamps-in-agenda-log][Include inactive timestamps in agenda log]] 1253 | :END: 1254 | 1255 | *** Articles :articles: 1256 | :PROPERTIES: 1257 | :TOC: :depth 0 1258 | :CUSTOM_ID: articles-0 1259 | :END: 1260 | 1261 | **** [[https://blog.aaronbieber.com/2016/09/24/an-agenda-for-life-with-org-mode.html][Aaron Bieber: An Agenda for Life With Org Mode]] :website:ATTACH: 1262 | :PROPERTIES: 1263 | :Attachments: https%3A%2F%2Fblog.aaronbieber.com%2F2016%2F09%2F24%2Fan-agenda-for-life-with-org-mode.html--DP5t1Z.tar.xz 1264 | :ID: ce6907dd-1267-44ed-803d-9e488907d5d9 1265 | :END: 1266 | 1267 | [2019-04-07 Sun 18:09] I think I've seen this before, but I came across it again, and it has some good examples and code. 1268 | 1269 | *** [[id:6a599497-ce37-41b5-8ee4-92d4b2459b0c][Third-party Tools]] 1270 | :PROPERTIES: 1271 | :CUSTOM_ID: third-party-tools 1272 | :END: 1273 | 1274 | *** Tips :tips: 1275 | :PROPERTIES: 1276 | :CUSTOM_ID: tips 1277 | :END: 1278 | 1279 | **** Exclude and include tags in custom Agenda commands 1280 | :PROPERTIES: 1281 | :CUSTOM_ID: exclude-and-include-tags-in-custom-agenda-commands 1282 | :END: 1283 | 1284 | Commands like =org-tags-view= naturally offer the ability to control which tags are used to filter items, but such filtering is less obvious when using daily/weekly Agenda commands. However, doing so is straightforward using the variable =org-agenda-tag-filter=. For example, Org user Stig Brautaset offers [[https://lists.gnu.org/archive/html/emacs-orgmode/2020-02/msg00533.html][this example]]: 1285 | 1286 | #+BEGIN_SRC elisp 1287 | (setq org-agenda-custom-commands 1288 | '(("w" "Work Agenda" 1289 | ((agenda "" ((org-agenda-span 'day))) 1290 | (todo "TODO" 1291 | ((org-agenda-max-entries 5) 1292 | (org-agenda-todo-ignore-scheduled 'all) 1293 | (org-agenda-todo-ignore-deadlines 'all) 1294 | (org-agenda-todo-ignore-timestamp 'all)))) 1295 | ((org-agenda-tag-filter '("-@home" "-MAYBE")))) 1296 | ("h" "Home Agenda" 1297 | ((agenda "") 1298 | (todo "TODO" 1299 | ((org-agenda-max-entries 5) 1300 | (org-agenda-todo-ignore-scheduled 'all) 1301 | (org-agenda-todo-ignore-deadlines 'all) 1302 | (org-agenda-todo-ignore-timestamp 'all)))) 1303 | ((org-agenda-tag-filter '("-@work" "-MAYBE")))) 1304 | ("m" "Maybe" 1305 | ((todo "PROJ") 1306 | (tags-todo "-PROJ/TODO")) 1307 | ((org-agenda-tag-filter '("+MAYBE")))) 1308 | ("P" "Projects" tags-todo "-MAYBE/PROJ")))) 1309 | #+END_SRC 1310 | 1311 | Alternatives include: 1312 | 1313 | + Using [[https://github.com/alphapapa/org-ql][org-ql]] to build Agenda-like views using queries, like: 1314 | 1315 | #+BEGIN_SRC elisp 1316 | (org-ql-search (org-agenda-files) 1317 | '(and (or (deadline auto) 1318 | (scheduled :to today) 1319 | (ts-active :on today)) 1320 | (not (or (todo "MAYBE") 1321 | (tags "@home"))))) 1322 | #+END_SRC 1323 | 1324 | + Using [[https://github.com/alphapapa/org-super-agenda][org-super-agenda]] to group and/or discard certain items, like: 1325 | 1326 | #+BEGIN_SRC elisp 1327 | (setq org-agenda-custom-commands 1328 | '(("w" "Work Agenda" 1329 | ((agenda "" ((org-agenda-span 'day))) 1330 | (todo "TODO" 1331 | ((org-agenda-max-entries 5) 1332 | (org-agenda-todo-ignore-scheduled 'all) 1333 | (org-agenda-todo-ignore-deadlines 'all) 1334 | (org-agenda-todo-ignore-timestamp 'all)))) 1335 | ((org-super-agenda-groups '((:discard (:tags "@home" :todo "MAYBE")))))) 1336 | ("h" "Home Agenda" 1337 | ((agenda "") 1338 | (todo "TODO" 1339 | ((org-agenda-max-entries 5) 1340 | (org-agenda-todo-ignore-scheduled 'all) 1341 | (org-agenda-todo-ignore-deadlines 'all) 1342 | (org-agenda-todo-ignore-timestamp 'all)))) 1343 | ((org-super-agenda-groups '((:discard (:tags "@work" :todo "MAYBE"))))))))) 1344 | #+END_SRC 1345 | 1346 | **** Include inactive timestamps in agenda log 1347 | :PROPERTIES: 1348 | :ID: 73c5fb5f-ebed-48bb-a140-de9cca7bf0d6 1349 | :CUSTOM_ID: include-inactive-timestamps-in-agenda-log 1350 | :END: 1351 | 1352 | [2016-09-09 Fri 18:51] To include inactive timestamps in the agenda log view, press ~[~. I'm not sure if I should try to make this the default, or if I should use active timestamps instead. 1353 | 1354 | ** Appearance :appearance: 1355 | :PROPERTIES: 1356 | :ID: 6c7c36b9-4131-4671-a047-8c5e68fd93c9 1357 | :TOC: :include descendants :depth 1 :local depth 1358 | :CUSTOM_ID: appearance 1359 | :END: 1360 | :CONTENTS: 1361 | - [[#articles-1][Articles]] 1362 | - [[#themes][Themes]] 1363 | - [[#tools-0][Tools]] 1364 | :END: 1365 | 1366 | *** Articles :articles: 1367 | :PROPERTIES: 1368 | :CUSTOM_ID: articles-1 1369 | :END: 1370 | 1371 | **** [[https://lepisma.xyz/2017/10/28/ricing-org-mode/][Abhinav Tushar: Ricing up Org Mode]] :ATTACH:themes: 1372 | :PROPERTIES: 1373 | :author: Abhinav Tushar 1374 | :ID: 39efe3b6-201c-48d5-90f0-32aba22dd4fd 1375 | :Attachments: https%3A%2F%2Flepisma.xyz%2F2017%2F10%2F28%2Fricing-org-mode%2F--WxM5vp.tar.xz 1376 | :END: 1377 | 1378 | *************** TODO Add theme to themes. 1379 | 1380 | *************** END 1381 | 1382 | [2019-09-11 Wed 16:41] Shows a very customized, minimal and beautiful Emacs/Org config and theme. 1383 | 1384 | *** [[id:d56c2c3e-3227-4d1d-899c-447103e9e495][Themes]] 1385 | :PROPERTIES: 1386 | :CUSTOM_ID: themes 1387 | :END: 1388 | 1389 | *** [[id:7f7d4194-8457-41e7-8e21-54c4a50a81f4][Tools]] 1390 | :PROPERTIES: 1391 | :CUSTOM_ID: tools-0 1392 | :END: 1393 | 1394 | ** Capture :capture: 1395 | :PROPERTIES: 1396 | :ID: abacb506-4046-4dee-b908-981ff86ab02e 1397 | :CUSTOM_ID: capture 1398 | :END: 1399 | 1400 | *** Tools :tools: 1401 | 1402 | **** org-capture for Firefox :Org: 1403 | :PROPERTIES: 1404 | :ID: ea07c0b3-ea9c-44ac-bd91-d2e3a2fc0557 1405 | :END: 1406 | :LOGBOOK: 1407 | - State "NEXT" from "TODAY" [2016-09-14 Wed 23:08] 1408 | - State "TODAY" from "TODO" [2016-09-14 Wed 23:08] 1409 | :END: 1410 | 1411 | [2015-08-19 Wed 13:35] http://chadok.info/firefox-org-capture/ Looks nice, should try it. [[gnus:gmane.emacs.orgmode#6sw6c7wpxkt8gd.fsf@dhcp-10-92-132-216.hmco.com][Here's]] a good thread about it on the org-mode list. 1412 | 1413 | ** Clocking :clocking: 1414 | :PROPERTIES: 1415 | :CUSTOM_ID: clocking 1416 | :END: 1417 | 1418 | *** Articles :articles: 1419 | 1420 | **** [[http://sachachua.com/blog/2007/12/clocking-time-with-emacs-org/][Sacha Chua: Clocking Time with Emacs Org]] :ATTACH: 1421 | :PROPERTIES: 1422 | :author: Sacha Chua 1423 | :Attachments: http%3A%2F%2Fsachachua.com%2Fblog%2F2007%2F12%2Fclocking-time-with-emacs-org%2F--KE5mUB.tar.xz 1424 | :ID: 6244157d-ce7a-480d-9f2b-d16537cf052f 1425 | :END: 1426 | 1427 | [2015-08-29 Sat 14:03] 1428 | 1429 | ** Exporting :exporting: 1430 | :PROPERTIES: 1431 | :TOC: :include descendants :depth 2 :local (depth) 1432 | :ID: 24cb4cc0-65d4-468e-83b1-ba8361d85b9e 1433 | :CUSTOM_ID: exporting 1434 | :END: 1435 | :CONTENTS: 1436 | - [[#headings][Headings]] 1437 | - [[#excluding-and-including][Excluding and including]] 1438 | - [[#properties][Properties]] 1439 | - [[#themes-0][Themes]] 1440 | :END: 1441 | 1442 | + [[https://orgmode.org/org.html#Export-Settings][Official documentation]] 1443 | 1444 | *** Headings 1445 | :PROPERTIES: 1446 | :CUSTOM_ID: headings 1447 | :END: 1448 | 1449 | **** Excluding and including 1450 | :PROPERTIES: 1451 | :CUSTOM_ID: excluding-and-including 1452 | :END: 1453 | 1454 | To /exclude/ certain headings from being exported, use a =:noexport:= tag on them, like: 1455 | 1456 | #+BEGIN_SRC org 1457 | ,* Heading 1 1458 | 1459 | This heading will be exported. 1460 | 1461 | ,* Heading 2 :noexport: 1462 | 1463 | This heading will not. 1464 | #+END_SRC 1465 | 1466 | To /include/ certain headings (i.e. to exclude all headings by default), use an =:export= tag, like: 1467 | 1468 | #+BEGIN_SRC org 1469 | ,* Heading 1 1470 | 1471 | This heading will not be exported. 1472 | 1473 | ,* Heading 2 :export: 1474 | 1475 | This heading will be. 1476 | #+END_SRC 1477 | 1478 | The manual explains these export option keywords: 1479 | 1480 | #+BEGIN_QUOTE 1481 | + =SELECT_TAGS= :: The default value is ~("export")~. When a tree is tagged with ~export~ (=org-export-select-tags=), Org selects that tree and its sub-trees for export. Org excludes trees with ~noexport~ tags, see below. When selectively exporting files with ~export~ tags set, Org does not export any text that appears before the first headline. 1482 | 1483 | + =EXCLUDE_TAGS= :: The default value is ~("noexport")~. When a tree is tagged with ~noexport~ (=org-export-exclude-tags=), Org excludes that tree and its sub-trees from export. Entries tagged with ~noexport~ are unconditionally excluded from the export, even if they have an ~export~ tag. Even if a sub-tree is not exported, Org executes any code blocks contained there. 1484 | #+END_QUOTE 1485 | 1486 | *** Properties 1487 | :PROPERTIES: 1488 | :CUSTOM_ID: properties 1489 | :END: 1490 | 1491 | [2020-02-13 Thu 01:31] To export drawers with specific properties, use this syntax: 1492 | 1493 | #+BEGIN_SRC org 1494 | ,#+OPTIONS: prop:("property1" "property2") 1495 | 1496 | ,* Subtree 1497 | :PROPERTIES: 1498 | :EXPORT_OPTIONS: prop:("property1" "property2") 1499 | :END: 1500 | 1501 | To set this option for a subtree, use a drawer like the one above. 1502 | #+END_SRC 1503 | 1504 | Alternatively, to export a single property at a specific place, you can use an Org macro, like: 1505 | 1506 | #+BEGIN_SRC org 1507 | {{{property(property1)}}} 1508 | #+END_SRC 1509 | 1510 | *** [[id:5b5140cd-00d2-4f31-8a3d-ff7e2edc9395][Themes]] 1511 | :PROPERTIES: 1512 | :CUSTOM_ID: themes-0 1513 | :END: 1514 | 1515 | ** Lists :lists: 1516 | :PROPERTIES: 1517 | :ID: fe8bafae-9312-46f4-a3c6-3cf4b9c2867b 1518 | :CUSTOM_ID: lists 1519 | :END: 1520 | 1521 | *** [[http://pragmaticemacs.com/emacs/org-mode-start-a-numbered-list-from-any-number/][Start a numbered list from any number | Pragmatic Emacs]] :website: 1522 | :PROPERTIES: 1523 | :ID: c36a3dc9-494a-42f5-a305-76615af5f86d 1524 | :END: 1525 | 1526 | [2016-03-21 Mon 20:38] 1527 | 1528 | #+BEGIN_QUOTE 1529 | This trick is in the org-mode manual but it’s worth a quick mention in its own right. If you want to start a numbered list in org-mode from a number other than 1, then put [@N] at the start of the first item, where N is the number you want to start with. So for 1530 | example, 1531 | 1532 | 1) item 1 1533 | 2) item 2 1534 | 1535 | This text would interrupt the list and the next item would be 1) on a 1536 | new list 1537 | 1538 | 3) [@3] This will be item 3 thanks to [@3] 1539 | 4) and this will be item 4 1540 | #+END_QUOTE 1541 | 1542 | ** Tasks :tasks: 1543 | :PROPERTIES: 1544 | :ID: 8179f17e-b7ea-445e-9350-551de01904eb 1545 | :CUSTOM_ID: tasks 1546 | :END: 1547 | 1548 | *** Disable TODO-state logging for a file :logging: 1549 | :PROPERTIES: 1550 | :ID: ba39fd28-013b-4bae-ae75-276f66049b41 1551 | :END: 1552 | 1553 | [2018-06-11 Mon 06:42] I found [[https://www.reddit.com/r/orgmode/comments/4ekcy9/howto_disable_todostate_logging_for_a_file/][this page]] on Google, which I apparently posted to Reddit two years ago: 1554 | 1555 | #+BEGIN_QUOTE 1556 | If you use TODO-state logging by default but want to disable it for a file, add this line at the top of the file: 1557 | 1558 | #+BEGIN_SRC org 1559 | #+PROPERTY: LOGGING nil 1560 | #+END_SRC 1561 | Note: It must be capitalized exactly as shown. 1562 | 1563 | It took some searching of the manual and some trial-and-error to find the right combination. Maybe this will save someone else the trouble someday. :) 1564 | #+END_QUOTE 1565 | 1566 | * TODO People :people: 1567 | :PROPERTIES: 1568 | :CUSTOM_ID: people 1569 | :END: 1570 | :LOGBOOK: 1571 | - State "TODO" from [2020-02-13 Thu 01:09] 1572 | :END: 1573 | 1574 | People in the Org community. 1575 | 1576 | + [ ] Gather list from =author= property. 1577 | 1578 | * Software :software:third_party: 1579 | :PROPERTIES: 1580 | :ID: 83d02c10-af55-4b4b-8025-de7bd7f53364 1581 | :TOC: :include descendants :depth 2 :local depth 1582 | :CUSTOM_ID: software-0 1583 | :END: 1584 | 1585 | Org-related third-party software. 1586 | 1587 | :CONTENTS: 1588 | - [[#features-0][Features]] 1589 | - [[#agenda-0][Agenda]] 1590 | - [[#appearance-0][Appearance]] 1591 | - [[#exporting-0][Exporting]] 1592 | - [[#lists-0][Lists]] 1593 | - [[#libraries][Libraries]] 1594 | - [[#miscellaneous-0][Miscellaneous]] 1595 | - [[#parsing][Parsing]] 1596 | - [[#tools][Tools]] 1597 | - [[#citations][Citations]] 1598 | :END: 1599 | 1600 | ** Features 1601 | :PROPERTIES: 1602 | :CUSTOM_ID: features-0 1603 | :END: 1604 | 1605 | Organized by related Org features. 1606 | 1607 | *** Agenda :agenda: 1608 | :PROPERTIES: 1609 | :ID: 6a599497-ce37-41b5-8ee4-92d4b2459b0c 1610 | :CUSTOM_ID: agenda-0 1611 | :END: 1612 | 1613 | **** [[https://github.com/alphapapa/org-super-agenda][org-super-agenda: Supercharge daily/weekly agenda by grouping items]] 1614 | :PROPERTIES: 1615 | :ID: 5a922670-2f5f-450d-925b-c6f5c04eba10 1616 | :END: 1617 | 1618 | *** Appearance :appearance: 1619 | :PROPERTIES: 1620 | :ID: 7f7d4194-8457-41e7-8e21-54c4a50a81f4 1621 | :CUSTOM_ID: appearance-0 1622 | :END: 1623 | 1624 | **** Bullets 1625 | 1626 | ***** [[https://github.com/dw-github-mirror/org-superstar-mode][org-superstar-mode]] 1627 | :PROPERTIES: 1628 | :author: D. Williams 1629 | :END: 1630 | 1631 | #+BEGIN_QUOTE 1632 | Prettify headings and plain lists in org-mode. This package is a direct descendant of =org-bullets=, with most of the code base completely rewritten. 1633 | #+END_QUOTE 1634 | 1635 | **** Themes :themes: 1636 | :PROPERTIES: 1637 | :ID: d56c2c3e-3227-4d1d-899c-447103e9e495 1638 | :END: 1639 | 1640 | ***** [[https://github.com/kunalb/poet][poet]]: An Emacs theme well-suited for modes using variable pitch, particularly org-mode and markdown-mode 1641 | :PROPERTIES: 1642 | :author: Kunal Bhalla 1643 | :END: 1644 | 1645 | *** Exporting :exporting: 1646 | :PROPERTIES: 1647 | :CUSTOM_ID: exporting-0 1648 | :END: 1649 | 1650 | **** Themes :themes: 1651 | :PROPERTIES: 1652 | :ID: 5b5140cd-00d2-4f31-8a3d-ff7e2edc9395 1653 | :END: 1654 | 1655 | ***** [[https://github.com/alphapapa/org-html-theme-darksun][org-html-theme-darksun: A Solarized Dark version of the Bigblow Org HTML export theme]] :HTML: 1656 | :PROPERTIES: 1657 | :author: Adam Porter 1658 | :END: 1659 | 1660 | ***** [[https://github.com/fniessen/org-html-themes][org-html-themes: Framework including two themes, Bigblow and ReadTheOrg]] :HTML: 1661 | :PROPERTIES: 1662 | :author: Fabrice Niessen 1663 | :END: 1664 | 1665 | *** Lists :lists: 1666 | :PROPERTIES: 1667 | :CUSTOM_ID: lists-0 1668 | :END: 1669 | 1670 | **** [[https://github.com/dfeich/org-listcruncher][org-listcruncher: Parse list contents into tables]] :tables: 1671 | :PROPERTIES: 1672 | :ID: c98e39ee-69c5-40ff-a53d-b825804e8ba7 1673 | :END: 1674 | 1675 | [2018-09-07 Fri 17:28] 1676 | 1677 | ** Libraries :libraries: 1678 | :PROPERTIES: 1679 | :ID: 0f8c9aca-c80e-41e6-b1fc-10b9c69c7f14 1680 | :TOC: :depth 0 1681 | :CUSTOM_ID: libraries 1682 | :END: 1683 | 1684 | Libraries to be used by other packages, not necessarily related to a specific, user-facing Org feature. 1685 | 1686 | *** CHECK [[https://github.com/l3kn/org-el-cache][org-el-cache: Persistent cache for data derived from org-elements]] :website:Emacs:Org: 1687 | SCHEDULED: <2020-02-23 Sun> 1688 | :PROPERTIES: 1689 | :ID: e52c02f9-9739-46f5-8a85-6330b32768ab 1690 | :END: 1691 | :LOGBOOK: 1692 | - State "CHECK" from [2020-02-09 Sun 09:03] 1693 | CLOCK: [2020-02-08 Sat 08:28]--[2020-02-08 Sat 08:28] => 0:00 1694 | :END: 1695 | 1696 | [2020-02-08 Sat 08:28] 1697 | 1698 | *** [[https://bitbucket.org/zck/org-parser.el][org-parser.el]] 1699 | :PROPERTIES: 1700 | :ID: 8b84ad58-a8b4-448f-8703-5c600866e05e 1701 | :END: 1702 | 1703 | This may be a useful alternative to =org-element-parse-buffer=. Also see [[https://www.reddit.com/r/orgmode/comments/6t8niz/orgparser_parses_orgfiles_into_structured/][Reddit thread]]. 1704 | 1705 | ** Miscellaneous :miscellaneous: 1706 | :PROPERTIES: 1707 | :CUSTOM_ID: miscellaneous-0 1708 | :END: 1709 | 1710 | *** Parsing :parsing: 1711 | :PROPERTIES: 1712 | :CUSTOM_ID: parsing 1713 | :END: 1714 | 1715 | Related to parsing Org files. 1716 | 1717 | **** [[https://common-lisp.net/project/cl-org-mode/][CL-ORG-MODE : A Parser of org-mode outlines]] :Lisp:Common_Lisp: 1718 | 1719 | #+BEGIN_QUOTE 1720 | /abstract/: CL-ORG-MODE is a parser for org-mode files that uses an extensible CLOS-based recursive descent parser to create a tree of org-mode nodes. Also included is a (primitive) system for literate programming using org-mode. 1721 | #+END_QUOTE 1722 | 1723 | **** [[https://gitlab.com/olymk2/cl-org][cl-org: Clojure(script) Org mode parser]] :Clojure: 1724 | 1725 | #+BEGIN_QUOTE 1726 | Clojure(script) library that can be used in JS or Java or likely any JVM based language. This library will parse Org files into a mini-DSL which you can transform easily into Hiccup. It has a default translation to built-in if you do not require customization. 1727 | #+END_QUOTE 1728 | 1729 | **** [[https://github.com/Ferada/cl-org-mode-parser][cl-org-mode-parser: Parsing org-mode files]] :Lisp:Common_Lisp: 1730 | 1731 | #+BEGIN_QUOTE 1732 | There are actually a lot of other packages for the same purpose. The aim of this one is to parse org-mode files via a SAX-like event interface into e.g. CLOS-based documents and to offer some options with regards to parsed elements, interning of tags and similar things. 1733 | 1734 | The parser is currently line- and regex-based, however it might be feasible to use a parser generator instead. For that the syntax description at worg is canonical and should probably be used. 1735 | #+END_QUOTE 1736 | 1737 | **** [[https://github.com/fosskers/org-mode][fosskers/org-mode: Haskell parser for Emacs org-mode files]] :Haskell: 1738 | 1739 | #+BEGIN_QUOTE 1740 | The org-mode suite of libraries allow one to parse text in Emacs Org Mode format and manipulate it into other useful types. 1741 | #+END_QUOTE 1742 | 1743 | **** [[https://github.com/niklasfasching/go-org][go-org: Org mode parser with HTML & pretty-printed Org rendering and static site generator]] :Go: 1744 | 1745 | #+BEGIN_QUOTE 1746 | + the goal for the html export is to produce sensible html output, not to exactly reproduce the output of org-html-export. 1747 | + the goal for the parser is to support a reasonable subset of Org mode. Org mode is huge and I like to follow the 80/20 rule. 1748 | #+END_QUOTE 1749 | 1750 | **** [[https://github.com/tgbugs/laundry][laundry: Org mode for Racket]] :Scheme:Racket: 1751 | 1752 | #+BEGIN_QUOTE 1753 | An attempt to specify a formal grammar for Org syntax. It is implemented using Racket’s ~#lang brag~. 1754 | #+END_QUOTE 1755 | 1756 | **** [[https://github.com/mooz/org-js][org-js: A parser and converter for org-mode notation]] :JavaScript: 1757 | 1758 | #+BEGIN_QUOTE 1759 | Parser and converter for org-mode notation written in JavaScript. For working example, see [[http://mooz.github.com/org-js/editor/][http://mooz.github.com/org-js/editor/]]. 1760 | #+END_QUOTE 1761 | 1762 | **** [[https://github.com/daitangio/org-mode-parser][org-mode-parser: An Org mode parser for Node.js]] :JavaScript: 1763 | 1764 | #+BEGIN_QUOTE 1765 | This node.js module implements an org-mode file format parser. 1766 | #+END_QUOTE 1767 | 1768 | + A fork, updated more recently: [[https://gitlab.com/raisethisbarn/org-mode-parse][Raise / org-mode-parse · GitLab]] 1769 | 1770 | **** [[https://github.com/200ok-ch/org-parser][org-parser: a Clojure-based parser for the Org mode markup language]] :Clojure: 1771 | 1772 | #+BEGIN_QUOTE 1773 | It documents the syntax in a standard and machine readable notation (EBNF). And the reference implementation is done in a way that it runs on the established virtual machines of Java and JavaScript. Hence, org-parser can be used from all programming languages running on those virtual machines. org-parser provides a higher-level data structure that is easy to consume for an application working with Org mode data. Even if your application is not running on the Java or JavaScript virtual machines, you can embed org-parser as a command-line application. Lastly, org-parser brings a strong test suite to document the reference implementation in yet another unambiguous way. 1774 | 1775 | It is our aim that org-parser can be the foundation on which many Org mode applications in many different languages can be built. The applications using org-parser can then focus on implementing user facing features and don’t have to worry about the implementation of the Org syntax itself. 1776 | #+END_QUOTE 1777 | 1778 | **** [[https://github.com/org-rs/org-rs][org-rs: org-mode parser rewrite in Rust]] :Rust: 1779 | 1780 | #+BEGIN_QUOTE 1781 | Org is probably the best and most complete plain text organizational system known to mankind. It has countless applications like authoring, publishing, task and time tracking, journal, blog, agenda, wiki etc... 1782 | 1783 | Unfortunately Org was originally developed for Emacs and therefore available only inside Emacs. It is a huge limiting factor for Org's development and popularization. Because of that it is not as popular outside of Emacs community as it should be. 1784 | 1785 | Many attempts were made to fix this. It all starts with a parser. But because Org's syntax is not trivial and in fact most of it is context-sensitive with only a few context-free elements, it is quite easy to get it wrong. Some Org parsers have chosen to focus on a restricted subset of Org's syntax like org-ruby or pandoc. More ambitious projects try to cover all features but since Org does not have a formal specification1 they rely on observed Org's behavior in Emacs or author's intuition. As a result they rarely get finished. 1786 | 1787 | But the absence of a good a spec and the complexity of the grammar are not show stoppers. Why reinventing the wheel when we can just copy it! This project takes the only surefire way to get it right - use the original elisp parser implementation as a blueprint! 1788 | #+END_QUOTE 1789 | 1790 | **** [[https://github.com/amake/org_parser][org_parser: An org-mode parser for Dart]] :Dart: 1791 | 1792 | #+BEGIN_QUOTE 1793 | This package allows you to parse raw Org Mode documents into a structured in-memory representation. This parser was developed for an application that is halfway between pretty-printing and evaluating/interpreting, so in many cases the parsed structure does not split out constituent parts as thoroughly as needed for some applications. 1794 | #+END_QUOTE 1795 | 1796 | **** [[https://github.com/orgapp/orgajs][orgajs: parse org-mode content into AST]] :JavaScript: 1797 | 1798 | #+BEGIN_QUOTE 1799 | Orga is a flexible org-mode syntax parser. It parses org content into AST (Abstract Syntax Tree 🌲). 1800 | #+END_QUOTE 1801 | 1802 | + [[https://www.reddit.com/r/orgmode/comments/7wjmwr/orga_the_ultimate_orgmode_parser_in_javascript/][Reddit discussion (2018)]] 1803 | 1804 | **** [[https://github.com/karlicoss/orgparse][orgparse: Python module for reading Emacs org-mode files]] :Python: 1805 | 1806 | **** [[https://github.com/perlancar/perl-Org-Parser][perl-Org-Parser]] :Perl: 1807 | 1808 | + [[https://metacpan.org/pod/Org::Parser][Org::Parser - Parse Org documents - metacpan.org]] 1809 | 1810 | ** Tools :tools: 1811 | :PROPERTIES: 1812 | :CUSTOM_ID: tools 1813 | :END: 1814 | 1815 | *** Citations :citations: 1816 | :PROPERTIES: 1817 | :ID: b010ff39-f460-46c2-af8b-5118ffddb229 1818 | :CUSTOM_ID: citations 1819 | :END: 1820 | 1821 | **** TODO [[https://github.com/jkitchin/org-ref][org-ref]]: modules for citations, cross-references, and bibliographies, and useful BibTeX tools :citations:bibliographies:cross_references: 1822 | :PROPERTIES: 1823 | :author: John Kitchin 1824 | :END: 1825 | 1826 | * Tasks 1827 | :PROPERTIES: 1828 | :TOC: :depth 0 1829 | :CUSTOM_ID: tasks-0 1830 | :END: 1831 | 1832 | Tasks related to this document. 1833 | 1834 | ** TODO Move attachments from data dir to parent data dir :noexport: 1835 | 1836 | [2020-02-13 Thu 18:54] Org 9.0.5 doesn't correctly inherit =ATTACH_DIR= properties set in =#+PROPERTY= lines. Newer versions of Org look like they do. So after I upgrade Org, I'll have to move attachments from this =pub/data= dir to the parent =data= dir. 1837 | 1838 | ** TODO Recursive sort function 1839 | 1840 | Should probably support subtree-specific sort functions. 1841 | 1842 | ** Resources to add 1843 | 1844 | *** [[https://daryl.wakatara.com/a-better-gtd-and-crm-flow-for-emacs-org-mode/][Daryl Manning | A better GTD and CRM flow for emacs org-mode]] 1845 | 1846 | *** [[https://github.com/alhassy/org-special-block-extras][GitHub - alhassy/org-special-block-extras: A number of new custom blocks and link types for Emacs' Org-mode ^_^]] 1847 | 1848 | *** [[https://www.youtube.com/watch?v=0g9BcZvQbXU][Consistent Technical Documents Using Emacs and Org Mode - YouTube]] 1849 | 1850 | This is an excellent demonstration of using Org and Org Babel to produce technical documentation. 1851 | 1852 | *** [[https://www.labri.fr/perso/nrougier/GTD/index.html][Get Things Done with Emacs]] 1853 | 1854 | *** [[https://bofh.org.uk/2019/02/25/baking-with-emacs/][Running a bakery on Emacs and PostgreSQL // Just a Summary]] 1855 | 1856 | *** [[https://karl-voit.at/2020/05/03/current-org-files/][UOMF: My Current Org Mode Files and Heading Structure]] 1857 | 1858 | Karl Voit describes his entire Org system. 1859 | 1860 | + [[https://www.reddit.com/r/emacs/comments/gcsazi/my_current_org_mode_files_and_heading_structure/][Reddit discussion]] 1861 | 1862 | *** [[https://www.reddit.com/r/orgmode/comments/gcnum4/using_orgmode_to_keep_track_of_events/][Using org-mode to keep track of events (particularly birthdays) : orgmode]] 1863 | 1864 | Shows 4 specific ways Org can be used to track birthdays, etc. 1865 | 1866 | ** TODO Sort by timestamp function 1867 | 1868 | Should support timestamps in property values. 1869 | 1870 | ** TODO Issue tracker 1871 | 1872 | [2020-11-09 Mon 01:15] Found this "recipe" laying around in an "org-cookbook" file I started and then forgot about: [[id:6074e74c-ede5-4c2e-9833-4ab7efa13397][Issue tracker]]. There's an image attachment that I could add here, too. 1873 | 1874 | #+BEGIN_SRC org 1875 | /Originally [[https://www.reddit.com/r/orgmode/comments/biqhjc/using_orgmode_as_a_quickanddirty_issue_tracker/][posted]] on Reddit by [[https://www.reddit.com/user/argtri][argtri]]./ 1876 | 1877 | 1. Create file =issues.org=. 1878 | 2. Add settings to file: 1879 | 1880 | ,#+BEGIN_SRC org 1881 | ,,#+AUTHOR: Your Name 1882 | ,,#+STARTUP:indent 1883 | ,,#+OPTIONS: num:nil toc:nil 1884 | ,,#+TODO: ONCE(o) EPISODIC ONGOING POTENTIAL | RESOLVED IMPROVED UNRESOLVABLE TOLERATED INACTIVE 1885 | ,,#+TODO: MALFUNCTION DAMAGE | REPAIRED REPLACED DISCARDED 1886 | ,,#+TITLE: Issue Tracker 1887 | ,#+END_SRC 1888 | 1889 | 3. Add template to ~org-capture-templates~: 1890 | 1891 | ,#+BEGIN_SRC elisp 1892 | ("i" "issue" entry 1893 | (file+olp+datetree "~ /org/issues.org") 1894 | "* ONCE %?" :time-prompt t) 1895 | ,#+END_SRC 1896 | 1897 | Example: 1898 | 1899 | [[images/issue-tracker.png]] 1900 | 1901 | #+END_SRC 1902 | 1903 | * Videos :videos: 1904 | :PROPERTIES: 1905 | :CUSTOM_ID: videos 1906 | :END: 1907 | 1908 | Videos about Org. 1909 | 1910 | ** Tutorials :tutorial: 1911 | :PROPERTIES: 1912 | :ID: 536f010e-593f-4f28-b8bd-ae36f4a52db1 1913 | :CUSTOM_ID: tutorials-0 1914 | :END: 1915 | 1916 | Video tutorials. 1917 | 1918 | *** [[https://www.youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs9PJlU0IIdE][Rainer König: Org-mode tutorials]] 1919 | :PROPERTIES: 1920 | :author: Rainer König 1921 | :END: 1922 | 1923 | Rainer's series of 39 videos explains Org features and application in a straightforward, detailed way. 1924 | 1925 | * [#C] COMMENT Config :noexport: 1926 | :PROPERTIES: 1927 | :TOC: :ignore (this descendants) 1928 | :END: 1929 | 1930 | ** File-local variables 1931 | :PROPERTIES: 1932 | :ID: 33e473b2-98e5-4ae5-9902-53db37d04618 1933 | :END: 1934 | 1935 | # Local Variables: 1936 | # eval: (require 'org-make-toc) 1937 | # eval: (unpackaged/org-export-html-with-useful-ids-mode 1) 1938 | # org-make-toc-link-type-fn: org-make-toc--link-entry-org 1939 | # before-save-hook: ((lambda () (unpackaged/org-fix-blank-lines t)) (lambda () (save-excursion (goto-char (point-min)) (ap/org-sort-entries-recursive-multi '(?a ?p)))) org-make-toc) 1940 | # after-save-hook: (lambda nil (copy-file "org.org" "~/src/emacs/org-almanac/almanac.org" t) (when (org-html-export-to-html) (rename-file "org.html" "~/src/emacs/org-almanac/index.html" t))) 1941 | # org-export-with-title: t 1942 | # org-export-with-broken-links: mark 1943 | # org-id-link-to-org-use-id: t 1944 | # org-export-initial-scope: buffer 1945 | # eval: (real-auto-save-mode -1) 1946 | # org-make-toc-insert-custom-ids: t 1947 | # org-make-toc-link-type-fn: org-make-toc--link-entry-github 1948 | # End: 1949 | 1950 | --------------------------------------------------------------------------------